From stefano.ceccherini at gmail.com Thu Jan 1 12:31:23 2009 From: stefano.ceccherini at gmail.com (Stefano Ceccherini) Date: Thu, 1 Jan 2009 12:31:23 +0100 Subject: [Haiku-commits] r28835 - haiku/trunk/src/bin In-Reply-To: <200812311647.mBVGljvC018744@sheep.berlios.de> References: <200812311647.mBVGljvC018744@sheep.berlios.de> Message-ID: <894b9700901010331s2e1702d5v32f663ca160179d2@mail.gmail.com> 2008/12/31 sbenedetto at BerliOS : > Author: sbenedetto > Date: 2008-12-31 17:47:45 +0100 (Wed, 31 Dec 2008) > New Revision: 28835 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28835&view=rev > > Modified: > haiku/trunk/src/bin/ps.c > Log: > * Reworked ps command a bit as its previous output was just messy. > > Nice one thanks! Let's please improve this one. For example, currently it interprets everything you pass as argument as team name, and it shows only threads related to that team. I'd change this, to only work if you specify the -T or --team option, so we can also implement other options (show only teams, tree-like output, and things like these). From axeld at pinc-software.de Thu Jan 1 13:09:14 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Thu, 01 Jan 2009 13:09:14 +0100 CET Subject: [Haiku-commits] r28835 - haiku/trunk/src/bin In-Reply-To: <894b9700901010331s2e1702d5v32f663ca160179d2@mail.gmail.com> Message-ID: <2162694804-BeMail@zon> "Stefano Ceccherini" wrote: > I'd change this, to only work if you specify the -T or --team option, > so we can also implement other options (show only teams, tree-like > output, and things like these). Why not have options for those, and don't need an option for the team filter? :-) It's probably what you'll use the most. Bye, Axel. From emitrax at gmail.com Thu Jan 1 13:56:55 2009 From: emitrax at gmail.com (Salvatore Benedetto) Date: Thu, 1 Jan 2009 13:56:55 +0100 Subject: [Haiku-commits] r28835 - haiku/trunk/src/bin In-Reply-To: <2162694804-BeMail@zon> References: <894b9700901010331s2e1702d5v32f663ca160179d2@mail.gmail.com> <2162694804-BeMail@zon> Message-ID: 2009/1/1 Axel D?rfler : > "Stefano Ceccherini" wrote: >> I'd change this, to only work if you specify the -T or --team option, >> so we can also implement other options (show only teams, tree-like >> output, and things like these). > > Why not have options for those, and don't need an option for the team > filter? :-) > It's probably what you'll use the most. > Yes, that's my idea. By the way, do we have a class for parsing arguments? Happy new year to all BTW! > Bye, > Axel. > > _______________________________________________ > Haiku-commits mailing list > Haiku-commits at lists.berlios.de > https://lists.berlios.de/mailman/listinfo/haiku-commits > -- Salvatore Benedetto (a.k.a. emitrax) Student of Computer Engineer University of Pisa www.haiku-os.it From stefano.ceccherini at gmail.com Thu Jan 1 14:56:39 2009 From: stefano.ceccherini at gmail.com (Stefano Ceccherini) Date: Thu, 1 Jan 2009 14:56:39 +0100 Subject: [Haiku-commits] r28835 - haiku/trunk/src/bin In-Reply-To: References: <894b9700901010331s2e1702d5v32f663ca160179d2@mail.gmail.com> <2162694804-BeMail@zon> Message-ID: <894b9700901010556m1c012622l5fbfb4c331ca5030@mail.gmail.com> 2009/1/1 Salvatore Benedetto : > Yes, that's my idea. By the way, do we have a class for parsing arguments? Check the Args class in Terminal. From emitrax at gmail.com Thu Jan 1 15:19:05 2009 From: emitrax at gmail.com (Salvatore Benedetto) Date: Thu, 1 Jan 2009 14:19:05 +0000 Subject: [Haiku-commits] r28835 - haiku/trunk/src/bin In-Reply-To: <894b9700901010556m1c012622l5fbfb4c331ca5030@mail.gmail.com> References: <894b9700901010331s2e1702d5v32f663ca160179d2@mail.gmail.com> <2162694804-BeMail@zon> <894b9700901010556m1c012622l5fbfb4c331ca5030@mail.gmail.com> Message-ID: 2009/1/1 Stefano Ceccherini : > 2009/1/1 Salvatore Benedetto : > >> Yes, that's my idea. By the way, do we have a class for parsing arguments? > > > Check the Args class in Terminal. It doesn't look like what I'm looking for as it seems to be very specific for the Terminal app. What would come in hand IMHO, would be a very general ParseArguments class that gets as input argv, arguments expected and usage string, and returns a list of arguments found. Regards, -- Salvatore Benedetto (a.k.a. emitrax) Student of Computer Engineer University of Pisa www.haiku-os.it From korli at mail.berlios.de Thu Jan 1 15:58:10 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Thu, 1 Jan 2009 15:58:10 +0100 Subject: [Haiku-commits] r28838 - haiku/trunk/src/add-ons/kernel/drivers/audio/hda Message-ID: <200901011458.n01EwA5q009507@sheep.berlios.de> Author: korli Date: 2009-01-01 15:58:10 +0100 (Thu, 01 Jan 2009) New Revision: 28838 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28838&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller_defs.h Log: Patch from tqh, modified by myself: enable PCIe snooping through vendor specific registers (ATI and nVidia). Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2008-12-31 18:44:02 UTC (rev 28837) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-01-01 14:58:10 UTC (rev 28838) @@ -48,6 +48,17 @@ }; +static inline void +update_pci_register(hda_controller* controller, uint8 reg, uint8 mask, uint8 value) +{ + uint8 tmp = (gPci->read_pci_config)(controller->pci_info.bus, + controller->pci_info.device, controller->pci_info.function, reg, 1); + (gPci->write_pci_config)(controller->pci_info.bus, + controller->pci_info.device, controller->pci_info.function, + reg, 1, (tmp & mask) | value); +} + + static inline rirb_t& current_rirb(hda_controller *controller) { @@ -700,8 +711,7 @@ { uint16 capabilities, stateStatus, cmd; status_t status; - uint8 tcsel; - + /* Map MMIO registers */ controller->regs_area = map_physical_memory("hda_hw_regs", (void*)controller->pci_info.u.h0.base_registers[0], @@ -729,11 +739,22 @@ goto no_irq; /* TCSEL is reset to TC0 (clear 0-2 bits) */ - tcsel = (gPci->read_pci_config)(controller->pci_info.bus, - controller->pci_info.device, controller->pci_info.function, PCI_HDA_TCSEL, 1); - (gPci->write_pci_config)(controller->pci_info.bus, - controller->pci_info.device, controller->pci_info.function, - PCI_HDA_TCSEL, 1, tcsel & 0xf8); + update_pci_register(controller, PCI_HDA_TCSEL, PCI_HDA_TCSEL_MASK, 0); + + /* Enable snooping for ATI and Nvidia, right now for all their hda-devices, + but only based on guessing. */ + switch (controller->pci_info.vendor_id) { + /* NVIDIA */ + case 0x10de: + update_pci_register(controller, NVIDIA_HDA_TRANSREG, + NVIDIA_HDA_TRANSREG_MASK, NVIDIA_HDA_ENABLE_COHBITS); + break; + /* ATI */ + case 0x1002: + update_pci_register(controller, ATI_HDA_MISC_CNTR2, + ATI_HDA_MISC_CNTR2_MASK, ATI_HDA_ENABLE_SNOOP); + break; + } capabilities = controller->Read16(HDAC_GLOBAL_CAP); controller->num_input_streams = GLOBAL_CAP_INPUT_STREAMS(capabilities); @@ -762,7 +783,7 @@ dprintf("hda: init_corb_rirb_pos failed\n"); goto corb_rirb_failed; } - + controller->Write16(HDAC_WAKE_ENABLE, 0x7fff); /* Enable controller interrupts */ Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller_defs.h =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller_defs.h 2008-12-31 18:44:02 UTC (rev 28837) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller_defs.h 2009-01-01 14:58:10 UTC (rev 28838) @@ -133,7 +133,16 @@ /* PCI space register definitions */ #define PCI_HDA_TCSEL 0x44 +#define PCI_HDA_TCSEL_MASK 0xf8 +#define ATI_HDA_MISC_CNTR2 0x42 +#define ATI_HDA_MISC_CNTR2_MASK 0xf8 +#define ATI_HDA_ENABLE_SNOOP 0x02 +#define NVIDIA_HDA_TRANSREG 0x4e +#define NVIDIA_HDA_TRANSREG_MASK 0xf0 +#define NVIDIA_HDA_ENABLE_COHBITS 0x0f + + typedef uint32 corb_t; typedef struct { uint32 response; From oliver.ruiz.dorantes at gmail.com Thu Jan 1 16:22:50 2009 From: oliver.ruiz.dorantes at gmail.com (Oliver Ruiz Dorantes) Date: Thu, 1 Jan 2009 16:22:50 +0100 Subject: [Haiku-commits] r28835 - haiku/trunk/src/bin In-Reply-To: References: <894b9700901010331s2e1702d5v32f663ca160179d2@mail.gmail.com> <2162694804-BeMail@zon> <894b9700901010556m1c012622l5fbfb4c331ca5030@mail.gmail.com> Message-ID: Hi Salvo, I guess you are looking for getopt(), its suposed to be posix, but currently I cannot check if it is present in libroot. I never saw it Be command line code, but its certainly more clean than doing it manually. http://ccrma.stanford.edu/planetccrma/man/man3/getopt.3.html happy new year! 2009/1/1 Salvatore Benedetto > 2009/1/1 Stefano Ceccherini : > > 2009/1/1 Salvatore Benedetto : > > > >> Yes, that's my idea. By the way, do we have a class for parsing > arguments? > > > > > > Check the Args class in Terminal. > > It doesn't look like what I'm looking for as it seems to be very > specific for the Terminal app. > What would come in hand IMHO, would be a very general ParseArguments > class that gets > as input argv, arguments expected and usage string, and returns a list > of arguments found. > > Regards, > -- > Salvatore Benedetto (a.k.a. emitrax) > Student of Computer Engineer > University of Pisa > www.haiku-os.it > _______________________________________________ > Haiku-commits mailing list > Haiku-commits at lists.berlios.de > https://lists.berlios.de/mailman/listinfo/haiku-commits > -- Oliver, http://urnenfeld.blogspot.com -------------- next part -------------- An HTML attachment was scrubbed... URL: From emitrax at gmail.com Thu Jan 1 16:37:13 2009 From: emitrax at gmail.com (Salvatore Benedetto) Date: Thu, 1 Jan 2009 15:37:13 +0000 Subject: [Haiku-commits] r28835 - haiku/trunk/src/bin In-Reply-To: References: <894b9700901010331s2e1702d5v32f663ca160179d2@mail.gmail.com> <2162694804-BeMail@zon> <894b9700901010556m1c012622l5fbfb4c331ca5030@mail.gmail.com> Message-ID: 2009/1/1 Oliver Ruiz Dorantes : > Hi Salvo, > I guess you are looking for getopt(), its suposed to be posix, but currently > I cannot check if it is present in libroot. I never saw it Be command line > code, but its certainly more clean than doing it manually. > http://ccrma.stanford.edu/planetccrma/man/man3/getopt.3.html > happy new year! > Indeed getopt would suit my needs, but I was looking for something more "haiksih" and in C++. :-) Thanks, -- Salvatore Benedetto (a.k.a. emitrax) Student of Computer Engineer University of Pisa www.haiku-os.it From korli at mail.berlios.de Thu Jan 1 18:13:44 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Thu, 1 Jan 2009 18:13:44 +0100 Subject: [Haiku-commits] r28839 - haiku/trunk/src/add-ons/kernel/drivers/audio/hda Message-ID: <200901011713.n01HDihU022746@sheep.berlios.de> Author: korli Date: 2009-01-01 18:13:43 +0100 (Thu, 01 Jan 2009) New Revision: 28839 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28839&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/driver.h haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_codec_defs.h haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller_defs.h haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp Log: * try to enable EAPD on capable pin widgets * added a pin capabilities attribute instead of input and output pin attributes * added ATI and nVidia vendor ids definitions * uses "mic in" and "line in" when pin colors are undefined Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/driver.h =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/driver.h 2009-01-01 14:58:10 UTC (rev 28838) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/driver.h 2009-01-01 17:13:43 UTC (rev 28839) @@ -216,8 +216,7 @@ struct { } mixer; struct { - uint32 output; - uint32 input; + uint32 capabilities; uint32 config; } pin; } d; Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp 2009-01-01 14:58:10 UTC (rev 28838) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp 2009-01-01 17:13:43 UTC (rev 28839) @@ -168,8 +168,8 @@ break; case WT_PIN_COMPLEX: - dprintf("\t%s%s\n", widget.d.pin.input ? "[Input] " : "", - widget.d.pin.output ? "[Output]" : ""); + dprintf("\t%s%s\n", PIN_CAP_IS_INPUT(widget.d.pin.capabilities) ? "[Input] " : "", + PIN_CAP_IS_OUTPUT(widget.d.pin.capabilities) ? "[Output]" : ""); break; @@ -586,11 +586,10 @@ verbs[0] = MAKE_VERB(audioGroup->codec->addr, nodeID, VID_GET_PARAMETER, PID_PIN_CAP); if (hda_send_verbs(audioGroup->codec, verbs, resp, 1) == B_OK) { - widget.d.pin.input = resp[0] & PIN_CAP_IN; - widget.d.pin.output = resp[0] & PIN_CAP_OUT; - - dprintf("\t%s%s\n", widget.d.pin.input ? "[Input] " : "", - widget.d.pin.output ? "[Output]" : ""); + widget.d.pin.capabilities = resp[0]; + + dprintf("\t%s%s\n", PIN_CAP_IS_INPUT(resp[0]) ? "[Input] " : "", + PIN_CAP_IS_OUTPUT(resp[0]) ? "[Output]" : ""); } else { dprintf("%s: Error getting Pin Complex IO\n", __func__); } @@ -689,7 +688,7 @@ if (widget->flags & WIDGET_FLAG_INPUT_PATH) return false; - if (widget->d.pin.input) { + if (PIN_CAP_IS_INPUT(widget->d.pin.capabilities)) { switch (CONF_DEFAULT_DEVICE(widget->d.pin.config)) { case PIN_DEV_CD: case PIN_DEV_LINE_IN: @@ -743,7 +742,7 @@ for (uint32 i = 0; i < audioGroup->widget_count; i++) { hda_widget& widget = audioGroup->widgets[i]; - if (widget.type != WT_PIN_COMPLEX || !widget.d.pin.output) + if (widget.type != WT_PIN_COMPLEX || !PIN_CAP_IS_OUTPUT(widget.d.pin.capabilities)) continue; int device = CONF_DEFAULT_DEVICE(widget.d.pin.config); @@ -957,6 +956,22 @@ PIN_ENABLE_HEAD_PHONE | PIN_ENABLE_OUTPUT : PIN_ENABLE_INPUT); hda_send_verbs(audioGroup->codec, &verb, NULL, 1); + + if (PIN_CAP_IS_EAPD_CAP(widget.d.pin.capabilities)) { + uint32 result; + verb = MAKE_VERB(audioGroup->codec->addr, + widget.node_id, VID_GET_EAPDBTL_EN, 0); + if (hda_send_verbs(audioGroup->codec, &verb, + &result, 1) == B_OK) { + result &= 0xff; + verb = MAKE_VERB(audioGroup->codec->addr, + widget.node_id, VID_SET_EAPDBTL_EN, + result | EAPDBTL_ENABLE_EAPD); + hda_send_verbs(audioGroup->codec, + &verb, NULL, 1); +dprintf("ENABLE EAPD pin widget %ld\n", widget.node_id); + } + } } if (widget.capabilities.output_amplifier != 0) { Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_codec_defs.h =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_codec_defs.h 2009-01-01 14:58:10 UTC (rev 28838) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_codec_defs.h 2009-01-01 17:13:43 UTC (rev 28839) @@ -214,8 +214,8 @@ #define PIN_CAP_TRIGGER_REQ (1L << 1) #define PIN_CAP_PRES_DETECT (1L << 2) #define PIN_CAP_HP_DRIVE (1L << 3) -#define PIN_CAP_OUT (1L << 4) -#define PIN_CAP_IN (1L << 5) +#define PIN_CAP_OUTPUT (1L << 4) +#define PIN_CAP_INPUT (1L << 5) #define PIN_CAP_BALANCE (1L << 6) #define PIN_CAP_VREF_CTRL_HIZ (1L << 8) #define PIN_CAP_VREF_CTRL_50 (1L << 9) @@ -224,6 +224,10 @@ #define PIN_CAP_VREF_CTRL_100 (1L << 13) #define PIN_CAP_EAPD_CAP (1L << 16) +#define PIN_CAP_IS_OUTPUT(c) ((c & PIN_CAP_OUTPUT) != 0) +#define PIN_CAP_IS_INPUT(c) ((c & PIN_CAP_INPUT) != 0) +#define PIN_CAP_IS_EAPD_CAP(c) ((c & PIN_CAP_EAPD_CAP) != 0) + /* PCM support */ #define PCM_8_BIT (1L << 16) #define PCM_16_BIT (1L << 17) @@ -297,6 +301,11 @@ #define CONF_DEFAULT_LOCATION(c) ((c & CONF_DEFAULT_LOCATION_MASK) >> CONF_DEFAULT_LOCATION_SHIFT) #define CONF_DEFAULT_CONNECTIVITY(c) ((c & CONF_DEFAULT_CONNECTIVITY_MASK) >> CONF_DEFAULT_CONNECTIVITY_SHIFT) +/* EAPD/BTL enable */ +#define EAPDBTL_ENABLE_BTL 0x1 +#define EAPDBTL_ENABLE_EAPD 0x2 +#define EAPDBTL_ENABLE_LRSWAP 0x4 + /* GP I/O count */ #define GPIO_COUNT_NUM_GPIO_MASK 0x000000ff #define GPIO_COUNT_NUM_GPIO_SHIFT 0 Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-01-01 14:58:10 UTC (rev 28838) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-01-01 17:13:43 UTC (rev 28839) @@ -744,13 +744,11 @@ /* Enable snooping for ATI and Nvidia, right now for all their hda-devices, but only based on guessing. */ switch (controller->pci_info.vendor_id) { - /* NVIDIA */ - case 0x10de: + case NVIDIA_VENDORID: update_pci_register(controller, NVIDIA_HDA_TRANSREG, NVIDIA_HDA_TRANSREG_MASK, NVIDIA_HDA_ENABLE_COHBITS); break; - /* ATI */ - case 0x1002: + case ATI_VENDORID: update_pci_register(controller, ATI_HDA_MISC_CNTR2, ATI_HDA_MISC_CNTR2_MASK, ATI_HDA_ENABLE_SNOOP); break; Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller_defs.h =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller_defs.h 2009-01-01 14:58:10 UTC (rev 28838) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller_defs.h 2009-01-01 17:13:43 UTC (rev 28839) @@ -142,7 +142,12 @@ #define NVIDIA_HDA_TRANSREG_MASK 0xf0 #define NVIDIA_HDA_ENABLE_COHBITS 0x0f +#define ATI_VENDORID 0x1002 +#define INTEL_VENDORID 0x8086 +#define NVIDIA_VENDORID 0x10de + + typedef uint32 corb_t; typedef struct { uint32 response; Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp 2009-01-01 14:58:10 UTC (rev 28838) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp 2009-01-01 17:13:43 UTC (rev 28839) @@ -305,6 +305,11 @@ case 9: return "Mic in"; } + if (CONF_DEFAULT_DEVICE(widget.d.pin.config) == PIN_DEV_LINE_IN) + return "Line In"; + if (CONF_DEFAULT_DEVICE(widget.d.pin.config) == PIN_DEV_MIC_IN) + return "Mic In"; + return "Line Out"; break; case PIN_DEV_SPDIF_IN: return "SPDIF In"; @@ -382,7 +387,7 @@ if (complex.type != WT_PIN_COMPLEX) continue; - if (!complex.d.pin.output) + if (!PIN_CAP_IS_OUTPUT(complex.d.pin.capabilities)) continue; if ((complex.flags & WIDGET_FLAG_OUTPUT_PATH) == 0) continue; @@ -412,7 +417,7 @@ hda_widget *complex = hda_audio_group_get_widget(audioGroup, widget.inputs[j]); if (complex->type != WT_PIN_COMPLEX) continue; - if (!complex->d.pin.input) + if (!PIN_CAP_IS_INPUT(complex->d.pin.capabilities)) continue; if (complex->flags & WIDGET_FLAG_OUTPUT_PATH) continue; From axeld at pinc-software.de Thu Jan 1 18:59:56 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Thu, 01 Jan 2009 18:59:56 +0100 CET Subject: [Haiku-commits] r28835 - haiku/trunk/src/bin In-Reply-To: Message-ID: <23204532057-BeMail@zon> "Salvatore Benedetto" wrote: > 2009/1/1 Oliver Ruiz Dorantes : > > Hi Salvo, > > I guess you are looking for getopt(), its suposed to be posix, but > > currently > > I cannot check if it is present in libroot. I never saw it Be > > command line > > code, but its certainly more clean than doing it manually. > > http://ccrma.stanford.edu/planetccrma/man/man3/getopt.3.html > > happy new year! > Indeed getopt would suit my needs, but I was looking for something > more > "haiksih" and in C++. :-) We don't have that AFAIK. You can also use getopt_long(), btw, it's a bit nicer. Bye, Axel. From sbenedetto at mail.berlios.de Thu Jan 1 22:01:52 2009 From: sbenedetto at mail.berlios.de (sbenedetto at BerliOS) Date: Thu, 1 Jan 2009 22:01:52 +0100 Subject: [Haiku-commits] r28840 - haiku/trunk/src/system/libroot/posix/stdlib Message-ID: <200901012101.n01L1qDS030803@sheep.berlios.de> Author: sbenedetto Date: 2009-01-01 22:01:51 +0100 (Thu, 01 Jan 2009) New Revision: 28840 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28840&view=rev Modified: haiku/trunk/src/system/libroot/posix/stdlib/mktemp.c Log: * Uncommenting POSIX mkdtemp function. Tested. Modified: haiku/trunk/src/system/libroot/posix/stdlib/mktemp.c =================================================================== --- haiku/trunk/src/system/libroot/posix/stdlib/mktemp.c 2009-01-01 17:13:43 UTC (rev 28839) +++ haiku/trunk/src/system/libroot/posix/stdlib/mktemp.c 2009-01-01 21:01:51 UTC (rev 28840) @@ -69,14 +69,12 @@ } -#if 0 char * mkdtemp(path) char *path; { return (_gettemp(path, (int *)NULL, 1, 0) ? path : (char *)NULL); } -#endif char * From axeld at mail.berlios.de Thu Jan 1 23:13:03 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Thu, 1 Jan 2009 23:13:03 +0100 Subject: [Haiku-commits] r28841 - haiku/trunk/src/system/kernel/debug Message-ID: <200901012213.n01MD3so004065@sheep.berlios.de> Author: axeld Date: 2009-01-01 23:13:02 +0100 (Thu, 01 Jan 2009) New Revision: 28841 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28841&view=rev Modified: haiku/trunk/src/system/kernel/debug/debug.cpp Log: * Small variation of Adrian's patch to fix bug #2919, ie. re-enable paging and colors for the on-screen debug output when leaving KDL. Thanks, Adrian! Modified: haiku/trunk/src/system/kernel/debug/debug.cpp =================================================================== --- haiku/trunk/src/system/kernel/debug/debug.cpp 2009-01-01 21:01:51 UTC (rev 28840) +++ haiku/trunk/src/system/kernel/debug/debug.cpp 2009-01-01 22:13:02 UTC (rev 28841) @@ -781,6 +781,9 @@ sDebugOutputFilter = NULL; sBlueScreenEnabled = false; + if (sDebugScreenEnabled) + blue_screen_enter(true); + atomic_add(&sInDebugger, -1); } From axeld at mail.berlios.de Fri Jan 2 10:39:30 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Fri, 2 Jan 2009 10:39:30 +0100 Subject: [Haiku-commits] r28842 - haiku/trunk/src/system/kernel/debug Message-ID: <200901020939.n029dULO020909@sheep.berlios.de> Author: axeld Date: 2009-01-02 10:39:29 +0100 (Fri, 02 Jan 2009) New Revision: 28842 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28842&view=rev Modified: haiku/trunk/src/system/kernel/debug/debug.cpp Log: * Accidently forgot to fix the typo that Adrian pointed out in his patch to #2919 (OMG :-)). * While I was at it, I also cleaned up some style inconsistencies. Modified: haiku/trunk/src/system/kernel/debug/debug.cpp =================================================================== --- haiku/trunk/src/system/kernel/debug/debug.cpp 2009-01-01 22:13:02 UTC (rev 28841) +++ haiku/trunk/src/system/kernel/debug/debug.cpp 2009-01-02 09:39:29 UTC (rev 28842) @@ -45,7 +45,7 @@ static const char* const kKDLPrompt = "kdebug> "; -extern "C" int kgets(char *buffer, int length); +extern "C" int kgets(char* buffer, int length); void call_modules_hook(bool enter); @@ -65,8 +65,8 @@ static int32 sDebuggerOnCPU = -1; static sem_id sSyslogNotify = -1; -static struct syslog_message *sSyslogMessage; -static struct ring_buffer *sSyslogBuffer; +static struct syslog_message* sSyslogMessage; +static struct ring_buffer* sSyslogBuffer; static bool sSyslogDropped = false; static const char* sCurrentKernelDebuggerMessage; @@ -79,7 +79,7 @@ DefaultDebugOutputFilter gDefaultDebugOutputFilter; static void flush_pending_repeats(bool syslogOutput); -static void check_pending_repeats(void *data, int iter); +static void check_pending_repeats(void* data, int iter); static int64 sMessageRepeatFirstTime = 0; static int64 sMessageRepeatLastTime = 0; @@ -181,7 +181,7 @@ void -kputs(const char *s) +kputs(const char* s) { if (sDebugOutputFilter != NULL) sDebugOutputFilter->PrintString(s); @@ -189,7 +189,7 @@ void -kputs_unfiltered(const char *s) +kputs_unfiltered(const char* s) { gDefaultDebugOutputFilter.PrintString(s); } @@ -399,7 +399,7 @@ static int -read_line(char *buffer, int32 maxLength, +read_line(char* buffer, int32 maxLength, LineEditingHelper* editingHelper = NULL) { int32 currentHistoryLine = sCurrentLine; @@ -650,7 +650,7 @@ int -kgets(char *buffer, int length) +kgets(char* buffer, int length) { return read_line(buffer, length); } @@ -803,7 +803,7 @@ static int -cmd_dump_kdl_message(int argc, char **argv) +cmd_dump_kdl_message(int argc, char** argv) { if (sCurrentKernelDebuggerMessage) { kputs(sCurrentKernelDebuggerMessage); @@ -815,7 +815,7 @@ static int -cmd_dump_syslog(int argc, char **argv) +cmd_dump_syslog(int argc, char** argv) { if (!sSyslogOutputEnabled) { kprintf("Syslog is not enabled.\n"); @@ -872,7 +872,7 @@ static int -cmd_switch_cpu(int argc, char **argv) +cmd_switch_cpu(int argc, char** argv) { if (argc > 2) { print_debugger_command_usage(argv[0]); @@ -902,7 +902,7 @@ static status_t -syslog_sender(void *data) +syslog_sender(void* data) { status_t error = B_BAD_PORT_ID; port_id port = -1; @@ -972,7 +972,7 @@ static void -syslog_write(const char *text, int32 length) +syslog_write(const char* text, int32 length) { bool trunc = false; @@ -990,9 +990,9 @@ sSyslogDropped = true; } - ring_buffer_write(sSyslogBuffer, (uint8 *)text, length); + ring_buffer_write(sSyslogBuffer, (uint8*) text, length); if (trunc) - ring_buffer_write(sSyslogBuffer, (uint8 *)"", 7); + ring_buffer_write(sSyslogBuffer, (uint8*) "", 7); release_sem_etc(sSyslogNotify, 1, B_DO_NOT_RESCHEDULE); } @@ -1081,7 +1081,7 @@ add_debugger_command_etc("syslog", &cmd_dump_syslog, "Dumps the syslog buffer.\n", "[-n]\nDumps the whole syslog buffer, or, if -n is specified, only " - "the part that hasn't been send yet.\n", 0); + "the part that hasn't been sent yet.\n", 0); return B_OK; @@ -1098,7 +1098,7 @@ { uint32 index = 0; while (index < kMaxDebuggerModules && sDebuggerModules[index] != NULL) { - debugger_module_info *module = sDebuggerModules[index]; + debugger_module_info* module = sDebuggerModules[index]; if (enter && module->enter_debugger != NULL) module->enter_debugger(); @@ -1135,7 +1135,7 @@ void -debug_puts(const char *string, int32 length) +debug_puts(const char* string, int32 length) { cpu_status state = disable_interrupts(); acquire_spinlock(&sSpinlock); @@ -1176,14 +1176,14 @@ void -debug_early_boot_message(const char *string) +debug_early_boot_message(const char* string) { arch_debug_serial_early_boot_message(string); } status_t -debug_init(kernel_args *args) +debug_init(kernel_args* args) { new(&gDefaultDebugOutputFilter) DefaultDebugOutputFilter; @@ -1193,7 +1193,7 @@ status_t -debug_init_post_vm(kernel_args *args) +debug_init_post_vm(kernel_args* args) { add_debugger_command_etc("cpu", &cmd_switch_cpu, "Switches to another CPU.\n", @@ -1212,7 +1212,7 @@ tracing_init(); // get debug settings - void *handle = load_driver_settings("kernel"); + void* handle = load_driver_settings("kernel"); if (handle != NULL) { sSerialDebugEnabled = get_driver_boolean_parameter(handle, "serial_debug_output", sSerialDebugEnabled, sSerialDebugEnabled); @@ -1248,7 +1248,7 @@ status_t debug_init_post_modules(struct kernel_args* args) { - void *cookie; + void* cookie; // check for dupped lines every 10/10 second register_kernel_daemon(check_pending_repeats, NULL, 10); @@ -1326,7 +1326,7 @@ uint64 -parse_expression(const char *expression) +parse_expression(const char* expression) { uint64 result; return (evaluate_debug_expression(expression, &result, true) ? result : 0); @@ -1334,7 +1334,7 @@ void -panic(const char *format, ...) +panic(const char* format, ...) { va_list args; char temp[128]; @@ -1348,7 +1348,7 @@ void -kernel_debugger(const char *message) +kernel_debugger(const char* message) { cpu_status state = disable_interrupts(); @@ -1455,7 +1455,7 @@ static void -dprintf_args(const char *format, va_list args, bool syslogOutput) +dprintf_args(const char* format, va_list args, bool syslogOutput) { cpu_status state; int32 length; @@ -1503,7 +1503,7 @@ void -dprintf(const char *format, ...) +dprintf(const char* format, ...) { va_list args; @@ -1517,7 +1517,7 @@ void -dprintf_no_syslog(const char *format, ...) +dprintf_no_syslog(const char* format, ...) { va_list args; @@ -1534,7 +1534,7 @@ debugger only (it doesn't lock). */ void -kprintf(const char *format, ...) +kprintf(const char* format, ...) { if (sDebugOutputFilter != NULL) { va_list args; @@ -1546,7 +1546,7 @@ void -kprintf_unfiltered(const char *format, ...) +kprintf_unfiltered(const char* format, ...) { va_list args; va_start(args, format); @@ -1606,7 +1606,7 @@ void -_user_debug_output(const char *userString) +_user_debug_output(const char* userString) { char string[512]; int32 length; @@ -1626,7 +1626,7 @@ void -dump_block(const char *buffer, int size, const char *prefix) +dump_block(const char* buffer, int size, const char* prefix) { const int DUMPED_BLOCK_SIZE = 16; int i; @@ -1642,7 +1642,7 @@ if (i >= size) dprintf(" "); else - dprintf("%02x", *(unsigned char *)(buffer + i)); + dprintf("%02x", *(unsigned char*)(buffer + i)); } dprintf(" "); From axeld at mail.berlios.de Fri Jan 2 11:33:46 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Fri, 2 Jan 2009 11:33:46 +0100 Subject: [Haiku-commits] r28843 - haiku/trunk/src/servers/app Message-ID: <200901021033.n02AXkxj026981@sheep.berlios.de> Author: axeld Date: 2009-01-02 11:33:46 +0100 (Fri, 02 Jan 2009) New Revision: 28843 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28843&view=rev Modified: haiku/trunk/src/servers/app/Desktop.cpp Log: * When the window to be activated isn't a normal visible window (ie. floating or modal), we need to check if our effort to make it visible (by activating its subset window) was successful. This fixes bug #3201. Modified: haiku/trunk/src/servers/app/Desktop.cpp =================================================================== --- haiku/trunk/src/servers/app/Desktop.cpp 2009-01-02 09:39:29 UTC (rev 28842) +++ haiku/trunk/src/servers/app/Desktop.cpp 2009-01-02 10:33:46 UTC (rev 28843) @@ -1125,7 +1125,7 @@ // update our cached screen region fScreenRegion.Set(screen->Frame()); gInputManager->UpdateScreenBounds(screen->Frame()); - + BRegion background; _RebuildClippingForAllWindows(background); @@ -1170,7 +1170,7 @@ fSettings->Save(kWorkspacesSettings); return B_OK; } - + return B_BAD_VALUE; } @@ -1656,6 +1656,11 @@ } ActivateWindow(front); + + if (!window->InWorkspace(fCurrentWorkspace)) { + // This window can't be made active + return; + } } else { // Bring the window to the current workspace // TODO: what if this window is on multiple workspaces?!? From axeld at mail.berlios.de Fri Jan 2 11:42:44 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Fri, 2 Jan 2009 11:42:44 +0100 Subject: [Haiku-commits] r28844 - haiku/trunk/src/system/kernel/debug Message-ID: <200901021042.n02AgiYK027464@sheep.berlios.de> Author: axeld Date: 2009-01-02 11:42:44 +0100 (Fri, 02 Jan 2009) New Revision: 28844 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28844&view=rev Modified: haiku/trunk/src/system/kernel/debug/debug.cpp Log: * Not sure how this happened. Modified: haiku/trunk/src/system/kernel/debug/debug.cpp =================================================================== --- haiku/trunk/src/system/kernel/debug/debug.cpp 2009-01-02 10:33:46 UTC (rev 28843) +++ haiku/trunk/src/system/kernel/debug/debug.cpp 2009-01-02 10:42:44 UTC (rev 28844) @@ -990,9 +990,9 @@ sSyslogDropped = true; } - ring_buffer_write(sSyslogBuffer, (uint8*) text, length); + ring_buffer_write(sSyslogBuffer, (uint8*)text, length); if (trunc) - ring_buffer_write(sSyslogBuffer, (uint8*) "", 7); + ring_buffer_write(sSyslogBuffer, (uint8*)"", 7); release_sem_etc(sSyslogNotify, 1, B_DO_NOT_RESCHEDULE); } From axeld at mail.berlios.de Fri Jan 2 11:59:48 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Fri, 2 Jan 2009 11:59:48 +0100 Subject: [Haiku-commits] r28845 - haiku/trunk/src/add-ons/kernel/file_systems/bfs Message-ID: <200901021059.n02AxmvN028238@sheep.berlios.de> Author: axeld Date: 2009-01-02 11:59:47 +0100 (Fri, 02 Jan 2009) New Revision: 28845 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28845&view=rev Modified: haiku/trunk/src/add-ons/kernel/file_systems/bfs/BlockAllocator.cpp haiku/trunk/src/add-ons/kernel/file_systems/bfs/Volume.cpp haiku/trunk/src/add-ons/kernel/file_systems/bfs/Volume.h haiku/trunk/src/add-ons/kernel/file_systems/bfs/bfs.h haiku/trunk/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp Log: * Inodes are no longer trimmed from the checking thread. This should fix bug #3190. Modified: haiku/trunk/src/add-ons/kernel/file_systems/bfs/BlockAllocator.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/bfs/BlockAllocator.cpp 2009-01-02 10:42:44 UTC (rev 28844) +++ haiku/trunk/src/add-ons/kernel/file_systems/bfs/BlockAllocator.cpp 2009-01-02 10:59:47 UTC (rev 28845) @@ -1242,6 +1242,8 @@ } else FATAL(("BlockAllocator::CheckNextNode() didn't run through\n")); + fVolume->SetCheckingThread(-1); + free(fCheckBitmap); fCheckBitmap = NULL; fCheckCookie = NULL; @@ -1260,6 +1262,7 @@ return B_BAD_VALUE; check_cookie* cookie = (check_cookie*)control->cookie; + fVolume->SetCheckingThread(find_thread(NULL)); while (true) { if (cookie->iterator == NULL) { Modified: haiku/trunk/src/add-ons/kernel/file_systems/bfs/Volume.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/bfs/Volume.cpp 2009-01-02 10:42:44 UTC (rev 28844) +++ haiku/trunk/src/add-ons/kernel/file_systems/bfs/Volume.cpp 2009-01-02 10:59:47 UTC (rev 28845) @@ -280,7 +280,8 @@ fIndicesNode(NULL), fDirtyCachedBlocks(0), fUniqueID(0), - fFlags(0) + fFlags(0), + fCheckingThread(-1) { mutex_init(&fLock, "bfs volume"); mutex_init(&fQueryLock, "bfs queries"); Modified: haiku/trunk/src/add-ons/kernel/file_systems/bfs/Volume.h =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/bfs/Volume.h 2009-01-02 10:42:44 UTC (rev 28844) +++ haiku/trunk/src/add-ons/kernel/file_systems/bfs/Volume.h 2009-01-02 10:59:47 UTC (rev 28845) @@ -98,6 +98,10 @@ off_t numBlocks, block_run& run, uint16 minimum = 1); status_t Free(Transaction& transaction, block_run run); + void SetCheckingThread(thread_id thread) + { fCheckingThread = thread; } + bool IsCheckingThread() const + { return find_thread(NULL) == fCheckingThread; } // cache access status_t WriteSuperBlock(); @@ -150,6 +154,7 @@ uint32 fFlags; void* fBlockCache; + thread_id fCheckingThread; }; Modified: haiku/trunk/src/add-ons/kernel/file_systems/bfs/bfs.h =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/bfs/bfs.h 2009-01-02 10:42:44 UTC (rev 28844) +++ haiku/trunk/src/add-ons/kernel/file_systems/bfs/bfs.h 2009-01-02 10:59:47 UTC (rev 28845) @@ -222,8 +222,9 @@ INODE_PERMANENT_FLAGS = 0x0000ffff, INODE_WAS_WRITTEN = 0x00020000, - INODE_DONT_FREE_SPACE = 0x00080000, // only used by the "chkbfs" functionality - INODE_CHKBFS_RUNNING = 0x00200000, + // The rest is only used by the file system check functionality + INODE_DONT_FREE_SPACE = 0x00080000, + INODE_CHECK_RUNNING = 0x00200000 }; //************************************** Modified: haiku/trunk/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp 2009-01-02 10:42:44 UTC (rev 28844) +++ haiku/trunk/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp 2009-01-02 10:59:47 UTC (rev 28845) @@ -303,7 +303,8 @@ // since a directory's size can be changed without having it opened, // we need to take care about their preallocated blocks here - if (!volume->IsReadOnly() && inode->NeedsTrimming()) { + if (!volume->IsReadOnly() && !volume->IsCheckingThread() + && inode->NeedsTrimming()) { Transaction transaction(volume, inode->BlockNumber()); if (inode->TrimPreallocation(transaction) == B_OK) @@ -600,8 +601,10 @@ check_control* control = (check_control*)buffer; status_t status = allocator.StartChecking(control); - if (status == B_OK) - inode->Node().flags |= HOST_ENDIAN_TO_BFS_INT32(INODE_CHKBFS_RUNNING); + if (status == B_OK) { + inode->Node().flags + |= HOST_ENDIAN_TO_BFS_INT32(INODE_CHECK_RUNNING); + } return status; } @@ -612,8 +615,10 @@ check_control* control = (check_control*)buffer; status_t status = allocator.StopChecking(control); - if (status == B_OK) - inode->Node().flags &= HOST_ENDIAN_TO_BFS_INT32(~INODE_CHKBFS_RUNNING); + if (status == B_OK) { + inode->Node().flags + &= HOST_ENDIAN_TO_BFS_INT32(~INODE_CHECK_RUNNING); + } return status; } @@ -1314,7 +1319,7 @@ Transaction transaction; bool needsTrimming = false; - if (!volume->IsReadOnly()) { + if (!volume->IsReadOnly() && !volume->IsCheckingThread()) { InodeReadLocker locker(inode); needsTrimming = inode->NeedsTrimming(); @@ -1376,7 +1381,7 @@ if (status == B_OK) transaction.Done(); - if (inode->Flags() & INODE_CHKBFS_RUNNING) { + if ((inode->Flags() & INODE_CHECK_RUNNING) != 0) { // "chkbfs" exited abnormally, so we have to stop it here... FATAL(("check process was aborted!\n")); volume->Allocator().StopChecking(NULL); From korli at mail.berlios.de Sat Jan 3 23:40:26 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Sat, 3 Jan 2009 23:40:26 +0100 Subject: [Haiku-commits] r28846 - haiku/trunk/src/add-ons/kernel/drivers/audio/hda Message-ID: <200901032240.n03MeQhK004801@sheep.berlios.de> Author: korli Date: 2009-01-03 23:40:26 +0100 (Sat, 03 Jan 2009) New Revision: 28846 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28846&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/driver.cpp haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp Log: * added missing dprintf for errors * fix a warning and zeroed the controller struct Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/driver.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/driver.cpp 2009-01-02 10:59:47 UTC (rev 28845) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/driver.cpp 2009-01-03 22:40:26 UTC (rev 28846) @@ -55,6 +55,7 @@ && gNumCards < MAX_CARDS; i++) { if (info.class_base == PCI_multimedia && info.class_sub == PCI_hd_audio) { + memset(&gCards[gNumCards], 0, sizeof(hda_controller)); gCards[gNumCards].pci_info = info; gCards[gNumCards].opened = 0; sprintf(path, DEVFS_PATH_FORMAT, gNumCards); Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp 2009-01-02 10:59:47 UTC (rev 28845) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp 2009-01-03 22:40:26 UTC (rev 28846) @@ -168,8 +168,9 @@ break; case WT_PIN_COMPLEX: - dprintf("\t%s%s\n", PIN_CAP_IS_INPUT(widget.d.pin.capabilities) ? "[Input] " : "", - PIN_CAP_IS_OUTPUT(widget.d.pin.capabilities) ? "[Output]" : ""); + dprintf("\t%s%s%s\n", PIN_CAP_IS_INPUT(widget.d.pin.capabilities) ? "[Input] " : "", + PIN_CAP_IS_OUTPUT(widget.d.pin.capabilities) ? "[Output]" : "", + PIN_CAP_IS_EAPD_CAP(widget.d.pin.capabilities) ? "[EAPD Cap]" : ""); break; @@ -1052,8 +1053,10 @@ return NULL; hda_codec* codec = (hda_codec*)calloc(1, sizeof(hda_codec)); - if (codec == NULL) + if (codec == NULL) { + dprintf("hda: Failed to alloc a codec\n"); return NULL; + } codec->controller = controller; codec->addr = codecAddress; @@ -1080,8 +1083,10 @@ verbs[2] = MAKE_VERB(codecAddress, 0, VID_GET_PARAMETER, PID_SUB_NODE_COUNT); - if (hda_send_verbs(codec, verbs, (uint32*)&response, 3) != B_OK) + if (hda_send_verbs(codec, verbs, (uint32*)&response, 3) != B_OK) { + dprintf("hda: Failed to get vendor and revision parameters\n"); goto err; + } codec->vendor_id = response.vendor; codec->product_id = response.device; @@ -1100,8 +1105,10 @@ verbs[0] = MAKE_VERB(codecAddress, nodeID, VID_GET_PARAMETER, PID_FUNCTION_GROUP_TYPE); - if (hda_send_verbs(codec, verbs, &groupType, 1) != B_OK) + if (hda_send_verbs(codec, verbs, &groupType, 1) != B_OK) { + dprintf("hda: Failed to get function group type\n"); goto err; + } if ((groupType & FUNCTION_GROUP_NODETYPE_MASK) == FUNCTION_GROUP_NODETYPE_AUDIO) { /* Found an Audio Function Group! */ From axeld at mail.berlios.de Mon Jan 5 11:32:30 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Mon, 5 Jan 2009 11:32:30 +0100 Subject: [Haiku-commits] r28847 - in haiku/trunk/src: servers/app tests/servers/app tests/servers/app/hide_and_show Message-ID: <200901051032.n05AWUWw019592@sheep.berlios.de> Author: axeld Date: 2009-01-05 11:32:30 +0100 (Mon, 05 Jan 2009) New Revision: 28847 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28847&view=rev Added: haiku/trunk/src/tests/servers/app/hide_and_show/ haiku/trunk/src/tests/servers/app/hide_and_show/HideAndShow.cpp haiku/trunk/src/tests/servers/app/hide_and_show/Jamfile Modified: haiku/trunk/src/servers/app/Desktop.cpp haiku/trunk/src/servers/app/Window.h haiku/trunk/src/tests/servers/app/Jamfile Log: * If a window was hidden during resize/movement, it would still be in resizing or moving mode when it was shown again. Added a test app HideAndShow which let you easily reproduce the faulty behaviour (with a previous version of the app_server, that is). * Minor cleanup. Modified: haiku/trunk/src/servers/app/Desktop.cpp =================================================================== --- haiku/trunk/src/servers/app/Desktop.cpp 2009-01-03 22:40:26 UTC (rev 28846) +++ haiku/trunk/src/servers/app/Desktop.cpp 2009-01-05 10:32:30 UTC (rev 28847) @@ -1,5 +1,5 @@ /* - * Copyright 2001-2008, Haiku. + * Copyright 2001-2009, Haiku. * Distributed under the terms of the MIT License. * * Authors: @@ -947,7 +947,8 @@ bool movedMouseEventWindow = false; display_mode previousMode, newMode; fVirtualScreen.ScreenAt(0)->GetMode(&previousMode); - fVirtualScreen.RestoreConfiguration(*this, fSettings->WorkspacesMessage(index)); + fVirtualScreen.RestoreConfiguration(*this, + fSettings->WorkspacesMessage(index)); fVirtualScreen.ScreenAt(0)->GetMode(&newMode); // We only need to invalidate the entire desktop if we changed display modes if (memcmp(&previousMode, &newMode, sizeof(display_mode))) @@ -964,7 +965,8 @@ _Windows(index).AddWindow(fMouseEventWindow); _Windows(previousIndex).RemoveWindow(fMouseEventWindow); - _UpdateSubsetWorkspaces(fMouseEventWindow, previousIndex, index); + _UpdateSubsetWorkspaces(fMouseEventWindow, previousIndex, + index); movedMouseEventWindow = true; // send B_WORKSPACES_CHANGED message @@ -974,11 +976,13 @@ // make sure it's frontmost _Windows(index).RemoveWindow(fMouseEventWindow); _Windows(index).AddWindow(fMouseEventWindow, - fMouseEventWindow->Frontmost(_Windows(index).FirstWindow(), index)); + fMouseEventWindow->Frontmost(_Windows(index).FirstWindow(), + index)); } } - fMouseEventWindow->Anchor(index).position = fMouseEventWindow->Frame().LeftTop(); + fMouseEventWindow->Anchor(index).position + = fMouseEventWindow->Frame().LeftTop(); } // build region of windows that are no longer visible in the new workspace @@ -1832,8 +1836,14 @@ window->SetHidden(true); fFocusList.RemoveWindow(window); - if (fMouseEventWindow == window) + if (fMouseEventWindow == window) { + // Make its decorator lose the current mouse action + BMessage message; + int32 viewToken; + window->MouseUp(&message, fLastMousePosition, &viewToken); + fMouseEventWindow = NULL; + } if (window->InWorkspace(fCurrentWorkspace)) { _UpdateSubsetWorkspaces(window); @@ -2235,7 +2245,8 @@ if (!subset->AddToSubset(window)) return false; - _ChangeWindowWorkspaces(subset, subset->Workspaces(), subset->SubsetWorkspaces()); + _ChangeWindowWorkspaces(subset, subset->Workspaces(), + subset->SubsetWorkspaces()); return true; } @@ -2244,7 +2255,8 @@ Desktop::RemoveWindowFromSubset(Window* subset, Window* window) { subset->RemoveFromSubset(window); - _ChangeWindowWorkspaces(subset, subset->Workspaces(), subset->SubsetWorkspaces()); + _ChangeWindowWorkspaces(subset, subset->Workspaces(), + subset->SubsetWorkspaces()); } Modified: haiku/trunk/src/servers/app/Window.h =================================================================== --- haiku/trunk/src/servers/app/Window.h 2009-01-03 22:40:26 UTC (rev 28846) +++ haiku/trunk/src/servers/app/Window.h 2009-01-05 10:32:30 UTC (rev 28847) @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001-2008, Haiku, Inc. + * Copyright (c) 2001-2009, Haiku, Inc. * Distributed under the terms of the MIT license. * * Authors: @@ -62,7 +62,8 @@ ::Desktop* Desktop() const { return fDesktop; } ::Decorator* Decorator() const { return fDecorator; } ::ServerWindow* ServerWindow() const { return fWindow; } - ::EventTarget& EventTarget() const { return fWindow->EventTarget(); } + ::EventTarget& EventTarget() const + { return fWindow->EventTarget(); } // setting and getting the "hard" clipping, you need to have // WriteLock()ed the clipping! @@ -78,7 +79,8 @@ void GetContentRegion(BRegion* region); void MoveBy(int32 x, int32 y); - void ResizeBy(int32 x, int32 y, BRegion* dirtyRegion); + void ResizeBy(int32 x, int32 y, + BRegion* dirtyRegion); void ScrollViewBy(View* view, int32 dx, int32 dy); @@ -88,7 +90,8 @@ virtual bool IsOffscreenWindow() const { return false; } - void GetEffectiveDrawingRegion(View* view, BRegion& region); + void GetEffectiveDrawingRegion(View* view, + BRegion& region); bool DrawingRegionChanged(View* view) const; // generic version, used by the Desktop @@ -131,15 +134,18 @@ void CopyContents(BRegion* region, int32 xOffset, int32 yOffset); - void MouseDown(BMessage* message, BPoint where, int32* _viewToken); - void MouseUp(BMessage* message, BPoint where, int32* _viewToken); - void MouseMoved(BMessage* message, BPoint where, int32* _viewToken, - bool isLatestMouseMoved); + void MouseDown(BMessage* message, BPoint where, + int32* _viewToken); + void MouseUp(BMessage* message, BPoint where, + int32* _viewToken); + void MouseMoved(BMessage* message, BPoint where, + int32* _viewToken, bool isLatestMouseMoved); // some hooks to inform the client window // TODO: move this to ServerWindow maybe? void WorkspaceActivated(int32 index, bool active); - void WorkspacesChanged(uint32 oldWorkspaces, uint32 newWorkspaces); + void WorkspacesChanged(uint32 oldWorkspaces, + uint32 newWorkspaces); void Activated(bool active); // changing some properties @@ -179,7 +185,8 @@ void FontsChanged(BRegion* updateRegion); - void SetLook(window_look look, BRegion* updateRegion); + void SetLook(window_look look, + BRegion* updateRegion); void SetFeel(window_feel feel); void SetFlags(uint32 flags, BRegion* updateRegion); @@ -243,12 +250,13 @@ void _DrawBorder(); // handling update sessions - void _TransferToUpdateSession(BRegion* contentDirtyRegion); + void _TransferToUpdateSession( + BRegion* contentDirtyRegion); void _SendUpdateMessage(); void _UpdateContentRegion(); - click_type _ActionFor(const BMessage* msg) const; + click_type _ActionFor(const BMessage* message) const; void _ObeySizeLimits(); void _PropagatePosition(); Modified: haiku/trunk/src/tests/servers/app/Jamfile =================================================================== --- haiku/trunk/src/tests/servers/app/Jamfile 2009-01-03 22:40:26 UTC (rev 28846) +++ haiku/trunk/src/tests/servers/app/Jamfile 2009-01-05 10:32:30 UTC (rev 28847) @@ -175,6 +175,7 @@ SubInclude HAIKU_TOP src tests servers app event_mask ; SubInclude HAIKU_TOP src tests servers app find_view ; SubInclude HAIKU_TOP src tests servers app following ; +SubInclude HAIKU_TOP src tests servers app hide_and_show ; SubInclude HAIKU_TOP src tests servers app idle_test ; SubInclude HAIKU_TOP src tests servers app lagging_get_mouse ; SubInclude HAIKU_TOP src tests servers app lock_focus ; Added: haiku/trunk/src/tests/servers/app/hide_and_show/HideAndShow.cpp =================================================================== --- haiku/trunk/src/tests/servers/app/hide_and_show/HideAndShow.cpp 2009-01-03 22:40:26 UTC (rev 28846) +++ haiku/trunk/src/tests/servers/app/hide_and_show/HideAndShow.cpp 2009-01-05 10:32:30 UTC (rev 28847) @@ -0,0 +1,138 @@ +/* + * Copyright 2005-2009, Haiku Inc. + * Distributed under the terms of the MIT License. + * + * Authors: + * Axel D?rfler, axeld at pinc-software.de + */ + + +#include + +#include +#include +#include +#include + + +static const uint32 kMsgToggleShow = 'tgsh'; + +class Window : public BWindow { +public: + Window(); + virtual ~Window(); + + virtual void MessageReceived(BMessage* message); + virtual void FrameResized(float width, float height); + virtual bool QuitRequested(); + +private: + BMessageRunner* fRunner; +}; + + +Window::Window() + : BWindow(BRect(100, 100, 400, 400), "HideAndShow-Test", + B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS) +{ + BRect rect(Bounds()); + rect.left += 20; + rect.right -= 20; + rect.top = 100; + rect.bottom = 200; + BTextView* view = new BTextView(Bounds(), "", rect, B_FOLLOW_ALL, + B_FRAME_EVENTS | B_WILL_DRAW); + view->MakeEditable(false); + view->SetAlignment(B_ALIGN_CENTER); + view->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); + view->SetText("The window will be hidden and shown every 2 seconds."); + AddChild(view); + + BMessage showAndHide(kMsgToggleShow); + fRunner = new BMessageRunner(this, &showAndHide, 2000000); +} + +Window::~Window() +{ + delete fRunner; +} + + +void +Window::MessageReceived(BMessage* message) +{ + switch (message->what) { + case kMsgToggleShow: + if (IsHidden()) + Show(); + else + Hide(); + break; + + default: + BWindow::MessageReceived(message); + break; + } +} + + +void +Window::FrameResized(float width, float height) +{ + BTextView* view = dynamic_cast(ChildAt(0)); + if (view == NULL) + return; + + BRect rect = Bounds(); + rect.left += 20; + rect.right -= 20; + rect.top = 100; + rect.bottom = 200; + view->SetTextRect(rect); +} + + +bool +Window::QuitRequested() +{ + be_app->PostMessage(B_QUIT_REQUESTED); + return true; +} + + +// #pragma mark - + + +class Application : public BApplication { +public: + Application(); + + virtual void ReadyToRun(); +}; + + +Application::Application() + : BApplication("application/x-vnd.haiku-hide_and_show") +{ +} + + +void +Application::ReadyToRun(void) +{ + Window* window = new Window(); + window->Show(); +} + + +// #pragma mark - + + +int +main(int argc, char** argv) +{ + Application app; + + app.Run(); + return 0; +} Added: haiku/trunk/src/tests/servers/app/hide_and_show/Jamfile =================================================================== --- haiku/trunk/src/tests/servers/app/hide_and_show/Jamfile 2009-01-03 22:40:26 UTC (rev 28846) +++ haiku/trunk/src/tests/servers/app/hide_and_show/Jamfile 2009-01-05 10:32:30 UTC (rev 28847) @@ -0,0 +1,18 @@ +SubDir HAIKU_TOP src tests servers app hide_and_show ; + +SetSubDirSupportedPlatformsBeOSCompatible ; +AddSubDirSupportedPlatforms libbe_test ; + +UseHeaders [ FDirName os app ] ; +UseHeaders [ FDirName os interface ] ; + +Application HideAndShow : + HideAndShow.cpp + : be +; + +if $(TARGET_PLATFORM) = libbe_test { + HaikuInstall install-test-apps : $(HAIKU_APP_TEST_DIR) : ViewState + : tests!apps ; +} + From anevilyak at mail.berlios.de Tue Jan 6 05:33:42 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Tue, 6 Jan 2009 05:33:42 +0100 Subject: [Haiku-commits] r28848 - haiku/trunk/build/jam Message-ID: <200901060433.n064Xghx028305@sheep.berlios.de> Author: anevilyak Date: 2009-01-06 05:33:41 +0100 (Tue, 06 Jan 2009) New Revision: 28848 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28848&view=rev Modified: haiku/trunk/build/jam/OptionalPackages Log: Updated gcc2 Vision package with one or two minor fixes. Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-01-05 10:32:30 UTC (rev 28847) +++ haiku/trunk/build/jam/OptionalPackages 2009-01-06 04:33:41 UTC (rev 28848) @@ -455,12 +455,12 @@ AddSymlinkToHaikuImage home config be Applications : /boot/apps/Vision-0.9.7-H-21072008/Vision ; } else { - InstallOptionalHaikuImagePackage Vision-0.9.7-H-01112008 - : http://vision.sf.net/Vision-0.9.7-H-01112008.zip + InstallOptionalHaikuImagePackage Vision-0.9.7-H-11112008 + : http://vision.sf.net/Vision-0.9.7-H-11112008.zip : apps ; AddSymlinkToHaikuImage home config be Applications - : /boot/apps/Vision-0.9.7-H-01112008/Vision ; + : /boot/apps/Vision-0.9.7-H-11112008/Vision ; } } From korli at mail.berlios.de Tue Jan 6 20:25:34 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Tue, 6 Jan 2009 20:25:34 +0100 Subject: [Haiku-commits] r28849 - haiku/trunk/src/add-ons/kernel/drivers/audio/hda Message-ID: <200901061925.n06JPY2r028287@sheep.berlios.de> Author: korli Date: 2009-01-06 20:25:34 +0100 (Tue, 06 Jan 2009) New Revision: 28849 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28849&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp Log: * reading CORB_READ_POS_RESET as zero fails on some chips (ie nForce). Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-01-06 04:33:41 UTC (rev 28848) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-01-06 19:25:34 UTC (rev 28849) @@ -354,13 +354,11 @@ controller->stream_positions = (uint32*) ((uint8*)controller->corb + posOffset); + controller->Write16(HDAC_CORB_WRITE_POS, 0); /* Reset CORB read pointer */ - /* NOTE: See HDA011 for corrected procedure! */ controller->Write16(HDAC_CORB_READ_POS, CORB_READ_POS_RESET); - do { - spin(10); - } while ((controller->Read16(HDAC_CORB_READ_POS) - & CORB_READ_POS_RESET) == 0); + /* Reading CORB_READ_POS_RESET as zero fails on some chips. + We reset the bit here. */ controller->Write16(HDAC_CORB_READ_POS, 0); /* Reset RIRB write pointer */ From axeld at mail.berlios.de Tue Jan 6 22:17:49 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Tue, 6 Jan 2009 22:17:49 +0100 Subject: [Haiku-commits] r28850 - haiku/trunk/src/system/kernel/fs Message-ID: <200901062117.n06LHnqT005761@sheep.berlios.de> Author: axeld Date: 2009-01-06 22:17:47 +0100 (Tue, 06 Jan 2009) New Revision: 28850 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28850&view=rev Modified: haiku/trunk/src/system/kernel/fs/vfs.cpp Log: * All file descriptors that only refer to a mount now keep the mount, ie. they won't call put_mount() before they are freed. Internally, this causes them to grab a reference to the mount's root vnode. * This fixes bug #3262. Modified: haiku/trunk/src/system/kernel/fs/vfs.cpp =================================================================== --- haiku/trunk/src/system/kernel/fs/vfs.cpp 2009-01-06 19:25:34 UTC (rev 28849) +++ haiku/trunk/src/system/kernel/fs/vfs.cpp 2009-01-06 21:17:47 UTC (rev 28850) @@ -6450,24 +6450,23 @@ if (!HAS_FS_MOUNT_CALL(mount, open_index_dir)) { status = EOPNOTSUPP; - goto out; + goto error; } status = FS_MOUNT_CALL(mount, open_index_dir, &cookie); if (status < B_OK) - goto out; + goto error; // get fd for the index directory status = get_new_fd(FDTYPE_INDEX_DIR, mount, NULL, cookie, 0, kernel); - if (status >= 0) - goto out; + if (status < 0) { + // something went wrong + FS_MOUNT_CALL(mount, close_index_dir, cookie); + FS_MOUNT_CALL(mount, free_index_dir_cookie, cookie); - // something went wrong - FS_MOUNT_CALL(mount, close_index_dir, cookie); - FS_MOUNT_CALL(mount, free_index_dir_cookie, cookie); - -out: - put_mount(mount); +error: + put_mount(mount); + } return status; } @@ -6493,8 +6492,7 @@ if (mount != NULL) { FS_MOUNT_CALL(mount, free_index_dir_cookie, descriptor->cookie); - // ToDo: find a replacement ref_count object - perhaps the root dir? - //put_vnode(vnode); + put_mount(mount); } } @@ -6644,25 +6642,24 @@ if (!HAS_FS_MOUNT_CALL(mount, open_query)) { status = EOPNOTSUPP; - goto out; + goto error; } status = FS_MOUNT_CALL(mount, open_query, query, flags, port, token, &cookie); if (status < B_OK) - goto out; + goto error; // get fd for the index directory status = get_new_fd(FDTYPE_QUERY, mount, NULL, cookie, 0, kernel); - if (status >= 0) - goto out; + if (status < 0) { + // something went wrong + FS_MOUNT_CALL(mount, close_query, cookie); + FS_MOUNT_CALL(mount, free_query_cookie, cookie); - // something went wrong - FS_MOUNT_CALL(mount, close_query, cookie); - FS_MOUNT_CALL(mount, free_query_cookie, cookie); - -out: - put_mount(mount); +error: + put_mount(mount); + } return status; } @@ -6688,8 +6685,7 @@ if (mount != NULL) { FS_MOUNT_CALL(mount, free_query_cookie, descriptor->cookie); - // ToDo: find a replacement ref_count object - perhaps the root dir? - //put_vnode(vnode); + put_mount(mount); } } From axeld at mail.berlios.de Tue Jan 6 22:19:09 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Tue, 6 Jan 2009 22:19:09 +0100 Subject: [Haiku-commits] r28851 - haiku/trunk/src/system/kernel/fs Message-ID: <200901062119.n06LJ9Zq005832@sheep.berlios.de> Author: axeld Date: 2009-01-06 22:19:09 +0100 (Tue, 06 Jan 2009) New Revision: 28851 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28851&view=rev Modified: haiku/trunk/src/system/kernel/fs/vfs.cpp Log: * Removed a left-over mutex_unlock() that could cause a panic on removing a busy vnode. Modified: haiku/trunk/src/system/kernel/fs/vfs.cpp =================================================================== --- haiku/trunk/src/system/kernel/fs/vfs.cpp 2009-01-06 21:17:47 UTC (rev 28850) +++ haiku/trunk/src/system/kernel/fs/vfs.cpp 2009-01-06 21:19:09 UTC (rev 28851) @@ -3665,7 +3665,6 @@ if (vnode->covered_by != NULL) { // this vnode is in use - mutex_unlock(&sVnodeMutex); return B_BUSY; } From axeld at mail.berlios.de Wed Jan 7 20:02:26 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Wed, 7 Jan 2009 20:02:26 +0100 Subject: [Haiku-commits] r28852 - haiku/trunk/src/system/kernel/arch/x86 Message-ID: <200901071902.n07J2QtD026241@sheep.berlios.de> Author: axeld Date: 2009-01-07 20:02:25 +0100 (Wed, 07 Jan 2009) New Revision: 28852 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28852&view=rev Modified: haiku/trunk/src/system/kernel/arch/x86/arch_int.c Log: * Applied patch by Olivier: fixed sending wrong signal to a custom signal handler. This closes ticket #3265, thanks! Modified: haiku/trunk/src/system/kernel/arch/x86/arch_int.c =================================================================== --- haiku/trunk/src/system/kernel/arch/x86/arch_int.c 2009-01-06 21:19:09 UTC (rev 28851) +++ haiku/trunk/src/system/kernel/arch/x86/arch_int.c 2009-01-07 19:02:25 UTC (rev 28852) @@ -786,7 +786,7 @@ if (sigaction(signal, NULL, &action) == 0 && action.sa_handler != SIG_DFL && action.sa_handler != SIG_IGN) { - send_signal(thread->id, SIGSEGV); + send_signal(thread->id, signal); } else if (user_debug_exception_occurred(type, signal)) send_signal(team_get_current_team_id(), signal); } else { From axeld at mail.berlios.de Wed Jan 7 20:32:47 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Wed, 7 Jan 2009 20:32:47 +0100 Subject: [Haiku-commits] r28853 - haiku/trunk/src/add-ons/input_server/devices/keyboard Message-ID: <200901071932.n07JWl1D029444@sheep.berlios.de> Author: axeld Date: 2009-01-07 20:32:46 +0100 (Wed, 07 Jan 2009) New Revision: 28853 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28853&view=rev Modified: haiku/trunk/src/add-ons/input_server/devices/keyboard/TeamListItem.cpp Log: * Applied patch by Olivier: corrects vertical text positioning. This closes ticket #3266, thanks! Modified: haiku/trunk/src/add-ons/input_server/devices/keyboard/TeamListItem.cpp =================================================================== --- haiku/trunk/src/add-ons/input_server/devices/keyboard/TeamListItem.cpp 2009-01-07 19:02:25 UTC (rev 28852) +++ haiku/trunk/src/add-ons/input_server/devices/keyboard/TeamListItem.cpp 2009-01-07 19:32:46 UTC (rev 28853) @@ -82,7 +82,7 @@ owner->SetFont(&font); owner->MovePenTo(frame.left + 8, frame.top + ((frame.Height() - (finfo.ascent + finfo.descent + finfo.leading)) / 2) - + (finfo.ascent + finfo.descent) - 1); + + finfo.ascent); owner->DrawString(fPath.Leaf()); } From axeld at mail.berlios.de Wed Jan 7 20:40:54 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Wed, 7 Jan 2009 20:40:54 +0100 Subject: [Haiku-commits] r28854 - haiku/trunk/src/system/libroot/posix/signal Message-ID: <200901071940.n07JesDL029935@sheep.berlios.de> Author: axeld Date: 2009-01-07 20:40:53 +0100 (Wed, 07 Jan 2009) New Revision: 28854 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28854&view=rev Added: haiku/trunk/src/system/libroot/posix/signal/siginterrupt.cpp Modified: haiku/trunk/src/system/libroot/posix/signal/Jamfile Log: * Added siginterrupt() function, this closes ticket #3263. Modified: haiku/trunk/src/system/libroot/posix/signal/Jamfile =================================================================== --- haiku/trunk/src/system/libroot/posix/signal/Jamfile 2009-01-07 19:32:46 UTC (rev 28853) +++ haiku/trunk/src/system/libroot/posix/signal/Jamfile 2009-01-07 19:40:53 UTC (rev 28854) @@ -13,6 +13,7 @@ sigaltstack.c sighold.cpp sigignore.cpp + siginterrupt.cpp signal.c sigpause.cpp sigpending.c Added: haiku/trunk/src/system/libroot/posix/signal/siginterrupt.cpp =================================================================== --- haiku/trunk/src/system/libroot/posix/signal/siginterrupt.cpp 2009-01-07 19:32:46 UTC (rev 28853) +++ haiku/trunk/src/system/libroot/posix/signal/siginterrupt.cpp 2009-01-07 19:40:53 UTC (rev 28854) @@ -0,0 +1,25 @@ +/* + * Copyright 2009, Axel D?rfler, axeld at pinc-software.de. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ + + +#include + +#include + + +extern "C" int +siginterrupt(int sig, int flag) +{ + struct sigaction action; + + sigaction(sig, NULL, &action); + if (flag) + action.sa_flags &= ~SA_RESTART; + else + action.sa_flags |= SA_RESTART; + + return sigaction(sig, &action, NULL); +} + From korli at mail.berlios.de Wed Jan 7 22:52:07 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Wed, 7 Jan 2009 22:52:07 +0100 Subject: [Haiku-commits] r28855 - haiku/trunk/src/apps/expander Message-ID: <200901072152.n07Lq7JF009927@sheep.berlios.de> Author: korli Date: 2009-01-07 22:52:07 +0100 (Wed, 07 Jan 2009) New Revision: 28855 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28855&view=rev Modified: haiku/trunk/src/apps/expander/ExpanderWindow.cpp Log: * now use source and destination as initial directory for file panels. This fixes bug #3175. Modified: haiku/trunk/src/apps/expander/ExpanderWindow.cpp =================================================================== --- haiku/trunk/src/apps/expander/ExpanderWindow.cpp 2009-01-07 19:40:53 UTC (rev 28854) +++ haiku/trunk/src/apps/expander/ExpanderWindow.cpp 2009-01-07 21:52:07 UTC (rev 28855) @@ -189,6 +189,12 @@ B_WIDTH_AS_USUAL, B_EVEN_SPACING, B_WARNING_ALERT); alert->Go(); return false; + } else if (!entry.IsDirectory()) { + BAlert *alert = new BAlert("destAlert", "The destination" + " is not a directory.", "Cancel", NULL, NULL, + B_WIDTH_AS_USUAL, B_EVEN_SPACING, B_WARNING_ALERT); + alert->Go(); + return false; } else { entry.GetRef(&fDestRef); return true; @@ -213,23 +219,35 @@ { switch (msg->what) { case MSG_SOURCE: + { + BEntry entry(fSourceText->Text(), true); + entry_ref srcRef; + if (entry.Exists() && entry.IsDirectory()) + entry.GetRef(&srcRef); if (!fSourcePanel) { BMessenger messenger(this); - fSourcePanel = new BFilePanel(B_OPEN_PANEL, &messenger, NULL, + fSourcePanel = new BFilePanel(B_OPEN_PANEL, &messenger, &srcRef, B_FILE_NODE, false, NULL, new RuleRefFilter(fRules), true); - } + } else + fSourcePanel->SetPanelDirectory(&srcRef); fSourcePanel->Show(); break; - + } case MSG_DEST: + { + BEntry entry(fDestText->Text(), true); + entry_ref destRef; + if (entry.Exists() && entry.IsDirectory()) + entry.GetRef(&destRef); if (!fDestPanel) { BMessenger messenger(this); - fDestPanel = new DirectoryFilePanel(B_OPEN_PANEL, &messenger, NULL, + fDestPanel = new DirectoryFilePanel(B_OPEN_PANEL, &messenger, &destRef, B_DIRECTORY_NODE, false, NULL, new DirectoryRefFilter(), true); - } + } else + fDestPanel->SetPanelDirectory(&destRef); fDestPanel->Show(); break; - + } case MSG_DIRECTORY: { entry_ref ref; From superstippi at gmx.de Thu Jan 8 12:53:41 2009 From: superstippi at gmx.de (=?ISO-8859-1?Q?Stephan_A=DFmus?=) Date: Thu, 08 Jan 2009 12:53:41 +0100 Subject: [Haiku-commits] r28855 - haiku/trunk/src/apps/expander In-Reply-To: <200901072152.n07Lq7JF009927@sheep.berlios.de> References: <200901072152.n07Lq7JF009927@sheep.berlios.de> Message-ID: <4965E945.1090705@gmx.de> korli at BerliOS schrieb: > Author: korli > Date: 2009-01-07 22:52:07 +0100 (Wed, 07 Jan 2009) > New Revision: 28855 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28855&view=rev > > Modified: > haiku/trunk/src/apps/expander/ExpanderWindow.cpp > Log: > * now use source and destination as initial directory for file panels. This fixes bug #3175. Nice! Thanks. Best regards, -Stephan From julun at mail.berlios.de Thu Jan 8 16:48:10 2009 From: julun at mail.berlios.de (julun at BerliOS) Date: Thu, 8 Jan 2009 16:48:10 +0100 Subject: [Haiku-commits] r28856 - in haiku/trunk: headers/os/interface src/kits/interface Message-ID: <200901081548.n08FmAgp009107@sheep.berlios.de> Author: julun Date: 2009-01-08 16:48:10 +0100 (Thu, 08 Jan 2009) New Revision: 28856 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28856&view=rev Modified: haiku/trunk/headers/os/interface/ChannelSlider.h haiku/trunk/src/kits/interface/ChannelSlider.cpp Log: * fix small mem leak * whitespace cleanup, etc * some renaming to fit Haiku style Modified: haiku/trunk/headers/os/interface/ChannelSlider.h =================================================================== --- haiku/trunk/headers/os/interface/ChannelSlider.h 2009-01-07 21:52:07 UTC (rev 28855) +++ haiku/trunk/headers/os/interface/ChannelSlider.h 2009-01-08 15:48:10 UTC (rev 28856) @@ -10,148 +10,124 @@ / *******************************************************************************/ -#if !defined(_CHANNEL_SLIDER_H) +#ifndef _CHANNEL_SLIDER_H #define _CHANNEL_SLIDER_H + #include -class BChannelSlider : - public BChannelControl + +class BChannelSlider : public BChannelControl { public: - BChannelSlider( - BRect area, - const char * name, - const char * label, - BMessage * model, - int32 channels = 1, - uint32 resize = B_FOLLOW_LEFT | B_FOLLOW_TOP, - uint32 flags = B_WILL_DRAW); - BChannelSlider( - BRect area, - const char * name, - const char * label, - BMessage * model, - orientation o, - int32 channels = 1, - uint32 resize = B_FOLLOW_LEFT | B_FOLLOW_TOP, - uint32 flags = B_WILL_DRAW); - BChannelSlider( - BMessage * from); + BChannelSlider(BRect area, const char* name, + const char* label, BMessage* message, + int32 channels = 1, + uint32 resize = B_FOLLOW_LEFT | B_FOLLOW_TOP, + uint32 flags = B_WILL_DRAW); + BChannelSlider(BRect area, const char* name, + const char* label, BMessage* message, + orientation o, int32 channels = 1, + uint32 resize = B_FOLLOW_LEFT | B_FOLLOW_TOP, + uint32 flags = B_WILL_DRAW); + BChannelSlider(BMessage* archive); virtual ~BChannelSlider(); -static BArchivable * Instantiate(BMessage * from); -virtual status_t Archive(BMessage * into, bool deep = true) const; +static BArchivable* Instantiate(BMessage* from); +virtual status_t Archive(BMessage* into, bool deep = true) const; -virtual orientation Orientation() const; - void SetOrientation(orientation o); - -virtual int32 MaxChannelCount() const; -virtual bool SupportsIndividualLimits() const; +virtual orientation Orientation() const; + void SetOrientation(orientation o); -virtual void AttachedToWindow(); -virtual void AllAttached(); -virtual void DetachedFromWindow(); -virtual void AllDetached(); +virtual int32 MaxChannelCount() const; +virtual bool SupportsIndividualLimits() const; -virtual void MessageReceived(BMessage *msg); +virtual void AttachedToWindow(); +virtual void AllAttached(); +virtual void DetachedFromWindow(); +virtual void AllDetached(); -virtual void Draw(BRect area); -virtual void MouseDown(BPoint where); -virtual void MouseUp(BPoint pt); -virtual void MouseMoved( BPoint pt, - uint32 code, - const BMessage * message); -virtual void WindowActivated(bool state); -virtual void KeyDown(const char *bytes, int32 numBytes); -virtual void KeyUp(const char *bytes, int32 numBytes); -virtual void FrameResized(float width, float height); +virtual void MessageReceived(BMessage* msg); -virtual void SetFont(const BFont *font, uint32 mask = B_FONT_ALL); -virtual void MakeFocus(bool focusState = true); +virtual void Draw(BRect area); +virtual void MouseDown(BPoint where); +virtual void MouseUp(BPoint pt); +virtual void MouseMoved(BPoint pt,uint32 code, + const BMessage* message); +virtual void WindowActivated(bool state); +virtual void KeyDown(const char* bytes, int32 numBytes); +virtual void KeyUp(const char* bytes, int32 numBytes); +virtual void FrameResized(float width, float height); -virtual void SetEnabled(bool on); +virtual void SetFont(const BFont* font, uint32 mask = B_FONT_ALL); +virtual void MakeFocus(bool focusState = true); -virtual void GetPreferredSize(float *width, float *height); +virtual void SetEnabled(bool on); -virtual BHandler *ResolveSpecifier(BMessage *msg, - int32 index, - BMessage *specifier, - int32 form, - const char *property); -virtual status_t GetSupportedSuites(BMessage *data); +virtual void GetPreferredSize(float* width, float* height); -// Perform rendering for an entire slider channel. -virtual void DrawChannel(BView* into, - int32 channel, - BRect area, - bool pressed); +virtual BHandler* ResolveSpecifier(BMessage* msg, int32 index, + BMessage* specifier, int32 form, const char* p); +virtual status_t GetSupportedSuites(BMessage* data); -// Draw the groove that appears behind a channel's thumb. -virtual void DrawGroove( BView* into, - int32 channel, - BPoint tl, - BPoint br); + // Perform rendering for an entire slider channel. +virtual void DrawChannel(BView* into, int32 channel, BRect area, + bool pressed); -// Draw the thumb for a single channel. -virtual void DrawThumb( BView* into, - int32 channel, - BPoint where, - bool pressed ); + // Draw groove that appears behind a channel's thumb. +virtual void DrawGroove(BView* into, int32 channel, BPoint lt, + BPoint br); -virtual const BBitmap * ThumbFor(int32 channel, bool pressed); -virtual BRect ThumbFrameFor(int32 channel); -virtual float ThumbDeltaFor(int32 channel); -virtual float ThumbRangeFor(int32 channel); + // Draw the thumb for a single channel. +virtual void DrawThumb(BView* into, int32 channel, BPoint where, + bool pressed); +virtual const BBitmap* ThumbFor(int32 channel, bool pressed); +virtual BRect ThumbFrameFor(int32 channel); +virtual float ThumbDeltaFor(int32 channel); +virtual float ThumbRangeFor(int32 channel); + private: - typedef BChannelControl inherited; - - BChannelSlider( /* unimplemented */ - const BChannelSlider &); - BChannelSlider& operator=( /* unimplemented */ - const BChannelSlider &); + BChannelSlider(const BChannelSlider &); + BChannelSlider& operator=(const BChannelSlider &); -virtual void _Reserved_BChannelSlider_0(void *, ...); -virtual void _Reserved_BChannelSlider_1(void *, ...); -virtual void _Reserved_BChannelSlider_2(void *, ...); -virtual void _Reserved_BChannelSlider_3(void *, ...); -virtual void _Reserved_BChannelSlider_4(void *, ...); -virtual void _Reserved_BChannelSlider_5(void *, ...); -virtual void _Reserved_BChannelSlider_6(void *, ...); -virtual void _Reserved_BChannelSlider_7(void *, ...); +virtual void _Reserved_BChannelSlider_0(void* , ...); +virtual void _Reserved_BChannelSlider_1(void* , ...); +virtual void _Reserved_BChannelSlider_2(void* , ...); +virtual void _Reserved_BChannelSlider_3(void* , ...); +virtual void _Reserved_BChannelSlider_4(void* , ...); +virtual void _Reserved_BChannelSlider_5(void* , ...); +virtual void _Reserved_BChannelSlider_6(void* , ...); +virtual void _Reserved_BChannelSlider_7(void* , ...); - float fBaseLine; - float fLineFeed; - BBitmap * fLeftKnob; - BBitmap * fMidKnob; - BBitmap * fRightKnob; - BBitmap * fBacking; - BView * fBackingView; - bool fVertical; - bool fPadding[3]; - BPoint fClickDelta; - - int32 fCurrentChannel; - bool fAllChannels; - int32* fInitialValues; - float fMinpoint; - int32 fFocusChannel; - - uint32 _reserved_[12]; + float fBaseLine; + float fLineFeed; + BBitmap* fLeftKnob; + BBitmap* fMidKnob; + BBitmap* fRightKnob; + BBitmap* fBacking; + BView* fBackingView; + bool fVertical; + bool fPadding[3]; + BPoint fClickDelta; - void InitData(); - - void FinishChange(); - void UpdateFontDimens(); - void DrawThumbs(); - void DrawThumbFrame( - BView * where, - const BRect & area); - bool Vertical() const; - void Redraw(); - void MouseMovedCommon(BPoint , BPoint ); + int32 fCurrentChannel; + bool fAllChannels; + int32* fInitialValues; + float fMinpoint; + int32 fFocusChannel; + + uint32 _reserved_[12]; + + void _InitData(); + void _FinishChange(); + void _UpdateFontDimens(); + void _DrawThumbs(); + void _DrawGrooveFrame(BView* where, const BRect& area); + bool _Vertical() const; + void _Redraw(); + void _MouseMovedCommon(BPoint point, BPoint point2); }; Modified: haiku/trunk/src/kits/interface/ChannelSlider.cpp =================================================================== --- haiku/trunk/src/kits/interface/ChannelSlider.cpp 2009-01-07 21:52:07 UTC (rev 28855) +++ haiku/trunk/src/kits/interface/ChannelSlider.cpp 2009-01-08 15:48:10 UTC (rev 28856) @@ -1,9 +1,9 @@ -/* - * Copyright 2005, Haiku Inc. All Rights Reserved. +/* + * Copyright 2005 - 2008, Haiku Inc. All Rights Reserved. * Author: Stefano Ceccherini (burton666 at libero.it) * Distributed under the terms of the MIT License. */ - + #include #include #include @@ -34,18 +34,22 @@ const static unsigned char kHorizontalKnobData[] = { - 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, - 0xff, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0xff, 0xff, - 0xff, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0xff, 0xff, - 0xff, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xcb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x12, 0xff, - 0xff, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xcb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x12, 0xff, - 0xff, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xcb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x12, 0xff, - 0xff, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xcb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x12, 0xff, - 0xff, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x12, 0xff, - 0xff, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x12, 0xff, - 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x12, 0xff, - 0xff, 0xff, 0xff, 0xff, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0xff, 0xff, 0xff, 0x00, 0x3f, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0xff, 0xff, + 0xff, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xcb, 0x3f, 0x3f, 0x3f, 0x3f, + 0x3f, 0x00, 0x12, 0xff, 0xff, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xcb, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x12, 0xff, 0xff, 0x00, 0x3f, 0x3f, + 0x3f, 0x3f, 0x3f, 0xcb, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x12, 0xff, + 0xff, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0xcb, 0x3f, 0x3f, 0x3f, 0x3f, + 0x3f, 0x00, 0x12, 0xff, 0xff, 0x00, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x12, 0xff, 0xff, 0x00, 0x3f, 0x3f, + 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x3f, 0x00, 0x12, 0xff, + 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x0c, 0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0x12, 0x12, 0x12, 0x12, + 0x12, 0x12, 0x12, 0x12, 0x12, 0x12, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; @@ -55,18 +59,19 @@ { B_GET_PROPERTY, B_SET_PROPERTY, 0 }, { B_DIRECT_SPECIFIER, 0 }, NULL, 0, { B_INT32_TYPE } }, - + { 0 } }; - + const static float kPadding = 10.0; + BChannelSlider::BChannelSlider(BRect area, const char *name, const char *label, BMessage *model, int32 channels, uint32 resizeMode, uint32 flags) : BChannelControl(area, name, label, model, channels, resizeMode, flags) { - InitData(); + _InitData(); } @@ -75,7 +80,7 @@ : BChannelControl(area, name, label, model, channels, resizeMode, flags) { - InitData(); + _InitData(); SetOrientation(o); } @@ -83,7 +88,7 @@ BChannelSlider::BChannelSlider(BMessage *archive) : BChannelControl(archive) { - InitData(); + _InitData(); orientation orient; if (archive->FindInt32("_orient", (int32 *)&orient) == B_OK) @@ -93,6 +98,7 @@ BChannelSlider::~BChannelSlider() { + delete fBacking; delete fLeftKnob; delete fMidKnob; delete fRightKnob; @@ -124,7 +130,7 @@ orientation BChannelSlider::Orientation() const { - return Vertical() ? B_VERTICAL : B_HORIZONTAL; + return _Vertical() ? B_VERTICAL : B_HORIZONTAL; } @@ -132,10 +138,10 @@ BChannelSlider::SetOrientation(orientation _orientation) { bool isVertical = _orientation == B_VERTICAL; - if (isVertical != Vertical()) { + if (isVertical != _Vertical()) { fVertical = isVertical; Invalidate(Bounds()); - } + } } @@ -159,29 +165,29 @@ BView *parent = Parent(); if (parent != NULL) SetViewColor(parent->ViewColor()); - - inherited::AttachedToWindow(); + + BChannelControl::AttachedToWindow(); } void BChannelSlider::AllAttached() { - BControl::AllAttached(); + BChannelControl::AllAttached(); } void BChannelSlider::DetachedFromWindow() { - inherited::DetachedFromWindow(); + BChannelControl::DetachedFromWindow(); } void BChannelSlider::AllDetached() { - BControl::AllDetached(); + BChannelControl::AllDetached(); } @@ -189,19 +195,19 @@ BChannelSlider::MessageReceived(BMessage *message) { switch (message->what) { - case B_SET_PROPERTY: + case B_SET_PROPERTY: { case B_GET_PROPERTY: - { BMessage reply(B_REPLY); int32 index = 0; BMessage specifier; int32 what = 0; const char *property = NULL; bool handled = false; - status_t status = message->GetCurrentSpecifier(&index, &specifier, &what, &property); - BPropertyInfo propInfo(sPropertyInfo); - if (status == B_OK - && propInfo.FindMatch(message, index, &specifier, what, property) >= 0) { + status_t status = message->GetCurrentSpecifier(&index, &specifier, + &what, &property); + BPropertyInfo propInfo(sPropertyInfo); + if (status == B_OK + && propInfo.FindMatch(message, index, &specifier, what, property) >= 0) { handled = true; if (message->what == B_SET_PROPERTY) { orientation orient; @@ -212,18 +218,19 @@ } else if (message->what == B_GET_PROPERTY) reply.AddInt32("result", (int32)Orientation()); else - status = B_BAD_SCRIPT_SYNTAX; - } - + status = B_BAD_SCRIPT_SYNTAX; + } + if (handled) { reply.AddInt32("error", status); message->SendReply(&reply); - } else - inherited::MessageReceived(message); - break; - } + } else { + BChannelControl::MessageReceived(message); + } + } break; + default: - inherited::MessageReceived(message); + BChannelControl::MessageReceived(message); break; } } @@ -232,13 +239,13 @@ void BChannelSlider::Draw(BRect updateRect) { - UpdateFontDimens(); - DrawThumbs(); - + _UpdateFontDimens(); + _DrawThumbs(); + if (Label()) { BRect bounds(Bounds()); float labelWidth = StringWidth(Label()); - + DrawString(Label(), BPoint((bounds.Width() - labelWidth) / 2, fBaseLine)); } } @@ -252,15 +259,15 @@ else { fCurrentChannel = -1; fMinpoint = 0; - + // Search the channel on which the mouse was over - int32 numChannels = CountChannels(); + int32 numChannels = CountChannels(); for (int32 channel = 0; channel < numChannels; channel++) { BRect frame = ThumbFrameFor(channel); frame.OffsetBy(fClickDelta); - + float range = ThumbRangeFor(channel); - if (Vertical()) { + if (_Vertical()) { fMinpoint = frame.top + frame.Height() / 2; frame.bottom += range; } else { @@ -268,56 +275,57 @@ frame.right += range; fMinpoint = frame.Width(); } - + // Click was on a slider. if (frame.Contains(where)) { fCurrentChannel = channel; SetCurrentChannel(channel); break; - } - } - + } + } + // Click wasn't on a slider. Bail out. if (fCurrentChannel == -1) return; - + uint32 buttons = 0; BMessage *currentMessage = Window()->CurrentMessage(); if (currentMessage != NULL) currentMessage->FindInt32("buttons", (int32 *)&buttons); - + fAllChannels = (buttons & B_SECONDARY_MOUSE_BUTTON) == 0; - + if (fInitialValues != NULL && fAllChannels) { delete[] fInitialValues; fInitialValues = NULL; } - + if (fInitialValues == NULL) fInitialValues = new int32[numChannels]; - + if (fAllChannels) { for (int32 i = 0; i < numChannels; i++) fInitialValues[i] = ValueFor(i); } else - fInitialValues[fCurrentChannel] = ValueFor(fCurrentChannel); - + fInitialValues[fCurrentChannel] = ValueFor(fCurrentChannel); + if (Window()->Flags() & B_ASYNCHRONOUS_CONTROLS) { if (!IsTracking()) { SetTracking(true); - DrawThumbs(); - Flush(); + _DrawThumbs(); + Flush(); } - - MouseMovedCommon(where, B_ORIGIN); - SetMouseEventMask(B_POINTER_EVENTS, B_LOCK_WINDOW_FOCUS | B_NO_POINTER_HISTORY); + + _MouseMovedCommon(where, B_ORIGIN); + SetMouseEventMask(B_POINTER_EVENTS, B_LOCK_WINDOW_FOCUS | + B_NO_POINTER_HISTORY); } else { do { snooze(30000); GetMouse(&where, &buttons); - MouseMovedCommon(where, B_ORIGIN); + _MouseMovedCommon(where, B_ORIGIN); } while (buttons != 0); - FinishChange(); + _FinishChange(); fCurrentChannel = -1; fAllChannels = false; } @@ -329,13 +337,13 @@ BChannelSlider::MouseUp(BPoint where) { if (IsEnabled() && IsTracking()) { - FinishChange(); + _FinishChange(); SetTracking(false); fAllChannels = false; fCurrentChannel = -1; fMinpoint = 0; } else - BControl::MouseUp(where); + BChannelControl::MouseUp(where); } @@ -343,16 +351,16 @@ BChannelSlider::MouseMoved(BPoint where, uint32 code, const BMessage *message) { if (IsEnabled() && IsTracking()) - MouseMovedCommon(where, B_ORIGIN); + _MouseMovedCommon(where, B_ORIGIN); else - BControl::MouseMoved(where, code, message); + BChannelControl::MouseMoved(where, code, message); } void BChannelSlider::WindowActivated(bool state) { - BControl::WindowActivated(state); + BChannelControl::WindowActivated(state); } @@ -373,7 +381,7 @@ void BChannelSlider::FrameResized(float newWidth, float newHeight) { - inherited::FrameResized(newWidth, newHeight); + BChannelControl::FrameResized(newWidth, newHeight); Invalidate(Bounds()); } @@ -381,7 +389,7 @@ void BChannelSlider::SetFont(const BFont *font, uint32 mask) { - inherited::SetFont(font, mask); + BChannelControl::SetFont(font, mask); } @@ -390,14 +398,14 @@ { if (focusState && !IsFocus()) fFocusChannel = -1; - BControl::MakeFocus(focusState); + BChannelControl::MakeFocus(focusState); } void BChannelSlider::SetEnabled(bool on) { - BControl::SetEnabled(on); + BChannelControl::SetEnabled(on); } @@ -406,14 +414,14 @@ { if (width) { float _width = (float)ceil(StringWidth(Label())); - if (Vertical()) { + if (_Vertical()) { *width = max_c(_width, 2 + 12 * CountChannels()); } else { *width = max_c(_width, 64); } } if (height) { - if (Vertical()) + if (_Vertical()) *height = 195; else *height = 71; @@ -423,13 +431,14 @@ BHandler * BChannelSlider::ResolveSpecifier(BMessage *msg, int32 index, BMessage *specifier, - int32 form, const char *property) + int32 form, const char *property) { BHandler *target = this; BPropertyInfo propertyInfo(sPropertyInfo); - if (propertyInfo.FindMatch(msg, index, specifier, form, property) < B_OK) - target = BChannelControl::ResolveSpecifier(msg, index, specifier, form, property); - + if (propertyInfo.FindMatch(msg, index, specifier, form, property) < B_OK) { + target = BChannelControl::ResolveSpecifier(msg, index, specifier, form, + property); + } return target; } @@ -439,13 +448,13 @@ { if (data == NULL) return B_BAD_VALUE; - + status_t err = data->AddString("suites", "suite/vnd.Be-channel-slider"); BPropertyInfo propInfo(sPropertyInfo); if (err == B_OK) err = data->AddFlat("messages", &propInfo); - + if (err == B_OK) return BChannelControl::GetSupportedSuites(data); return err; @@ -457,47 +466,48 @@ { float hCenter = area.Width() / 2; float vCenter = area.Height() / 2; - + BPoint leftTop; BPoint bottomRight; - if (Vertical()) { + if (_Vertical()) { leftTop.Set(area.left + hCenter, area.top + vCenter); bottomRight.Set(leftTop.x, leftTop.y + ThumbRangeFor(channel)); } else { leftTop.Set(area.left, area.top + vCenter); bottomRight.Set(area.left + ThumbRangeFor(channel), leftTop.y); - } - + } + DrawGroove(into, channel, leftTop, bottomRight); - + BPoint thumbLocation = leftTop; - if (Vertical()) + if (_Vertical()) thumbLocation.y += ThumbDeltaFor(channel); else thumbLocation.x += ThumbDeltaFor(channel); - + DrawThumb(into, channel, thumbLocation, pressed); } void -BChannelSlider::DrawGroove(BView *into, int32 channel, BPoint topLeft, BPoint bottomRight) +BChannelSlider::DrawGroove(BView *into, int32 channel, BPoint leftTop, + BPoint bottomRight) { ASSERT(into != NULL); - BRect rect(topLeft, bottomRight); - - DrawThumbFrame(fBackingView, rect.InsetByCopy(-2.5, -2.5)); - + BRect rect(leftTop, bottomRight); + + _DrawGrooveFrame(fBackingView, rect.InsetByCopy(-2.5, -2.5)); + rect.InsetBy(-0.5, -0.5); - into->FillRect(rect, B_SOLID_HIGH); + into->FillRect(rect, B_SOLID_HIGH); } void -BChannelSlider::DrawThumb(BView *into, int32 channel, BPoint where, bool pressed) +BChannelSlider::DrawThumb(BView* into, int32 channel, BPoint where, bool pressed) { ASSERT(into != NULL); - + const BBitmap *thumb = ThumbFor(channel, pressed); if (thumb == NULL) return; @@ -505,26 +515,26 @@ BRect bitmapBounds = thumb->Bounds(); where.x -= bitmapBounds.right / 2; where.y -= bitmapBounds.bottom / 2; - + into->PushState(); - + into->SetDrawingMode(B_OP_OVER); into->DrawBitmapAsync(thumb, where); - + if (pressed) { into->SetDrawingMode(B_OP_ALPHA); - + rgb_color color = tint_color(into->ViewColor(), B_DARKEN_4_TINT); color.alpha = 128; - into->SetHighColor(color); - + into->SetHighColor(color); + BRect destRect(where, where); destRect.right += bitmapBounds.right; destRect.bottom += bitmapBounds.bottom; - + into->FillRect(destRect); } - + into->PopState(); } @@ -534,15 +544,17 @@ { // TODO: Finish me if (fLeftKnob == NULL) { - if (Vertical()) { + if (_Vertical()) { fLeftKnob = new BBitmap(BRect(0, 0, 11, 14), B_CMAP8); - fLeftKnob->SetBits(kVerticalKnobData, sizeof(kVerticalKnobData), 0, B_CMAP8); + fLeftKnob->SetBits(kVerticalKnobData, sizeof(kVerticalKnobData), + 0, B_CMAP8); } else { fLeftKnob = new BBitmap(BRect(0, 0, 14, 11), B_CMAP8); - fLeftKnob->SetBits(kHorizontalKnobData, sizeof(kHorizontalKnobData), 0, B_CMAP8); + fLeftKnob->SetBits(kHorizontalKnobData, sizeof(kHorizontalKnobData), + 0, B_CMAP8); } } - + return fLeftKnob; } @@ -550,19 +562,19 @@ BRect BChannelSlider::ThumbFrameFor(int32 channel) { - UpdateFontDimens(); - + _UpdateFontDimens(); + BRect frame(0, 0, 0, 0); const BBitmap *thumb = ThumbFor(channel, false); if (thumb != NULL) { frame = thumb->Bounds(); - if (Vertical()) + if (_Vertical()) frame.OffsetBy(channel * frame.Width(), fLineFeed + kPadding); else frame.OffsetBy(kPadding, fLineFeed + channel * frame.Height()); } - - return frame; + + return frame; } @@ -573,38 +585,38 @@ if (channel >= 0 && channel < MaxChannelCount()) { float range = ThumbRangeFor(channel); int32 limitRange = MaxLimitList()[channel] - MinLimitList()[channel]; - delta = (ValueList()[channel] - MinLimitList()[channel]) * range / limitRange; - - if (Vertical()) + delta = (ValueList()[channel] - MinLimitList()[channel]) * range / limitRange; + + if (_Vertical()) delta = range - delta; } - - return delta; + + return delta; } float BChannelSlider::ThumbRangeFor(int32 channel) { - UpdateFontDimens(); - - float range = 0; + _UpdateFontDimens(); + + float range = 0; BRect bounds = Bounds(); BRect frame = ThumbFrameFor(channel); - if (Vertical()) + if (_Vertical()) range = bounds.Height() - frame.Height() - (kPadding + fLineFeed) * 2; else range = bounds.Width() - frame.Width() - kPadding * 2; - - return range; + + return range; } void -BChannelSlider::InitData() +BChannelSlider::_InitData() { - UpdateFontDimens(); - + _UpdateFontDimens(); + fLeftKnob = NULL; fMidKnob = NULL; fRightKnob = NULL; @@ -612,19 +624,19 @@ fBackingView = NULL; fVertical = Bounds().Width() / Bounds().Height() < 1; fClickDelta = B_ORIGIN; - + fCurrentChannel = -1; fAllChannels = false; fInitialValues = NULL; fMinpoint = 0; fFocusChannel = -1; - + SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); } void -BChannelSlider::FinishChange() +BChannelSlider::_FinishChange() { if (fInitialValues != NULL) { bool *inMask = NULL; @@ -637,14 +649,14 @@ } InvokeChannel(NULL, 0, numChannels, inMask); } - + SetTracking(false); - Redraw(); + _Redraw(); } void -BChannelSlider::UpdateFontDimens() +BChannelSlider::_UpdateFontDimens() { font_height height; GetFontHeight(&height); @@ -654,44 +666,39 @@ void -BChannelSlider::DrawThumbs() -{ +BChannelSlider::_DrawThumbs() +{ if (fBacking == NULL) { // This is the idea: we build a bitmap by taking the coordinates // of the first and last thumb frames (top/left and bottom/right) BRect first = ThumbFrameFor(0); BRect last = ThumbFrameFor(CountChannels() - 1); BRect bitmapFrame(first.LeftTop(), last.RightBottom()); - - if (Vertical()) + + if (_Vertical()) bitmapFrame.top -= ThumbRangeFor(0); else bitmapFrame.right += ThumbRangeFor(0); - - fBacking = new BBitmap(bitmapFrame.OffsetToCopy(B_ORIGIN), -#ifdef __HAIKU__ - BScreen(Window()).ColorSpace(), -#else - B_RGB32, -#endif - true, false); + + bitmapFrame.OffsetTo(B_ORIGIN); + fBacking = new BBitmap(bitmapFrame, B_RGBA32, true, false); if (fBacking->Lock()) { - fBackingView = new BView(bitmapFrame.OffsetToCopy(B_ORIGIN), "backing view", B_FOLLOW_NONE, B_WILL_DRAW); + fBackingView = new BView(bitmapFrame, "", 0, B_WILL_DRAW); fBacking->AddChild(fBackingView); fBackingView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); fBackingView->SetLowColor(fBackingView->ViewColor()); fBacking->Unlock(); } } - + BPoint drawHere; drawHere.x = (Bounds().Width() - fBacking->Bounds().Width()) / 2; drawHere.y = (Bounds().Height() - fBacking->Bounds().Height() + fLineFeed) / 2; - + if (fBacking->Lock()) { // Clear the view's background fBackingView->FillRect(fBackingView->Bounds(), B_SOLID_LOW); - + BRect channelArea; int32 channelCount = CountChannels(); for (int32 channel = 0; channel < channelCount; channel++) { @@ -700,16 +707,16 @@ // take into account that the view we draw on is attached to an offscreen // bitmap. Still this doesn't make much sense: // could be that I'm simply missing something. - if (Vertical()) - channelArea.OffsetBy(0, -channelArea.top); + if (_Vertical()) + channelArea.OffsetBy(0, -channelArea.top); else [... truncated: 138 lines follow ...] From julun at mail.berlios.de Thu Jan 8 17:12:24 2009 From: julun at mail.berlios.de (julun at BerliOS) Date: Thu, 8 Jan 2009 17:12:24 +0100 Subject: [Haiku-commits] r28857 - haiku/trunk/src/tests/kits/interface Message-ID: <200901081612.n08GCOJx010874@sheep.berlios.de> Author: julun Date: 2009-01-08 17:12:23 +0100 (Thu, 08 Jan 2009) New Revision: 28857 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28857&view=rev Modified: haiku/trunk/src/tests/kits/interface/ChannelSliderTest.cpp Log: * extend test with sliders containing min/ max labels Modified: haiku/trunk/src/tests/kits/interface/ChannelSliderTest.cpp =================================================================== --- haiku/trunk/src/tests/kits/interface/ChannelSliderTest.cpp 2009-01-08 15:48:10 UTC (rev 28856) +++ haiku/trunk/src/tests/kits/interface/ChannelSliderTest.cpp 2009-01-08 16:12:23 UTC (rev 28857) @@ -8,16 +8,34 @@ :BWindow(BRect(50, 50, 250, 360), "window", B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS) { BChannelSlider *slider = new BChannelSlider(BRect(10, 10, 20, 20), - "vertical slider", "vertical slider", new BMessage('test'), 4); + "vertical slider", "Verticalp", new BMessage('test'), 4); slider->SetOrientation(B_VERTICAL); AddChild(slider); slider->ResizeToPreferred(); - BChannelSlider *horizontal = new BChannelSlider(BRect(100, 20, 136, 30), - "horizontal slider", "horizontal slider", new BMessage('test'), 3); + + slider = new BChannelSlider(BRect(10, 10, 20, 20), "vertical slider", + "Verticalp", new BMessage('test'), B_VERTICAL, 4); + AddChild(slider); + slider->SetLimitLabels("Wminp", "Wmaxp"); + slider->ResizeToPreferred(); + slider->MoveBy(slider->Bounds().Width() + 10.0, 0.0); + + BChannelSlider *horizontal = new BChannelSlider(BRect(150, 10, 160, 20), + "horizontal slider", "Horizontal", new BMessage('test'), 3); AddChild(horizontal); horizontal->ResizeToPreferred(); + + horizontal = new BChannelSlider(BRect(150, 10, 160, 20), + "horizontal slider", "Horizontalp", new BMessage('test'), + B_HORIZONTAL, 3); + AddChild(horizontal); + horizontal->SetLimitLabels("Wminp", "Wmaxp"); + horizontal->ResizeToPreferred(); + horizontal->MoveBy(0.0, horizontal->Bounds().Height() + 10.0); + + ResizeTo(horizontal->Frame().right + 10, slider->Frame().bottom + 10); } - + virtual bool QuitRequested() { be_app->PostMessage(B_QUIT_REQUESTED); return BWindow::QuitRequested() ; } }; @@ -27,18 +45,18 @@ App() : BApplication("application/x-vnd.channelslidertest") { } - + virtual void ReadyToRun() { (new MainWindow())->Show(); } - + }; int main() { App app; - + app.Run(); return 0; From julun at mail.berlios.de Thu Jan 8 17:16:59 2009 From: julun at mail.berlios.de (julun at BerliOS) Date: Thu, 8 Jan 2009 17:16:59 +0100 Subject: [Haiku-commits] r28858 - haiku/trunk/src/kits/interface Message-ID: <200901081616.n08GGxRc011538@sheep.berlios.de> Author: julun Date: 2009-01-08 17:16:58 +0100 (Thu, 08 Jan 2009) New Revision: 28858 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28858&view=rev Modified: haiku/trunk/src/kits/interface/ChannelSlider.cpp Log: * use std::nothrow * implement min/max labels * fix drawing for horizontal sliders * removed commented code value drawing code * changed 'tooltip' to show left/right, top/bottom of the knob Modified: haiku/trunk/src/kits/interface/ChannelSlider.cpp =================================================================== --- haiku/trunk/src/kits/interface/ChannelSlider.cpp 2009-01-08 16:12:23 UTC (rev 28857) +++ haiku/trunk/src/kits/interface/ChannelSlider.cpp 2009-01-08 16:16:58 UTC (rev 28858) @@ -12,6 +12,9 @@ #include +#include + + const static unsigned char kVerticalKnobData[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, @@ -64,7 +67,7 @@ }; -const static float kPadding = 10.0; +const static float kPadding = 3.0; BChannelSlider::BChannelSlider(BRect area, const char *name, const char *label, @@ -110,9 +113,9 @@ BChannelSlider::Instantiate(BMessage *archive) { if (validate_instantiation(archive, "BChannelSlider")) - return new BChannelSlider(archive); - else - return NULL; + return new (std::nothrow) BChannelSlider(archive); + + return NULL; } @@ -242,12 +245,38 @@ _UpdateFontDimens(); _DrawThumbs(); + BRect bounds(Bounds()); if (Label()) { - BRect bounds(Bounds()); float labelWidth = StringWidth(Label()); + DrawString(Label(), BPoint((bounds.Width() - labelWidth) / 2.0, + fBaseLine)); + } - DrawString(Label(), BPoint((bounds.Width() - labelWidth) / 2, fBaseLine)); + if (MinLimitLabel()) { + if (_Vertical()) { + if (MinLimitLabel()) { + float x = (bounds.Width() - StringWidth(MinLimitLabel())) / 2.0; + DrawString(MinLimitLabel(), BPoint(x, bounds.bottom - kPadding)); + } + } else { + if (MinLimitLabel()) + DrawString(MinLimitLabel(), BPoint(kPadding, bounds.bottom - kPadding)); + } } + + if (MaxLimitLabel()) { + if (_Vertical()) { + if (MaxLimitLabel()) { + float x = (bounds.Width() - StringWidth(MaxLimitLabel())) / 2.0; + DrawString(MaxLimitLabel(), BPoint(x, 2 * fLineFeed)); + } + } else { + if (MaxLimitLabel()) { + DrawString(MaxLimitLabel(), BPoint(bounds.right - kPadding - + StringWidth(MaxLimitLabel()), bounds.bottom - kPadding)); + } + } + } } @@ -301,13 +330,16 @@ } if (fInitialValues == NULL) - fInitialValues = new int32[numChannels]; + fInitialValues = new (std::nothrow) int32[numChannels]; - if (fAllChannels) { - for (int32 i = 0; i < numChannels; i++) - fInitialValues[i] = ValueFor(i); - } else - fInitialValues[fCurrentChannel] = ValueFor(fCurrentChannel); + if (fInitialValues) { + if (fAllChannels) { + for (int32 i = 0; i < numChannels; i++) + fInitialValues[i] = ValueFor(i); + } else { + fInitialValues[fCurrentChannel] = ValueFor(fCurrentChannel); + } + } if (Window()->Flags() & B_ASYNCHRONOUS_CONTROLS) { if (!IsTracking()) { @@ -342,8 +374,9 @@ fAllChannels = false; fCurrentChannel = -1; fMinpoint = 0; - } else + } else { BChannelControl::MouseUp(where); + } } @@ -412,20 +445,24 @@ void BChannelSlider::GetPreferredSize(float *width, float *height) { - if (width) { - float _width = (float)ceil(StringWidth(Label())); - if (_Vertical()) { - *width = max_c(_width, 2 + 12 * CountChannels()); - } else { - *width = max_c(_width, 64); - } + _UpdateFontDimens(); + + if (_Vertical()) { + *width = 11.0 * CountChannels(); + *width = max_c(*width, ceilf(StringWidth(Label()))); + *width = max_c(*width, ceilf(StringWidth(MinLimitLabel()))); + *width = max_c(*width, ceilf(StringWidth(MaxLimitLabel()))); + *width += kPadding * 2.0; + + *height = (fLineFeed * 3.0) + (kPadding * 2.0) + 147.0; + } else { + *width = max_c(64.0, ceilf(StringWidth(Label()))); + *width = max_c(*width, ceilf(StringWidth(MinLimitLabel())) + + ceilf(StringWidth(MaxLimitLabel())) + 10.0); + *width += kPadding * 2.0; + + *height = 11.0 * CountChannels() + (fLineFeed * 2.0) + (kPadding * 2.0); } - if (height) { - if (_Vertical()) - *height = 195; - else - *height = 71; - } } @@ -512,9 +549,9 @@ if (thumb == NULL) return; - BRect bitmapBounds = thumb->Bounds(); - where.x -= bitmapBounds.right / 2; - where.y -= bitmapBounds.bottom / 2; + BRect bitmapBounds(thumb->Bounds()); + where.x -= bitmapBounds.right / 2.0; + where.y -= bitmapBounds.bottom / 2.0; into->PushState(); @@ -545,11 +582,11 @@ // TODO: Finish me if (fLeftKnob == NULL) { if (_Vertical()) { - fLeftKnob = new BBitmap(BRect(0, 0, 11, 14), B_CMAP8); - fLeftKnob->SetBits(kVerticalKnobData, sizeof(kVerticalKnobData), - 0, B_CMAP8); + fLeftKnob = new (std::nothrow) BBitmap(BRect(0, 0, 11, 14), B_CMAP8); + fLeftKnob->SetBits(kVerticalKnobData, sizeof(kVerticalKnobData), 0, + B_CMAP8); } else { - fLeftKnob = new BBitmap(BRect(0, 0, 14, 11), B_CMAP8); + fLeftKnob = new (std::nothrow) BBitmap(BRect(0, 0, 14, 11), B_CMAP8); fLeftKnob->SetBits(kHorizontalKnobData, sizeof(kHorizontalKnobData), 0, B_CMAP8); } @@ -564,16 +601,17 @@ { _UpdateFontDimens(); - BRect frame(0, 0, 0, 0); + BRect frame(0.0, 0.0, 0.0, 0.0); const BBitmap *thumb = ThumbFor(channel, false); if (thumb != NULL) { frame = thumb->Bounds(); - if (_Vertical()) - frame.OffsetBy(channel * frame.Width(), fLineFeed + kPadding); - else - frame.OffsetBy(kPadding, fLineFeed + channel * frame.Height()); + if (_Vertical()) { + frame.OffsetBy(channel * frame.Width(), (frame.Height() / 2.0) - + (kPadding * 2.0) - 1.0); + } else { + frame.OffsetBy(frame.Width() / 2.0, channel * frame.Height() + 1.0); + } } - return frame; } @@ -581,7 +619,7 @@ float BChannelSlider::ThumbDeltaFor(int32 channel) { - float delta = 0; + float delta = 0.0; if (channel >= 0 && channel < MaxChannelCount()) { float range = ThumbRangeFor(channel); int32 limitRange = MaxLimitList()[channel] - MinLimitList()[channel]; @@ -603,11 +641,14 @@ float range = 0; BRect bounds = Bounds(); BRect frame = ThumbFrameFor(channel); - if (_Vertical()) - range = bounds.Height() - frame.Height() - (kPadding + fLineFeed) * 2; - else - range = bounds.Width() - frame.Width() - kPadding * 2; - + if (_Vertical()) { + // *height = (fLineFeed * 3.0) + (kPadding * 2.0) + 100.0; + range = bounds.Height() - frame.Height() - (fLineFeed * 3.0) - + (kPadding * 2.0); + } else { + // *width = some width + kPadding * 2.0; + range = bounds.Width() - frame.Width() - (kPadding * 2.0); + } return range; } @@ -642,10 +683,12 @@ bool *inMask = NULL; int32 numChannels = CountChannels(); if (!fAllChannels) { - inMask = new bool[CountChannels()]; - for (int i=0; iLock()) { - fBackingView = new BView(bitmapFrame, "", 0, B_WILL_DRAW); - fBacking->AddChild(fBackingView); - fBackingView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); - fBackingView->SetLowColor(fBackingView->ViewColor()); - fBacking->Unlock(); + rect.OffsetTo(B_ORIGIN); + fBacking = new (std::nothrow) BBitmap(rect, B_RGB32, true); + if (fBacking) { + fBackingView = new (std::nothrow) BView(rect, "", 0, B_WILL_DRAW); + if (fBackingView) { + if (fBacking->Lock()) { + fBacking->AddChild(fBackingView); + fBackingView->SetFontSize(10.0); + fBackingView->SetLowColor(ui_color(B_PANEL_BACKGROUND_COLOR)); + fBackingView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); + fBacking->Unlock(); + } + } else { + delete fBacking; + fBacking = NULL; + } } } BPoint drawHere; - drawHere.x = (Bounds().Width() - fBacking->Bounds().Width()) / 2; - drawHere.y = (Bounds().Height() - fBacking->Bounds().Height() + fLineFeed) / 2; + BRect bounds(fBacking->Bounds()); + drawHere.x = (Bounds().Width() - bounds.Width()) / 2.0; + drawHere.y = (Bounds().Height() - bounds.Height()) - kPadding - fLineFeed; - if (fBacking->Lock()) { - // Clear the view's background - fBackingView->FillRect(fBackingView->Bounds(), B_SOLID_LOW); + if (fBacking && fBackingView) { + if (fBacking->Lock()) { + // Clear the view's background + fBackingView->FillRect(fBackingView->Bounds(), B_SOLID_LOW); - BRect channelArea; - int32 channelCount = CountChannels(); - for (int32 channel = 0; channel < channelCount; channel++) { - channelArea = ThumbFrameFor(channel); - // TODO: This is (apparently) needed because ThumbFrameFor() doesn't - // take into account that the view we draw on is attached to an offscreen - // bitmap. Still this doesn't make much sense: - // could be that I'm simply missing something. - if (_Vertical()) - channelArea.OffsetBy(0, -channelArea.top); - else - channelArea.OffsetBy(0, -channelArea.Height()); + BRect channelArea; + // draw the entire control + for (int32 channel = 0; channel < CountChannels(); channel++) { + channelArea = ThumbFrameFor(channel); + bool pressed = IsTracking() + && (channel == fCurrentChannel || fAllChannels); + DrawChannel(fBackingView, channel, channelArea, pressed); + } - bool pressed = fMinpoint != 0 && (channel == fCurrentChannel || fAllChannels); - DrawChannel(fBackingView, channel, channelArea, pressed); - } + // draw some kind of current value tool tip + if (fCurrentChannel != -1 && fMinpoint != 0) { + char valueString[32]; + snprintf(valueString, 32, "%ld", ValueFor(fCurrentChannel)); + float stringWidth = fBackingView->StringWidth(valueString); + float width = max_c(10.0, stringWidth); + BRect valueRect(0.0, 0.0, width, 10.0); -#if 1 - // This part draws the current value over the thumb. - // TODO: make it nicer. Simplify the code. - if (fCurrentChannel != -1 && fMinpoint != 0) { - char valueString[32]; - snprintf(valueString, 32, "%ld", ValueFor(fCurrentChannel)); - float width = fBackingView->StringWidth(valueString); - BRect valueRect(0, 0, width, 10); - rgb_color oldColor = fBackingView->HighColor(); - if (_Vertical()) - valueRect.OffsetTo((ThumbFrameFor(fCurrentChannel).Width() - width) / 2 + fCurrentChannel * ThumbFrameFor(fCurrentChannel).Width(), - ThumbDeltaFor(fCurrentChannel)); - else - valueRect.OffsetTo(ThumbDeltaFor(fCurrentChannel), ThumbFrameFor(fCurrentChannel).top - 10); - fBackingView->SetHighColor(255, 255, 172); - fBackingView->FillRect(valueRect); - fBackingView->SetHighColor(0, 0, 0); - valueRect.OffsetBy(1 , 9); - fBackingView->DrawString(valueString, valueRect.LeftTop()); - fBackingView->SetHighColor(oldColor); - } -#endif - fBackingView->Sync(); - fBacking->Unlock(); - } + BRect thumbFrame(ThumbFrameFor(fCurrentChannel)); + float thumbDelta(ThumbDeltaFor(fCurrentChannel)); - DrawBitmapAsync(fBacking, drawHere); + if (_Vertical()) { + valueRect.OffsetTo((thumbFrame.Width() - width) / 2.0 + + fCurrentChannel * thumbFrame.Width(), + thumbDelta + thumbFrame.Height() + 2.0); + if (valueRect.bottom > fBackingView->Frame().bottom) + valueRect.OffsetBy(0.0, -(thumbFrame.Height() + 12.0)); + } else { + valueRect.OffsetTo((thumbDelta - (width + 2.0)), thumbFrame.top); + if (valueRect.left < fBackingView->Frame().left) + valueRect.OffsetBy(thumbFrame.Width() + width + 2.0, 0.0); + } -#if 0 - // this part draws the value at the bottom of the sliders. - if (fCurrentChannel != -1 && fMinpoint != 0) { - char valueString[32]; - snprintf(valueString, 32, "%ld", ValueFor(fCurrentChannel)); - BPoint stringPoint = drawHere; - float stringWidth = StringWidth(valueString); - stringPoint.x += (fBacking->Bounds().Width() - stringWidth) / 2; - stringPoint.y += fBacking->Bounds().Height() + fBaseLine; - BRect stringRect(stringPoint, stringPoint); - stringRect.left -= 10; - stringRect.right += StringWidth("100"); - stringRect.top -= fLineFeed; + rgb_color oldColor = fBackingView->HighColor(); + fBackingView->SetHighColor(255, 255, 172); + fBackingView->FillRect(valueRect); + fBackingView->SetHighColor(0, 0, 0); + fBackingView->DrawString(valueString, BPoint(valueRect.left + + (valueRect.Width() - stringWidth) / 2.0, valueRect.bottom -1.0)); + fBackingView->StrokeRect(valueRect.InsetByCopy(-0.5, -0.5)); + fBackingView->SetHighColor(oldColor); + } - SetHighColor(ViewColor()); - FillRect(stringRect); - - SetHighColor(0, 0, 0); - DrawString(valueString, stringPoint); + fBackingView->Sync(); + fBacking->Unlock(); + } } -#endif + if (fBacking) + DrawBitmapAsync(fBacking, drawHere); + // fClickDelta is used in MouseMoved() fClickDelta = drawHere; - - // TODO: See above - if (_Vertical()) - fClickDelta.y -= ThumbFrameFor(0).top; - else - fClickDelta.y -= ThumbFrameFor(0).Height(); } void BChannelSlider::_DrawGrooveFrame(BView *into, const BRect &area) { - rgb_color oldColor = into->HighColor(); + if (into) { + rgb_color oldColor = into->HighColor(); - into->SetHighColor(255, 255, 255); - into->StrokeRect(area); - into->SetHighColor(tint_color(into->ViewColor(), B_DARKEN_1_TINT)); - into->StrokeLine(area.LeftTop(), BPoint(area.right, area.top)); - into->StrokeLine(area.LeftTop(), BPoint(area.left, area.bottom - 1)); - into->SetHighColor(tint_color(into->ViewColor(), B_DARKEN_2_TINT)); - into->StrokeLine(BPoint(area.left + 1, area.top + 1), BPoint(area.right - 1, area.top + 1)); - into->StrokeLine(BPoint(area.left + 1, area.top + 1), BPoint(area.left + 1, area.bottom - 2)); + into->SetHighColor(255, 255, 255); + into->StrokeRect(area); + into->SetHighColor(tint_color(into->ViewColor(), B_DARKEN_1_TINT)); + into->StrokeLine(area.LeftTop(), BPoint(area.right, area.top)); + into->StrokeLine(area.LeftTop(), BPoint(area.left, area.bottom - 1)); + into->SetHighColor(tint_color(into->ViewColor(), B_DARKEN_2_TINT)); + into->StrokeLine(BPoint(area.left + 1, area.top + 1), + BPoint(area.right - 1, area.top + 1)); + into->StrokeLine(BPoint(area.left + 1, area.top + 1), + BPoint(area.left + 1, area.bottom - 2)); - into->SetHighColor(oldColor); + into->SetHighColor(oldColor); + } } From axeld at mail.berlios.de Thu Jan 8 19:31:23 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Thu, 8 Jan 2009 19:31:23 +0100 Subject: [Haiku-commits] r28859 - haiku/trunk/src/add-ons/kernel/network/protocols/tcp Message-ID: <200901081831.n08IVNkD028803@sheep.berlios.de> Author: axeld Date: 2009-01-08 19:31:22 +0100 (Thu, 08 Jan 2009) New Revision: 28859 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28859&view=rev Modified: haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp Log: * BufferQueue::Get(size_t ...) now always returns successfully if it does not return an empty buffer. This should avoid losing data in case not everything could be appended due to a resource shortage. * Also, it now assures that fNumBytes and fContiguousBytes are always maintained correctly, thanks to Adrian for pointing this out! This should fix bug #2594. * Added extra debug code to BufferQueue::RemoveUntil() so that it checks whether or not fContiguousBytes could be maintained correctly (ie. if this function is called only as thought). Modified: haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp 2009-01-08 16:16:58 UTC (rev 28858) +++ haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp 2009-01-08 18:31:22 UTC (rev 28859) @@ -1,5 +1,5 @@ /* - * Copyright 2006-2007, Haiku, Inc. All Rights Reserved. + * Copyright 2006-2009, Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. * * Authors: @@ -183,12 +183,10 @@ } -/*! - Removes all data in the queue up to the \a sequence number as specified. +/*! Removes all data in the queue up to the \a sequence number as specified. - NOTE: - If there are missing segments in the buffers to be removed, - fContiguousBytes is not maintained correctly! + NOTE: If there are missing segments in the buffers to be removed, + fContiguousBytes is not maintained correctly! */ status_t BufferQueue::RemoveUntil(tcp_sequence sequence) @@ -199,14 +197,20 @@ return B_OK; SegmentList::Iterator iterator = fList.GetIterator(); + tcp_sequence lastRemoved = fFirstSequence; net_buffer *buffer = NULL; while ((buffer = iterator.Next()) != NULL && buffer->sequence < sequence) { + ASSERT(lastRemoved == buffer->sequence); + // This assures that the queue has no holes, and fContiguousBytes + // is maintained correctly. + if (sequence >= buffer->sequence + buffer->size) { // remove this buffer completely iterator.Remove(); fNumBytes -= buffer->size; fContiguousBytes -= buffer->size; + lastRemoved = buffer->sequence + buffer->size; gBufferModule->free(buffer); } else { // remove the header as far as needed @@ -229,8 +233,7 @@ } -/*! - Clones the requested data in the buffer queue into the provided \a buffer. +/*! Clones the requested data in the buffer queue into the provided \a buffer. */ status_t BufferQueue::Get(net_buffer *buffer, tcp_sequence sequence, size_t bytes) @@ -260,8 +263,10 @@ if (source == NULL) panic("we should have had that data..."); - if (source->sequence > sequence) - panic("source %p, sequence = %lu (%lu)\n", source, source->sequence, (uint32)sequence); + if (source->sequence > sequence) { + panic("source %p, sequence = %lu (%lu)\n", source, source->sequence, + (uint32)sequence); + } // clone the data @@ -269,7 +274,8 @@ while (source != NULL && bytesLeft > 0) { size_t size = min_c(source->size - offset, bytesLeft); - status_t status = gBufferModule->append_cloned(buffer, source, offset, size); + status_t status = gBufferModule->append_cloned(buffer, source, offset, + size); if (status < B_OK) return status; @@ -282,8 +288,7 @@ } -/*! - Creates a new buffer containing \a bytes bytes from the start of the +/*! Creates a new buffer containing \a bytes bytes from the start of the buffer queue. If \a remove is \c true, the data is removed from the queue, if not, the data is cloned from the queue. */ @@ -345,16 +350,21 @@ } } - if (status == B_OK) { - *_buffer = buffer; - if (remove) { - fNumBytes -= bytes; - fContiguousBytes -= bytes; - } - } else + if (remove && buffer->size) { + fNumBytes -= buffer->size; + fContiguousBytes -= buffer->size; + } + + // We always return what we got, or else we would lose data + if (status < B_OK && buffer->size == 0) { + // We could not remove any bytes from the buffer, so + // let this call fail. gBufferModule->free(buffer); + return status; + } - return status; + *_buffer = buffer; + return B_OK; } From korli at mail.berlios.de Fri Jan 9 00:39:04 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Fri, 9 Jan 2009 00:39:04 +0100 Subject: [Haiku-commits] r28860 - haiku/trunk/src/add-ons/kernel/drivers/audio/hda Message-ID: <200901082339.n08Nd43K015374@sheep.berlios.de> Author: korli Date: 2009-01-09 00:39:02 +0100 (Fri, 09 Jan 2009) New Revision: 28860 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28860&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp Log: * fixed Haiku version of B_MULTI_GET_DESCRIPTION * use user_memcpy for Haiku in buffer exchange, with interrupts enabled Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp 2009-01-08 18:31:22 UTC (rev 28859) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp 2009-01-08 23:39:02 UTC (rev 28860) @@ -793,6 +793,9 @@ static int debug_buffers_exchanged = 0; cpu_status status; status_t err; + bigtime_t played_real_time, recorded_real_time; + uint64 played_frames_count, recorded_frames_count; + int32 playback_buffer_cycle, record_buffer_cycle; // TODO: support recording! if (audioGroup->playback_stream == NULL) @@ -819,22 +822,36 @@ status = disable_interrupts(); acquire_spinlock(&audioGroup->playback_stream->lock); - data->playback_buffer_cycle = audioGroup->playback_stream->buffer_cycle; - data->played_real_time = audioGroup->playback_stream->real_time; - data->played_frames_count = audioGroup->playback_stream->frames_count; + playback_buffer_cycle = audioGroup->playback_stream->buffer_cycle; + played_real_time = audioGroup->playback_stream->real_time; + played_frames_count = audioGroup->playback_stream->frames_count; release_spinlock(&audioGroup->playback_stream->lock); if (audioGroup->record_stream) { acquire_spinlock(&audioGroup->record_stream->lock); - data->record_buffer_cycle = audioGroup->record_stream->buffer_cycle; - data->recorded_real_time = audioGroup->record_stream->real_time; - data->recorded_frames_count = audioGroup->record_stream->frames_count; + record_buffer_cycle = audioGroup->record_stream->buffer_cycle; + recorded_real_time = audioGroup->record_stream->real_time; + recorded_frames_count = audioGroup->record_stream->frames_count; release_spinlock(&audioGroup->record_stream->lock); } restore_interrupts(status); +#ifdef __HAIKU__ +#define copy_to_user(x, y) if (user_memcpy(&x, &y, sizeof(x)) < B_OK) \ + return B_BAD_ADDRESS +#else +#define copy_to_user(x, y) x = y +#endif + + copy_to_user(data->playback_buffer_cycle, playback_buffer_cycle); + copy_to_user(data->played_real_time, played_real_time); + copy_to_user(data->played_frames_count, played_frames_count); + copy_to_user(data->record_buffer_cycle, record_buffer_cycle); + copy_to_user(data->recorded_real_time, recorded_real_time); + copy_to_user(data->recorded_frames_count, recorded_frames_count); + debug_buffers_exchanged++; if (((debug_buffers_exchanged % 100) == 1) && (debug_buffers_exchanged < 1111)) { dprintf("%s: %d buffers processed\n", __func__, debug_buffers_exchanged); @@ -878,7 +895,7 @@ switch (op) { case B_MULTI_GET_DESCRIPTION: { -#ifdef __HAIKU +#ifdef __HAIKU__ multi_description description; multi_channel_info channels[16]; multi_channel_info* originalChannels; @@ -897,10 +914,11 @@ return status; description.channels = originalChannels; - return user_memcpy(arg, &description, sizeof(multi_description)) - && user_memcpy(originalChannels, channels, - sizeof(multi_channel_info) - * description.request_channel_count; + if (user_memcpy(arg, &description, sizeof(multi_description)) + != B_OK) + return B_BAD_ADDRESS; + return user_memcpy(originalChannels, channels, sizeof(multi_channel_info) + * description.request_channel_count); #else return get_description(audioGroup, (multi_description*)arg); #endif From korli at mail.berlios.de Fri Jan 9 00:45:19 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Fri, 9 Jan 2009 00:45:19 +0100 Subject: [Haiku-commits] r28861 - haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich Message-ID: <200901082345.n08NjJXA021342@sheep.berlios.de> Author: korli Date: 2009-01-09 00:45:16 +0100 (Fri, 09 Jan 2009) New Revision: 28861 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28861&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/ac97.c haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/auich.c haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/multi.c Log: * style fixes * use user_memcpy in buffer exchange for Haiku Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/ac97.c =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/ac97.c 2009-01-08 23:39:02 UTC (rev 28860) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/ac97.c 2009-01-08 23:45:16 UTC (rev 28861) @@ -28,6 +28,7 @@ */ #include #include +#include #include #include "ac97.h" #include "debug.h" Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/auich.c =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/auich.c 2009-01-08 23:39:02 UTC (rev 28860) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/auich.c 2009-01-08 23:45:16 UTC (rev 28861) @@ -111,14 +111,16 @@ return mem; } + static void auich_mem_delete(auich_mem *mem) { - if(mem->area > B_OK) + if (mem->area > B_OK) delete_area(mem->area); free(mem); } + static void * auich_mem_alloc(auich_dev *card, size_t size) { @@ -133,6 +135,7 @@ return mem; } + static void auich_mem_free(auich_dev *card, void *ptr) { @@ -162,7 +165,7 @@ (stream->sample_rate == sample_rate)) return B_OK; - if(stream->buffer) + if (stream->buffer) auich_mem_free(stream->card, stream->buffer->log_base); stream->b16 = b16; @@ -181,6 +184,7 @@ return B_OK; } + status_t auich_stream_commit_parms(auich_stream *stream) { @@ -193,20 +197,20 @@ auich_reg_write_8(&stream->card->config, stream->base + AUICH_REG_X_CR, CR_RR); for (i = 10000; i>=0; i--) { - if(0 == auich_reg_read_8(&stream->card->config, stream->base + AUICH_REG_X_CR)) { + if (0 == auich_reg_read_8(&stream->card->config, stream->base + AUICH_REG_X_CR)) { LOG(("channel reset finished, %x, %d\n", stream->base, i)); break; } spin(1); } - if(i < 0) { + if (i < 0) { LOG(("channel reset failed after 10ms\n")); } page = stream->dmaops_log_base; - for(i=0; i < AUICH_DMALIST_MAX; i++) { + for (i=0; i < AUICH_DMALIST_MAX; i++) { page[2*i] = ((uint32)stream->buffer->phy_base) + (i % stream->bufcount) * stream->blksize; page[2*i + 1] = AUICH_DMAF_IOC | (stream->blksize @@ -217,18 +221,19 @@ auich_reg_write_32(&stream->card->config, stream->base + AUICH_REG_X_BDBAR, (uint32)stream->dmaops_phy_base); - if(stream->use & AUICH_USE_RECORD) + if (stream->use & AUICH_USE_RECORD) auich_codec_write(&stream->card->config, AC97_PCM_L_R_ADC_RATE, (uint16)stream->sample_rate); else auich_codec_write(&stream->card->config, AC97_PCM_FRONT_DAC_RATE, (uint16)stream->sample_rate); - if(stream->use & AUICH_USE_RECORD) + if (stream->use & AUICH_USE_RECORD) LOG(("rate : %d\n", auich_codec_read(&stream->card->config, AC97_PCM_L_R_ADC_RATE))); else LOG(("rate : %d\n", auich_codec_read(&stream->card->config, AC97_PCM_FRONT_DAC_RATE))); return B_OK; } + status_t auich_stream_get_nth_buffer(auich_stream *stream, uint8 chan, uint8 buf, char** buffer, size_t *stride) @@ -246,6 +251,7 @@ return B_OK; } + static uint8 auich_stream_curaddr(auich_stream *stream) { @@ -254,6 +260,7 @@ return index; } + void auich_stream_start(auich_stream *stream, void (*inth) (void *), void *inthparam) { @@ -284,6 +291,7 @@ #endif } + void auich_stream_halt(auich_stream *stream) { @@ -295,6 +303,7 @@ auich_reg_read_8(&stream->card->config, stream->base + AUICH_REG_X_CR) & ~CR_RPBM); } + auich_stream * auich_stream_new(auich_dev *card, uint8 use, uint32 bufframes, uint8 bufcount) { @@ -320,7 +329,7 @@ stream->trigblk = 0; stream->blkmod = 0; - if(use & AUICH_USE_PLAY) { + if (use & AUICH_USE_PLAY) { stream->base = AUICH_REG_PO_BASE; stream->sta = STA_POINT; } else { @@ -350,6 +359,7 @@ return stream; } + void auich_stream_delete(auich_stream *stream) { @@ -364,14 +374,14 @@ auich_reg_write_8(&stream->card->config, stream->base + AUICH_REG_X_CR, CR_RR); for (i = 10000; i>=0; i--) { - if(0 == auich_reg_read_8(&stream->card->config, stream->base + AUICH_REG_X_CR)) { + if (0 == auich_reg_read_8(&stream->card->config, stream->base + AUICH_REG_X_CR)) { LOG(("channel reset finished, %x, %d\n", stream->base, i)); break; } spin(1); } - if(i < 0) { + if (i < 0) { LOG(("channel reset failed after 10ms\n")); } @@ -380,7 +390,7 @@ if (stream->dmaops_area > B_OK) delete_area(stream->dmaops_area); - if(stream->buffer) + if (stream->buffer) auich_mem_free(stream->card, stream->buffer->log_base); status = lock(); @@ -422,7 +432,7 @@ stream->base + GET_REG_SR(&stream->card->config)); sr &= SR_MASK; - if(!sr) + if (!sr) continue; gotone = true; @@ -435,7 +445,7 @@ stream->trigblk = (curblk) % stream->blkmod; - if(stream->inth) + if (stream->inth) stream->inth(stream->inthparam); } else { TRACE(("interrupt !! sta %x, sr %x\n", sta, sr)); @@ -504,6 +514,7 @@ return B_OK; } + static status_t unmap_io_memory(device_config *config) { @@ -572,6 +583,7 @@ return err; } + static void make_device_names( auich_dev * card) @@ -597,6 +609,7 @@ return B_OK; } + static status_t auich_setup(auich_dev * card) { @@ -735,7 +748,7 @@ return ENOSYS; while ((*pci->get_nth_pci_info)(ix, &info) == B_OK) { - if((info.vendor_id == INTEL_VENDOR_ID && + if ((info.vendor_id == INTEL_VENDOR_ID && (info.device_id == INTEL_82443MX_AC97_DEVICE_ID || info.device_id == INTEL_82801AA_AC97_DEVICE_ID || info.device_id == INTEL_82801AB_AC97_DEVICE_ID Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/multi.c =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/multi.c 2009-01-08 23:39:02 UTC (rev 28860) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/multi.c 2009-01-08 23:45:16 UTC (rev 28861) @@ -56,24 +56,24 @@ case B_MIX_GAIN: value = auich_codec_read(&dev->config, info->reg); //PRINT(("B_MIX_GAIN value : %u\n", value)); - if(info->type & B_MIX_STEREO) { + if (info->type & B_MIX_STEREO) { mask = ((1 << (info->bits + 1)) - 1) << 8; gain = ((value & mask) >> 8) * info->granularity; - if(info->polarity == 1) + if (info->polarity == 1) values[0] = info->max_gain - gain; else values[0] = gain - info->min_gain; mask = ((1 << (info->bits + 1)) - 1); gain = (value & mask) * info->granularity; - if(info->polarity == 1) + if (info->polarity == 1) values[1] = info->max_gain - gain; else values[1] = gain - info->min_gain; } else { mask = ((1 << (info->bits + 1)) - 1); gain = (value & mask) * info->granularity; - if(info->polarity == 1) + if (info->polarity == 1) values[0] = info->max_gain - gain; else values[0] = gain - info->min_gain; @@ -103,6 +103,7 @@ } } + static void auich_ac97_set_mix(void *card, const void *cookie, int32 type, float *values) { auich_dev *dev = (auich_dev*)card; @@ -113,11 +114,11 @@ switch(type) { case B_MIX_GAIN: value = auich_codec_read(&dev->config, info->reg); - if(info->type & B_MIX_STEREO) { + if (info->type & B_MIX_STEREO) { mask = ((1 << (info->bits + 1)) - 1) << 8; value &= ~mask; - if(info->polarity == 1) + if (info->polarity == 1) gain = info->max_gain - values[0]; else gain = values[0] - info->min_gain; @@ -125,7 +126,7 @@ mask = ((1 << (info->bits + 1)) - 1); value &= ~mask; - if(info->polarity == 1) + if (info->polarity == 1) gain = info->max_gain - values[1]; else gain = values[1] - info->min_gain; @@ -133,7 +134,7 @@ } else { mask = ((1 << (info->bits + 1)) - 1); value &= ~mask; - if(info->polarity == 1) + if (info->polarity == 1) gain = info->max_gain - values[0]; else gain = values[0] - info->min_gain; @@ -147,7 +148,7 @@ value = auich_codec_read(&dev->config, info->reg); value &= ~mask; value |= ((values[0] == 1.0 ? 1 : 0 ) << 15 & mask); - if(info->reg == AC97_SURR_VOLUME) { + if (info->reg == AC97_SURR_VOLUME) { // there is a independent mute for each channel mask = ((1 << 1) - 1) << 7; value &= ~mask; @@ -175,6 +176,7 @@ } + static int32 auich_create_group_control(multi_dev *multi, int32 *index, int32 parent, int32 string, const char* name) { @@ -185,12 +187,13 @@ multi->controls[i].mix_control.flags = B_MULTI_MIX_GROUP; multi->controls[i].mix_control.master = EMU_MULTI_CONTROL_MASTERID; multi->controls[i].mix_control.string = string; - if(name) + if (name) strcpy(multi->controls[i].mix_control.name, name); return multi->controls[i].mix_control.id; } + static status_t auich_create_controls_list(multi_dev *multi) { @@ -203,14 +206,14 @@ count = source_info_size; //Note that we ignore first item in source_info //It's for recording, but do match this with ac97.c's source_info - for(i=1; i < count ; i++) { + for (i=1; i < count ; i++) { info = &source_info[i]; PRINT(("name : %s\n", info->name)); parent2 = auich_create_group_control(multi, &index, parent, 0, info->name); - if(info->type & B_MIX_GAIN) { - if(info->type & B_MIX_MUTE) { + if (info->type & B_MIX_GAIN) { + if (info->type & B_MIX_MUTE) { multi->controls[index].mix_control.id = EMU_MULTI_CONTROL_FIRSTID + index; multi->controls[index].mix_control.flags = B_MULTI_MIX_ENABLE; multi->controls[index].mix_control.master = EMU_MULTI_CONTROL_MASTERID; @@ -238,7 +241,7 @@ id = multi->controls[index].mix_control.id; index++; - if(info->type & B_MIX_STEREO) { + if (info->type & B_MIX_STEREO) { multi->controls[index].mix_control.id = EMU_MULTI_CONTROL_FIRSTID + index; multi->controls[index].mix_control.flags = B_MULTI_MIX_GAIN; multi->controls[index].mix_control.master = id; @@ -254,7 +257,7 @@ index++; } - if(info->type & B_MIX_MICBOOST) { + if (info->type & B_MIX_MICBOOST) { multi->controls[index].mix_control.id = EMU_MULTI_CONTROL_FIRSTID + index; multi->controls[index].mix_control.flags = B_MULTI_MIX_ENABLE; multi->controls[index].mix_control.master = EMU_MULTI_CONTROL_MASTERID; @@ -277,8 +280,8 @@ parent2 = auich_create_group_control(multi, &index, parent, 0, info->name); - if(info->type & B_MIX_GAIN) { - if(info->type & B_MIX_MUTE) { + if (info->type & B_MIX_GAIN) { + if (info->type & B_MIX_MUTE) { multi->controls[index].mix_control.id = EMU_MULTI_CONTROL_FIRSTID + index; multi->controls[index].mix_control.flags = B_MULTI_MIX_ENABLE; multi->controls[index].mix_control.master = EMU_MULTI_CONTROL_MASTERID; @@ -306,7 +309,7 @@ id = multi->controls[index].mix_control.id; index++; - if(info->type & B_MIX_STEREO) { + if (info->type & B_MIX_STEREO) { multi->controls[index].mix_control.id = EMU_MULTI_CONTROL_FIRSTID + index; multi->controls[index].mix_control.flags = B_MULTI_MIX_GAIN; multi->controls[index].mix_control.master = id; @@ -322,7 +325,7 @@ index++; } - if(info->type & B_MIX_RECORDMUX) { + if (info->type & B_MIX_RECORDMUX) { multi->controls[index].mix_control.id = EMU_MULTI_CONTROL_FIRSTID + index; multi->controls[index].mix_control.flags = B_MULTI_MIX_MUX; multi->controls[index].mix_control.parent = parent2; @@ -382,37 +385,38 @@ return B_OK; } + static status_t auich_get_mix(auich_dev *card, multi_mix_value_info * MMVI) { int32 i, id; multi_mixer_control *control = NULL; - for(i=0; iitem_count; i++) { + for (i=0; iitem_count; i++) { id = MMVI->values[i].id - EMU_MULTI_CONTROL_FIRSTID; - if(id < 0 || id >= card->multi.control_count) { + if (id < 0 || id >= card->multi.control_count) { PRINT(("auich_get_mix : invalid control id requested : %li\n", id)); continue; } control = &card->multi.controls[id]; - if(control->mix_control.flags & B_MULTI_MIX_GAIN) { - if(control->get) { + if (control->mix_control.flags & B_MULTI_MIX_GAIN) { + if (control->get) { float values[2]; control->get(card, control->cookie, control->type, values); - if(control->mix_control.master == EMU_MULTI_CONTROL_MASTERID) + if (control->mix_control.master == EMU_MULTI_CONTROL_MASTERID) MMVI->values[i].u.gain = values[0]; else MMVI->values[i].u.gain = values[1]; } } - if(control->mix_control.flags & B_MULTI_MIX_ENABLE && control->get) { + if (control->mix_control.flags & B_MULTI_MIX_ENABLE && control->get) { float values[1]; control->get(card, control->cookie, control->type, values); MMVI->values[i].u.enable = (values[0] == 1.0); } - if(control->mix_control.flags & B_MULTI_MIX_MUX && control->get) { + if (control->mix_control.flags & B_MULTI_MIX_MUX && control->get) { float values[1]; control->get(card, control->cookie, control->type, values); MMVI->values[i].u.mux = (int32)values[0]; @@ -421,60 +425,61 @@ return B_OK; } + static status_t auich_set_mix(auich_dev *card, multi_mix_value_info * MMVI) { int32 i, id; multi_mixer_control *control = NULL; - for(i=0; iitem_count; i++) { + for (i=0; iitem_count; i++) { id = MMVI->values[i].id - EMU_MULTI_CONTROL_FIRSTID; - if(id < 0 || id >= card->multi.control_count) { + if (id < 0 || id >= card->multi.control_count) { PRINT(("auich_set_mix : invalid control id requested : %li\n", id)); continue; } control = &card->multi.controls[id]; - if(control->mix_control.flags & B_MULTI_MIX_GAIN) { + if (control->mix_control.flags & B_MULTI_MIX_GAIN) { multi_mixer_control *control2 = NULL; - if(i+1item_count) { + if (i+1item_count) { id = MMVI->values[i + 1].id - EMU_MULTI_CONTROL_FIRSTID; - if(id < 0 || id >= card->multi.control_count) { + if (id < 0 || id >= card->multi.control_count) { PRINT(("auich_set_mix : invalid control id requested : %li\n", id)); } else { control2 = &card->multi.controls[id]; - if(control2->mix_control.master != control->mix_control.id) + if (control2->mix_control.master != control->mix_control.id) control2 = NULL; } } - if(control->set) { + if (control->set) { float values[2]; values[0] = 0.0; values[1] = 0.0; - if(control->mix_control.master == EMU_MULTI_CONTROL_MASTERID) + if (control->mix_control.master == EMU_MULTI_CONTROL_MASTERID) values[0] = MMVI->values[i].u.gain; else values[1] = MMVI->values[i].u.gain; - if(control2 && control2->mix_control.master != EMU_MULTI_CONTROL_MASTERID) + if (control2 && control2->mix_control.master != EMU_MULTI_CONTROL_MASTERID) values[1] = MMVI->values[i+1].u.gain; control->set(card, control->cookie, control->type, values); } - if(control2) + if (control2) i++; } - if(control->mix_control.flags & B_MULTI_MIX_ENABLE && control->set) { + if (control->mix_control.flags & B_MULTI_MIX_ENABLE && control->set) { float values[1]; values[0] = MMVI->values[i].u.enable ? 1.0 : 0.0; control->set(card, control->cookie, control->type, values); } - if(control->mix_control.flags & B_MULTI_MIX_MUX && control->set) { + if (control->mix_control.flags & B_MULTI_MIX_MUX && control->set) { float values[1]; values[0] = (float)MMVI->values[i].u.mux; @@ -484,6 +489,7 @@ return B_OK; } + static status_t auich_list_mix_controls(auich_dev *card, multi_mix_control_info * MMCI) { @@ -491,12 +497,12 @@ int32 i; MMC = MMCI->controls; - if(MMCI->control_count < 24) + if (MMCI->control_count < 24) return B_ERROR; - if(auich_create_controls_list(&card->multi) < B_OK) + if (auich_create_controls_list(&card->multi) < B_OK) return B_ERROR; - for(i=0; imulti.control_count; i++) { + for (i=0; imulti.control_count; i++) { MMC[i] = card->multi.controls[i].mix_control; } @@ -504,12 +510,14 @@ return B_OK; } + static status_t auich_list_mix_connections(auich_dev *card, multi_mix_connection_info * data) { return B_ERROR; } + static status_t auich_list_mix_channels(auich_dev *card, multi_mix_channel_info *data) { @@ -567,18 +575,18 @@ chans = multi->chans; index = 0; - for(mode=AUICH_USE_PLAY; mode!=-1; + for (mode=AUICH_USE_PLAY; mode!=-1; mode = (mode == AUICH_USE_PLAY) ? AUICH_USE_RECORD : -1) { LIST_FOREACH(stream, &((auich_dev*)multi->card)->streams, next) { if ((stream->use & mode) == 0) continue; - if(stream->channels == 2) + if (stream->channels == 2) designations = B_CHANNEL_STEREO_BUS; else designations = B_CHANNEL_SURROUND_BUS; - for(i=0; ichannels; i++) { + for (i=0; ichannels; i++) { chans[index].channel_id = index; chans[index].kind = (mode == AUICH_USE_PLAY) ? B_MULTI_OUTPUT_CHANNEL : B_MULTI_INPUT_CHANNEL; chans[index].designations = designations | chan_designations[i]; @@ -587,7 +595,7 @@ } } - if(mode==AUICH_USE_PLAY) { + if (mode==AUICH_USE_PLAY) { multi->output_channel_count = index; } else { multi->input_channel_count = index - multi->output_channel_count; @@ -699,6 +707,7 @@ return B_OK; } + static status_t auich_get_enabled_channels(auich_dev *card, multi_channel_enable *data) { @@ -716,6 +725,7 @@ return B_OK; } + static status_t auich_set_enabled_channels(auich_dev *card, multi_channel_enable *data) { @@ -726,6 +736,7 @@ return B_OK; } + static status_t auich_get_global_format(auich_dev *card, multi_format_info *data) { @@ -746,6 +757,7 @@ return B_OK; } + static status_t auich_get_buffers(auich_dev *card, multi_buffer_list *data) { @@ -779,11 +791,11 @@ data->return_playback_buffer_size = current_settings.buffer_frames; /* frames */ bufcount = current_settings.buffer_count; - if(bufcount > data->request_playback_buffers) + if (bufcount > data->request_playback_buffers) bufcount = data->request_playback_buffers; - for(i=0; ipstream, j, i, &data->playback_buffers[i][j].base, &data->playback_buffers[i][j].stride); @@ -793,11 +805,11 @@ data->return_record_buffer_size = current_settings.buffer_frames; /* frames */ bufcount = current_settings.buffer_count; - if(bufcount > data->request_record_buffers) + if (bufcount > data->request_record_buffers) bufcount = data->request_record_buffers; - for(i=0; irstream, j, i, &data->record_buffers[i][j].base, &data->record_buffers[i][j].stride); @@ -827,6 +839,7 @@ release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE); } + static void auich_record_inth(void* inthparams) { @@ -848,11 +861,15 @@ release_sem_etc(stream->card->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE); } + static status_t auich_buffer_exchange(auich_dev *card, multi_buffer_info *data) { cpu_status status; auich_stream *pstream, *rstream; + bigtime_t played_real_time, recorded_real_time; + uint64 played_frames_count, recorded_frames_count; + int32 playback_buffer_cycle, record_buffer_cycle, _reserved_0, _reserved_1; data->flags = B_MULTI_BUFFER_PLAYBACK | B_MULTI_BUFFER_RECORD; @@ -862,7 +879,7 @@ if (!(card->rstream->state & AUICH_STATE_STARTED)) auich_stream_start(card->rstream, auich_record_inth, card->rstream); - if(acquire_sem_etc(card->buffer_ready_sem, 1, B_RELATIVE_TIMEOUT | B_CAN_INTERRUPT, 50000) + if (acquire_sem_etc(card->buffer_ready_sem, 1, B_RELATIVE_TIMEOUT | B_CAN_INTERRUPT, 50000) == B_TIMED_OUT) { LOG(("buffer_exchange timeout ff\n")); } @@ -873,7 +890,7 @@ if ((pstream->use & AUICH_USE_PLAY) == 0 || (pstream->state & AUICH_STATE_STARTED) == 0) continue; - if(pstream->update_needed) + if (pstream->update_needed) break; } @@ -881,34 +898,51 @@ if ((rstream->use & AUICH_USE_RECORD) == 0 || (rstream->state & AUICH_STATE_STARTED) == 0) continue; - if(rstream->update_needed) + if (rstream->update_needed) break; } - if(!pstream) + if (!pstream) pstream = card->pstream; - if(!rstream) + if (!rstream) rstream = card->rstream; /* do playback */ - data->playback_buffer_cycle = pstream->buffer_cycle; - data->played_real_time = pstream->real_time; - data->played_frames_count = pstream->frames_count; - data->_reserved_0 = pstream->first_channel; + playback_buffer_cycle = pstream->buffer_cycle; + played_real_time = pstream->real_time; + played_frames_count = pstream->frames_count; + _reserved_0 = pstream->first_channel; pstream->update_needed = false; /* do record */ - data->record_buffer_cycle = rstream->buffer_cycle; - data->recorded_frames_count = rstream->frames_count; - data->recorded_real_time = rstream->real_time; - data->_reserved_1 = rstream->first_channel; + record_buffer_cycle = rstream->buffer_cycle; + recorded_frames_count = rstream->frames_count; + recorded_real_time = rstream->real_time; + _reserved_1 = rstream->first_channel; rstream->update_needed = false; unlock(status); - + +#ifdef __HAIKU__ +#define copy_to_user(x, y) if (user_memcpy(&x, &y, sizeof(x)) < B_OK) \ + return B_BAD_ADDRESS +#else +#define copy_to_user(x, y) x = y +#endif + + copy_to_user(data->playback_buffer_cycle, playback_buffer_cycle); + copy_to_user(data->played_real_time, played_real_time); + copy_to_user(data->played_frames_count, played_frames_count); + copy_to_user(data->_reserved_0, _reserved_0); + copy_to_user(data->record_buffer_cycle, record_buffer_cycle); + copy_to_user(data->recorded_real_time, recorded_real_time); + copy_to_user(data->recorded_frames_count, recorded_frames_count); + copy_to_user(data->_reserved_1, _reserved_1); + //TRACE(("buffer_exchange ended\n")); return B_OK; } + static status_t auich_buffer_force_stop(auich_dev *card) { @@ -916,6 +950,7 @@ return B_OK; } + static status_t auich_multi_control(void *cookie, uint32 op, void *data, size_t length) { @@ -1009,6 +1044,7 @@ NULL /* scatter-gather write to the device */ }; + static status_t auich_open(const char *name, uint32 flags, void** cookie) { @@ -1024,7 +1060,7 @@ } } - if(card == NULL) { + if (card == NULL) { LOG(("open() card not found %s\n", name)); for (ix=0; ixpstream !=NULL) + if (card->pstream !=NULL) return B_ERROR; - if(card->rstream !=NULL) + if (card->rstream !=NULL) return B_ERROR; *cookie = card; @@ -1090,6 +1126,7 @@ return B_OK; } + static status_t auich_close(void* cookie) { @@ -1099,6 +1136,7 @@ return B_OK; } + static status_t auich_free(void* cookie) { @@ -1113,7 +1151,7 @@ auich_stream_halt(stream); } - while(!LIST_EMPTY(&card->streams)) { + while (!LIST_EMPTY(&card->streams)) { auich_stream_delete(LIST_FIRST(&card->streams)); } @@ -1123,12 +1161,14 @@ return B_OK; } + static status_t auich_control(void* cookie, uint32 op, void* arg, size_t len) { return auich_multi_control(cookie, op, arg, len); } + static status_t auich_read(void* cookie, off_t position, void *buf, size_t* num_bytes) { @@ -1136,10 +1176,10 @@ return B_IO_ERROR; } + static status_t auich_write(void* cookie, off_t position, const void* buffer, size_t* num_bytes) { *num_bytes = 0; /* tell caller nothing was written */ return B_IO_ERROR; } - From axeld at pinc-software.de Fri Jan 9 10:26:33 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Fri, 09 Jan 2009 10:26:33 +0100 CET Subject: [Haiku-commits] =?utf-8?q?r28861_-_haiku/trunk/src/add-ons/kernel?= =?utf-8?q?/drivers/audio/ac97/auich?= In-Reply-To: <200901082345.n08NjJXA021342@sheep.berlios.de> Message-ID: <2769322599-BeMail@zon> korli at BerliOS wrote: > +#ifdef __HAIKU__ > +#define copy_to_user(x, y) if (user_memcpy(&x, &y, sizeof(x)) < > B_OK) \ > + return B_BAD_ADDRESS > +#else > +#define copy_to_user(x, y) x = y > +#endif For BeOS, you should use lock_memory() before accessing the buffer to be on the safe side. > + copy_to_user(data->playback_buffer_cycle, playback_buffer_cycle); > + copy_to_user(data->played_real_time, played_real_time); > + copy_to_user(data->played_frames_count, played_frames_count); > + copy_to_user(data->_reserved_0, _reserved_0); > + copy_to_user(data->record_buffer_cycle, record_buffer_cycle); > + copy_to_user(data->recorded_real_time, recorded_real_time); > + copy_to_user(data->recorded_frames_count, recorded_frames_count); > + copy_to_user(data->_reserved_1, _reserved_1); And for Haiku, it would be nicer (and considerably faster) to use an on -stack structure and copy that at once. Bye, Axel. From mmu_man at mail.berlios.de Fri Jan 9 21:36:50 2009 From: mmu_man at mail.berlios.de (mmu_man at BerliOS) Date: Fri, 9 Jan 2009 21:36:50 +0100 Subject: [Haiku-commits] r28862 - haiku/trunk/build/jam Message-ID: <200901092036.n09Kao02026414@sheep.berlios.de> Author: mmu_man Date: 2009-01-09 21:36:50 +0100 (Fri, 09 Jan 2009) New Revision: 28862 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28862&view=rev Modified: haiku/trunk/build/jam/BuildSetup Log: Move the tgz archive offset to 300k, should fix CD boot again, but it's getting tight. Modified: haiku/trunk/build/jam/BuildSetup =================================================================== --- haiku/trunk/build/jam/BuildSetup 2009-01-08 23:45:16 UTC (rev 28861) +++ haiku/trunk/build/jam/BuildSetup 2009-01-09 20:36:50 UTC (rev 28862) @@ -224,7 +224,7 @@ HAIKU_DEFINES += __INTEL__ ; HAIKU_BOOT_PLATFORM = bios_ia32 ; # offset in floppy image (>= sizeof(zbeos)) - HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 270 ; # in kB + HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 300 ; # in kB } case m68k : { From mmu_man at mail.berlios.de Sat Jan 10 01:40:38 2009 From: mmu_man at mail.berlios.de (mmu_man at BerliOS) Date: Sat, 10 Jan 2009 01:40:38 +0100 Subject: [Haiku-commits] r28863 - haiku/trunk/src/bin/playsound Message-ID: <200901100040.n0A0ecdm004768@sheep.berlios.de> Author: mmu_man Date: 2009-01-10 01:40:37 +0100 (Sat, 10 Jan 2009) New Revision: 28863 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28863&view=rev Modified: haiku/trunk/src/bin/playsound/playfile.cpp Log: Remove unused variable. Modified: haiku/trunk/src/bin/playsound/playfile.cpp =================================================================== --- haiku/trunk/src/bin/playsound/playfile.cpp 2009-01-09 20:36:50 UTC (rev 28862) +++ haiku/trunk/src/bin/playsound/playfile.cpp 2009-01-10 00:40:37 UTC (rev 28863) @@ -24,8 +24,6 @@ void play_buffer(void *cookie, void * buffer, size_t size, const media_raw_audio_format & format) { - int32 frame_size = (playFormat.u.raw_audio.format & 0xf) * - playFormat.u.raw_audio.channel_count; int64 frames = 0; // Use your feeling, Obi-Wan, and find him you will. From mmu_man at mail.berlios.de Sat Jan 10 02:03:08 2009 From: mmu_man at mail.berlios.de (mmu_man at BerliOS) Date: Sat, 10 Jan 2009 02:03:08 +0100 Subject: [Haiku-commits] r28864 - haiku/trunk/src/bin/mkdos Message-ID: <200901100103.n0A138ks006834@sheep.berlios.de> Author: mmu_man Date: 2009-01-10 02:03:06 +0100 (Sat, 10 Jan 2009) New Revision: 28864 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28864&view=rev Modified: haiku/trunk/src/bin/mkdos/mkdos.cpp Log: typo Modified: haiku/trunk/src/bin/mkdos/mkdos.cpp =================================================================== --- haiku/trunk/src/bin/mkdos/mkdos.cpp 2009-01-10 00:40:37 UTC (rev 28863) +++ haiku/trunk/src/bin/mkdos/mkdos.cpp 2009-01-10 01:03:06 UTC (rev 28864) @@ -300,7 +300,7 @@ sectorPerCluster = 32; if (size <= (16 * 1024 * 1024 * 1024LL)) // up to 16GB, use 8k clusters sectorPerCluster = 16; - if (size <= (8 * 1024 * 1024 * 1024LL)) // up to 8B, use 4k clusters + if (size <= (8 * 1024 * 1024 * 1024LL)) // up to 8GB, use 4k clusters sectorPerCluster = 8; if (size <= (532480 * 512LL)) // up to 260 MB, use 0.5k clusters sectorPerCluster = 1; From dlmcpaul at mail.berlios.de Sat Jan 10 02:03:28 2009 From: dlmcpaul at mail.berlios.de (dlmcpaul at BerliOS) Date: Sat, 10 Jan 2009 02:03:28 +0100 Subject: [Haiku-commits] r28865 - haiku/trunk/src/add-ons/media/plugins/avcodec Message-ID: <200901100103.n0A13S2X006885@sheep.berlios.de> Author: dlmcpaul Date: 2009-01-10 02:03:28 +0100 (Sat, 10 Jan 2009) New Revision: 28865 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28865&view=rev Modified: haiku/trunk/src/add-ons/media/plugins/avcodec/codectbl.cpp Log: add ffds fourcc, some sort of xvid variant Modified: haiku/trunk/src/add-ons/media/plugins/avcodec/codectbl.cpp =================================================================== --- haiku/trunk/src/add-ons/media/plugins/avcodec/codectbl.cpp 2009-01-10 01:03:06 UTC (rev 28864) +++ haiku/trunk/src/add-ons/media/plugins/avcodec/codectbl.cpp 2009-01-10 01:03:28 UTC (rev 28865) @@ -130,6 +130,7 @@ {CODEC_ID_MPEG4, B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY, FOURCC('dx50'), "DivX 5 (MPEG4)"}, /* DivX 5.0 */ {CODEC_ID_MPEG4, B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY, FOURCC('3IV2'), "3ivx v2"}, /* 3ivx v2 */ {CODEC_ID_MPEG4, B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY, FOURCC('3iv2'), "3ivx v2"}, /* 3ivx v2 */ + {CODEC_ID_MPEG4, B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY, FOURCC('ffds'), "ff DirectShow"}, /* XVID Variant */ {CODEC_ID_MPEG4, B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY, FOURCC('\004\0\0\0'), "MPEG4"}, /* some broken avi use this */ {CODEC_ID_MSMPEG4V3, B_MEDIA_ENCODED_VIDEO, B_AVI_FORMAT_FAMILY, FOURCC('DIV3'), "DivX ;-) (MS MPEG4 v3)"}, /* default signature when using MSMPEG4 */ From dlmcpaul at mail.berlios.de Sat Jan 10 02:05:40 2009 From: dlmcpaul at mail.berlios.de (dlmcpaul at BerliOS) Date: Sat, 10 Jan 2009 02:05:40 +0100 Subject: [Haiku-commits] r28866 - haiku/trunk/src/add-ons/media/plugins/mp4_reader/libMP4 Message-ID: <200901100105.n0A15eJO007043@sheep.berlios.de> Author: dlmcpaul Date: 2009-01-10 02:05:39 +0100 (Sat, 10 Jan 2009) New Revision: 28866 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28866&view=rev Modified: haiku/trunk/src/add-ons/media/plugins/mp4_reader/libMP4/MP4FileReader.cpp Log: Better check for end of data Modified: haiku/trunk/src/add-ons/media/plugins/mp4_reader/libMP4/MP4FileReader.cpp =================================================================== --- haiku/trunk/src/add-ons/media/plugins/mp4_reader/libMP4/MP4FileReader.cpp 2009-01-10 01:03:28 UTC (rev 28865) +++ haiku/trunk/src/add-ons/media/plugins/mp4_reader/libMP4/MP4FileReader.cpp 2009-01-10 01:05:39 UTC (rev 28866) @@ -636,8 +636,11 @@ // printf("start %Ld, size %ld, eof %s, eod %s\n",*start,*size, IsEndOfFile(*start + *size) ? "true" : "false", IsEndOfData(*start + *size) ? "true" : "false"); // TODO need a better method for detecting End of Data Note ChunkSize of 0 seems to be it. - return *start > 0 && *size > 0 && !IsEndOfFile(*start + *size) - && !IsEndOfData(*start + *size); + if (IsEndOfFile(*start + *size) || IsEndOfData(*start + *size)) { + return false; + } + + return *start > 0 && *size > 0; } From mmu_man at mail.berlios.de Sat Jan 10 02:44:41 2009 From: mmu_man at mail.berlios.de (mmu_man at BerliOS) Date: Sat, 10 Jan 2009 02:44:41 +0100 Subject: [Haiku-commits] r28867 - haiku/trunk/3rdparty/mmu_man/onlinedemo Message-ID: <200901100144.n0A1ifqO014005@sheep.berlios.de> Author: mmu_man Date: 2009-01-10 02:44:40 +0100 (Sat, 10 Jan 2009) New Revision: 28867 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28867&view=rev Modified: haiku/trunk/3rdparty/mmu_man/onlinedemo/haiku.php Log: Make sure google won't index or archive the page, there is nothing interesting really. googlebots even tried to index my own box which isn't always online... Modified: haiku/trunk/3rdparty/mmu_man/onlinedemo/haiku.php =================================================================== --- haiku/trunk/3rdparty/mmu_man/onlinedemo/haiku.php 2009-01-10 01:05:39 UTC (rev 28866) +++ haiku/trunk/3rdparty/mmu_man/onlinedemo/haiku.php 2009-01-10 01:44:40 UTC (rev 28867) @@ -60,7 +60,8 @@ ?> -Haiku Test + +Haiku Online Demo Author: axeld Date: 2009-01-10 23:16:48 +0100 (Sat, 10 Jan 2009) New Revision: 28869 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28869&view=rev Modified: haiku/trunk/src/add-ons/kernel/file_systems/bfs/BlockAllocator.cpp haiku/trunk/src/add-ons/kernel/file_systems/bfs/bfs.h haiku/trunk/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp Log: * Fixed two possible crashing bugs in the file system check code: the checker was attached to the inode instead of the file descriptor, causing it to call BlockAllocator::StopChecking() whenever anyone closed the device's root node during the check. The other bug was that it tried to fix errors even if the device was read-only. * Added TODO that ioctl() accesses userland buffers unsafely. * Removed no longer valid or superfluous comments. Modified: haiku/trunk/src/add-ons/kernel/file_systems/bfs/BlockAllocator.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/bfs/BlockAllocator.cpp 2009-01-10 04:15:30 UTC (rev 28868) +++ haiku/trunk/src/add-ons/kernel/file_systems/bfs/BlockAllocator.cpp 2009-01-10 22:16:48 UTC (rev 28869) @@ -1189,6 +1189,11 @@ put_vnode(fVolume->FSVolume(), fVolume->ToVnode(cookie->current)); } + if (fVolume->IsReadOnly()) { + // We can't fix errors on this volume + control->flags &= ~BFS_FIX_BITMAP_ERRORS; + } + // if CheckNextNode() could completely work through, we can // fix any damages of the bitmap if (control != NULL && control->status == B_ENTRY_NOT_FOUND) { Modified: haiku/trunk/src/add-ons/kernel/file_systems/bfs/bfs.h =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/bfs/bfs.h 2009-01-10 04:15:30 UTC (rev 28868) +++ haiku/trunk/src/add-ons/kernel/file_systems/bfs/bfs.h 2009-01-10 22:16:48 UTC (rev 28869) @@ -223,8 +223,7 @@ INODE_WAS_WRITTEN = 0x00020000, // The rest is only used by the file system check functionality - INODE_DONT_FREE_SPACE = 0x00080000, - INODE_CHECK_RUNNING = 0x00200000 + INODE_DONT_FREE_SPACE = 0x00080000 }; //************************************** @@ -235,6 +234,9 @@ int open_mode; }; +#define BFS_OPEN_MODE_USER_MASK 0x7fffffff +#define BFS_OPEN_MODE_CHECKING 0x80000000 + // notify every second if the file size has changed #define INODE_NOTIFICATION_INTERVAL 1000000LL Modified: haiku/trunk/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp 2009-01-10 04:15:30 UTC (rev 28868) +++ haiku/trunk/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp 2009-01-10 22:16:48 UTC (rev 28869) @@ -584,8 +584,9 @@ buffer, bufferLength)); Volume* volume = (Volume*)_volume->private_volume; - Inode* inode = (Inode*)_node->private_node; + // TODO: Access user buffers safely! + switch (cmd) { case BFS_IOCTL_VERSION: { @@ -602,8 +603,8 @@ status_t status = allocator.StartChecking(control); if (status == B_OK) { - inode->Node().flags - |= HOST_ENDIAN_TO_BFS_INT32(INODE_CHECK_RUNNING); + file_cookie* cookie = (file_cookie*)_cookie; + cookie->open_mode |= BFS_OPEN_MODE_CHECKING; } return status; @@ -616,8 +617,8 @@ status_t status = allocator.StopChecking(control); if (status == B_OK) { - inode->Node().flags - &= HOST_ENDIAN_TO_BFS_INT32(~INODE_CHECK_RUNNING); + file_cookie* cookie = (file_cookie*)_cookie; + cookie->open_mode &= ~BFS_OPEN_MODE_CHECKING; } return status; @@ -1164,7 +1165,7 @@ // opening a directory read-only is allowed, although you can't read // any data from it. - if (inode->IsDirectory() && openMode & O_RWMASK) { + if (inode->IsDirectory() && (openMode & O_RWMASK) != 0) { openMode = openMode & ~O_RWMASK; // TODO: for compatibility reasons, we don't return an error here... // e.g. "copyattr" tries to do that @@ -1176,22 +1177,13 @@ if (status < B_OK) RETURN_ERROR(status); - // We could actually use the cookie to keep track of: - // - the last block_run - // - the location in the data_stream (indirect, double indirect, - // position in block_run array) - // - // This could greatly speed up continuous reads of big files, especially - // in the indirect block section. - file_cookie* cookie = new(std::nothrow) file_cookie; if (cookie == NULL) RETURN_ERROR(B_NO_MEMORY); ObjectDeleter cookieDeleter(cookie); // initialize the cookie - cookie->open_mode = openMode; - // needed by e.g. bfs_write() for O_APPEND + cookie->open_mode = openMode & BFS_OPEN_MODE_USER_MASK; cookie->last_size = inode->Size(); cookie->last_notification = system_time(); @@ -1381,7 +1373,7 @@ if (status == B_OK) transaction.Done(); - if ((inode->Flags() & INODE_CHECK_RUNNING) != 0) { + if ((cookie->open_mode & BFS_OPEN_MODE_CHECKING) != 0) { // "chkbfs" exited abnormally, so we have to stop it here... FATAL(("check process was aborted!\n")); volume->Allocator().StopChecking(NULL); From mmu_man at mail.berlios.de Sun Jan 11 01:41:32 2009 From: mmu_man at mail.berlios.de (mmu_man at BerliOS) Date: Sun, 11 Jan 2009 01:41:32 +0100 Subject: [Haiku-commits] r28870 - haiku/trunk/src/add-ons/kernel/network/protocols/udp Message-ID: <200901110041.n0B0fWuJ017785@sheep.berlios.de> Author: mmu_man Date: 2009-01-11 01:41:30 +0100 (Sun, 11 Jan 2009) New Revision: 28870 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28870&view=rev Modified: haiku/trunk/src/add-ons/kernel/network/protocols/udp/udp.cpp Log: typo. Modified: haiku/trunk/src/add-ons/kernel/network/protocols/udp/udp.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/network/protocols/udp/udp.cpp 2009-01-10 22:16:48 UTC (rev 28869) +++ haiku/trunk/src/add-ons/kernel/network/protocols/udp/udp.cpp 2009-01-11 00:41:30 UTC (rev 28870) @@ -34,7 +34,7 @@ // NOTE the locking protocol dictates that we must hold UdpDomainSupport's // lock before holding a child UdpEndpoint's lock. This restriction // is dictated by the receive path as blind access to the endpoint -// hash is required when holding the DomainSuppport's lock. +// hash is required when holding the DomainSupport's lock. //#define TRACE_UDP From anevilyak at mail.berlios.de Sun Jan 11 02:40:06 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Sun, 11 Jan 2009 02:40:06 +0100 Subject: [Haiku-commits] r28871 - haiku/trunk/src/kits/tracker Message-ID: <200901110140.n0B1e69Y027473@sheep.berlios.de> Author: anevilyak Date: 2009-01-11 02:40:05 +0100 (Sun, 11 Jan 2009) New Revision: 28871 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28871&view=rev Modified: haiku/trunk/src/kits/tracker/WidgetAttributeText.cpp Log: Fixed broken ternary logic in GenericAttributeText::Compare() that would result in the wrong value being returned when one or both attributes being compared were undefined. A symptom of this was the crash reported in ticket #2760. Leaving that ticket open for now though as returning the wrong value to the sort shouldn't have caused a crash regardless. Modified: haiku/trunk/src/kits/tracker/WidgetAttributeText.cpp =================================================================== --- haiku/trunk/src/kits/tracker/WidgetAttributeText.cpp 2009-01-11 00:41:30 UTC (rev 28870) +++ haiku/trunk/src/kits/tracker/WidgetAttributeText.cpp 2009-01-11 01:40:05 UTC (rev 28871) @@ -1469,7 +1469,7 @@ // Sort undefined values last, regardless of the other value: if (fValueIsDefined == false || compareTo->fValueIsDefined == false) { return fValueIsDefined < compareTo->fValueIsDefined ? - (fValueIsDefined == compareTo->fValueIsDefined ? 0 : -1) : 1; + 1 : (fValueIsDefined == compareTo->fValueIsDefined ? 0 : -1); } switch (fColumn->AttrType()) { From aldeck at mail.berlios.de Sun Jan 11 04:08:57 2009 From: aldeck at mail.berlios.de (aldeck at BerliOS) Date: Sun, 11 Jan 2009 04:08:57 +0100 Subject: [Haiku-commits] r28872 - haiku/trunk/src/kits/tracker Message-ID: <200901110308.n0B38vu4002335@sheep.berlios.de> Author: aldeck Date: 2009-01-11 04:08:56 +0100 (Sun, 11 Jan 2009) New Revision: 28872 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28872&view=rev Modified: haiku/trunk/src/kits/tracker/PoseView.cpp Log: * The pose adding thread was going too fast, opening too many files (those are closed by the window thread), and reaching the file descriptor limit. For some still unknown reason, this was causing GetNextDirents to stop returning new entries. The result was that, on populated folders, Tracker wouldn't load all poses and stop at a random amount. We now take a more conservative approach and close the files before sending, reopening them on reception. Now the AddPoses thread is a bit too aggressive, especially on second runs, i needed to add some snoozing otherwise it would stall Tracker for several seconds. (testing on a 20000 files folder). This fixes #3054 Modified: haiku/trunk/src/kits/tracker/PoseView.cpp =================================================================== --- haiku/trunk/src/kits/tracker/PoseView.cpp 2009-01-11 01:40:05 UTC (rev 28871) +++ haiku/trunk/src/kits/tracker/PoseView.cpp 2009-01-11 03:08:56 UTC (rev 28872) @@ -1334,6 +1334,7 @@ // probably more correct. // clean this up + model->CloseNode(); modelChunkIndex++; } @@ -1359,6 +1360,8 @@ posesResult = new AddPosesResult; posesResult->fCount = 0; + + snooze(500); // be nice } if (!count) @@ -1613,6 +1616,7 @@ continue; } + model->OpenNode(); ASSERT(model->IsNodeOpen()); PoseInfo *poseInfo = &poseInfoArray[modelIndex]; From anevilyak at mail.berlios.de Sun Jan 11 05:43:54 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Sun, 11 Jan 2009 05:43:54 +0100 Subject: [Haiku-commits] r28873 - haiku/trunk/src/tests/kits/support/pointerlist Message-ID: <200901110443.n0B4hseQ013416@sheep.berlios.de> Author: anevilyak Date: 2009-01-11 05:43:53 +0100 (Sun, 11 Jan 2009) New Revision: 28873 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28873&view=rev Added: haiku/trunk/src/tests/kits/support/pointerlist/PointerListSortTest.cpp Log: Added a test that exposes a problem in BObjectList/PointerList. If a list contains 17 items or greater, and you attempt to sort it with a sort function that always returns 1 regardless of the items being compared, it will crash 100% of the time. Looking into why next. Added: haiku/trunk/src/tests/kits/support/pointerlist/PointerListSortTest.cpp =================================================================== --- haiku/trunk/src/tests/kits/support/pointerlist/PointerListSortTest.cpp 2009-01-11 03:08:56 UTC (rev 28872) +++ haiku/trunk/src/tests/kits/support/pointerlist/PointerListSortTest.cpp 2009-01-11 04:43:53 UTC (rev 28873) @@ -0,0 +1,35 @@ +#include +#include + +static int SortItemTestPositive(const BString *item1, const BString *item2) +{ + return 1; +} + +static int SortItemTestNegative(const BString *item1, const BString *item2) +{ + return -1; +} + +static int SortItemTestEqual(const BString *item1, const BString *item2) +{ + return 0; +} + +int main(int, char **) +{ + BObjectList list; + for (int i = 0; i < 20; i++) { + list.AddItem(new BString("test")); + printf("List contains %d items, attempting sorts\n", i); + printf("Attempting positive test\n"); + list.SortItems(SortItemTestPositive); + printf("Positive test completed, attempting negative test\n"); + list.SortItems(SortItemTestNegative); + printf("Positive test completed, attempting equal test\n"); + list.SortItems(SortItemTestEqual); + } + printf("All tests passed!\n"); + + return 0; +} From anevilyak at mail.berlios.de Sun Jan 11 05:52:19 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Sun, 11 Jan 2009 05:52:19 +0100 Subject: [Haiku-commits] r28874 - haiku/trunk/src/tests/kits/support/pointerlist Message-ID: <200901110452.n0B4qJV3014783@sheep.berlios.de> Author: anevilyak Date: 2009-01-11 05:52:18 +0100 (Sun, 11 Jan 2009) New Revision: 28874 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28874&view=rev Modified: haiku/trunk/src/tests/kits/support/pointerlist/PointerListSortTest.cpp Log: The problem appears to be at the level of _PointerList_ itself. Also note, BList does not exhibit the issue. Modified: haiku/trunk/src/tests/kits/support/pointerlist/PointerListSortTest.cpp =================================================================== --- haiku/trunk/src/tests/kits/support/pointerlist/PointerListSortTest.cpp 2009-01-11 04:43:53 UTC (rev 28873) +++ haiku/trunk/src/tests/kits/support/pointerlist/PointerListSortTest.cpp 2009-01-11 04:52:18 UTC (rev 28874) @@ -1,24 +1,24 @@ #include #include -static int SortItemTestPositive(const BString *item1, const BString *item2) +static int SortItemTestPositive(const void *item1, const void *item2) { return 1; } -static int SortItemTestNegative(const BString *item1, const BString *item2) +static int SortItemTestNegative(const void *item1, const void *item2) { return -1; } -static int SortItemTestEqual(const BString *item1, const BString *item2) +static int SortItemTestEqual(const void *item1, const void *item2) { return 0; } int main(int, char **) { - BObjectList list; + _PointerList_ list; for (int i = 0; i < 20; i++) { list.AddItem(new BString("test")); printf("List contains %d items, attempting sorts\n", i); From dlmcpaul at mail.berlios.de Sun Jan 11 08:06:19 2009 From: dlmcpaul at mail.berlios.de (dlmcpaul at BerliOS) Date: Sun, 11 Jan 2009 08:06:19 +0100 Subject: [Haiku-commits] r28875 - haiku/trunk/src/add-ons/media/plugins/mp3_decoder Message-ID: <200901110706.n0B76JrX028805@sheep.berlios.de> Author: dlmcpaul Date: 2009-01-11 08:06:18 +0100 (Sun, 11 Jan 2009) New Revision: 28875 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28875&view=rev Modified: haiku/trunk/src/add-ons/media/plugins/mp3_decoder/mp3DecoderPlugin.cpp Log: Implement seeking support Modified: haiku/trunk/src/add-ons/media/plugins/mp3_decoder/mp3DecoderPlugin.cpp =================================================================== --- haiku/trunk/src/add-ons/media/plugins/mp3_decoder/mp3DecoderPlugin.cpp 2009-01-11 04:52:18 UTC (rev 28874) +++ haiku/trunk/src/add-ons/media/plugins/mp3_decoder/mp3DecoderPlugin.cpp 2009-01-11 07:06:18 UTC (rev 28875) @@ -27,6 +27,8 @@ #include #include #include +#include + #include "mp3DecoderPlugin.h" //#define TRACE_MP3_DECODER @@ -184,6 +186,24 @@ bigtime_t seekTime, bigtime_t *time) { fNeedSync = true; + + TRACE("MP3Decoder::Seek called\n"); + + if (seekTo == B_MEDIA_SEEK_TO_TIME) { + TRACE("MP3Decoder::Seek by time "); + TRACE("from frame %Ld and time %Ld TO Required Time %Ld. ", *frame, *time, seekTime); + + *frame = (int64)(*time / (fFrameSize * 1000000.0 / fFrameRate)); + } else if (seekTo == B_MEDIA_SEEK_TO_FRAME) { + TRACE("MP3Decoder::Seek by Frame "); + TRACE("from Current Time %Ld and frame %Ld TO Required Frame %Ld. ", *time, *frame, seekFrame); + + *time = (bigtime_t)(*frame * fFrameSize * 1000000.0 / fFrameRate); + } else + return B_BAD_VALUE; + + TRACE("so new frame is %Ld at time %Ld\n", *frame, *time); + return B_OK; } From dlmcpaul at mail.berlios.de Sun Jan 11 08:06:51 2009 From: dlmcpaul at mail.berlios.de (dlmcpaul at BerliOS) Date: Sun, 11 Jan 2009 08:06:51 +0100 Subject: [Haiku-commits] r28876 - haiku/trunk/src/add-ons/media/plugins/ac3_decoder Message-ID: <200901110706.n0B76poi029800@sheep.berlios.de> Author: dlmcpaul Date: 2009-01-11 08:06:51 +0100 (Sun, 11 Jan 2009) New Revision: 28876 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28876&view=rev Modified: haiku/trunk/src/add-ons/media/plugins/ac3_decoder/ac3_decoder.cpp haiku/trunk/src/add-ons/media/plugins/ac3_decoder/ac3_decoder.h Log: Implement seeking support Modified: haiku/trunk/src/add-ons/media/plugins/ac3_decoder/ac3_decoder.cpp =================================================================== --- haiku/trunk/src/add-ons/media/plugins/ac3_decoder/ac3_decoder.cpp 2009-01-11 07:06:18 UTC (rev 28875) +++ haiku/trunk/src/add-ons/media/plugins/ac3_decoder/ac3_decoder.cpp 2009-01-11 07:06:51 UTC (rev 28876) @@ -16,6 +16,9 @@ #include #include #include + +#include + #include "ac3_decoder.h" @@ -194,6 +197,8 @@ ioDecodedFormat->u.raw_audio.buffer_size = 6 * 256 * fChannelCount * sizeof(float); ioDecodedFormat->u.raw_audio.channel_mask = fChannelMask; + fFrameSize = (ioDecodedFormat->u.raw_audio.format & 0xf) * ioDecodedFormat->u.raw_audio.channel_count; + return B_OK; } @@ -205,6 +210,24 @@ { fInputChunkSize = 0; fInputBufferSize = 0; + + TRACE("AC3Decoder::Seek called\n"); + + if (seekTo == B_MEDIA_SEEK_TO_TIME) { + TRACE("AC3Decoder::Seek by time "); + TRACE("from frame %Ld and time %Ld TO Required Time %Ld. ", *frame, *time, seekTime); + + *frame = (int64)(*time / (fFrameSize * 1000000.0 / fFrameRate)); + } else if (seekTo == B_MEDIA_SEEK_TO_FRAME) { + TRACE("AC3Decoder::Seek by Frame "); + TRACE("from Current Time %Ld and frame %Ld TO Required Frame %Ld. ", *time, *frame, seekFrame); + + *time = (bigtime_t)(*frame * fFrameSize * 1000000.0 / fFrameRate); + } else + return B_BAD_VALUE; + + TRACE("so new frame is %Ld at time %Ld\n", *frame, *time); + return B_OK; } Modified: haiku/trunk/src/add-ons/media/plugins/ac3_decoder/ac3_decoder.h =================================================================== --- haiku/trunk/src/add-ons/media/plugins/ac3_decoder/ac3_decoder.h 2009-01-11 07:06:18 UTC (rev 28875) +++ haiku/trunk/src/add-ons/media/plugins/ac3_decoder/ac3_decoder.h 2009-01-11 07:06:51 UTC (rev 28876) @@ -72,7 +72,7 @@ int fFlags; int fFrameRate; int fBitRate; - + int fFrameSize; int fChannelCount; int fChannelMask; int *fInterleaveOffset; From dlmcpaul at mail.berlios.de Sun Jan 11 08:07:14 2009 From: dlmcpaul at mail.berlios.de (dlmcpaul at BerliOS) Date: Sun, 11 Jan 2009 08:07:14 +0100 Subject: [Haiku-commits] r28877 - haiku/trunk/src/add-ons/media/plugins/raw_decoder Message-ID: <200901110707.n0B77Eh9030322@sheep.berlios.de> Author: dlmcpaul Date: 2009-01-11 08:07:14 +0100 (Sun, 11 Jan 2009) New Revision: 28877 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28877&view=rev Modified: haiku/trunk/src/add-ons/media/plugins/raw_decoder/RawDecoderPlugin.cpp Log: Implement seeking support Modified: haiku/trunk/src/add-ons/media/plugins/raw_decoder/RawDecoderPlugin.cpp =================================================================== --- haiku/trunk/src/add-ons/media/plugins/raw_decoder/RawDecoderPlugin.cpp 2009-01-11 07:06:51 UTC (rev 28876) +++ haiku/trunk/src/add-ons/media/plugins/raw_decoder/RawDecoderPlugin.cpp 2009-01-11 07:07:14 UTC (rev 28877) @@ -27,6 +27,8 @@ #include #include #include +#include + #include "RawFormats.h" #include "RawDecoderPlugin.h" #include "AudioConversion.h" @@ -466,7 +468,25 @@ bigtime_t seekTime, bigtime_t *time) { fChunkSize = 0; + + TRACE("MP3Decoder::Seek called\n"); + + if (seekTo == B_MEDIA_SEEK_TO_TIME) { + TRACE("RawDecoder::Seek by time "); + TRACE("from frame %Ld and time %Ld TO Required Time %Ld. ", *frame, *time, seekTime); + + *frame = (int64)(*time / (fInputFrameSize * 1000000.0 / fFrameRate)); + } else if (seekTo == B_MEDIA_SEEK_TO_FRAME) { + TRACE("RawDecoder::Seek by Frame "); + TRACE("from Current Time %Ld and frame %Ld TO Required Frame %Ld. ", *time, *frame, seekFrame); + + *time = (bigtime_t)(*frame * fInputFrameSize * 1000000.0 / fFrameRate); + } else + return B_BAD_VALUE; + + TRACE("so new frame is %Ld at time %Ld\n", *frame, *time); fStartTime = *time; + return B_OK; } From axeld at mail.berlios.de Sun Jan 11 12:47:32 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Sun, 11 Jan 2009 12:47:32 +0100 Subject: [Haiku-commits] r28878 - haiku/trunk/src/add-ons/kernel/network/protocols/tcp Message-ID: <200901111147.n0BBlWK7021465@sheep.berlios.de> Author: axeld Date: 2009-01-11 12:47:31 +0100 (Sun, 11 Jan 2009) New Revision: 28878 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28878&view=rev Modified: haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.h haiku/trunk/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp Log: * Applied most parts of Adrian's patch in #2594, applied our coding style. * Cleaned the net_buffer::sequence handling, and fixed a few more problems of maintaining it in Add(). * Extended Verify() to check everything that's possible, and call it conditionally on several places, depending on DEBUG_BUFFER_QUEUE. It's turned on for now which means that any remaining problems should show up when they happened. * Call Dump() from TCPEndpoint::Dump(). Modified: haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp 2009-01-11 07:07:14 UTC (rev 28877) +++ haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp 2009-01-11 11:47:31 UTC (rev 28878) @@ -19,7 +19,13 @@ # define TRACE(x) #endif +#if DEBUG_BUFFER_QUEUE +# define VERIFY() Verify(); +#else +# define VERIFY() ; +#endif + BufferQueue::BufferQueue(size_t maxBytes) : fMaxBytes(maxBytes), @@ -73,13 +79,20 @@ TRACE(("BufferQueue@%p::Add(buffer %p, size %lu, sequence %lu)\n", this, buffer, buffer->size, (uint32)sequence)); TRACE((" in: first: %lu, last: %lu, num: %lu, cont: %lu\n", - (uint32)fFirstSequence, (uint32)fLastSequence, fNumBytes, fContiguousBytes)); + (uint32)fFirstSequence, (uint32)fLastSequence, fNumBytes, + fContiguousBytes)); + VERIFY(); - buffer->sequence = sequence; + if (tcp_sequence(sequence + buffer->size) <= fFirstSequence) { + // This buffer does not contain any data of interest + gBufferModule->free(buffer); + return; + } if (fList.IsEmpty() || sequence >= fLastSequence) { // we usually just add the buffer to the end of the queue fList.Add(buffer); + buffer->sequence = sequence; if (sequence == fLastSequence && fLastSequence - fFirstSequence == fNumBytes) { @@ -92,7 +105,9 @@ fNumBytes += buffer->size; TRACE((" out0: first: %lu, last: %lu, num: %lu, cont: %lu\n", - (uint32)fFirstSequence, (uint32)fLastSequence, fNumBytes, fContiguousBytes)); + (uint32)fFirstSequence, (uint32)fLastSequence, fNumBytes, + fContiguousBytes)); + VERIFY(); return; } @@ -130,22 +145,33 @@ buffer = NULL; } else { fList.Remove(previous); + fNumBytes -= previous->size; gBufferModule->free(previous); } - } else if (tcp_sequence(previous->sequence + previous->size) > sequence) { + } else if (tcp_sequence(previous->sequence + previous->size) + > sequence + buffer->size) { + // We already know this data + gBufferModule->free(buffer); + buffer = NULL; + } else if (tcp_sequence(previous->sequence + previous->size) + > sequence) { + // We already have the first part of this buffer gBufferModule->remove_header(buffer, previous->sequence + previous->size - sequence); + sequence = previous->sequence + previous->size; } } - if (buffer != NULL && next != NULL + while (buffer != NULL && next != NULL && tcp_sequence(sequence + buffer->size) > next->sequence) { // we already have at least part of this data - if (tcp_sequence(next->sequence + next->size) < sequence + buffer->size) { + if (tcp_sequence(next->sequence + next->size) + < sequence + buffer->size) { net_buffer *remove = next; next = (net_buffer *)next->link.next; fList.Remove(remove); + fNumBytes -= remove->size; gBufferModule->free(remove); } else { gBufferModule->remove_trailer(buffer, @@ -155,11 +181,14 @@ if (buffer == NULL) { TRACE((" out1: first: %lu, last: %lu, num: %lu, cont: %lu\n", - (uint32)fFirstSequence, (uint32)fLastSequence, fNumBytes, fContiguousBytes)); + (uint32)fFirstSequence, (uint32)fLastSequence, fNumBytes, + fContiguousBytes)); + VERIFY(); return; } fList.Insert(next, buffer); + buffer->sequence = sequence; fNumBytes += buffer->size; // we might need to update the number of bytes available @@ -180,6 +209,7 @@ TRACE((" out2: first: %lu, last: %lu, num: %lu, cont: %lu\n", (uint32)fFirstSequence, (uint32)fLastSequence, fNumBytes, fContiguousBytes)); + VERIFY(); } @@ -192,6 +222,7 @@ BufferQueue::RemoveUntil(tcp_sequence sequence) { TRACE(("BufferQueue@%p::RemoveUntil(sequence %lu)\n", this, (uint32)sequence)); + VERIFY(); if (sequence < fFirstSequence) return B_OK; @@ -229,6 +260,7 @@ else fFirstSequence = fList.Head()->sequence; + VERIFY(); return B_OK; } @@ -238,7 +270,9 @@ status_t BufferQueue::Get(net_buffer *buffer, tcp_sequence sequence, size_t bytes) { - TRACE(("BufferQueue@%p::Get(sequence %lu, bytes %lu)\n", this, (uint32)sequence, bytes)); + TRACE(("BufferQueue@%p::Get(sequence %lu, bytes %lu)\n", this, + (uint32)sequence, bytes)); + VERIFY(); if (bytes == 0) return B_OK; @@ -284,6 +318,7 @@ source = iterator.Next(); } + VERIFY(); return B_OK; } @@ -360,10 +395,12 @@ // We could not remove any bytes from the buffer, so // let this call fail. gBufferModule->free(buffer); + VERIFY(); return status; } *_buffer = buffer; + VERIFY(); return B_OK; } @@ -377,6 +414,7 @@ return fContiguousBytes + fFirstSequence - sequence; } + void BufferQueue::SetPushPointer() { @@ -385,3 +423,55 @@ else fPushPointer = fList.Tail()->sequence + fList.Tail()->size; } + +#if DEBUG_BUFFER_QUEUE + +/*! Perform a sanity check of the whole queue. +*/ +void +BufferQueue::Verify() const +{ + ASSERT(Available() == 0 || fList.First() != NULL); + + if (fList.First() == NULL) { + ASSERT(fNumBytes == 0); + return; + } + + SegmentList::ConstIterator iterator = fList.GetIterator(); + size_t numBytes = 0; + size_t contiguousBytes = 0; + bool contiguous = true; + tcp_sequence last = fFirstSequence; + + while (net_buffer* buffer = iterator.Next()) { + if (contiguous && buffer->sequence == last) + contiguousBytes += buffer->size; + else + contiguous = false; + + ASSERT(last <= buffer->sequence); + ASSERT(buffer->size > 0); + + numBytes += buffer->size; + last = buffer->sequence + buffer->size; + } + + ASSERT(last == fLastSequence); + ASSERT(contiguousBytes == fContiguousBytes); + ASSERT(numBytes == fNumBytes); +} + + +void +BufferQueue::Dump() const +{ + SegmentList::ConstIterator iterator = fList.GetIterator(); + int32 number = 0; + while (net_buffer* buffer = iterator.Next()) { + kprintf(" %ld. buffer %p, sequence %lx, size %lu\n", ++number, + buffer, buffer->sequence, buffer->size); + } +} + +#endif // DEBUG_BUFFER_QUEUE Modified: haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.h =================================================================== --- haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.h 2009-01-11 07:07:14 UTC (rev 28877) +++ haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.h 2009-01-11 11:47:31 UTC (rev 28878) @@ -1,5 +1,5 @@ /* - * Copyright 2006-2008, Haiku, Inc. All Rights Reserved. + * Copyright 2006-2009, Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. * * Authors: @@ -13,7 +13,11 @@ #include +#ifndef DEBUG_BUFFER_QUEUE +# define DEBUG_BUFFER_QUEUE 1 +#endif + typedef DoublyLinkedList > SegmentList; @@ -51,6 +55,11 @@ tcp_sequence NextSequence() const { return fFirstSequence + fContiguousBytes; } +#if DEBUG_BUFFER_QUEUE + void Verify() const; + void Dump() const; +#endif + private: SegmentList fList; size_t fMaxBytes; Modified: haiku/trunk/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp 2009-01-11 07:07:14 UTC (rev 28877) +++ haiku/trunk/src/add-ons/kernel/network/protocols/tcp/TCPEndpoint.cpp 2009-01-11 11:47:31 UTC (rev 28878) @@ -1,5 +1,5 @@ /* - * Copyright 2006-2008, Haiku, Inc. All Rights Reserved. + * Copyright 2006-2009, Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. * * Authors: @@ -2254,6 +2254,9 @@ kprintf(" max window: %lu\n", fSendMaxWindow); kprintf(" max segment size: %lu\n", fSendMaxSegmentSize); kprintf(" queue: %lu / %lu\n", fSendQueue.Used(), fSendQueue.Size()); +#if DEBUG_BUFFER_QUEUE + fSendQueue.Dump(); +#endif kprintf(" last acknowledge sent: %lu\n", (uint32)fLastAcknowledgeSent); kprintf(" initial sequence: %lu\n", (uint32)fInitialSendSequence); kprintf(" receive\n"); @@ -2264,6 +2267,9 @@ kprintf(" max segment size: %lu\n", (uint32)fReceiveMaxSegmentSize); kprintf(" queue: %lu / %lu\n", fReceiveQueue.Available(), fReceiveQueue.Size()); +#if DEBUG_BUFFER_QUEUE + fReceiveQueue.Dump(); +#endif kprintf(" initial sequence: %lu\n", (uint32)fInitialReceiveSequence); kprintf(" duplicate acknowledge count: %lu\n", fDuplicateAcknowledgeCount); From axeld at pinc-software.de Sun Jan 11 13:09:22 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Sun, 11 Jan 2009 13:09:22 +0100 CET Subject: [Haiku-commits] r28872 - haiku/trunk/src/kits/tracker In-Reply-To: <200901110308.n0B38vu4002335@sheep.berlios.de> Message-ID: <6118089213-BeMail@zon> aldeck at BerliOS wrote: > Now the AddPoses thread is a bit too aggressive, especially on second > runs, i needed to add some > snoozing otherwise it > would stall Tracker for several seconds. (testing on a 20000 files > folder). > This fixes #3054 Doesn't this considerably slow down the whole thing? If AddPoses is too aggressive, why not just lower its priority? Bye, Axel. From alex at zappotek.com Sun Jan 11 13:30:05 2009 From: alex at zappotek.com (Alexandre Deckner) Date: Sun, 11 Jan 2009 13:30:05 +0100 Subject: [Haiku-commits] r28872 - haiku/trunk/src/kits/tracker In-Reply-To: <6118089213-BeMail@zon> References: <6118089213-BeMail@zon> Message-ID: <4969E64D.5080307@zappotek.com> Axel D?rfler wrote: > aldeck at BerliOS wrote: > >> Now the AddPoses thread is a bit too aggressive, especially on second >> runs, i needed to add some > snoozing otherwise it >> would stall Tracker for several seconds. (testing on a 20000 files >> folder). >> This fixes #3054 >> > > Doesn't this considerably slow down the whole thing? > If AddPoses is too aggressive, why not just lower its priority? Hmm, i might try that. When testing, this had no effect on performance, that's only 500?s between two file packs, not each file. Anyway all the slowness comes from the window thread, i'm working on that too :) see #3011 The problem looked like a scheduling issue, on a second run, the sender thread was spiking using 100%cpu and leaving nothing to the window thread which was stalling totally for several seconds, when moving the mouse around it helped reschedule things it seems... Is it expected? Any idea? Regards, Alex From axeld at pinc-software.de Sun Jan 11 13:50:43 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Sun, 11 Jan 2009 13:50:43 +0100 CET Subject: [Haiku-commits] r28872 - haiku/trunk/src/kits/tracker In-Reply-To: <4969E64D.5080307@zappotek.com> Message-ID: <8599578772-BeMail@zon> Alexandre Deckner wrote: > Axel D?rfler wrote: > > Doesn't this considerably slow down the whole thing? > > If AddPoses is too aggressive, why not just lower its priority? > Hmm, i might try that. When testing, this had no effect on > performance, > that's only 500?s between two file packs, not each file. Ah, okay, then I misunderstood the diff, sorry. That should indeed be okay, then. > Anyway all the > slowness comes from the window thread, i'm working on that too :) see > #3011 Nice :-) > The problem looked like a scheduling issue, on a second run, the > sender > thread was spiking using 100%cpu and leaving nothing to the window > thread which was stalling totally for several seconds, when moving > the > mouse around it helped reschedule things it seems... Is it expected? > Any > idea? Sounds at least weird. What exactly are the thread priorities involved? Bye, Axel. From alex at zappotek.com Sun Jan 11 14:30:45 2009 From: alex at zappotek.com (Alexandre Deckner) Date: Sun, 11 Jan 2009 14:30:45 +0100 Subject: [Haiku-commits] r28872 - haiku/trunk/src/kits/tracker In-Reply-To: <8599578772-BeMail@zon> References: <8599578772-BeMail@zon> Message-ID: <4969F485.1040604@zappotek.com> >> The problem looked like a scheduling issue, on a second run, the >> sender >> thread was spiking using 100%cpu and leaving nothing to the window >> thread which was stalling totally for several seconds, when moving >> the >> mouse around it helped reschedule things it seems... Is it expected? >> Any >> idea? >> > > Sounds at least weird. What exactly are the thread priorities involved? Both have just a 'display priority' (15). Alex From axeld at mail.berlios.de Sun Jan 11 15:19:20 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Sun, 11 Jan 2009 15:19:20 +0100 Subject: [Haiku-commits] r28879 - haiku/trunk/src/system/libroot/posix/string Message-ID: <200901111419.n0BEJK64015851@sheep.berlios.de> Author: axeld Date: 2009-01-11 15:19:20 +0100 (Sun, 11 Jan 2009) New Revision: 28879 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28879&view=rev Modified: haiku/trunk/src/system/libroot/posix/string/strerror.c Log: * "" is not really a good error description. Modified: haiku/trunk/src/system/libroot/posix/string/strerror.c =================================================================== --- haiku/trunk/src/system/libroot/posix/string/strerror.c 2009-01-11 11:47:31 UTC (rev 28878) +++ haiku/trunk/src/system/libroot/posix/string/strerror.c 2009-01-11 14:19:20 UTC (rev 28879) @@ -1,5 +1,5 @@ /* - * Copyright 2005, Axel D?rfler, axeld at pinc-software.de. All rights reserved. + * Copyright 2005-2009, Axel D?rfler, axeld at pinc-software.de. * Distributed under the terms of the MIT license. * * Copyright 2001, Dan Sinclair. All rights reserved. @@ -33,7 +33,8 @@ {B_DEVICE_ERROR_BASE, "Device "}, {B_ERRORS_END, "Application "}, }; -static const uint32 kNumErrorBases = sizeof(kErrorBases) / sizeof(struct error_base); +static const uint32 kNumErrorBases = sizeof(kErrorBases) + / sizeof(struct error_base); static char * @@ -396,8 +397,8 @@ case B_NO_TRANSLATOR: return "No translator found"; case B_ILLEGAL_DATA: - return ""; - + return "Illegal data"; + // Other POSIX Errors case ENFILE: @@ -562,6 +563,6 @@ strlcpy(buffer, description, bufferSize); return 0; - // ToDo: could return ERANGE if buffer is too small + // TODO: could return ERANGE if buffer is too small } From axeld at mail.berlios.de Sun Jan 11 15:22:50 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Sun, 11 Jan 2009 15:22:50 +0100 Subject: [Haiku-commits] r28880 - haiku/trunk/src/apps/stylededit Message-ID: <200901111422.n0BEMoxW016365@sheep.berlios.de> Author: axeld Date: 2009-01-11 15:22:49 +0100 (Sun, 11 Jan 2009) New Revision: 28880 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28880&view=rev Modified: haiku/trunk/src/apps/stylededit/StyledEditWindow.cpp Log: * Actually show the error that happened - are we Windows or what? * Automatic whitespace cleanup. Modified: haiku/trunk/src/apps/stylededit/StyledEditWindow.cpp =================================================================== --- haiku/trunk/src/apps/stylededit/StyledEditWindow.cpp 2009-01-11 14:19:20 UTC (rev 28879) +++ haiku/trunk/src/apps/stylededit/StyledEditWindow.cpp 2009-01-11 14:22:49 UTC (rev 28880) @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008, Haiku, Inc. All Rights Reserved. + * Copyright 2002-2009, Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. * * Authors: @@ -741,10 +741,10 @@ if (index == 0) return false; // "cancel": dont save, dont close the window - + if (index == 1) return true; // "don't save": just close the window - + if (!fSaveMessage) { SaveAs(new BMessage(SAVE_THEN_QUIT)); return false; @@ -759,7 +759,7 @@ { if (!message) message = fSaveMessage; - + if (!message) return B_ERROR; @@ -771,24 +771,19 @@ BDirectory dir(&dirRef); BEntry entry(&dir, name); - + status_t status = B_ERROR; if (dir.InitCheck() == B_OK && entry.InitCheck() == B_OK) { BFile file(&entry, B_READ_WRITE | B_CREATE_FILE); if (file.InitCheck() == B_OK) status = fTextView->WriteStyledEditFile(&file); } - + if (status != B_OK) { - BString alertText; - if (status == B_TRANSLATION_ERROR_BASE) - alertText.SetTo("Translation error saving \""); - else - alertText.SetTo("Unknown error saving \""); + BString alertText("Error saving \""); + alertText << name << "\":\n" << strerror(status); - alertText << name << "\"."; _ShowAlert(alertText, "OK", "", "", B_STOP_ALERT); - return status; } @@ -1321,14 +1316,14 @@ const char* button2 = NULL; if (label2.Length() > 0) button2 = label2.String(); - + const char* button3 = NULL; button_spacing spacing = B_EVEN_SPACING; if (label3.Length() > 0) { button3 = label3.String(); spacing = B_OFFSET_SPACING; } - + BAlert* alert = new BAlert("Alert", text.String(), label.String(), button2, button3, B_WIDTH_AS_USUAL, spacing, type); alert->SetShortcut(0, B_ESCAPE); From axeld at mail.berlios.de Sun Jan 11 15:24:38 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Sun, 11 Jan 2009 15:24:38 +0100 Subject: [Haiku-commits] r28881 - haiku/trunk/src/system/kernel/fs Message-ID: <200901111424.n0BEOc6b016595@sheep.berlios.de> Author: axeld Date: 2009-01-11 15:24:38 +0100 (Sun, 11 Jan 2009) New Revision: 28881 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28881&view=rev Modified: haiku/trunk/src/system/kernel/fs/vfs.cpp Log: * fs_write() is optional for read-only file systems. This fixes bug #3062 and also #3083 (although I could not reproduce the latter). Modified: haiku/trunk/src/system/kernel/fs/vfs.cpp =================================================================== --- haiku/trunk/src/system/kernel/fs/vfs.cpp 2009-01-11 14:22:49 UTC (rev 28880) +++ haiku/trunk/src/system/kernel/fs/vfs.cpp 2009-01-11 14:24:38 UTC (rev 28881) @@ -5221,6 +5221,8 @@ if (S_ISDIR(vnode->type)) return B_IS_A_DIRECTORY; + if (!HAS_FS_CALL(vnode, write)) + return EROFS; return FS_CALL(vnode, write, descriptor->cookie, pos, buffer, length); } From axeld at pinc-software.de Sun Jan 11 15:34:39 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Sun, 11 Jan 2009 15:34:39 +0100 CET Subject: [Haiku-commits] r28872 - haiku/trunk/src/kits/tracker In-Reply-To: <4969F485.1040604@zappotek.com> Message-ID: <14835535523-BeMail@zon> Alexandre Deckner wrote: > > Sounds at least weird. What exactly are the thread priorities > > involved? > Both have just a 'display priority' (15). On a dual or single core? Bye, Axel. From alex at zappotek.com Sun Jan 11 15:52:10 2009 From: alex at zappotek.com (Alexandre Deckner) Date: Sun, 11 Jan 2009 15:52:10 +0100 Subject: [Haiku-commits] r28872 - haiku/trunk/src/kits/tracker In-Reply-To: <14835535523-BeMail@zon> References: <14835535523-BeMail@zon> Message-ID: <496A079A.6010602@zappotek.com> Axel D?rfler wrote: > Alexandre Deckner wrote: > >>> Sounds at least weird. What exactly are the thread priorities >>> involved? >>> >> Both have just a 'display priority' (15). >> > > On a dual or single core? That was on a single core vmware, i did some testing on real hardware but didn't try without the snooze. I can imagine that the virtual disk might do some caching itself and appear extremely fast in some conditions, thus explaining the spikes. But should that stall the other thread? Alex From axeld at mail.berlios.de Sun Jan 11 17:40:12 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Sun, 11 Jan 2009 17:40:12 +0100 Subject: [Haiku-commits] r28882 - haiku/trunk/src/tests/kits/net/tcp_shell Message-ID: <200901111640.n0BGeCP8002058@sheep.berlios.de> Author: axeld Date: 2009-01-11 17:40:12 +0100 (Sun, 11 Jan 2009) New Revision: 28882 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28882&view=rev Added: haiku/trunk/src/tests/kits/net/tcp_shell/BufferQueueTest.cpp Modified: haiku/trunk/src/tests/kits/net/tcp_shell/Jamfile Log: * A new test app for the BufferQueue implementation - this currently fails. Added: haiku/trunk/src/tests/kits/net/tcp_shell/BufferQueueTest.cpp =================================================================== --- haiku/trunk/src/tests/kits/net/tcp_shell/BufferQueueTest.cpp 2009-01-11 14:24:38 UTC (rev 28881) +++ haiku/trunk/src/tests/kits/net/tcp_shell/BufferQueueTest.cpp 2009-01-11 16:40:12 UTC (rev 28882) @@ -0,0 +1,133 @@ +#define DEBUG_BUFFER_QUEUE 1 + +#include "BufferQueue.h" + +#include +#include + + +extern "C" status_t _add_builtin_module(module_info *info); + +extern struct net_buffer_module_info gNetBufferModule; + // from net_buffer.cpp + +struct net_socket_module_info gNetSocketModule; +struct net_buffer_module_info* gBufferModule; + +BufferQueue gQueue(32768); + + +net_buffer* +create_filled_buffer(size_t bytes) +{ + const static uint8 data[4096] = {0}; + + net_buffer* buffer = gBufferModule->create(256); + if (buffer == NULL) { + printf("creating a buffer failed!\n"); + return NULL; + } + + status_t status = gBufferModule->append(buffer, data, bytes); + if (status != B_OK) { + printf("appending %lu bytes to buffer %p failed: %s\n", bytes, buffer, + strerror(status)); + gBufferModule->free(buffer); + return NULL; + } + + return buffer; +} + + +void +add(size_t bytes, uint32 at) +{ + gQueue.Add(create_filled_buffer(bytes), at); +} + + +void +eat(size_t bytes) +{ + net_buffer* buffer = NULL; + status_t status = gQueue.Get(bytes, true, &buffer); + if (status == B_OK) { + ASSERT(buffer->size == bytes); + gBufferModule->free(buffer); + } else + printf("getting %lu bytes failed: %s\n", bytes, strerror(status)); +} + + +void +dump(const char* text = "") +{ + printf("%s (available %lu at %lu)\n", text, gQueue.Available(), + (uint32)gQueue.FirstSequence()); + gQueue.Dump(); +} + + +int +main() +{ + _add_builtin_module((module_info*)&gNetBufferModule); + get_module(NET_BUFFER_MODULE_NAME, (module_info**)&gBufferModule); + gQueue.SetInitialSequence(100); + + add(100, 100); + add(100, 300); + add(100, 250); + add(100, 175); + ASSERT(gQueue.Available() == 300); + dump("add 4"); + + eat(99); + dump("ate 99"); + + eat(1); + eat(1); + eat(149); + eat(50); + + add(10, 100); + add(0, 400); + add(1, 399); + dump("add nothing"); + + add(1, 1000); + dump("add far away"); + + add(2, 399); + dump("add 1"); + + add(100, 500); + add(10, 480); + add(19, 401); + add(10, 460); + add(10, 420); + add(30, 430); + add(35, 465); + dump("added with holes"); + + add(50, 425); + dump("added no new data"); + + eat(19); + eat(1); + eat(40); + eat(50); + dump("ate some"); + + add(1, 999); + dump("add 1"); + add(2, 999); + add(2, 999); + dump("add 2"); + add(3, 999); + dump("add 3"); + + put_module(NET_BUFFER_MODULE_NAME); + return 0; +} Modified: haiku/trunk/src/tests/kits/net/tcp_shell/Jamfile =================================================================== --- haiku/trunk/src/tests/kits/net/tcp_shell/Jamfile 2009-01-11 14:24:38 UTC (rev 28881) +++ haiku/trunk/src/tests/kits/net/tcp_shell/Jamfile 2009-01-11 16:40:12 UTC (rev 28882) @@ -29,6 +29,20 @@ : be libkernelland_emu.so ; +SimpleTest BufferQueueTest : + BufferQueueTest.cpp + + # stack + ancillary_data.cpp + net_buffer.cpp + utility.cpp + + # tcp + BufferQueue.cpp + + : be libkernelland_emu.so +; + SEARCH on [ FGristFiles tcp.cpp TCPEndpoint.cpp BufferQueue.cpp EndpointManager.cpp ] = [ FDirName $(HAIKU_TOP) src add-ons kernel network protocols tcp ] ; From axeld at mail.berlios.de Sun Jan 11 17:41:08 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Sun, 11 Jan 2009 17:41:08 +0100 Subject: [Haiku-commits] r28883 - haiku/trunk/src/add-ons/kernel/network/protocols/tcp Message-ID: <200901111641.n0BGf8uF002214@sheep.berlios.de> Author: axeld Date: 2009-01-11 17:41:08 +0100 (Sun, 11 Jan 2009) New Revision: 28883 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28883&view=rev Modified: haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp Log: * Fixed a few more problems that the test application revealed. This should also close #2594. Modified: haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp 2009-01-11 16:40:12 UTC (rev 28882) +++ haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp 2009-01-11 16:41:08 UTC (rev 28883) @@ -83,12 +83,19 @@ fContiguousBytes)); VERIFY(); - if (tcp_sequence(sequence + buffer->size) <= fFirstSequence) { + if (tcp_sequence(sequence + buffer->size) <= fFirstSequence + || buffer->size == 0) { // This buffer does not contain any data of interest gBufferModule->free(buffer); return; } + if (sequence < fFirstSequence) { + // Remove the stuff we already have + gBufferModule->remove_header(buffer, fFirstSequence - sequence); + sequence = fFirstSequence; + } + if (fList.IsEmpty() || sequence >= fLastSequence) { // we usually just add the buffer to the end of the queue fList.Add(buffer); @@ -166,7 +173,7 @@ && tcp_sequence(sequence + buffer->size) > next->sequence) { // we already have at least part of this data if (tcp_sequence(next->sequence + next->size) - < sequence + buffer->size) { + <= sequence + buffer->size) { net_buffer *remove = next; next = (net_buffer *)next->link.next; @@ -469,7 +476,7 @@ SegmentList::ConstIterator iterator = fList.GetIterator(); int32 number = 0; while (net_buffer* buffer = iterator.Next()) { - kprintf(" %ld. buffer %p, sequence %lx, size %lu\n", ++number, + kprintf(" %ld. buffer %p, sequence %lu, size %lu\n", ++number, buffer, buffer->sequence, buffer->size); } } From julun at mail.berlios.de Sun Jan 11 18:39:55 2009 From: julun at mail.berlios.de (julun at BerliOS) Date: Sun, 11 Jan 2009 18:39:55 +0100 Subject: [Haiku-commits] r28884 - haiku/trunk/src/kits/tracker Message-ID: <200901111739.n0BHdtjY022026@sheep.berlios.de> Author: julun Date: 2009-01-11 18:39:54 +0100 (Sun, 11 Jan 2009) New Revision: 28884 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28884&view=rev Modified: haiku/trunk/src/kits/tracker/OpenWithWindow.cpp Log: * Prevent the B_OBSERVER_NOTICE_CHANGE to get passed on to ContainerWindow, since this would crash Tracker in case the 'Open With' window is shown and one try's to set, e.g 'Show full path in title' or 'Show Navigator' etc. Modified: haiku/trunk/src/kits/tracker/OpenWithWindow.cpp =================================================================== --- haiku/trunk/src/kits/tracker/OpenWithWindow.cpp 2009-01-11 16:41:08 UTC (rev 28883) +++ haiku/trunk/src/kits/tracker/OpenWithWindow.cpp 2009-01-11 17:39:54 UTC (rev 28884) @@ -318,6 +318,9 @@ case kCancelButton: PostMessage(B_QUIT_REQUESTED); return; + + case B_OBSERVER_NOTICE_CHANGE: + return; } _inherited::MessageReceived(message); } From julun at mail.berlios.de Sun Jan 11 19:12:14 2009 From: julun at mail.berlios.de (julun at BerliOS) Date: Sun, 11 Jan 2009 19:12:14 +0100 Subject: [Haiku-commits] r28885 - haiku/trunk/src/kits/tracker Message-ID: <200901111812.n0BICETS028022@sheep.berlios.de> Author: julun Date: 2009-01-11 19:12:12 +0100 (Sun, 11 Jan 2009) New Revision: 28885 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28885&view=rev Modified: haiku/trunk/src/kits/tracker/PoseView.cpp Log: * Prevent a column to shrink smaller then the default column width. This was most notable when double clicking e.g. the Size column in a tracker window containing only folders. It would shrink smaller then one can resize it while dragging the resize 'handle'. Modified: haiku/trunk/src/kits/tracker/PoseView.cpp =================================================================== --- haiku/trunk/src/kits/tracker/PoseView.cpp 2009-01-11 17:39:54 UTC (rev 28884) +++ haiku/trunk/src/kits/tracker/PoseView.cpp 2009-01-11 18:12:12 UTC (rev 28885) @@ -8493,7 +8493,7 @@ { ASSERT(ViewMode() == kListMode); - float maxWidth = 0; + float maxWidth = kMinColumnWidth; int32 count = fPoseList->CountItems(); for (int32 i = 0; i < count; ++i) { @@ -8505,7 +8505,7 @@ } } - if (maxWidth > 0) { + if (maxWidth > kMinColumnWidth || maxWidth < column->Width()) { ResizeColumn(column, maxWidth); return true; } From axeld at pinc-software.de Sun Jan 11 19:28:20 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Sun, 11 Jan 2009 19:28:20 +0100 CET Subject: [Haiku-commits] r28872 - haiku/trunk/src/kits/tracker In-Reply-To: <496A079A.6010602@zappotek.com> Message-ID: <28856408503-BeMail@zon> Alexandre Deckner wrote: > >> Both have just a 'display priority' (15). > > On a dual or single core? > That was on a single core vmware, i did some testing on real hardware > but didn't try without the snooze. > I can imagine that the virtual disk might do some caching itself and > appear extremely fast in some conditions, thus explaining the spikes. > But should that stall the other thread? They should actually bounce one after the other - it might just be that the poses thread could always use its whole quantum while the window thread needed to wait after each little communication with the app_server. For the poses thread, a B_NORMAL_PRIORITY would therefore probably a better choice; only in the I/O bound case this could hurt its performance, but responsiveness is more important, I guess :-) Bye, Axel. From julun at mail.berlios.de Sun Jan 11 20:06:46 2009 From: julun at mail.berlios.de (julun at BerliOS) Date: Sun, 11 Jan 2009 20:06:46 +0100 Subject: [Haiku-commits] r28886 - in haiku/trunk: headers/os/interface src/kits/interface Message-ID: <200901111906.n0BJ6kTM006768@sheep.berlios.de> Author: julun Date: 2009-01-11 20:06:45 +0100 (Sun, 11 Jan 2009) New Revision: 28886 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28886&view=rev Modified: haiku/trunk/headers/os/interface/PictureButton.h haiku/trunk/src/kits/interface/PictureButton.cpp Log: * cleanup * use std::nothrow Modified: haiku/trunk/headers/os/interface/PictureButton.h =================================================================== --- haiku/trunk/headers/os/interface/PictureButton.h 2009-01-11 18:12:12 UTC (rev 28885) +++ haiku/trunk/headers/os/interface/PictureButton.h 2009-01-11 19:06:45 UTC (rev 28886) @@ -1,151 +1,104 @@ -//------------------------------------------------------------------------------ -// Copyright (c) 2001-2002, OpenBeOS -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// -// File Name: PictureButton.h -// Author: Graham MacDonald (macdonag at btopenworld.com) -// Description: BPictureButton displays and controls a picture button in a -// window. -//------------------------------------------------------------------------------ - +/* + * Copyright 2001-2008, Haiku, Inc. + * Distributed under the terms of the MIT license. + * + * Authors: + * Graham MacDonald (macdonag at btopenworld.com) + */ #ifndef _PICTURE_BUTTON_H #define _PICTURE_BUTTON_H -// Standard Includes ----------------------------------------------------------- -// System Includes ------------------------------------------------------------- #include #include -#include /* For convenience */ +#include -// Project Includes ------------------------------------------------------------ -// Local Includes -------------------------------------------------------------- - -// Local Defines --------------------------------------------------------------- - -// Globals --------------------------------------------------------------------- enum { B_ONE_STATE_BUTTON, B_TWO_STATE_BUTTON }; -// BPictureButton class -------------------------------------------------------- class BPictureButton : public BControl { public: - BPictureButton (BRect frame, - const char* name, - BPicture *off, - BPicture *on, - BMessage *message, - uint32 behavior = B_ONE_STATE_BUTTON, - uint32 resizeMask = B_FOLLOW_LEFT | B_FOLLOW_TOP, - uint32 flgs = B_WILL_DRAW | B_NAVIGABLE); - BPictureButton (BMessage *data); - - virtual ~BPictureButton (); + BPictureButton(BRect frame, const char* name, BPicture* off, + BPicture* on, BMessage* message, + uint32 behavior = B_ONE_STATE_BUTTON, + uint32 resizeMask = B_FOLLOW_LEFT | B_FOLLOW_TOP, + uint32 flgs = B_WILL_DRAW | B_NAVIGABLE); + BPictureButton(BMessage* data); - - static BArchivable *Instantiate (BMessage *data); + virtual ~BPictureButton(); - virtual status_t Archive (BMessage *data, bool deep = true) const; - virtual void Draw (BRect updateRect); + static BArchivable* Instantiate(BMessage* data); + virtual status_t Archive(BMessage* data, bool deep = true) const; - virtual void MouseDown (BPoint point); - virtual void KeyDown (const char *bytes, int32 numBytes); + virtual void Draw(BRect updateRect); - virtual void SetEnabledOn (BPicture *on); - virtual void SetEnabledOff (BPicture *off); - virtual void SetDisabledOn (BPicture *on); - virtual void SetDisabledOff (BPicture *off); - - BPicture *EnabledOn () const; - BPicture *EnabledOff () const; - BPicture *DisabledOn () const; - BPicture *DisabledOff () const; + virtual void MouseDown(BPoint point); + virtual void KeyDown(const char* bytes, int32 numBytes); - virtual void SetBehavior (uint32 behavior); - uint32 Behavior () const; + virtual void SetEnabledOn(BPicture* on); + virtual void SetEnabledOff(BPicture* off); + virtual void SetDisabledOn(BPicture* on); + virtual void SetDisabledOff(BPicture* off); - virtual void MessageReceived (BMessage *msg); - virtual void MouseUp (BPoint point); - virtual void WindowActivated (bool state); - virtual void MouseMoved (BPoint pt, uint32 code, const BMessage *msg); - virtual void AttachedToWindow (); - virtual void DetachedFromWindow (); - virtual void SetValue (int32 value); - virtual status_t Invoke (BMessage *msg = NULL); - virtual void FrameMoved (BPoint new_position); - virtual void FrameResized (float new_width, float new_height); + BPicture* EnabledOn() const; + BPicture* EnabledOff() const; + BPicture* DisabledOn() const; + BPicture* DisabledOff() const; - virtual BHandler *ResolveSpecifier (BMessage *msg, - int32 index, - BMessage *specifier, - int32 form, - const char *property); - virtual status_t GetSupportedSuites (BMessage *data); + virtual void SetBehavior(uint32 behavior); + uint32 Behavior() const; - virtual void ResizeToPreferred (); - virtual void GetPreferredSize (float *width, float *height); - virtual void MakeFocus (bool state = true); - virtual void AllAttached (); - virtual void AllDetached (); + virtual void MessageReceived(BMessage* message); + virtual void MouseUp(BPoint point); + virtual void WindowActivated(bool state); + virtual void MouseMoved(BPoint pt, uint32 code, + const BMessage* message); + virtual void AttachedToWindow(); + virtual void DetachedFromWindow(); + virtual void SetValue(int32 value); + virtual status_t Invoke(BMessage* message = NULL); + virtual void FrameMoved(BPoint newPosition); + virtual void FrameResized(float newWidth, float newHeight); + virtual BHandler* ResolveSpecifier(BMessage* message, int32 index, + BMessage* specifier, int32 form, const char* p); + virtual status_t GetSupportedSuites(BMessage* data); - // Private or reserved ----------------------------------------------------- - virtual status_t Perform (perform_code d, void *arg); + virtual void ResizeToPreferred(); + virtual void GetPreferredSize(float* width, float* height); + virtual void MakeFocus(bool state = true); + virtual void AllAttached(); + virtual void AllDetached(); + virtual status_t Perform(perform_code d, void* arg); private: - virtual void _ReservedPictureButton1 (); - virtual void _ReservedPictureButton2 (); - virtual void _ReservedPictureButton3 (); + virtual void _ReservedPictureButton1(); + virtual void _ReservedPictureButton2(); + virtual void _ReservedPictureButton3(); - BPictureButton &operator= (const BPictureButton &); + BPictureButton &operator=(const BPictureButton &); - void Redraw (); - void InitData (); + void _Redraw(); + void _InitData(); - BPicture *fEnabledOff; - BPicture *fEnabledOn; - BPicture *fDisabledOff; - BPicture *fDisabledOn; + BPicture* fEnabledOff; + BPicture* fEnabledOn; + BPicture* fDisabledOff; + BPicture* fDisabledOn; - bool fOutlined; + bool unused; - uint32 fBehavior; - uint32 _reserved[4]; + uint32 fBehavior; + uint32 _reserved[4]; }; -//------------------------------------------------------------------------------ -#endif /* _PICTURE_BUTTON_H */ - -/* - * $Log $ - * - * $Id $ - * - */ - +#endif Modified: haiku/trunk/src/kits/interface/PictureButton.cpp =================================================================== --- haiku/trunk/src/kits/interface/PictureButton.cpp 2009-01-11 18:12:12 UTC (rev 28885) +++ haiku/trunk/src/kits/interface/PictureButton.cpp 2009-01-11 19:06:45 UTC (rev 28886) @@ -1,34 +1,32 @@ /* - * Copyright 2001-2005, Haiku, Inc. + * Copyright 2001-2009, Haiku, Inc. * Distributed under the terms of the MIT license. * * Authors: * Graham MacDonald (macdonag at btopenworld.com) */ -/** BPictureButton displays and controls a picture button in a window. */ - - #include #include +#include -BPictureButton::BPictureButton(BRect frame, const char* name, - BPicture *off, BPicture *on, BMessage *message, + +BPictureButton::BPictureButton(BRect frame, const char* name, + BPicture* off, BPicture* on, BMessage* message, uint32 behavior, uint32 resizeMask, uint32 flags) : BControl(frame, name, "", message, resizeMask, flags), - fDisabledOff(NULL), - fDisabledOn(NULL), - fOutlined(false), - fBehavior(behavior) + fDisabledOff(NULL), + fDisabledOn(NULL), + fBehavior(behavior) { - fEnabledOff = new BPicture(*off); - fEnabledOn = new BPicture(*on); + fEnabledOff = new (std::nothrow)BPicture(*off); + fEnabledOn = new (std::nothrow) BPicture(*on); } -BPictureButton::BPictureButton(BMessage *data) +BPictureButton::BPictureButton(BMessage* data) : BControl(data), fEnabledOff(NULL), fEnabledOn(NULL), @@ -38,21 +36,21 @@ BMessage pictureArchive; // Default to 1 state button if not here - is this valid? - if (data->FindInt32 ("_behave", (int32 *)&fBehavior) != B_OK) + if (data->FindInt32 ("_behave", (int32* )&fBehavior) != B_OK) fBehavior = B_ONE_STATE_BUTTON; // Now expand the pictures: if (data->FindMessage("_e_on", &pictureArchive) == B_OK) - fEnabledOn = new BPicture(&pictureArchive); + fEnabledOn = new (std::nothrow) BPicture(&pictureArchive); if (data->FindMessage("_e_off", &pictureArchive) == B_OK) - fEnabledOff = new BPicture(&pictureArchive); + fEnabledOff = new (std::nothrow) BPicture(&pictureArchive); if (data->FindMessage("_d_on", &pictureArchive) == B_OK) - fDisabledOn = new BPicture(&pictureArchive); + fDisabledOn = new (std::nothrow) BPicture(&pictureArchive); if (data->FindMessage("_d_off", &pictureArchive) == B_OK) - fDisabledOff = new BPicture(&pictureArchive); + fDisabledOff = new (std::nothrow) BPicture(&pictureArchive); } @@ -65,18 +63,18 @@ } -BArchivable * -BPictureButton::Instantiate(BMessage *data) +BArchivable* +BPictureButton::Instantiate(BMessage* data) { if ( validate_instantiation(data, "BPictureButton")) - return new BPictureButton(data); + return new (std::nothrow) BPictureButton(data); return NULL; } status_t -BPictureButton::Archive(BMessage *data, bool deep) const +BPictureButton::Archive(BMessage* data, bool deep) const { status_t err = BControl::Archive(data, deep); if (err != B_OK) @@ -118,22 +116,17 @@ void BPictureButton::Draw(BRect updateRect) { - BRect rect = Bounds(); - - // We should request the view's base color which normaly is (216,216,216) - rgb_color color = ui_color(B_PANEL_BACKGROUND_COLOR); - if (IsEnabled()) { if (Value() == B_CONTROL_ON) DrawPicture(fEnabledOn); else DrawPicture(fEnabledOff); } else { - + if (fDisabledOff == NULL || (fDisabledOn == NULL && fBehavior == B_TWO_STATE_BUTTON)) debugger("Need to set the 'disabled' pictures for this BPictureButton "); - + if (Value() == B_CONTROL_ON) DrawPicture(fDisabledOn); else @@ -142,7 +135,7 @@ if (IsFocus()) { SetHighColor(ui_color(B_KEYBOARD_NAVIGATION_COLOR)); - StrokeRect(rect, B_SOLID_HIGH); + StrokeRect(Bounds(), B_SOLID_HIGH); } } @@ -190,7 +183,7 @@ void -BPictureButton::MouseMoved(BPoint point, uint32 transit, const BMessage *msg) +BPictureButton::MouseMoved(BPoint point, uint32 transit, const BMessage* msg) { if (IsEnabled() && IsTracking()) { if (transit == B_EXITED_VIEW) @@ -203,7 +196,7 @@ void -BPictureButton::KeyDown(const char *bytes, int32 numBytes) +BPictureButton::KeyDown(const char* bytes, int32 numBytes) { if (numBytes == 1) { switch (bytes[0]) { @@ -229,59 +222,59 @@ void -BPictureButton::SetEnabledOn(BPicture *on) +BPictureButton::SetEnabledOn(BPicture* on) { delete fEnabledOn; - fEnabledOn = new BPicture(*on); + fEnabledOn = new (std::nothrow) BPicture(*on); } void -BPictureButton::SetEnabledOff(BPicture *off) +BPictureButton::SetEnabledOff(BPicture* off) { delete fEnabledOff; - fEnabledOff = new BPicture(*off); + fEnabledOff = new (std::nothrow) BPicture(*off); } void -BPictureButton::SetDisabledOn(BPicture *on) +BPictureButton::SetDisabledOn(BPicture* on) { delete fDisabledOn; - fDisabledOn = new BPicture(*on); + fDisabledOn = new (std::nothrow) BPicture(*on); } void -BPictureButton::SetDisabledOff(BPicture *off) +BPictureButton::SetDisabledOff(BPicture* off) { delete fDisabledOff; - fDisabledOff = new BPicture(*off); + fDisabledOff = new (std::nothrow) BPicture(*off); } -BPicture * +BPicture* BPictureButton::EnabledOn() const { return fEnabledOn; } -BPicture * +BPicture* BPictureButton::EnabledOff() const { return fEnabledOff; } -BPicture * +BPicture* BPictureButton::DisabledOn() const { return fDisabledOn; } -BPicture * +BPicture* BPictureButton::DisabledOff() const { return fDisabledOff; @@ -303,7 +296,7 @@ void -BPictureButton::MessageReceived(BMessage *msg) +BPictureButton::MessageReceived(BMessage* msg) { BControl::MessageReceived(msg); } @@ -338,7 +331,7 @@ status_t -BPictureButton::Invoke(BMessage *msg) +BPictureButton::Invoke(BMessage* msg) { return BControl::Invoke(msg); } @@ -358,16 +351,16 @@ } -BHandler * -BPictureButton::ResolveSpecifier(BMessage *msg, int32 index, - BMessage *specifier, int32 form, const char *property) +BHandler* +BPictureButton::ResolveSpecifier(BMessage* msg, int32 index, + BMessage* specifier, int32 form, const char* property) { return BControl::ResolveSpecifier(msg, index, specifier, form, property); } status_t -BPictureButton::GetSupportedSuites(BMessage *data) +BPictureButton::GetSupportedSuites(BMessage* data) { return BControl::GetSupportedSuites(data); } @@ -383,7 +376,6 @@ void BPictureButton::GetPreferredSize(float* _width, float* _height) { - // Need to do some test to see what the Be method returns... BControl::GetPreferredSize(_width, _height); } @@ -470,7 +462,7 @@ void BPictureButton::_ReservedPictureButton3() {} -BPictureButton & +BPictureButton& BPictureButton::operator=(const BPictureButton &button) { return *this; @@ -478,13 +470,13 @@ void -BPictureButton::Redraw() +BPictureButton::_Redraw() { } void -BPictureButton::InitData() +BPictureButton::_InitData() { } From korli at mail.berlios.de Sun Jan 11 23:55:56 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Sun, 11 Jan 2009 23:55:56 +0100 Subject: [Haiku-commits] r28887 - in haiku/trunk/src/add-ons/kernel/drivers/audio: ac97/auich ac97/auvia echo emuxki hda Message-ID: <200901112255.n0BMtuAG030046@sheep.berlios.de> Author: korli Date: 2009-01-11 23:55:55 +0100 (Sun, 11 Jan 2009) New Revision: 28887 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28887&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/multi.c haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auvia/multi.c haiku/trunk/src/add-ons/kernel/drivers/audio/echo/multi.cpp haiku/trunk/src/add-ons/kernel/drivers/audio/emuxki/multi.c haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp Log: * for user_memcpy, use an on-stack structure and copy that at once, as suggested by Axel. * apply to auvia, emuxki and echo*. Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/multi.c =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/multi.c 2009-01-11 19:06:45 UTC (rev 28886) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/multi.c 2009-01-11 22:55:55 UTC (rev 28887) @@ -867,11 +867,16 @@ { cpu_status status; auich_stream *pstream, *rstream; - bigtime_t played_real_time, recorded_real_time; - uint64 played_frames_count, recorded_frames_count; - int32 playback_buffer_cycle, record_buffer_cycle, _reserved_0, _reserved_1; + multi_buffer_info buffer_info; + +#ifdef __HAIKU__ + if (user_memcpy(&buffer_info, data, sizeof(buffer_info)) < B_OK) + return B_BAD_ADDRESS; +#else + memcpy(&buffer_info, data, sizeof(buffer_info)); +#endif - data->flags = B_MULTI_BUFFER_PLAYBACK | B_MULTI_BUFFER_RECORD; + buffer_info.flags = B_MULTI_BUFFER_PLAYBACK | B_MULTI_BUFFER_RECORD; if (!(card->pstream->state & AUICH_STATE_STARTED)) auich_stream_start(card->pstream, auich_play_inth, card->pstream); @@ -908,35 +913,26 @@ rstream = card->rstream; /* do playback */ - playback_buffer_cycle = pstream->buffer_cycle; - played_real_time = pstream->real_time; - played_frames_count = pstream->frames_count; - _reserved_0 = pstream->first_channel; + buffer_info.playback_buffer_cycle = pstream->buffer_cycle; + buffer_info.played_real_time = pstream->real_time; + buffer_info.played_frames_count = pstream->frames_count; + buffer_info._reserved_0 = pstream->first_channel; pstream->update_needed = false; /* do record */ - record_buffer_cycle = rstream->buffer_cycle; - recorded_frames_count = rstream->frames_count; - recorded_real_time = rstream->real_time; - _reserved_1 = rstream->first_channel; + buffer_info.record_buffer_cycle = rstream->buffer_cycle; + buffer_info.recorded_frames_count = rstream->frames_count; + buffer_info.recorded_real_time = rstream->real_time; + buffer_info._reserved_1 = rstream->first_channel; rstream->update_needed = false; unlock(status); #ifdef __HAIKU__ -#define copy_to_user(x, y) if (user_memcpy(&x, &y, sizeof(x)) < B_OK) \ - return B_BAD_ADDRESS + if (user_memcpy(data, &buffer_info, sizeof(buffer_info)) < B_OK) + return B_BAD_ADDRESS; #else -#define copy_to_user(x, y) x = y + memcpy(data, &buffer_info, sizeof(buffer_info)); #endif - - copy_to_user(data->playback_buffer_cycle, playback_buffer_cycle); - copy_to_user(data->played_real_time, played_real_time); - copy_to_user(data->played_frames_count, played_frames_count); - copy_to_user(data->_reserved_0, _reserved_0); - copy_to_user(data->record_buffer_cycle, record_buffer_cycle); - copy_to_user(data->recorded_real_time, recorded_real_time); - copy_to_user(data->recorded_frames_count, recorded_frames_count); - copy_to_user(data->_reserved_1, _reserved_1); //TRACE(("buffer_exchange ended\n")); return B_OK; Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auvia/multi.c =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auvia/multi.c 2009-01-11 19:06:45 UTC (rev 28886) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auvia/multi.c 2009-01-11 22:55:55 UTC (rev 28887) @@ -861,8 +861,16 @@ { cpu_status status; auvia_stream *pstream, *rstream; + multi_buffer_info buffer_info; + +#ifdef __HAIKU__ + if (user_memcpy(&buffer_info, data, sizeof(buffer_info)) < B_OK) + return B_BAD_ADDRESS; +#else + memcpy(&buffer_info, data, sizeof(buffer_info)); +#endif - data->flags = B_MULTI_BUFFER_PLAYBACK | B_MULTI_BUFFER_RECORD; + buffer_info.flags = B_MULTI_BUFFER_PLAYBACK | B_MULTI_BUFFER_RECORD; if (!(card->pstream->state & AUVIA_STATE_STARTED)) auvia_stream_start(card->pstream, auvia_play_inth, card->pstream); @@ -899,20 +907,27 @@ rstream = card->rstream; /* do playback */ - data->playback_buffer_cycle = pstream->buffer_cycle; - data->played_real_time = pstream->real_time; - data->played_frames_count = pstream->frames_count; - data->_reserved_0 = pstream->first_channel; + buffer_info.playback_buffer_cycle = pstream->buffer_cycle; + buffer_info.played_real_time = pstream->real_time; + buffer_info.played_frames_count = pstream->frames_count; + buffer_info._reserved_0 = pstream->first_channel; pstream->update_needed = false; /* do record */ - data->record_buffer_cycle = rstream->buffer_cycle; - data->recorded_frames_count = rstream->frames_count; - data->recorded_real_time = rstream->real_time; - data->_reserved_1 = rstream->first_channel; + buffer_info.record_buffer_cycle = rstream->buffer_cycle; + buffer_info.recorded_frames_count = rstream->frames_count; + buffer_info.recorded_real_time = rstream->real_time; + buffer_info._reserved_1 = rstream->first_channel; rstream->update_needed = false; unlock(status); - + +#ifdef __HAIKU__ + if (user_memcpy(data, &buffer_info, sizeof(buffer_info)) < B_OK) + return B_BAD_ADDRESS; +#else + memcpy(data, &buffer_info, sizeof(buffer_info)); +#endif + //TRACE(("buffer_exchange ended\n")); return B_OK; } Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/echo/multi.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/echo/multi.cpp 2009-01-11 19:06:45 UTC (rev 28886) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/echo/multi.cpp 2009-01-11 22:55:55 UTC (rev 28887) @@ -725,9 +725,17 @@ { cpu_status status; echo_stream *pstream, *rstream, *stream; + multi_buffer_info buffer_info; + +#ifdef __HAIKU__ + if (user_memcpy(&buffer_info, data, sizeof(buffer_info)) < B_OK) + return B_BAD_ADDRESS; +#else + memcpy(&buffer_info, data, sizeof(buffer_info)); +#endif - data->flags = B_MULTI_BUFFER_PLAYBACK | B_MULTI_BUFFER_RECORD; - + buffer_info.flags = B_MULTI_BUFFER_PLAYBACK | B_MULTI_BUFFER_RECORD; + LIST_FOREACH(stream, &card->streams, next) { if ((stream->state & ECHO_STATE_STARTED) != 0) continue; @@ -764,20 +772,27 @@ rstream = card->rstream; /* do playback */ - data->playback_buffer_cycle = pstream->buffer_cycle; - data->played_real_time = pstream->real_time; - data->played_frames_count = pstream->frames_count; - data->_reserved_0 = pstream->first_channel; + buffer_info.playback_buffer_cycle = pstream->buffer_cycle; + buffer_info.played_real_time = pstream->real_time; + buffer_info.played_frames_count = pstream->frames_count; + buffer_info._reserved_0 = pstream->first_channel; pstream->update_needed = false; /* do record */ - data->record_buffer_cycle = rstream->buffer_cycle; - data->recorded_frames_count = rstream->frames_count; - data->recorded_real_time = rstream->real_time; - data->_reserved_1 = rstream->first_channel; + buffer_info.record_buffer_cycle = rstream->buffer_cycle; + buffer_info.recorded_frames_count = rstream->frames_count; + buffer_info.recorded_real_time = rstream->real_time; + buffer_info._reserved_1 = rstream->first_channel; rstream->update_needed = false; unlock(status); - + +#ifdef __HAIKU__ + if (user_memcpy(data, &buffer_info, sizeof(buffer_info)) < B_OK) + return B_BAD_ADDRESS; +#else + memcpy(data, &buffer_info, sizeof(buffer_info)); +#endif + //TRACE(("buffer_exchange ended\n")); return B_OK; } Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/emuxki/multi.c =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/emuxki/multi.c 2009-01-11 19:06:45 UTC (rev 28886) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/emuxki/multi.c 2009-01-11 22:55:55 UTC (rev 28887) @@ -997,8 +997,16 @@ { cpu_status status; emuxki_stream *pstream, *rstream; + multi_buffer_info buffer_info; + +#ifdef __HAIKU__ + if (user_memcpy(&buffer_info, data, sizeof(buffer_info)) < B_OK) + return B_BAD_ADDRESS; +#else + memcpy(&buffer_info, data, sizeof(buffer_info)); +#endif - data->flags = B_MULTI_BUFFER_PLAYBACK | B_MULTI_BUFFER_RECORD; + buffer_info.flags = B_MULTI_BUFFER_PLAYBACK | B_MULTI_BUFFER_RECORD; if (!(card->pstream->state & EMU_STATE_STARTED)) emuxki_stream_start(card->pstream, emuxki_play_inth, card->pstream); @@ -1045,20 +1053,27 @@ rstream = card->rstream; /* do playback */ - data->playback_buffer_cycle = pstream->buffer_cycle; - data->played_real_time = pstream->real_time; - data->played_frames_count = pstream->frames_count; - data->_reserved_0 = pstream->first_channel; + buffer_info.playback_buffer_cycle = pstream->buffer_cycle; + buffer_info.played_real_time = pstream->real_time; + buffer_info.played_frames_count = pstream->frames_count; + buffer_info._reserved_0 = pstream->first_channel; pstream->update_needed = false; /* do record */ - data->record_buffer_cycle = rstream->buffer_cycle; - data->recorded_frames_count = rstream->frames_count; - data->recorded_real_time = rstream->real_time; - data->_reserved_1 = rstream->first_channel; + buffer_info.record_buffer_cycle = rstream->buffer_cycle; + buffer_info.recorded_frames_count = rstream->frames_count; + buffer_info.recorded_real_time = rstream->real_time; + buffer_info._reserved_1 = rstream->first_channel; rstream->update_needed = false; unlock(status); +#ifdef __HAIKU__ + if (user_memcpy(data, &buffer_info, sizeof(buffer_info)) < B_OK) + return B_BAD_ADDRESS; +#else + memcpy(data, &buffer_info, sizeof(buffer_info)); +#endif + //TRACE(("buffer_exchange ended\n")); return B_OK; } Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp 2009-01-11 19:06:45 UTC (rev 28886) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp 2009-01-11 22:55:55 UTC (rev 28887) @@ -793,11 +793,8 @@ static int debug_buffers_exchanged = 0; cpu_status status; status_t err; - bigtime_t played_real_time, recorded_real_time; - uint64 played_frames_count, recorded_frames_count; - int32 playback_buffer_cycle, record_buffer_cycle; - - // TODO: support recording! + multi_buffer_info buffer_info; + if (audioGroup->playback_stream == NULL) return B_ERROR; @@ -810,6 +807,13 @@ audioGroup->record_stream); } +#ifdef __HAIKU__ + if (user_memcpy(&buffer_info, data, sizeof(buffer_info)) < B_OK) + return B_BAD_ADDRESS; +#else + memcpy(&buffer_info, data, sizeof(buffer_info)); +#endif + /* do playback */ err = acquire_sem_etc(audioGroup->playback_stream->buffer_ready_sem, 1, B_CAN_INTERRUPT, 0); @@ -822,36 +826,29 @@ status = disable_interrupts(); acquire_spinlock(&audioGroup->playback_stream->lock); - playback_buffer_cycle = audioGroup->playback_stream->buffer_cycle; - played_real_time = audioGroup->playback_stream->real_time; - played_frames_count = audioGroup->playback_stream->frames_count; + buffer_info.playback_buffer_cycle = audioGroup->playback_stream->buffer_cycle; + buffer_info.played_real_time = audioGroup->playback_stream->real_time; + buffer_info.played_frames_count = audioGroup->playback_stream->frames_count; release_spinlock(&audioGroup->playback_stream->lock); if (audioGroup->record_stream) { acquire_spinlock(&audioGroup->record_stream->lock); - record_buffer_cycle = audioGroup->record_stream->buffer_cycle; - recorded_real_time = audioGroup->record_stream->real_time; - recorded_frames_count = audioGroup->record_stream->frames_count; + buffer_info.record_buffer_cycle = audioGroup->record_stream->buffer_cycle; + buffer_info.recorded_real_time = audioGroup->record_stream->real_time; + buffer_info.recorded_frames_count = audioGroup->record_stream->frames_count; release_spinlock(&audioGroup->record_stream->lock); } restore_interrupts(status); #ifdef __HAIKU__ -#define copy_to_user(x, y) if (user_memcpy(&x, &y, sizeof(x)) < B_OK) \ - return B_BAD_ADDRESS + if (user_memcpy(data, &buffer_info, sizeof(buffer_info)) < B_OK) + return B_BAD_ADDRESS; #else -#define copy_to_user(x, y) x = y + memcpy(data, &buffer_info, sizeof(buffer_info)); #endif - - copy_to_user(data->playback_buffer_cycle, playback_buffer_cycle); - copy_to_user(data->played_real_time, played_real_time); - copy_to_user(data->played_frames_count, played_frames_count); - copy_to_user(data->record_buffer_cycle, record_buffer_cycle); - copy_to_user(data->recorded_real_time, recorded_real_time); - copy_to_user(data->recorded_frames_count, recorded_frames_count); - + debug_buffers_exchanged++; if (((debug_buffers_exchanged % 100) == 1) && (debug_buffers_exchanged < 1111)) { dprintf("%s: %d buffers processed\n", __func__, debug_buffers_exchanged); From korli at users.berlios.de Sun Jan 11 23:57:20 2009 From: korli at users.berlios.de (=?ISO-8859-1?Q?J=E9r=F4me_Duval?=) Date: Sun, 11 Jan 2009 23:57:20 +0100 Subject: [Haiku-commits] r28861 - haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich In-Reply-To: <2769322599-BeMail@zon> References: <200901082345.n08NjJXA021342@sheep.berlios.de> <2769322599-BeMail@zon> Message-ID: 2009/1/9 Axel D?rfler > For BeOS, you should use lock_memory() before accessing the buffer to > be on the safe side. I'll do when I'm able to test at least once in BeOS. > > And for Haiku, it would be nicer (and considerably faster) to use an on > -stack structure and copy that at once. > Did so in r28887. Thanks for the hint. Bye, J?r?me -------------- next part -------------- An HTML attachment was scrubbed... URL: From sbenedetto at mail.berlios.de Mon Jan 12 00:38:37 2009 From: sbenedetto at mail.berlios.de (sbenedetto at BerliOS) Date: Mon, 12 Jan 2009 00:38:37 +0100 Subject: [Haiku-commits] r28888 - in haiku/trunk: headers/posix src/system/libroot/posix src/system/libroot/posix/glibc/misc Message-ID: <200901112338.n0BNcbfa011433@sheep.berlios.de> Author: sbenedetto Date: 2009-01-12 00:38:27 +0100 (Mon, 12 Jan 2009) New Revision: 28888 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28888&view=rev Added: haiku/trunk/headers/posix/libgen.h haiku/trunk/src/system/libroot/posix/libgen.cpp Removed: haiku/trunk/src/system/libroot/posix/glibc/misc/dirname.c haiku/trunk/src/system/libroot/posix/glibc/misc/libgen.h Modified: haiku/trunk/src/system/libroot/posix/Jamfile haiku/trunk/src/system/libroot/posix/glibc/misc/Jamfile Log: * Adding libgen.h as a public header * Implementing dirname and basename I removed dirname from glibc/misc and reimplemented in order to (hopefully) keep thing tidy. Added: haiku/trunk/headers/posix/libgen.h =================================================================== --- haiku/trunk/headers/posix/libgen.h 2009-01-11 22:55:55 UTC (rev 28887) +++ haiku/trunk/headers/posix/libgen.h 2009-01-11 23:38:27 UTC (rev 28888) @@ -0,0 +1,17 @@ +/* + * Copyright 2009, Haiku Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ +#ifndef _LIBGEN_H +#define _LIBGEN_H + +#include + +__BEGIN_DECLS + +char *basename(char *); +char *dirname(char *); + +__END_DECLS + +#endif /* _LIBGEN_H */ Modified: haiku/trunk/src/system/libroot/posix/Jamfile =================================================================== --- haiku/trunk/src/system/libroot/posix/Jamfile 2009-01-11 22:55:55 UTC (rev 28887) +++ haiku/trunk/src/system/libroot/posix/Jamfile 2009-01-11 23:38:27 UTC (rev 28888) @@ -19,6 +19,7 @@ fnmatch.c glob.c inttypes.c + libgen.cpp poll.c $(PWD_BACKEND) scheduler.cpp Modified: haiku/trunk/src/system/libroot/posix/glibc/misc/Jamfile =================================================================== --- haiku/trunk/src/system/libroot/posix/glibc/misc/Jamfile 2009-01-11 22:55:55 UTC (rev 28887) +++ haiku/trunk/src/system/libroot/posix/glibc/misc/Jamfile 2009-01-11 23:38:27 UTC (rev 28888) @@ -13,7 +13,6 @@ SubDirCcFlags -D_GNU_SOURCE -DUSE_IN_LIBIO ; MergeObject posix_gnu_misc.o : - dirname.c insremque.c lsearch.c tsearch.c Deleted: haiku/trunk/src/system/libroot/posix/glibc/misc/dirname.c Deleted: haiku/trunk/src/system/libroot/posix/glibc/misc/libgen.h Added: haiku/trunk/src/system/libroot/posix/libgen.cpp =================================================================== --- haiku/trunk/src/system/libroot/posix/libgen.cpp 2009-01-11 22:55:55 UTC (rev 28887) +++ haiku/trunk/src/system/libroot/posix/libgen.cpp 2009-01-11 23:38:27 UTC (rev 28888) @@ -0,0 +1,61 @@ +/* + * Copyright 2009, Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Salvatore Benedetto + */ + +#include +#include + + +char* +basename(char *filepath) +{ + if (filepath == NULL || filepath[0] == '\0') + return (char *)"."; + + size_t length = strlen(filepath); + /* Remove trailing slashes if any */ + while (filepath[--length] == '/' && length) + filepath[length] = '\0'; + + char *last = strrchr(filepath, '/'); + /* If no slash were found return the whole string */ + if (last == NULL) + return filepath; + + /* If the next char is the end it means we got only "/" + * and we don't have to truncate */ + if (*(last + 1) != '\0') + ++last; + + return last; +} + + +char* +dirname(char *filepath) +{ + if (filepath == NULL || filepath[0] == '\0') + return (char *)"."; + + size_t length = strlen(filepath); + /* Remove trailing slashes if any */ + while (filepath[--length] == '/' && length) + filepath[length] = '\0'; + + char *last = strrchr(filepath, '/'); + /* If no slash were found return a dot */ + if (last == NULL) + return (char *)"."; + + /* In case we got just "/" don't truncate it */ + if (last == filepath) + last++; + + *last = '\0'; + + return filepath; +} From ingo_weinhold at gmx.de Mon Jan 12 00:12:56 2009 From: ingo_weinhold at gmx.de (Ingo Weinhold) Date: Mon, 12 Jan 2009 00:12:56 +0100 Subject: [Haiku-commits] r28873 - haiku/trunk/src/tests/kits/support/pointerlist In-Reply-To: <200901110443.n0B4hseQ013416@sheep.berlios.de> References: <200901110443.n0B4hseQ013416@sheep.berlios.de> Message-ID: <20090112001256.512.2@knochen-vm.localdomain> On 2009-01-11 at 05:43:54 [+0100], anevilyak at BerliOS wrote: > Author: anevilyak > Date: 2009-01-11 05:43:53 +0100 (Sun, 11 Jan 2009) > New Revision: 28873 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28873&view=rev > > Added: > haiku/trunk/src/tests/kits/support/pointerlist/PointerListSortTest.cpp > Log: > Added a test that exposes a problem in BObjectList/PointerList. If a list > contains 17 items or greater, and you attempt to sort it with a sort > function that always returns 1 regardless of the items being compared, it > will crash 100% of the time. Looking into why next. Don't waste your time. If the comparator function violates the comparator contract, the behavior of functions using the comparator is undefined. Most notably std::sort() doesn't do bounds checking, but relies on the "less" functor working correctly. CU, Ingo From anevilyak at gmail.com Mon Jan 12 01:13:52 2009 From: anevilyak at gmail.com (Rene Gollent) Date: Sun, 11 Jan 2009 18:13:52 -0600 Subject: [Haiku-commits] r28873 - haiku/trunk/src/tests/kits/support/pointerlist In-Reply-To: <20090112001256.512.2@knochen-vm.localdomain> References: <200901110443.n0B4hseQ013416@sheep.berlios.de> <20090112001256.512.2@knochen-vm.localdomain> Message-ID: On Sun, Jan 11, 2009 at 5:12 PM, Ingo Weinhold wrote: > > On 2009-01-11 at 05:43:54 [+0100], anevilyak at BerliOS > Don't waste your time. If the comparator function violates the comparator > contract, the behavior of functions using the comparator is undefined. Most > notably std::sort() doesn't do bounds checking, but relies on the "less" > functor working correctly. So this behavior is expected? I would've assumed std::sort() would rely on the end() iterator it was given, i.e. if the comparator is returning bad values the sorting order would simply be incorrect. Regards, Rene From axeld at pinc-software.de Mon Jan 12 09:36:12 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Mon, 12 Jan 2009 09:36:12 +0100 CET Subject: [Haiku-commits] =?utf-8?q?r28888_-_in_haiku/trunk=3A_headers/posi?= =?utf-8?q?x_src/system/libroot/posix__src/system/libroot/posix/glibc/misc?= In-Reply-To: <200901112338.n0BNcbfa011433@sheep.berlios.de> Message-ID: <1515573184-BeMail@zon> sbenedetto at BerliOS wrote: > +__BEGIN_DECLS > + > +char *basename(char *); > +char *dirname(char *); Please always use parameter names. > + > +char* > +basename(char *filepath) Coding style: either "char *" or "char*", but don't mix it. Why not just "path"? It's not just shorter, it's even more correct (unless you use the Unix POV, everything is a file :-)). Bye, Axel. From emitrax at gmail.com Mon Jan 12 10:27:11 2009 From: emitrax at gmail.com (Salvatore Benedetto) Date: Mon, 12 Jan 2009 09:27:11 +0000 Subject: [Haiku-commits] r28888 - in haiku/trunk: headers/posix src/system/libroot/posix src/system/libroot/posix/glibc/misc In-Reply-To: <1515573184-BeMail@zon> References: <200901112338.n0BNcbfa011433@sheep.berlios.de> <1515573184-BeMail@zon> Message-ID: 2009/1/12 Axel D?rfler : > sbenedetto at BerliOS wrote: >> +__BEGIN_DECLS >> + >> +char *basename(char *); >> +char *dirname(char *); > > Please always use parameter names. > >> + >> +char* >> +basename(char *filepath) > > Coding style: either "char *" or "char*", but don't mix it. Oh yeah, I never remember not to mix it. Thanks for pointing it out. > Why not just "path"? It's not just shorter, it's even more correct > (unless you use the Unix POV, everything is a file :-)). > Either filepath or path is fine by me. ;-) Thanks, -- Salvatore Benedetto (a.k.a. emitrax) Student of Computer Engineer University of Pisa www.haiku-os.it From marcusoverhagen at arcor.de Mon Jan 12 10:41:53 2009 From: marcusoverhagen at arcor.de (Marcus Overhagen) Date: Mon, 12 Jan 2009 10:41:53 +0100 (CET) Subject: [Haiku-commits] r28888 - in haiku/trunk: headers/posix src/system/libroot/posix src/system/libroot/posix/glibc/misc In-Reply-To: <200901112338.n0BNcbfa011433@sheep.berlios.de> References: <200901112338.n0BNcbfa011433@sheep.berlios.de> Message-ID: <32270637.1231753313815.JavaMail.ngmail@webmail11.arcor-online.net> sbenedetto at BerliOS wrote: > * Adding libgen.h as a public header > * Implementing dirname and basename > > I removed dirname from glibc/misc and reimplemented in order > to (hopefully) keep thing tidy. Although I don't understand why you are doing this, wouldn't is be much saver to just import those functions from FreeBSD instead of recreating them? regards Marcus Jetzt komfortabel bei Arcor-Digital TV einsteigen: Mehr Happy Ends, mehr Herzschmerz, mehr Fernsehen! Erleben Sie 50 digitale TV Programme und optional 60 Pay TV Sender, einen elektronischen Programmf?hrer mit Movie Star Bewertungen von TV Movie. Au?erdem, aktuelle Filmhits und spannende Dokus in der Arcor-Videothek. Infos unter www.arcor.de/tv From axeld at mail.berlios.de Mon Jan 12 13:07:07 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Mon, 12 Jan 2009 13:07:07 +0100 Subject: [Haiku-commits] r28889 - haiku/trunk/src/system/kernel/fs Message-ID: <200901121207.n0CC770h026821@sheep.berlios.de> Author: axeld Date: 2009-01-12 13:07:06 +0100 (Mon, 12 Jan 2009) New Revision: 28889 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28889&view=rev Modified: haiku/trunk/src/system/kernel/fs/vfs.cpp Log: * _user_flock() will no longer accept invalid operations, thus fixing bug #3141. Modified: haiku/trunk/src/system/kernel/fs/vfs.cpp =================================================================== --- haiku/trunk/src/system/kernel/fs/vfs.cpp 2009-01-11 23:38:27 UTC (rev 28888) +++ haiku/trunk/src/system/kernel/fs/vfs.cpp 2009-01-12 12:07:06 UTC (rev 28889) @@ -8443,15 +8443,23 @@ status_t -_user_flock(int fd, int op) +_user_flock(int fd, int operation) { + FUNCTION(("_user_fcntl(fd = %d, op = %d)\n", fd, operation)); + + // Check if the operation is valid + switch (operation & ~LOCK_NB) { + case LOCK_UN: + case LOCK_SH: + case LOCK_EX: + break; + + default: + return B_BAD_VALUE; + } + struct file_descriptor *descriptor; struct vnode *vnode; - struct flock flock; - status_t status; - - FUNCTION(("_user_fcntl(fd = %d, op = %d)\n", fd, op)); - descriptor = get_fd_and_vnode(fd, &vnode, false); if (descriptor == NULL) return B_FILE_ERROR; @@ -8461,17 +8469,19 @@ return B_BAD_VALUE; } + struct flock flock; flock.l_start = 0; flock.l_len = OFF_MAX; flock.l_whence = 0; - flock.l_type = (op & LOCK_SH) != 0 ? F_RDLCK : F_WRLCK; + flock.l_type = (operation & LOCK_SH) != 0 ? F_RDLCK : F_WRLCK; - if ((op & LOCK_UN) != 0) + status_t status; + if ((operation & LOCK_UN) != 0) status = release_advisory_lock(vnode, &flock); else { status = acquire_advisory_lock(vnode, thread_get_current_thread()->team->session_id, &flock, - (op & LOCK_NB) == 0); + (operation & LOCK_NB) == 0); } syscall_restart_handle_post(status); From humdingerb at mail.berlios.de Mon Jan 12 17:00:05 2009 From: humdingerb at mail.berlios.de (humdingerb at mail.berlios.de) Date: Mon, 12 Jan 2009 17:00:05 +0100 Subject: [Haiku-commits] r28890 - in haiku/trunk/docs: . html-dtd userguide userguide/en userguide/en/applications userguide/en/desktop-applets userguide/en/preferences userguide/images userguide/images/apps-images userguide/images/attributes-images userguide/images/bootloader-images userguide/images/demos-images userguide/images/deskbar-images userguide/images/desktop-applets-images userguide/images/filesystem-layout-images userguide/images/filetypes-images userguide/images/gui-images userguide/images/prefs-images userguide/images/queries-images userguide/images/teammonitor-images userguide/images/tracker-images userguide/images/twitcher-images userguide/images/workshop-filetypes+attributes-images userguide/images/workspaces-images welcome welcome/en welcome/images Message-ID: <200901121600.n0CG05Xs004011@sheep.berlios.de> Author: humdingerb Date: 2009-01-12 16:58:51 +0100 (Mon, 12 Jan 2009) New Revision: 28890 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28890&view=rev Added: haiku/trunk/docs/Haiku-doc.css haiku/trunk/docs/html-dtd/ haiku/trunk/docs/userguide/en/ haiku/trunk/docs/userguide/en/applications.html haiku/trunk/docs/userguide/en/applications/ haiku/trunk/docs/userguide/en/attributes.html haiku/trunk/docs/userguide/en/bootloader.html haiku/trunk/docs/userguide/en/contents.html haiku/trunk/docs/userguide/en/demos.html haiku/trunk/docs/userguide/en/deskbar.html haiku/trunk/docs/userguide/en/desktop-applets.html haiku/trunk/docs/userguide/en/desktop-applets/ haiku/trunk/docs/userguide/en/filesystem-layout.html haiku/trunk/docs/userguide/en/filetypes.html haiku/trunk/docs/userguide/en/gui.html haiku/trunk/docs/userguide/en/index.html haiku/trunk/docs/userguide/en/installing.html haiku/trunk/docs/userguide/en/keyboard-shortcuts.html haiku/trunk/docs/userguide/en/preferences.html haiku/trunk/docs/userguide/en/preferences/ haiku/trunk/docs/userguide/en/queries.html haiku/trunk/docs/userguide/en/teammonitor.html haiku/trunk/docs/userguide/en/tracker-add-ons.html haiku/trunk/docs/userguide/en/tracker.html haiku/trunk/docs/userguide/en/twitcher.html haiku/trunk/docs/userguide/en/workshop-filetypes+attributes.html haiku/trunk/docs/userguide/en/workspaces.html haiku/trunk/docs/userguide/images/ haiku/trunk/docs/userguide/images/apps-images/ haiku/trunk/docs/userguide/images/apps-images/cdplayer.png haiku/trunk/docs/userguide/images/apps-images/codycam.png haiku/trunk/docs/userguide/images/apps-images/deskcalc.png haiku/trunk/docs/userguide/images/attributes-images/ haiku/trunk/docs/userguide/images/bootloader-images/ haiku/trunk/docs/userguide/images/demos-images/ haiku/trunk/docs/userguide/images/deskbar-images/ haiku/trunk/docs/userguide/images/desktop-applets-images/ haiku/trunk/docs/userguide/images/filesystem-layout-images/ haiku/trunk/docs/userguide/images/filetypes-images/ haiku/trunk/docs/userguide/images/gui-images/ haiku/trunk/docs/userguide/images/logo.png haiku/trunk/docs/userguide/images/prefs-images/ haiku/trunk/docs/userguide/images/prefs-images/appearance-glyph-on-subpixel.png haiku/trunk/docs/userguide/images/queries-images/ haiku/trunk/docs/userguide/images/teammonitor-images/ haiku/trunk/docs/userguide/images/tracker-images/ haiku/trunk/docs/userguide/images/twitcher-images/ haiku/trunk/docs/userguide/images/workshop-filetypes+attributes-images/ haiku/trunk/docs/userguide/images/workspaces-images/ haiku/trunk/docs/welcome/en/ haiku/trunk/docs/welcome/en/bugreports.html haiku/trunk/docs/welcome/images/ Removed: haiku/trunk/docs/userguide/applications.html haiku/trunk/docs/userguide/applications/ haiku/trunk/docs/userguide/attributes-images/ haiku/trunk/docs/userguide/attributes.html haiku/trunk/docs/userguide/bootloader-images/ haiku/trunk/docs/userguide/bootloader.html haiku/trunk/docs/userguide/contents.html haiku/trunk/docs/userguide/demos-images/ haiku/trunk/docs/userguide/demos.html haiku/trunk/docs/userguide/deskbar-images/ haiku/trunk/docs/userguide/deskbar.html haiku/trunk/docs/userguide/desktop-applets.html haiku/trunk/docs/userguide/desktop-applets/ haiku/trunk/docs/userguide/en/applications/apps-images/ haiku/trunk/docs/userguide/en/desktop-applets/desktop-applets-images/ haiku/trunk/docs/userguide/en/preferences/prefs-images/ haiku/trunk/docs/userguide/filesystem-layout-images/ haiku/trunk/docs/userguide/filesystem-layout.html haiku/trunk/docs/userguide/filetypes-images/ haiku/trunk/docs/userguide/filetypes.html haiku/trunk/docs/userguide/gui-images/ haiku/trunk/docs/userguide/gui.html haiku/trunk/docs/userguide/index.html haiku/trunk/docs/userguide/keyboard-shortcuts.html haiku/trunk/docs/userguide/preferences.html haiku/trunk/docs/userguide/preferences/ haiku/trunk/docs/userguide/queries-images/ haiku/trunk/docs/userguide/queries.html haiku/trunk/docs/userguide/teammonitor-images/ haiku/trunk/docs/userguide/teammonitor.html haiku/trunk/docs/userguide/tracker-add-ons.html haiku/trunk/docs/userguide/tracker-images/ haiku/trunk/docs/userguide/tracker.html haiku/trunk/docs/userguide/twitcher-images/ haiku/trunk/docs/userguide/twitcher.html haiku/trunk/docs/userguide/workshop-filetypes+attributes-images/ haiku/trunk/docs/userguide/workshop-filetypes+attributes.html haiku/trunk/docs/userguide/workspaces-images/ haiku/trunk/docs/userguide/workspaces.html haiku/trunk/docs/welcome/bugreports.html haiku/trunk/docs/welcome/html-dtd/ haiku/trunk/docs/welcome/welcome-images/ haiku/trunk/docs/welcome/welcome.css Modified: haiku/trunk/docs/userguide/en/applications/apps-activitymonitor.html haiku/trunk/docs/userguide/en/applications/apps-bepdf.html haiku/trunk/docs/userguide/en/applications/apps-cdplayer.html haiku/trunk/docs/userguide/en/applications/apps-codycam.html haiku/trunk/docs/userguide/en/applications/apps-deskcalc.html haiku/trunk/docs/userguide/en/applications/apps-diskprobe.html haiku/trunk/docs/userguide/en/applications/apps-diskusage.html haiku/trunk/docs/userguide/en/applications/apps-drivesetup.html haiku/trunk/docs/userguide/en/applications/apps-expander.html haiku/trunk/docs/userguide/en/applications/apps-firefox.html haiku/trunk/docs/userguide/en/applications/apps-icon-o-matic.html haiku/trunk/docs/userguide/en/applications/apps-installer.html haiku/trunk/docs/userguide/en/applications/apps-magnify.html haiku/trunk/docs/userguide/en/applications/apps-mail.html haiku/trunk/docs/userguide/en/applications/apps-mediaplayer.html haiku/trunk/docs/userguide/en/applications/apps-midiplayer.html haiku/trunk/docs/userguide/en/applications/apps-packageinstaller.html haiku/trunk/docs/userguide/en/applications/apps-pe.html haiku/trunk/docs/userguide/en/applications/apps-people.html haiku/trunk/docs/userguide/en/applications/apps-screenshot.html haiku/trunk/docs/userguide/en/applications/apps-showimage.html haiku/trunk/docs/userguide/en/applications/apps-soundrecorder.html haiku/trunk/docs/userguide/en/applications/apps-stylededit.html haiku/trunk/docs/userguide/en/applications/apps-terminal.html haiku/trunk/docs/userguide/en/applications/apps-textsearch.html haiku/trunk/docs/userguide/en/applications/apps-tv.html haiku/trunk/docs/userguide/en/applications/apps-vision.html haiku/trunk/docs/userguide/en/applications/apps-vlc.html haiku/trunk/docs/userguide/en/applications/apps-wonderbrush.html haiku/trunk/docs/userguide/en/desktop-applets/desktop-applets-launchbox.html haiku/trunk/docs/userguide/en/desktop-applets/desktop-applets-networkstatus.html haiku/trunk/docs/userguide/en/desktop-applets/desktop-applets-processcontroller.html haiku/trunk/docs/userguide/en/preferences/prefs-appearance.html haiku/trunk/docs/userguide/en/preferences/prefs-backgrounds.html haiku/trunk/docs/userguide/en/preferences/prefs-datatranslations.html haiku/trunk/docs/userguide/en/preferences/prefs-e-mail.html haiku/trunk/docs/userguide/en/preferences/prefs-filetypes.html haiku/trunk/docs/userguide/en/preferences/prefs-fonts.html haiku/trunk/docs/userguide/en/preferences/prefs-keyboard.html haiku/trunk/docs/userguide/en/preferences/prefs-keymap.html haiku/trunk/docs/userguide/en/preferences/prefs-media.html haiku/trunk/docs/userguide/en/preferences/prefs-menu.html haiku/trunk/docs/userguide/en/preferences/prefs-mouse.html haiku/trunk/docs/userguide/en/preferences/prefs-network.html haiku/trunk/docs/userguide/en/preferences/prefs-printers.html haiku/trunk/docs/userguide/en/preferences/prefs-screen.html haiku/trunk/docs/userguide/en/preferences/prefs-screensaver.html haiku/trunk/docs/userguide/en/preferences/prefs-sounds.html haiku/trunk/docs/userguide/en/preferences/prefs-time.html haiku/trunk/docs/userguide/en/preferences/prefs-virtualmemory.html haiku/trunk/docs/welcome/welcome.html Log: * Added docs of applications: CDPlayer and CodyCam (both work in progress), DeskCalc * Started installing.html. * Added a screenshot of Glyph+Subpixel rendering to Appearance prefs. * Mentioned new setting "Monospaced Fonts Only" glyph hinting in Apperance prefs * Mentioned sysinfo and listdev in bugreports.html as pointed out by scottmc. * Some tweaks to the Haiku-doc.css. * Put a link to http://www.haiku-os.org/community into welcome.html, removed the "(online)". * Reorganized the file hierarchy to accommodate future translations. See thread: http://www.freelists.org/post/haiku-doc/Organizing-translations-of-User-GuideWelcome-Package. * Added a userguide/languages.html that will serve as entry for the different translations. Since the welcome page is more or less only one page, we'll find another solution for that when the first translations are available. Copied: haiku/trunk/docs/Haiku-doc.css (from rev 28877, haiku/trunk/docs/welcome/welcome.css) =================================================================== --- haiku/trunk/docs/welcome/welcome.css 2009-01-11 07:07:14 UTC (rev 28877) +++ haiku/trunk/docs/Haiku-doc.css 2009-01-12 15:58:51 UTC (rev 28890) @@ -0,0 +1,156 @@ +/* + * Copyright 2008, Haiku. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Fran?ois Revol + * Stephan A?mus + * Braden Ewing + * Humdinger + */ + +html { + margin: 0px; + padding: 0px; +} +body { + color: #333333; + margin: 0px; + padding: 0px; + font-family: "DejaVu Sans",Arial,Helvetica,sans-serif; +} + +/* link colors and text decoration */ + +a:link { + font-weight: bold; + text-decoration: none; + color: #dc3c01; +} +a:visited { + font-weight: bold; + text-decoration: none; + color: #892601; +} +a:hover, a:active { + text-decoration: underline; + color: #ff4500; +} + +/* Some headers act as anchors, don't give them a hover effect */ + +h2 a:hover, a:active { + text-decoration: none; + color: #0c3762; +} +h3 a:hover, a:active { + text-decoration: none; + color: #222; +} +h4 a:hover, a:active { + text-decoration: none; + color: #000; +} + +/* basic text elements */ + +div.content { + margin-top: 50px; + margin-left: 40px; + margin-right: 40px; + margin-bottom: 50px; +} +h1 { + font-size: 1.3em; + font-weight: normal; + color: #0c3762; + border-bottom: dotted thin #e0e0e0; + margin-top: 50px; +} +h2 { + font-size: 1.2em; + font-weight: normal; + color: #0c3762; + border-bottom: dotted thin #e0e0e0; + margin-top: 40px; +} +h3 { + font-size: 1.1em; + font-weight: normal; + color: #222; + margin-top: 30px; +} +p { + text-align: justify; + line-height: 1.3; +} +ol { + padding-left: 20px; +} +ul { + padding-left: 14px; +} +li { + line-height: 1.3; +} + +/* heading and navigation */ + +div.logo { + position: relative; + left: 0px; + top: 0px; + background: #efefef; +} +div.logo img { + margin-left: 20px; +} +div.title { + position: absolute; + top: 54px; + right: 40px; + font-size: 1.2em; +} +div.topnav { + background: #e0e0e0; +} +div.topnav p { + margin-left: 40px; + margin-top: 0px; + margin-right: 40px; + margin-bottom: 0px; + text-align: right; + font-size: 0.8em; +} +div.bottomnav { + background: #efefef; +} +div.bottomnav p { + margin-left: 40px; + margin-top: 0px; + margin-right: 40px; + margin-bottom: 0px; + text-align: right; + font-size: 0.8em; +} + +/* layout elements */ + +td { + vertical-align: top; +} +td.onelinetop { + vertical-align: top; + white-space: nowrap; +} +tt { + background-color: #f0f0f0; +} +pre.terminal { + border-color: #0c3762; + border-style: dotted; + border-width: thin; + margin: 0em; + padding: 1.5em; + background-color: #f0f0f0; +} Property changes on: haiku/trunk/docs/Haiku-doc.css ___________________________________________________________________ Name: svn:mergeinfo + Copied: haiku/trunk/docs/html-dtd (from rev 28877, haiku/trunk/docs/welcome/html-dtd) Property changes on: haiku/trunk/docs/html-dtd ___________________________________________________________________ Name: svn:mergeinfo + Deleted: haiku/trunk/docs/userguide/applications.html Deleted: haiku/trunk/docs/userguide/attributes.html Deleted: haiku/trunk/docs/userguide/bootloader.html Deleted: haiku/trunk/docs/userguide/contents.html Deleted: haiku/trunk/docs/userguide/demos.html Deleted: haiku/trunk/docs/userguide/deskbar.html Deleted: haiku/trunk/docs/userguide/desktop-applets.html Copied: haiku/trunk/docs/userguide/en/applications (from rev 28877, haiku/trunk/docs/userguide/applications) Property changes on: haiku/trunk/docs/userguide/en/applications ___________________________________________________________________ Name: svn:mergeinfo + Modified: haiku/trunk/docs/userguide/en/applications/apps-activitymonitor.html =================================================================== --- haiku/trunk/docs/userguide/applications/apps-activitymonitor.html 2009-01-11 07:07:14 UTC (rev 28877) +++ haiku/trunk/docs/userguide/en/applications/apps-activitymonitor.html 2009-01-12 15:58:51 UTC (rev 28890) @@ -1,6 +1,6 @@ + "../../../../html-dtd/xhtml1-strict.dtd"> +


+cdplayer.png +

Usage is pretty much what you'd expect from looking at the control buttons.
+Activate the Repeat button to the left of Shuffle to loop the complete CD.

+

If you need more control like playlists, try MediaPlayer instead.

+ Modified: haiku/trunk/docs/userguide/en/applications/apps-diskprobe.html =================================================================== --- haiku/trunk/docs/userguide/applications/apps-diskprobe.html 2009-01-11 07:07:14 UTC (rev 28877) +++ haiku/trunk/docs/userguide/en/applications/apps-diskprobe.html 2009-01-12 15:58:51 UTC (rev 28890) @@ -1,6 +1,6 @@ + "../../../../html-dtd/xhtml1-strict.dtd"> + + + + Haiku User Guide + + + + + +
+

+   +

+
+ +
+ +

Welcome to Haiku's User Guide

+

If you're interested in helping with a translation, get in touch on the Documentation mailing list.
+Right now, the User Guide is available in these languages:

+ + +
+ + + From humdingerb at googlemail.com Tue Jan 13 18:08:47 2009 From: humdingerb at googlemail.com (Humdinger) Date: Tue, 13 Jan 2009 18:08:47 +0100 Subject: [Haiku-commits] r28890 - in haiku/trunk/docs: . html-dtd userguide userguide/en userguide/en/applications userguide/en/desktop-applets userguide/en/preferences userguide/images userguide/images/apps-images userguide/images/attributes-images userguide/images/bootloader-images userguide/images/demos-images userguide/images/deskbar-images userguide/images/desktop-applets-images userguide/images/filesystem-layout-images userguide/images/filetypes-images userguide/images/gui-images userguide/images/prefs-images userguide/images/queries-images userguide/images/teammonitor-images userguide/images/tracker-images userguide/images/twitcher-images userguide/images/workshop-filetypes+attributes-images userguide/images/workspaces-images welcome welcome/en welcome/images In-Reply-To: <32912894760-BeMail@zon> References: <32912894760-BeMail@zon> Message-ID: <496CCA9F.5050100@googlemail.com> Axel D?rfler wrote: > I could imagine that we will remove CDPlayer for the final version, so > if there are other apps to work on, they should get preferred :-) There's plenty of other stuff waiting to be documented. :) Originally, I wanted to wait for BGA's work over of the cddb stuff and how it integrates (or not) with CDPlayer. So... I'll wait and see what happens. :) Regards, Humdinger -- --=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=- Deutsche Haiku News @ http://www.haiku-gazette.de From bga at bug-br.org.br Tue Jan 13 18:25:56 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Tue, 13 Jan 2009 15:25:56 -0200 Subject: [Haiku-commits] r28890 - in haiku/trunk/docs: . html-dtd userguide userguide/en userguide/en/applications userguide/en/desktop-applets userguide/en/preferences userguide/images userguide/images/apps-images userguide/images/attributes-images userguide/images/bootloader-images userguide/images/demos-images userguide/images/deskbar-images userguide/images/desktop-applets-images userguide/images/filesystem-layout-images userguide/images/filetypes-images userguide/images/gui-images userguide/images/prefs-images userguide/images/queries-images userguide/images/teammonitor-images userguide/images/tracker-images userguide/images/twitcher-images userguide/images/workshop-filetypes+attributes-images userguide/images/workspaces-images welcome welcome/en welcome/images In-Reply-To: <496CCA9F.5050100@googlemail.com> References: <32912894760-BeMail@zon> <496CCA9F.5050100@googlemail.com> Message-ID: <496CCEA4.3050000@bug-br.org.br> Humdinger wrote: >> I could imagine that we will remove CDPlayer for the final version, so >> if there are other apps to work on, they should get preferred :-) > > There's plenty of other stuff waiting to be documented. :) > Originally, I wanted to wait for BGA's work over of the cddb stuff and how it integrates > (or not) with CDPlayer. So... I'll wait and see what happens. :) Sorry for that. Just have been way too busy lately. I will try (again) to work on this next weekend. -Bruno From ingo_weinhold at gmx.de Tue Jan 13 19:05:36 2009 From: ingo_weinhold at gmx.de (Ingo Weinhold) Date: Tue, 13 Jan 2009 19:05:36 +0100 Subject: [Haiku-commits] r28873 - haiku/trunk/src/tests/kits/support/pointerlist In-Reply-To: References: <200901110443.n0B4hseQ013416@sheep.berlios.de> <20090112001256.512.2@knochen-vm.localdomain> Message-ID: <20090113190536.352.1@knochen-vm.localdomain> On 2009-01-12 at 01:13:52 [+0100], Rene Gollent wrote: > On Sun, Jan 11, 2009 at 5:12 PM, Ingo Weinhold wrote: > > > > On 2009-01-11 at 05:43:54 [+0100], anevilyak at BerliOS > > Don't waste your time. If the comparator function violates the comparator > > contract, the behavior of functions using the comparator is undefined. > > Most > > notably std::sort() doesn't do bounds checking, but relies on the "less" > > functor working correctly. > > So this behavior is expected? At least not unexpected. :-) > I would've assumed std::sort() would > rely on the end() iterator it was given, i.e. if the comparator is > returning bad values the sorting order would simply be incorrect. Depending on the algorithm used that might require additional checks, which certainly doesn't help the performance. So I guess requiring the "less" functor to be valid and not doing the checks is a reasonable approach. CU, Ingo From anevilyak at gmail.com Tue Jan 13 19:50:41 2009 From: anevilyak at gmail.com (Rene Gollent) Date: Tue, 13 Jan 2009 12:50:41 -0600 Subject: [Haiku-commits] r28873 - haiku/trunk/src/tests/kits/support/pointerlist In-Reply-To: <20090113190536.352.1@knochen-vm.localdomain> References: <200901110443.n0B4hseQ013416@sheep.berlios.de> <20090112001256.512.2@knochen-vm.localdomain> <20090113190536.352.1@knochen-vm.localdomain> Message-ID: On Tue, Jan 13, 2009 at 12:05 PM, Ingo Weinhold wrote: > Depending on the algorithm used that might require additional checks, which > certainly doesn't help the performance. So I guess requiring the "less" > functor to be valid and not doing the checks is a reasonable approach. Understood. Thanks for the note! :) Regards, Rene From phoudoin at mail.berlios.de Wed Jan 14 01:25:07 2009 From: phoudoin at mail.berlios.de (phoudoin at mail.berlios.de) Date: Wed, 14 Jan 2009 01:25:07 +0100 Subject: [Haiku-commits] r28894 - haiku/trunk/docs/userguide/en Message-ID: <200901140025.n0E0P7xJ002620@sheep.berlios.de> Author: phoudoin Date: 2009-01-14 01:25:02 +0100 (Wed, 14 Jan 2009) New Revision: 28894 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28894&view=rev Modified: haiku/trunk/docs/userguide/en/contents.html Log: Fixed Documentation Mailing list broken HTML tag. Modified: haiku/trunk/docs/userguide/en/contents.html =================================================================== --- haiku/trunk/docs/userguide/en/contents.html 2009-01-13 14:44:55 UTC (rev 28893) +++ haiku/trunk/docs/userguide/en/contents.html 2009-01-14 00:25:02 UTC (rev 28894) @@ -33,7 +33,7 @@

Welcome to Haiku's User Guide

-

Below, you'll find the documentation of the most important aspects of Haiku. Naturally, completing and extending the documentation is a continuing process. If you find errors or would like to suggest topics or maybe even contribute yourself, please file a bugreport or get in touch on the Documentation mailing list-doc">documentation mailing list.

+

Below, you'll find the documentation of the most important aspects of Haiku. Naturally, completing and extending the documentation is a continuing process. If you find errors or would like to suggest topics or maybe even contribute yourself, please file a bugreport or get in touch on the Documentation mailing list.

From phoudoin at mail.berlios.de Wed Jan 14 01:30:34 2009 From: phoudoin at mail.berlios.de (phoudoin at mail.berlios.de) Date: Wed, 14 Jan 2009 01:30:34 +0100 Subject: [Haiku-commits] r28895 - haiku/trunk/docs/userguide/en Message-ID: <200901140030.n0E0UYEf022307@sheep.berlios.de> Author: phoudoin Date: 2009-01-14 01:30:33 +0100 (Wed, 14 Jan 2009) New Revision: 28895 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28895&view=rev Modified: haiku/trunk/docs/userguide/en/contents.html Log: Ooops, it was not Capitalized. BTW, sometimes it is (undocumented application pages), sometimes it's not. Modified: haiku/trunk/docs/userguide/en/contents.html =================================================================== --- haiku/trunk/docs/userguide/en/contents.html 2009-01-14 00:25:02 UTC (rev 28894) +++ haiku/trunk/docs/userguide/en/contents.html 2009-01-14 00:30:33 UTC (rev 28895) @@ -33,7 +33,7 @@

Welcome to Haiku's User Guide

-

Below, you'll find the documentation of the most important aspects of Haiku. Naturally, completing and extending the documentation is a continuing process. If you find errors or would like to suggest topics or maybe even contribute yourself, please file a bugreport or get in touch on the Documentation mailing list.

+

Below, you'll find the documentation of the most important aspects of Haiku. Naturally, completing and extending the documentation is a continuing process. If you find errors or would like to suggest topics or maybe even contribute yourself, please file a bugreport or get in touch on the documentation mailing list.

Boot Loader Set safe boot options to solve configuration problems.
From stippi at mail.berlios.de Wed Jan 14 14:37:19 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Wed, 14 Jan 2009 14:37:19 +0100 Subject: [Haiku-commits] r28896 - haiku/trunk/src/apps/deskcalc Message-ID: <200901141337.n0EDbJjB000337@sheep.berlios.de> Author: stippi Date: 2009-01-14 14:37:19 +0100 (Wed, 14 Jan 2009) New Revision: 28896 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28896&view=rev Modified: haiku/trunk/src/apps/deskcalc/CalcView.cpp Log: Patch by Lukasz Kozlowski: * Fixed About menu item for DeskCalc to say "DeskCalc" instead of "Calculator". (fixes #3234) Thanks! Modified: haiku/trunk/src/apps/deskcalc/CalcView.cpp =================================================================== --- haiku/trunk/src/apps/deskcalc/CalcView.cpp 2009-01-14 00:30:33 UTC (rev 28895) +++ haiku/trunk/src/apps/deskcalc/CalcView.cpp 2009-01-14 13:37:19 UTC (rev 28896) @@ -962,7 +962,7 @@ CalcView::_CreatePopUpMenu() { // construct items - fAboutItem = new BMenuItem("About Calculator" B_UTF8_ELLIPSIS, + fAboutItem = new BMenuItem("About DeskCalc" B_UTF8_ELLIPSIS, new BMessage(B_ABOUT_REQUESTED)); fOptionsItem = new BMenuItem("Options" B_UTF8_ELLIPSIS, new BMessage(K_OPTIONS_REQUESTED)); From axeld at mail.berlios.de Wed Jan 14 14:52:13 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Wed, 14 Jan 2009 14:52:13 +0100 Subject: [Haiku-commits] r28897 - haiku/trunk/headers/posix Message-ID: <200901141352.n0EDqD7X001421@sheep.berlios.de> Author: axeld Date: 2009-01-14 14:52:13 +0100 (Wed, 14 Jan 2009) New Revision: 28897 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28897&view=rev Modified: haiku/trunk/headers/posix/signal.h Log: * I obviously forgot to commit this: adds siginterrupt() prototype, and does some minor cleanup. Modified: haiku/trunk/headers/posix/signal.h =================================================================== --- haiku/trunk/headers/posix/signal.h 2009-01-14 13:37:19 UTC (rev 28896) +++ haiku/trunk/headers/posix/signal.h 2009-01-14 13:52:13 UTC (rev 28897) @@ -1,5 +1,5 @@ /* - * Copyright 2002-2007, Haiku, Inc. All Rights Reserved. + * Copyright 2002-2009, Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. */ #ifndef _SIGNAL_H_ @@ -95,8 +95,8 @@ /* * The list of all defined signals: * - * The numbering of signals for Haiku attempts to maintain - * some consistency with UN*X conventions so that things + * The numbering of signals for Haiku attempts to maintain + * some consistency with UN*X conventions so that things * like "kill -9" do what you expect. */ #define SIGHUP 1 /* hangup -- tty is gone! */ @@ -158,6 +158,7 @@ int killpg(pid_t processGroupID, int sig); int sigaction(int sig, const struct sigaction *act, struct sigaction *oact); +int siginterrupt(int sig, int flag); int sigprocmask(int how, const sigset_t *set, sigset_t *oset); int sigpending(sigset_t *set); int sigsuspend(const sigset_t *mask); @@ -179,7 +180,7 @@ int sigaltstack(const stack_t *ss, stack_t *oss); /* pthread extension : equivalent of sigprocmask() */ -int pthread_sigmask(int how, const sigset_t *set, sigset_t *oset); +int pthread_sigmask(int how, const sigset_t *set, sigset_t *oset); #ifdef __cplusplus } @@ -201,7 +202,7 @@ * * // install the handler * signal(SIGINT, &my_signal_handler); - * + * * The sigaction() function allows finer grained control of the signal * handling. It also allows an opportunity, via the 'sigaction' struct, to * enable additional data to be passed to the handler. For example: From axeld at mail.berlios.de Wed Jan 14 14:55:15 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Wed, 14 Jan 2009 14:55:15 +0100 Subject: [Haiku-commits] r28898 - haiku/trunk/src/bin Message-ID: <200901141355.n0EDtFuU001722@sheep.berlios.de> Author: axeld Date: 2009-01-14 14:55:14 +0100 (Wed, 14 Jan 2009) New Revision: 28898 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28898&view=rev Modified: haiku/trunk/src/bin/boot_process_done.cpp Log: * Build fix. Modified: haiku/trunk/src/bin/boot_process_done.cpp =================================================================== --- haiku/trunk/src/bin/boot_process_done.cpp 2009-01-14 13:52:13 UTC (rev 28897) +++ haiku/trunk/src/bin/boot_process_done.cpp 2009-01-14 13:55:14 UTC (rev 28898) @@ -1,4 +1,4 @@ -/* +/* * Copyright 2005, Axel D?rfler, axeld at pinc-software.de. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -8,7 +8,7 @@ #include #include -#include +#include #include #include From axeld at mail.berlios.de Wed Jan 14 14:57:42 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Wed, 14 Jan 2009 14:57:42 +0100 Subject: [Haiku-commits] r28899 - haiku/trunk/src/add-ons/kernel/file_cache Message-ID: <200901141357.n0EDvgGq001878@sheep.berlios.de> Author: axeld Date: 2009-01-14 14:57:42 +0100 (Wed, 14 Jan 2009) New Revision: 28899 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28899&view=rev Modified: haiku/trunk/src/add-ons/kernel/file_cache/launch_speedup.cpp Log: * Added some temporary debug code to measure the boot time. Modified: haiku/trunk/src/add-ons/kernel/file_cache/launch_speedup.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_cache/launch_speedup.cpp 2009-01-14 13:55:14 UTC (rev 28898) +++ haiku/trunk/src/add-ons/kernel/file_cache/launch_speedup.cpp 2009-01-14 13:57:42 UTC (rev 28899) @@ -260,7 +260,7 @@ } // let's see if there is a prefetch session for this session - + Session *prefetchSession; if (session->IsMainSession()) { // search for session by name @@ -378,7 +378,7 @@ size_t length = strlen(name) + 1; if (length > B_OS_NAME_LENGTH) name += length - B_OS_NAME_LENGTH; - + strlcpy(fName, name, B_OS_NAME_LENGTH); } else fName[0] = '\0'; @@ -791,6 +791,9 @@ if (sMainSession == NULL || strcmp(sMainSession->Name(), name)) return B_BAD_VALUE; + if (!strcmp(name, "system boot")) + dprintf("STOP BOOT %Ld\n", system_time()); + sMainSession->Lock(); stop_session(sMainSession); sMainSession = NULL; @@ -868,6 +871,7 @@ sMainSession = start_session(-1, -1, -1, "system boot"); sMainSession->Unlock(); + dprintf("START BOOT %Ld\n", system_time()); return B_OK; err3: From axeld at mail.berlios.de Wed Jan 14 15:19:44 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Wed, 14 Jan 2009 15:19:44 +0100 Subject: [Haiku-commits] r28900 - haiku/trunk/src/add-ons/kernel/drivers/disk/virtual/remote_disk Message-ID: <200901141419.n0EEJi9r003768@sheep.berlios.de> Author: axeld Date: 2009-01-14 15:19:43 +0100 (Wed, 14 Jan 2009) New Revision: 28900 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28900&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/disk/virtual/remote_disk/RemoteDisk.cpp Log: * Minor cleanup. Modified: haiku/trunk/src/add-ons/kernel/drivers/disk/virtual/remote_disk/RemoteDisk.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/disk/virtual/remote_disk/RemoteDisk.cpp 2009-01-14 13:57:42 UTC (rev 28899) +++ haiku/trunk/src/add-ons/kernel/drivers/disk/virtual/remote_disk/RemoteDisk.cpp 2009-01-14 14:19:43 UTC (rev 28900) @@ -320,7 +320,7 @@ return errno; } - // set receive timeout + // set receive timeout timeval timeout; timeout.tv_sec = time_t(kReceiveTimeout / 1000000LL); timeout.tv_usec = suseconds_t(kReceiveTimeout % 1000000LL); @@ -356,7 +356,7 @@ uint32 packetSize = ntohs(header->size); if (packetOffset > (uint64)pos || packetOffset + packetSize <= (uint64)pos) return 0; - + // we have something to copy size_t toCopy = size_t(packetOffset + packetSize - (uint64)pos); if (toCopy > bufferSize) @@ -422,7 +422,7 @@ socklen_t addrSize = sizeof(sockaddr_in); ssize_t bytesReceived = recvfrom(fSocket, receiveBuffer, receiveBufferSize, 0, (sockaddr*)peerAddress, - (peerAddress ? &addrSize : 0)); + (peerAddress ? &addrSize : NULL)); if (bytesReceived < 0) { status_t error = errno; if (error != B_TIMED_OUT && error != B_WOULD_BLOCK From axeld at mail.berlios.de Wed Jan 14 15:26:24 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Wed, 14 Jan 2009 15:26:24 +0100 Subject: [Haiku-commits] r28901 - haiku/trunk/build/jam Message-ID: <200901141426.n0EEQOao004067@sheep.berlios.de> Author: axeld Date: 2009-01-14 15:26:23 +0100 (Wed, 14 Jan 2009) New Revision: 28901 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28901&view=rev Modified: haiku/trunk/build/jam/HaikuImage Log: * Moved the empty directories to the other location where empty directories are added. Modified: haiku/trunk/build/jam/HaikuImage =================================================================== --- haiku/trunk/build/jam/HaikuImage 2009-01-14 14:19:43 UTC (rev 28900) +++ haiku/trunk/build/jam/HaikuImage 2009-01-14 14:26:23 UTC (rev 28901) @@ -2,18 +2,6 @@ # installation directory) and it executes the rules building the image # (respectively installing the files in the installation directory). -# create directories that will remain empty -AddDirectoryToHaikuImage common bin ; -AddDirectoryToHaikuImage common include ; -AddDirectoryToHaikuImage common lib ; -AddDirectoryToHaikuImage home Desktop ; -AddDirectoryToHaikuImage home config bin ; -AddDirectoryToHaikuImage home config lib ; -AddDirectoryToHaikuImage home mail ; -AddDirectoryToHaikuImage var empty ; -AddDirectoryToHaikuImage var log ; -AddDirectoryToHaikuImage var tmp ; - local X86_ONLY = ; local PPC_ONLY = ; local M68K_ONLY = ; @@ -439,6 +427,18 @@ AddFilesToHaikuImage beos system add-ons disk_systems : intel bfs ; +# create directories that will remain empty +AddDirectoryToHaikuImage common bin ; +AddDirectoryToHaikuImage common include ; +AddDirectoryToHaikuImage common lib ; +AddDirectoryToHaikuImage home Desktop ; +AddDirectoryToHaikuImage home config bin ; +AddDirectoryToHaikuImage home config lib ; +AddDirectoryToHaikuImage home mail ; +AddDirectoryToHaikuImage var empty ; +AddDirectoryToHaikuImage var log ; +AddDirectoryToHaikuImage var tmp ; + AddDirectoryToHaikuImage home config add-ons kernel drivers bin ; AddDirectoryToHaikuImage home config add-ons kernel drivers dev ; AddDirectoryToHaikuImage home config add-ons input_server devices ; From stippi at mail.berlios.de Wed Jan 14 20:12:43 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Wed, 14 Jan 2009 20:12:43 +0100 Subject: [Haiku-commits] r28902 - haiku/trunk/src/apps/deskcalc Message-ID: <200901141912.n0EJCh95013921@sheep.berlios.de> Author: stippi Date: 2009-01-14 20:12:42 +0100 (Wed, 14 Jan 2009) New Revision: 28902 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28902&view=rev Added: haiku/trunk/src/apps/deskcalc/CalcOptions.cpp haiku/trunk/src/apps/deskcalc/CalcOptions.h Removed: haiku/trunk/src/apps/deskcalc/CalcOptionsWindow.cpp haiku/trunk/src/apps/deskcalc/CalcOptionsWindow.h Modified: haiku/trunk/src/apps/deskcalc/CalcView.cpp haiku/trunk/src/apps/deskcalc/CalcView.h haiku/trunk/src/apps/deskcalc/Jamfile Log: Got rid of the options window and implemented them directly in the context menu. Since there are only so few options, this is much more convenient. (Fixes part of #3236.) Copied: haiku/trunk/src/apps/deskcalc/CalcOptions.cpp (from rev 28901, haiku/trunk/src/apps/deskcalc/CalcOptionsWindow.cpp) =================================================================== --- haiku/trunk/src/apps/deskcalc/CalcOptionsWindow.cpp 2009-01-14 14:26:23 UTC (rev 28901) +++ haiku/trunk/src/apps/deskcalc/CalcOptions.cpp 2009-01-14 19:12:42 UTC (rev 28902) @@ -0,0 +1,56 @@ +/* + * Copyright 2006-2009 Haiku, Inc. All Rights Reserved. + * Copyright 1997, 1998 R3 Software Ltd. All Rights Reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Timothy Wayper + * Stephan A?mus + */ + +#include "CalcOptions.h" + +#include +#include + +#include + + +CalcOptions::CalcOptions() + : auto_num_lock(false), + audio_feedback(false), + show_keypad(true) +{ +} + + +void +CalcOptions::LoadSettings(const BMessage* archive) +{ + bool option; + + if (archive->FindBool("auto num lock", &option) == B_OK) + auto_num_lock = option; + + if (archive->FindBool("audio feedback", &option) == B_OK) + audio_feedback = option; + + if (archive->FindBool("show keypad", &option) == B_OK) + show_keypad = option; +} + + +status_t +CalcOptions::SaveSettings(BMessage* archive) const +{ + status_t ret = archive->AddBool("auto num lock", auto_num_lock); + + if (ret == B_OK) + ret = archive->AddBool("audio feedback", audio_feedback); + + if (ret == B_OK) + ret = archive->AddBool("show keypad", show_keypad); + + return ret; +} + Copied: haiku/trunk/src/apps/deskcalc/CalcOptions.h (from rev 28901, haiku/trunk/src/apps/deskcalc/CalcOptionsWindow.h) =================================================================== --- haiku/trunk/src/apps/deskcalc/CalcOptionsWindow.h 2009-01-14 14:26:23 UTC (rev 28901) +++ haiku/trunk/src/apps/deskcalc/CalcOptions.h 2009-01-14 19:12:42 UTC (rev 28902) @@ -0,0 +1,29 @@ +/* + * Copyright 2006-2009 Haiku, Inc. All Rights Reserved. + * Copyright 1997, 1998 R3 Software Ltd. All Rights Reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Timothy Wayper + * Stephan A?mus + */ + +#ifndef CALC_OPTIONS_H +#define CALC_OPTIONS_H + +#include + +class BMessage; + +struct CalcOptions { + bool auto_num_lock; // automatically activate numlock + bool audio_feedback; // provide audio feedback + bool show_keypad; // show or hide the buttons + + CalcOptions(); + + void LoadSettings(const BMessage* archive); + status_t SaveSettings(BMessage* archive) const; +}; + +#endif // CALC_OPTIONS_H Deleted: haiku/trunk/src/apps/deskcalc/CalcOptionsWindow.cpp Deleted: haiku/trunk/src/apps/deskcalc/CalcOptionsWindow.h Modified: haiku/trunk/src/apps/deskcalc/CalcView.cpp =================================================================== --- haiku/trunk/src/apps/deskcalc/CalcView.cpp 2009-01-14 14:26:23 UTC (rev 28901) +++ haiku/trunk/src/apps/deskcalc/CalcView.cpp 2009-01-14 19:12:42 UTC (rev 28902) @@ -32,7 +32,7 @@ #include #include "CalcApplication.h" -#include "CalcOptionsWindow.h" +#include "CalcOptions.h" #include "ExpressionParser.h" #include "ExpressionTextView.h" @@ -42,8 +42,9 @@ const float K_DISPLAY_YPROP = 0.2f; enum { - K_OPTIONS_REQUESTED = 'opts', - K_OPTIONS_GONE = 'opgn', + K_OPTIONS_AUTO_NUM_LOCK = 'opan', + K_OPTIONS_AUDIO_FEEDBACK = 'opaf', + K_OPTIONS_SHOW_KEYPAD = 'opsk' }; // default calculator key pad layout @@ -93,13 +94,13 @@ fCalcIcon(new BBitmap(BRect(0, 0, 15, 15), 0, B_CMAP8)), #endif - fAboutItem(NULL), - fOptionsItem(NULL), fPopUpMenu(NULL), + fAutoNumlockItem(NULL), + fAudioFeedbackItem(NULL), + fShowKeypadItem(NULL), + fAboutItem(NULL), fOptions(new CalcOptions()), - fOptionsWindow(NULL), - fOptionsWindowFrame(30.0, 50.0, 230.0, 200.0), fShowKeypad(true) { // create expression text view @@ -142,13 +143,13 @@ fCalcIcon(new BBitmap(BRect(0, 0, 15, 15), 0, B_CMAP8)), #endif - fAboutItem(NULL), - fOptionsItem(NULL), fPopUpMenu(NULL), + fAutoNumlockItem(NULL), + fAudioFeedbackItem(NULL), + fShowKeypadItem(NULL), + fAboutItem(NULL), fOptions(new CalcOptions()), - fOptionsWindow(NULL), - fOptionsWindowFrame(30.0, 50.0, 230.0, 200.0), fShowKeypad(true) { // create expression text view @@ -180,6 +181,8 @@ BRect frame(Frame()); FrameResized(frame.Width(), frame.Height()); + + fPopUpMenu->SetTargetForItems(this); } @@ -224,34 +227,22 @@ case B_ABOUT_REQUESTED: AboutRequested(); break; - - // calculator options window requested - case K_OPTIONS_REQUESTED: { - if (fOptionsWindow != NULL) { -// TODO: remove race condition and activate -// fOptionsWindow->Activate(); - break; - } - fOptionsWindow = new CalcOptionsWindow(fOptionsWindowFrame, - fOptions, - new BMessage(K_OPTIONS_GONE), - this); - fOptionsWindow->Show(); + case K_OPTIONS_AUTO_NUM_LOCK: + fOptions->auto_num_lock = !fOptions->auto_num_lock; + fAutoNumlockItem->SetMarked(fOptions->auto_num_lock); break; - } - // calculator options window has quit - case K_OPTIONS_GONE: { - fOptionsWindow = NULL; + case K_OPTIONS_AUDIO_FEEDBACK: + fOptions->audio_feedback = !fOptions->audio_feedback; + fAudioFeedbackItem->SetMarked(fOptions->audio_feedback); + break; - BRect frame; - if (message->FindRect("window frame", &frame) == B_OK) - fOptionsWindowFrame = frame; - + case K_OPTIONS_SHOW_KEYPAD: + fOptions->show_keypad = !fOptions->show_keypad; + fShowKeypadItem->SetMarked(fOptions->show_keypad); _ShowKeypad(fOptions->show_keypad); break; - } default: BView::MessageReceived(message); @@ -550,7 +541,7 @@ "DeskCalc v2.1.0\n\n" "written by Timothy Wayper,\nStephan A?mus and Ingo Weinhold\n\n" B_UTF8_COPYRIGHT"1997, 1998 R3 Software Ltd.\n" - B_UTF8_COPYRIGHT"2006 Haiku, Inc.\n\n" + B_UTF8_COPYRIGHT"2006-2009 Haiku, Inc.\n\n" "All Rights Reserved.", "Cool"); alert->Go(NULL); } @@ -701,11 +692,6 @@ fOptions->LoadSettings(archive); fShowKeypad = fOptions->show_keypad; - // load option window frame - BRect frame; - if (archive->FindRect("option window frame", &frame) == B_OK) - fOptionsWindowFrame = frame; - // load display text const char* display; if (archive->FindString("displayText", &display) < B_OK) { @@ -751,10 +737,6 @@ if (ret == B_OK) ret = fOptions->SaveSettings(archive); - // record option window frame - if (ret == B_OK) - ret = archive->AddRect("option window frame", fOptionsWindowFrame); - // record display text if (ret == B_OK) ret = archive->AddString("displayText", fExpressionTextView->Text()); @@ -962,15 +944,28 @@ CalcView::_CreatePopUpMenu() { // construct items - fAboutItem = new BMenuItem("About DeskCalc" B_UTF8_ELLIPSIS, + fAutoNumlockItem = new BMenuItem("Enable Num Lock on start up", + new BMessage(K_OPTIONS_AUTO_NUM_LOCK)); + fAudioFeedbackItem = new BMenuItem("Audio Feedback" B_UTF8_ELLIPSIS, + new BMessage(K_OPTIONS_AUDIO_FEEDBACK)); + fShowKeypadItem = new BMenuItem("Show Keypad", + new BMessage(K_OPTIONS_SHOW_KEYPAD)); + fAboutItem = new BMenuItem("About DeskCalc", new BMessage(B_ABOUT_REQUESTED)); - fOptionsItem = new BMenuItem("Options" B_UTF8_ELLIPSIS, - new BMessage(K_OPTIONS_REQUESTED)); + // apply current settings + fAutoNumlockItem->SetMarked(fOptions->auto_num_lock); + fAudioFeedbackItem->SetMarked(fOptions->audio_feedback); + fShowKeypadItem->SetMarked(fOptions->show_keypad); + // construct menu fPopUpMenu = new BPopUpMenu("pop-up", false, false); + + fPopUpMenu->AddItem(fAutoNumlockItem); + fPopUpMenu->AddItem(fAudioFeedbackItem); + fPopUpMenu->AddItem(fShowKeypadItem); + fPopUpMenu->AddSeparatorItem(); fPopUpMenu->AddItem(fAboutItem); - fPopUpMenu->AddItem(fOptionsItem); } Modified: haiku/trunk/src/apps/deskcalc/CalcView.h =================================================================== --- haiku/trunk/src/apps/deskcalc/CalcView.h 2009-01-14 14:26:23 UTC (rev 28901) +++ haiku/trunk/src/apps/deskcalc/CalcView.h 2009-01-14 19:12:42 UTC (rev 28902) @@ -116,14 +116,14 @@ ExpressionTextView* fExpressionTextView; // pop-up context menu. + BPopUpMenu* fPopUpMenu; + BMenuItem* fAutoNumlockItem; + BMenuItem* fAudioFeedbackItem; + BMenuItem* fShowKeypadItem; BMenuItem* fAboutItem; - BMenuItem* fOptionsItem; - BPopUpMenu* fPopUpMenu; // calculator options. CalcOptions* fOptions; - CalcOptionsWindow* fOptionsWindow; - BRect fOptionsWindowFrame; bool fShowKeypad; }; Modified: haiku/trunk/src/apps/deskcalc/Jamfile =================================================================== --- haiku/trunk/src/apps/deskcalc/Jamfile 2009-01-14 14:26:23 UTC (rev 28901) +++ haiku/trunk/src/apps/deskcalc/Jamfile 2009-01-14 19:12:42 UTC (rev 28902) @@ -6,7 +6,7 @@ Application DeskCalc : CalcApplication.cpp - CalcOptionsWindow.cpp + CalcOptions.cpp CalcView.cpp CalcWindow.cpp DeskCalc.cpp From axeld at mail.berlios.de Wed Jan 14 22:08:39 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Wed, 14 Jan 2009 22:08:39 +0100 Subject: [Haiku-commits] r28903 - in haiku/trunk: headers/private/device src/add-ons/kernel/drivers/power src/add-ons/kernel/drivers/power/enhanced_speedstep src/preferences src/preferences/cpufrequency Message-ID: <200901142108.n0EL8dBs026921@sheep.berlios.de> Author: axeld Date: 2009-01-14 22:08:37 +0100 (Wed, 14 Jan 2009) New Revision: 28903 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28903&view=rev Added: haiku/trunk/headers/private/device/power_managment.h haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/ haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/Jamfile haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/enhanced_speedstep.cpp haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/enhanced_speedstep.h haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/frequency.cpp haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/frequency.h haiku/trunk/src/preferences/cpufrequency/ haiku/trunk/src/preferences/cpufrequency/CPUFrequencyView.cpp haiku/trunk/src/preferences/cpufrequency/CPUFrequencyView.h haiku/trunk/src/preferences/cpufrequency/ColorStepView.cpp haiku/trunk/src/preferences/cpufrequency/ColorStepView.h haiku/trunk/src/preferences/cpufrequency/DriverInterface.cpp haiku/trunk/src/preferences/cpufrequency/DriverInterface.h haiku/trunk/src/preferences/cpufrequency/Jamfile haiku/trunk/src/preferences/cpufrequency/PreferencesWindow.h haiku/trunk/src/preferences/cpufrequency/StatusView.cpp haiku/trunk/src/preferences/cpufrequency/StatusView.h haiku/trunk/src/preferences/cpufrequency/cpufrequency.rdef haiku/trunk/src/preferences/cpufrequency/main.cpp Modified: haiku/trunk/src/add-ons/kernel/drivers/power/Jamfile haiku/trunk/src/preferences/Jamfile Log: * Committed Clemens Zeidler's Intel speedstep driver. Thanks a lot, Clemens! This is a very welcome addition. * There are a few issues, and maybe questionable decisions (like the dependence on ACPI), but I see no reason why it shouldn't be added in its current form already. * Unfortunately, I could not test it yet, though, as the CPU of my laptop is not supported; will see if I can find a supported hardware, though. Added: haiku/trunk/headers/private/device/power_managment.h =================================================================== --- haiku/trunk/headers/private/device/power_managment.h 2009-01-14 19:12:42 UTC (rev 28902) +++ haiku/trunk/headers/private/device/power_managment.h 2009-01-14 21:08:37 UTC (rev 28903) @@ -0,0 +1,39 @@ +#ifndef POWER_MANAGMENT_H +#define POWER_MANAGMENT_H + +#include + +// io controls +enum { + // ioctl response with kMagicFreqID + IDENTIFY_DEVICE = B_DEVICE_OP_CODES_END + 20001, + + // CPU Frequence: + // get a list of freq_info, the list is terminated with a element with + // frequency = 0 + GET_CPU_FREQ_STATES = B_DEVICE_OP_CODES_END + 20005, + // get and set a freq_info + GET_CURENT_CPU_FREQ_STATE, + SET_CPU_FREQ_STATE, + // start watching for frequency changes, ioctl blocks until the frequency + // has changed + WATCH_CPU_FREQ, + // stop all watching ioctl, ioctl return B_ERROR + STOP_WATCHING_CPU_FREQ +}; + +// CPU Frequence: +// magic id returned by IDENTIFY_DEVICE +const uint32 kMagicFreqID = 48921; + +#define MAX_CPU_FREQUENCY_STATES 10 + +typedef struct { + uint16 frequency; // [Mhz] + uint16 volts; + uint16 id; + int power; +} freq_info; + + +#endif Modified: haiku/trunk/src/add-ons/kernel/drivers/power/Jamfile =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/power/Jamfile 2009-01-14 19:12:42 UTC (rev 28902) +++ haiku/trunk/src/add-ons/kernel/drivers/power/Jamfile 2009-01-14 21:08:37 UTC (rev 28903) @@ -3,3 +3,4 @@ SubInclude HAIKU_TOP src add-ons kernel drivers power acpi_button ; SubInclude HAIKU_TOP src add-ons kernel drivers power acpi_lid ; SubInclude HAIKU_TOP src add-ons kernel drivers power acpi_thermal ; +SubInclude HAIKU_TOP src add-ons kernel drivers power enhanced_speedstep ; Added: haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/Jamfile =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/Jamfile 2009-01-14 19:12:42 UTC (rev 28902) +++ haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/Jamfile 2009-01-14 21:08:37 UTC (rev 28903) @@ -0,0 +1,18 @@ +SubDir HAIKU_TOP src add-ons kernel drivers power enhanced_speedstep ; + +SetSubDirSupportedPlatformsBeOSCompatible ; + +if $(TARGET_PLATFORM) != haiku { + # Needed for . Unfortunately we also get the other headers there, + # that we don't really want. + UsePublicHeaders drivers ; +} + +UsePrivateHeaders kernel ; + +KernelAddon enhanced_speedstep : + enhanced_speedstep.cpp + frequency.cpp + ; + +Depends acpi_enhanced_speedstep : acpi ; \ No newline at end of file Added: haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/enhanced_speedstep.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/enhanced_speedstep.cpp 2009-01-14 19:12:42 UTC (rev 28902) +++ haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/enhanced_speedstep.cpp 2009-01-14 21:08:37 UTC (rev 28903) @@ -0,0 +1,425 @@ +/* + * Copyright 2009, Haiku, Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Clemens Zeidler, haiku at clemens-zeidler.de + */ + +#include +#include +#include +#include + +#include +#include + +#include + +#include +#include "enhanced_speedstep.h" +#include + +#include "frequency.h" + + +#define EST_MODULE_NAME "drivers/power/enhanced_speedstep/driver_v1" + +#define EST_DEVICE_MODULE_NAME "drivers/power/enhanced_speedstep/device_v1" + +/* Base Namespace devices are published to */ +#define EST_BASENAME "power/enhanced_speedstep/%d" + +// name of pnp generator of path ids +#define EST_PATHID_GENERATOR "est/path_id" + +static device_manager_info *sDeviceManager; +static ConditionVariable cv_frequency; +vint32 current_id; + +status_t est_control(void* _cookie, uint32 op, void* arg, size_t len); + + +static status_t +est_open(void *initCookie, const char *path, int flags, void** cookie) +{ + TRACE("est: open\n"); + est_cookie *device = (est_cookie*)initCookie; + *cookie = device; + device->stop_watching = 0; + + // enable enhanced speedstep + TRACE("est: check if enhanced speedstep is enabled\n"); + uint64 msrMisc = x86_read_msr(MSR_MISC); + if ((msrMisc & MSR_EST_ENABLED) == 0) { + TRACE("est: enable enhanced speedstep\n"); + x86_write_msr(MSR_MISC, msrMisc | MSR_EST_ENABLED); + + uint64 msrMisc = x86_read_msr(MSR_MISC); + if ((msrMisc & MSR_EST_ENABLED) == 0) { + TRACE("est: enable enhanced speedstep failed\n"); + return B_ERROR; + } + } + + // get freq_info + if (est_get_info(&(device->available_states)) != B_OK) + return B_ERROR; + freq_info *freqsInfo = device->available_states; + + // count number of states + TRACE("est: frequency info:\n"); + freq_info *f; + device->number_states = 0; + for (f = freqsInfo; f->frequency != 0; f++) { + TRACE("est: Frequency %u, Volts %u, Power %i, Latency %u, id %u\n", + f->frequency, f->volts, f->power, f->id, EST_TRANS_LAT); + device->number_states++; + } + + // print current frequency + freq_info *f2 = est_get_current(freqsInfo); + if (f2) { + TRACE("est: Current Frequency %u, Volts %u, Power %i, Latency %u\n", + f2->frequency, f2->volts, f2->power, EST_TRANS_LAT); + } + + return B_OK; +} + + +static status_t +est_read(void* _cookie, off_t position, void *buf, size_t* num_bytes) +{ + TRACE("est: est_read\n"); + + if (*num_bytes < 1) + return B_IO_ERROR; + + est_cookie *device = (est_cookie *)_cookie; + + if (position == 0) { + size_t max_len = *num_bytes; + char *str = (char *)buf; + + snprintf(str, max_len, "CPU Frequency states:\n"); + max_len-= strlen(str); + str += strlen(str); + + freq_info *freqsInfo = device->available_states; + freq_info *f; + for (f = freqsInfo; f->frequency != 0; f++) { + snprintf(str, max_len, " Frequency %hu, Volts %hu, Power %i, Latency %i, id %hu\n", + f->frequency, f->volts, f->power, f->id, + EST_TRANS_LAT); + max_len-= strlen(str); + str += strlen(str); + } + + freq_info *f2 = est_get_current(freqsInfo); + if (f2) { + snprintf(str, max_len, "\nCurrent State: Frequency %hu, Volts %hu, Power %i, Latency %i\n", + f2->frequency, f2->volts, f2->power, EST_TRANS_LAT); + } + + *num_bytes = strlen((char *)buf); + } else { + *num_bytes = 0; + } + + return B_OK; +} + + +static status_t +est_write(void* cookie, off_t position, const void* buffer, size_t* num_bytes) +{ + return B_ERROR; +} + + +status_t +est_control(void* _cookie, uint32 op, void* arg, size_t len) +{ + TRACE("est: est_control op %u\n", int(op)); + est_cookie* device = (est_cookie*)_cookie; + status_t err = B_ERROR; + + uint32* magicId; + uint16* id; + freq_info* freqInfo = NULL; + switch (op) { + case IDENTIFY_DEVICE: + if (len < sizeof(uint32)) + return B_IO_ERROR; + magicId = (uint32*)arg; + *magicId = kMagicFreqID; + err = B_OK; + break; + + case GET_CPU_FREQ_STATES: + if (len < sizeof(freq_info) * (device->number_states + 1)) + return B_IO_ERROR; + freqInfo = (freq_info*)arg; + user_memcpy(freqInfo, device->available_states, + sizeof(freq_info) * (device->number_states + 1)); + err = B_OK; + break; + + case GET_CURENT_CPU_FREQ_STATE: + if (len < sizeof(uint16)) + return B_IO_ERROR; + freqInfo = est_get_current(device->available_states); + if (!freqInfo) + return B_ERROR; + atomic_set(¤t_id, freqInfo->id); + *((uint16*)arg) = freqInfo->id; + err = B_OK; + break; + + case SET_CPU_FREQ_STATE: + if (len < sizeof(uint16)) + return B_IO_ERROR; + id = (uint16*)arg; + err = est_set_id16(*id); + if (err == B_OK) { + atomic_set(¤t_id, *id); + cv_frequency.NotifyAll(); + } + break; + + case WATCH_CPU_FREQ: + if (len < sizeof(uint16)) + return B_IO_ERROR; + cv_frequency.Wait(); + if (atomic_get(&(device->stop_watching))) { + atomic_set(&(device->stop_watching), 0); + err = B_ERROR; + } + else { + *((uint16*)arg) = atomic_get(¤t_id); + err = B_OK; + } + break; + + case STOP_WATCHING_CPU_FREQ: + atomic_set(&(device->stop_watching), 1); + cv_frequency.NotifyAll(); + err = B_OK; + break; + } + return err; +} + + +static status_t +est_close (void* cookie) +{ + return B_OK; +} + + +static status_t +est_free (void* cookie) +{ + return B_OK; +} + + +// #pragma mark - driver module API + + +static float +est_support(device_node *parent) +{ + const char *bus; + uint32 device_type; + +dprintf("EST1\n"); + // make sure parent is really the ACPI bus manager + if (sDeviceManager->get_attr_string(parent, B_DEVICE_BUS, &bus, false)) + return -1; +dprintf("EST2\n"); + + if (strcmp(bus, "acpi")) + return 0.0; +dprintf("EST3\n"); + + // check whether it's really a cpu Device + if (sDeviceManager->get_attr_uint32(parent, ACPI_DEVICE_TYPE_ITEM, + &device_type, false) != B_OK + || device_type != ACPI_TYPE_PROCESSOR) { + return 0.0; + } +dprintf("EST4\n"); + TRACE("est_support: supported\n"); + + // check if cpu support est + uint32 cpuNum = 0; + system_info sysInfo; + if (get_system_info(&sysInfo) != B_OK) + return 0.0; + TRACE("cpu_type: %u vendor %u model %u\n", sysInfo.cpu_type, + sysInfo.cpu_type & B_CPU_x86_VENDOR_MASK, + sysInfo.cpu_type & 0x00FF); +dprintf("EST5\n"); + if ((sysInfo.cpu_type & B_CPU_x86_VENDOR_MASK) != B_CPU_INTEL_x86) + return 0.0; +dprintf("EST6\n"); + + TRACE("ext\n"); + cpuid_info info; + if (get_cpuid(&info, 1, cpuNum) != B_OK) + return 0.0; +dprintf("EST7\n"); + + TRACE("extended_features: %i\n", int(info.eax_1.extended_features)); +dprintf("EST8\n"); + + // check for enhanced speedstep + if (info.eax_1.extended_features & IA32_FEATURE_EXT_EST) + TRACE("supprot est\n"); + else + return 0.0; +dprintf("EST9\n"); + + TRACE("success\n"); + + return 0.6; +} + + +static status_t +est_register_device(device_node *node) +{ + device_attr attrs[] = { + { B_DEVICE_PRETTY_NAME, B_STRING_TYPE, + { string: "ACPI Enhanced Speedstep" }}, + { NULL } + }; + + return sDeviceManager->register_node(node, EST_MODULE_NAME, attrs, + NULL, NULL); +} + + +static status_t +est_init_driver(device_node *node, void **_driverCookie) +{ + *_driverCookie = node; + + cv_frequency.Init(NULL, "frequency cv"); + current_id = -1; + + return B_OK; +} + + +static void +est_uninit_driver(void *driverCookie) +{ +} + + +static status_t +est_register_child_devices(void *_cookie) +{ + device_node *node = (device_node*)_cookie; + int path_id; + char name[128]; + + path_id = sDeviceManager->create_id(EST_PATHID_GENERATOR); + if (path_id < 0) { + TRACE("est_register_child_devices: couldn't create a path_id\n"); + return B_ERROR; + } + + snprintf(name, sizeof(name), EST_BASENAME, path_id); + + return sDeviceManager->publish_device(node, name, EST_DEVICE_MODULE_NAME); +} + + +static status_t +est_init_device(void *driverCookie, void **cookie) +{ + est_cookie *device; + device = (est_cookie *)calloc(1, sizeof(est_cookie)); + if (device == NULL) + return B_NO_MEMORY; + *cookie = device; + + device_node *node = (device_node *)driverCookie; + device->node = node; + + device_node *parent; + parent = sDeviceManager->get_parent_node(node); + sDeviceManager->get_driver(parent, (driver_module_info **)&device->acpi, + (void **)&device->acpi_cookie); + sDeviceManager->put_node(parent); + + return B_OK; +} + + +static void +est_uninit_device(void *_cookie) +{ + TRACE("est: est_uninit_device\n"); + est_cookie *device = (est_cookie*)_cookie; + free(device); +} + + + +module_dependency module_dependencies[] = { + { B_DEVICE_MANAGER_MODULE_NAME, (module_info **)&sDeviceManager }, + {} +}; + + +driver_module_info est_driver_module = { + { + EST_MODULE_NAME, + 0, + NULL + }, + + est_support, + est_register_device, + est_init_driver, + est_uninit_driver, + est_register_child_devices, + NULL, // rescan + NULL, // removed +}; + + +struct device_module_info est_device_module = { + { + EST_DEVICE_MODULE_NAME, + 0, + NULL + }, + + est_init_device, + est_uninit_device, + NULL, + + est_open, + est_close, + est_free, + est_read, + est_write, + NULL, + est_control, + + NULL, + NULL +}; + +module_info *modules[] = { + (module_info *)&est_driver_module, + (module_info *)&est_device_module, + NULL +}; Added: haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/enhanced_speedstep.h =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/enhanced_speedstep.h 2009-01-14 19:12:42 UTC (rev 28902) +++ haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/enhanced_speedstep.h 2009-01-14 21:08:37 UTC (rev 28903) @@ -0,0 +1,29 @@ +#ifndef _EST_H +#define _EST_H + +#include +#include + +#include "frequency.h" + +// Model Specific Register +#define MSR_MISC 0x1a0 +#define MSR_EST_ENABLED (1<<16) + + +struct est_cookie { + // this three variables are not needed yet but helpfull when extend this + // driver to use acpi + device_node *node; + acpi_device_module_info *acpi; + acpi_device acpi_cookie; + + // array of states don't delete it + freq_info* available_states; + uint8 number_states; + + vint32 stop_watching; +}; + + +#endif /* _EST_H */ Added: haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/frequency.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/frequency.cpp 2009-01-14 19:12:42 UTC (rev 28902) +++ haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/frequency.cpp 2009-01-14 21:08:37 UTC (rev 28903) @@ -0,0 +1,197 @@ +#include "frequency.h" + +#include + +#include +#include +#include + + +void +est_get_id16(uint16 *id16_p) +{ + *id16_p = x86_read_msr(MSR_GET_FREQ_STATE) & 0xffff; +} + + +status_t +est_set_id16(uint16 id16, bool need_check) +{ + uint64 msr; + + // Read the current register, mask out the old, set the new id. + msr = x86_read_msr(MSR_GET_FREQ_STATE); + msr = (msr & ~0xffff) | id16; + x86_write_msr(MSR_SET_FREQ_STATE, msr); + + if (need_check) { + // Wait a short while for the new setting. XXX Is this necessary? + snooze(EST_TRANS_LAT); + + uint16 new_id16; + est_get_id16(&new_id16); + if (new_id16 != id16) + return B_ERROR; + TRACE("EST: set frequency ok, id %i\n", id16); + } + return B_OK; +} + + +freq_info * +est_get_current(freq_info *freq_list) +{ + freq_info *f; + int i; + uint16 id16; + + /* + * Try a few times to get a valid value. Sometimes, if the CPU + * is in the middle of an asynchronous transition (i.e., P4TCC), + * we get a temporary invalid result. + */ + for (i = 0; i < 5; i++) { + est_get_id16(&id16); + for (f = freq_list; f->id != 0; f++) { + if (f->id == id16) + return (f); + } + snooze(100); + } + return NULL; +} + + +status_t +est_get_info(freq_info **freqsInfo) +{ + uint64 msr; + status_t error = B_ERROR; + + msr = x86_read_msr(MSR_GET_FREQ_STATE); + error = est_table_info(msr, freqsInfo); + if (error != B_OK) { + TRACE("EST: Get frequency table from model specific register\n"); + error = est_msr_info(msr, freqsInfo); + } + + if (error) { + TRACE("est: CPU supports Enhanced Speedstep, but is not recognized.\n"); + return error; + } + + return B_OK; +} + + +status_t +est_table_info(uint64 msr, freq_info **freqs) +{ + ss_cpu_info *p; + uint32 id; + + /* Find a table which matches (vendor, id32). */ + system_info sysInfo; + if (get_system_info(&sysInfo) != B_OK) + return B_ERROR; + id = msr >> 32; + for (p = ESTprocs; p->id32 != 0; p++) { + if (p->vendor_id == uint32(sysInfo.cpu_type & B_CPU_x86_VENDOR_MASK) + && p->id32 == id) + break; + } + if (p->id32 == 0) + return B_ERROR; + + /* Make sure the current setpoint is valid. */ + if (est_get_current(p->freqtab) == NULL) { + TRACE("current setting not found in table\n"); + return B_ERROR; + } + + *freqs = p->freqtab; + return B_OK; +} + + +bool +bus_speed_ok(int bus) +{ + switch (bus) { + case 100: + case 133: + case 333: + return true; + default: + return false; + } +} + +/* + * Flesh out a simple rate table containing the high and low frequencies + * based on the current clock speed and the upper 32 bits of the MSR. + */ +status_t +est_msr_info(uint64 msr, freq_info **freqs) +{ + freq_info *fp; + int32 bus, freq, volts; + uint16 id; + + // Figure out the bus clock. + system_info sysInfo; + if (get_system_info(&sysInfo) != B_OK) + return B_ERROR; + + freq = sysInfo.cpu_clock_speed / 1000000; + id = msr >> 32; + bus = freq / (id >> 8); + + TRACE("est: Guessed bus clock (high) of %d MHz\n", int(bus)); + if (!bus_speed_ok(bus)) { + // We may be running on the low frequency. + id = msr >> 48; + bus = freq / (id >> 8); + TRACE("est: Guessed bus clock (low) of %d MHz\n", int(bus)); + if (!bus_speed_ok(bus)) + return B_ERROR; + + // Calculate high frequency. + id = msr >> 32; + freq = ((id >> 8) & 0xff) * bus; + } + + // Fill out a new freq table containing just the high and low freqs. + fp = (freq_info*)malloc(sizeof(freq_info) * 3); + memset(fp, 0, sizeof(freq_info) * 3); + + // First, the high frequency. + volts = id & 0xff; + if (volts != 0) { + volts <<= 4; + volts += 700; + } + fp[0].frequency = freq; + fp[0].volts = volts; + fp[0].id = id; + fp[0].power = CPUFREQ_VAL_UNKNOWN; + TRACE("Guessed high setting of %d MHz @ %d Mv\n", int(freq), int(volts)); + + // Second, the low frequency. + id = msr >> 48; + freq = ((id >> 8) & 0xff) * bus; + volts = id & 0xff; + if (volts != 0) { + volts <<= 4; + volts += 700; + } + fp[1].frequency = freq; + fp[1].volts = volts; + fp[1].id = id; + fp[1].power = CPUFREQ_VAL_UNKNOWN; + TRACE("Guessed low setting of %d MHz @ %d Mv\n", int(freq), int(volts)); + + // Table is already terminated due to M_ZERO. + *freqs = fp; + return B_OK; +} Added: haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/frequency.h =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/frequency.h 2009-01-14 19:12:42 UTC (rev 28902) +++ haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/frequency.h 2009-01-14 21:08:37 UTC (rev 28903) @@ -0,0 +1,852 @@ +#ifndef FREQ_TABLE_H +#define FREQ_TABLE_H + +#include +#include +#include + +#include "device/power_managment.h" + +#define TRACE_EST +#ifdef TRACE_EST +# define TRACE(x...) dprintf(x) +#else +# define TRACE(x...) +#endif + +// this code is taken from freeBSD + +#define MSR_GET_FREQ_STATE 0x198 +#define MSR_SET_FREQ_STATE 0x199 + +/* Estimate in microseconds of latency for performing a transition. */ +#define EST_TRANS_LAT 1000 + +/* Identifying characteristics of a processor and supported frequencies. */ +typedef struct { + const uint32 vendor_id; + uint32 id32; + freq_info *freqtab; +} ss_cpu_info; + + +status_t est_get_info(freq_info **freqsInfo); +status_t est_table_info(uint64 msr, freq_info **freqs); +status_t est_msr_info(uint64 msr, freq_info **freqs); + +freq_info* est_get_current(freq_info *freq_list); +void est_get_id16(uint16 *id16_p); +status_t est_set_id16(uint16 id16, bool need_check = false); + +/* Convert MHz and mV into IDs for passing to the MSR. */ +#define ID16(MHz, mV, bus_clk) \ + (((MHz / bus_clk) << 8) | ((mV ? mV - 700 : 0) >> 4)) +#define ID32(MHz_hi, mV_hi, MHz_lo, mV_lo, bus_clk) \ + ((ID16(MHz_lo, mV_lo, bus_clk) << 16) | (ID16(MHz_hi, mV_hi, bus_clk))) + +/* Format for storing IDs in our table. */ +#define CPUFREQ_VAL_UNKNOWN (-1) +#define CPU_VENDOR_INTEL B_CPU_INTEL_x86 +#define CPU_VENDOR_CENTAUR B_CPU_VIA_IDT_x86 + +#define FREQ_INFO_PWR(MHz, mV, bus_clk, mW) \ + { MHz, mV, ID16(MHz, mV, bus_clk), mW } +#define FREQ_INFO(MHz, mV, bus_clk) \ + FREQ_INFO_PWR(MHz, mV, bus_clk, CPUFREQ_VAL_UNKNOWN) +#define INTEL(tab, zhi, vhi, zlo, vlo, bus_clk) \ + { CPU_VENDOR_INTEL, ID32(zhi, vhi, zlo, vlo, bus_clk), tab } +#define CENTAUR(tab, zhi, vhi, zlo, vlo, bus_clk) \ + { CPU_VENDOR_CENTAUR, ID32(zhi, vhi, zlo, vlo, bus_clk), tab } + +/* Default bus clock value for Centrino processors. */ +#define INTEL_BUS_CLK 100 + +/* + * Frequency (MHz) and voltage (mV) settings. Data from the + * Intel Pentium M Processor Datasheet (Order Number 252612), Table 5. + * + * Dothan processors have multiple VID#s with different settings for + * each VID#. Since we can't uniquely identify this info + * without undisclosed methods from Intel, we can't support newer + * processors with this table method. If ACPI Px states are supported, + * we get info from them. + */ +static freq_info PM17_130[] = { + /* 130nm 1.70GHz Pentium M */ + FREQ_INFO(1700, 1484, INTEL_BUS_CLK), + FREQ_INFO(1400, 1308, INTEL_BUS_CLK), + FREQ_INFO(1200, 1228, INTEL_BUS_CLK), + FREQ_INFO(1000, 1116, INTEL_BUS_CLK), + FREQ_INFO( 800, 1004, INTEL_BUS_CLK), + FREQ_INFO( 600, 956, INTEL_BUS_CLK), + FREQ_INFO( 0, 0, 1), +}; +static freq_info PM16_130[] = { + /* 130nm 1.60GHz Pentium M */ + FREQ_INFO(1600, 1484, INTEL_BUS_CLK), + FREQ_INFO(1400, 1420, INTEL_BUS_CLK), + FREQ_INFO(1200, 1276, INTEL_BUS_CLK), + FREQ_INFO(1000, 1164, INTEL_BUS_CLK), + FREQ_INFO( 800, 1036, INTEL_BUS_CLK), + FREQ_INFO( 600, 956, INTEL_BUS_CLK), + FREQ_INFO( 0, 0, 1), +}; +static freq_info PM15_130[] = { + /* 130nm 1.50GHz Pentium M */ + FREQ_INFO(1500, 1484, INTEL_BUS_CLK), + FREQ_INFO(1400, 1452, INTEL_BUS_CLK), + FREQ_INFO(1200, 1356, INTEL_BUS_CLK), + FREQ_INFO(1000, 1228, INTEL_BUS_CLK), + FREQ_INFO( 800, 1116, INTEL_BUS_CLK), + FREQ_INFO( 600, 956, INTEL_BUS_CLK), + FREQ_INFO( 0, 0, 1), +}; +static freq_info PM14_130[] = { + /* 130nm 1.40GHz Pentium M */ + FREQ_INFO(1400, 1484, INTEL_BUS_CLK), + FREQ_INFO(1200, 1436, INTEL_BUS_CLK), + FREQ_INFO(1000, 1308, INTEL_BUS_CLK), + FREQ_INFO( 800, 1180, INTEL_BUS_CLK), + FREQ_INFO( 600, 956, INTEL_BUS_CLK), + FREQ_INFO( 0, 0, 1), +}; +static freq_info PM13_130[] = { + /* 130nm 1.30GHz Pentium M */ + FREQ_INFO(1300, 1388, INTEL_BUS_CLK), + FREQ_INFO(1200, 1356, INTEL_BUS_CLK), + FREQ_INFO(1000, 1292, INTEL_BUS_CLK), + FREQ_INFO( 800, 1260, INTEL_BUS_CLK), + FREQ_INFO( 600, 956, INTEL_BUS_CLK), + FREQ_INFO( 0, 0, 1), +}; +static freq_info PM13_LV_130[] = { + /* 130nm 1.30GHz Low Voltage Pentium M */ + FREQ_INFO(1300, 1180, INTEL_BUS_CLK), + FREQ_INFO(1200, 1164, INTEL_BUS_CLK), + FREQ_INFO(1100, 1100, INTEL_BUS_CLK), + FREQ_INFO(1000, 1020, INTEL_BUS_CLK), + FREQ_INFO( 900, 1004, INTEL_BUS_CLK), + FREQ_INFO( 800, 988, INTEL_BUS_CLK), + FREQ_INFO( 600, 956, INTEL_BUS_CLK), + FREQ_INFO( 0, 0, 1), +}; +static freq_info PM12_LV_130[] = { + /* 130 nm 1.20GHz Low Voltage Pentium M */ + FREQ_INFO(1200, 1180, INTEL_BUS_CLK), + FREQ_INFO(1100, 1164, INTEL_BUS_CLK), + FREQ_INFO(1000, 1100, INTEL_BUS_CLK), + FREQ_INFO( 900, 1020, INTEL_BUS_CLK), + FREQ_INFO( 800, 1004, INTEL_BUS_CLK), + FREQ_INFO( 600, 956, INTEL_BUS_CLK), + FREQ_INFO( 0, 0, 1), +}; +static freq_info PM11_LV_130[] = { + /* 130 nm 1.10GHz Low Voltage Pentium M */ + FREQ_INFO(1100, 1180, INTEL_BUS_CLK), + FREQ_INFO(1000, 1164, INTEL_BUS_CLK), + FREQ_INFO( 900, 1100, INTEL_BUS_CLK), + FREQ_INFO( 800, 1020, INTEL_BUS_CLK), + FREQ_INFO( 600, 956, INTEL_BUS_CLK), + FREQ_INFO( 0, 0, 1), +}; +static freq_info PM11_ULV_130[] = { + /* 130 nm 1.10GHz Ultra Low Voltage Pentium M */ + FREQ_INFO(1100, 1004, INTEL_BUS_CLK), + FREQ_INFO(1000, 988, INTEL_BUS_CLK), + FREQ_INFO( 900, 972, INTEL_BUS_CLK), + FREQ_INFO( 800, 956, INTEL_BUS_CLK), + FREQ_INFO( 600, 844, INTEL_BUS_CLK), + FREQ_INFO( 0, 0, 1), +}; +static freq_info PM10_ULV_130[] = { + /* 130 nm 1.00GHz Ultra Low Voltage Pentium M */ + FREQ_INFO(1000, 1004, INTEL_BUS_CLK), + FREQ_INFO( 900, 988, INTEL_BUS_CLK), + FREQ_INFO( 800, 972, INTEL_BUS_CLK), + FREQ_INFO( 600, 844, INTEL_BUS_CLK), + FREQ_INFO( 0, 0, 1), +}; + +/* + * Data from "Intel Pentium M Processor on 90nm Process with + * 2-MB L2 Cache Datasheet", Order Number 302189, Table 5. + */ +static freq_info PM_765A_90[] = { + /* 90 nm 2.10GHz Pentium M, VID #A */ + FREQ_INFO(2100, 1340, INTEL_BUS_CLK), + FREQ_INFO(1800, 1276, INTEL_BUS_CLK), + FREQ_INFO(1600, 1228, INTEL_BUS_CLK), + FREQ_INFO(1400, 1180, INTEL_BUS_CLK), + FREQ_INFO(1200, 1132, INTEL_BUS_CLK), + FREQ_INFO(1000, 1084, INTEL_BUS_CLK), + FREQ_INFO( 800, 1036, INTEL_BUS_CLK), + FREQ_INFO( 600, 988, INTEL_BUS_CLK), + FREQ_INFO( 0, 0, 1), +}; +static freq_info PM_765B_90[] = { + /* 90 nm 2.10GHz Pentium M, VID #B */ + FREQ_INFO(2100, 1324, INTEL_BUS_CLK), + FREQ_INFO(1800, 1260, INTEL_BUS_CLK), + FREQ_INFO(1600, 1212, INTEL_BUS_CLK), + FREQ_INFO(1400, 1180, INTEL_BUS_CLK), + FREQ_INFO(1200, 1132, INTEL_BUS_CLK), + FREQ_INFO(1000, 1084, INTEL_BUS_CLK), + FREQ_INFO( 800, 1036, INTEL_BUS_CLK), + FREQ_INFO( 600, 988, INTEL_BUS_CLK), + FREQ_INFO( 0, 0, 1), +}; +static freq_info PM_765C_90[] = { + /* 90 nm 2.10GHz Pentium M, VID #C */ + FREQ_INFO(2100, 1308, INTEL_BUS_CLK), + FREQ_INFO(1800, 1244, INTEL_BUS_CLK), + FREQ_INFO(1600, 1212, INTEL_BUS_CLK), + FREQ_INFO(1400, 1164, INTEL_BUS_CLK), + FREQ_INFO(1200, 1116, INTEL_BUS_CLK), + FREQ_INFO(1000, 1084, INTEL_BUS_CLK), + FREQ_INFO( 800, 1036, INTEL_BUS_CLK), + FREQ_INFO( 600, 988, INTEL_BUS_CLK), + FREQ_INFO( 0, 0, 1), +}; +static freq_info PM_765E_90[] = { + /* 90 nm 2.10GHz Pentium M, VID #E */ + FREQ_INFO(2100, 1356, INTEL_BUS_CLK), + FREQ_INFO(1800, 1292, INTEL_BUS_CLK), + FREQ_INFO(1600, 1244, INTEL_BUS_CLK), + FREQ_INFO(1400, 1196, INTEL_BUS_CLK), + FREQ_INFO(1200, 1148, INTEL_BUS_CLK), + FREQ_INFO(1000, 1100, INTEL_BUS_CLK), + FREQ_INFO( 800, 1052, INTEL_BUS_CLK), + FREQ_INFO( 600, 988, INTEL_BUS_CLK), + FREQ_INFO( 0, 0, 1), +}; +static freq_info PM_755A_90[] = { + /* 90 nm 2.00GHz Pentium M, VID #A */ + FREQ_INFO(2000, 1340, INTEL_BUS_CLK), + FREQ_INFO(1800, 1292, INTEL_BUS_CLK), + FREQ_INFO(1600, 1244, INTEL_BUS_CLK), + FREQ_INFO(1400, 1196, INTEL_BUS_CLK), + FREQ_INFO(1200, 1148, INTEL_BUS_CLK), + FREQ_INFO(1000, 1100, INTEL_BUS_CLK), + FREQ_INFO( 800, 1052, INTEL_BUS_CLK), + FREQ_INFO( 600, 988, INTEL_BUS_CLK), + FREQ_INFO( 0, 0, 1), +}; +static freq_info PM_755B_90[] = { + /* 90 nm 2.00GHz Pentium M, VID #B */ + FREQ_INFO(2000, 1324, INTEL_BUS_CLK), + FREQ_INFO(1800, 1276, INTEL_BUS_CLK), + FREQ_INFO(1600, 1228, INTEL_BUS_CLK), + FREQ_INFO(1400, 1180, INTEL_BUS_CLK), + FREQ_INFO(1200, 1132, INTEL_BUS_CLK), + FREQ_INFO(1000, 1084, INTEL_BUS_CLK), + FREQ_INFO( 800, 1036, INTEL_BUS_CLK), + FREQ_INFO( 600, 988, INTEL_BUS_CLK), + FREQ_INFO( 0, 0, 1), +}; +static freq_info PM_755C_90[] = { [... truncated: 3089 lines follow ...] From korli at mail.berlios.de Wed Jan 14 22:17:40 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Wed, 14 Jan 2009 22:17:40 +0100 Subject: [Haiku-commits] r28904 - haiku/trunk/src/preferences/devices Message-ID: <200901142117.n0ELHemp027846@sheep.berlios.de> Author: korli Date: 2009-01-14 22:17:39 +0100 (Wed, 14 Jan 2009) New Revision: 28904 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28904&view=rev Modified: haiku/trunk/src/preferences/devices/pci.ids Log: update pci ids Modified: haiku/trunk/src/preferences/devices/pci.ids =================================================================== --- haiku/trunk/src/preferences/devices/pci.ids 2009-01-14 21:08:37 UTC (rev 28903) +++ haiku/trunk/src/preferences/devices/pci.ids 2009-01-14 21:17:39 UTC (rev 28904) @@ -1,8 +1,8 @@ # # List of PCI ID's # -# Version: 2008.12.05 -# Date: 2008-12-05 03:15:01 +# Version: 2009.01.13 +# Date: 2009-01-13 03:15:01 # # Maintained by Martin Mares and other volunteers from the # PCI ID Project at http://pciids.sf.net/. @@ -1385,6 +1385,7 @@ 71c4 M56GL [Mobility FireGL V5200] 17aa 2007 ThinkPad T60p 71c5 M56P [Radeon Mobility X1600] + 103c 309f Compaq nx9420 Notebook 103c 30a3 Compaq NW8440 1043 10b2 A6J-Q008 106b 0080 MacBook Pro @@ -1477,8 +1478,10 @@ 944c RV770 LE [Radeon HD 4800 Series] 945a M98 XT [Mobility Radeon HD 4870] 9480 M96 [Mobility Radeon HD 4650] + 9489 M96 XT [Mobility FireGL V5725] 9490 RV730XT [Radeon HD 4670] 9498 RV730 PRO [Radeon HD 4650] + 949f RV730 [FirePro V5700] 94c1 RV610 [Radeon HD 2400 XT] 1028 0211 Optiplex 755 1028 0d02 Optiplex 755 @@ -1502,6 +1505,7 @@ 9519 RV670 [FireStream 9170] 9540 RV710 [Radeon HD 4550] 954f RV710 [Radeon HD 4350] + 9552 M92 LP [Mobility Radeon HD 4300 Series] 9553 M92 [Mobility Radeon HD 4500 Series] 9559 Mobility Radeon HD 3600 Series 9581 M76 [Radeon Mobility HD 2600 Series] @@ -3106,7 +3110,7 @@ 8036 PCI6515 Cardbus Controller 8038 PCI6515 SmartCard Controller 8039 PCIxx12 Cardbus Controller - 103c 309f nx9420 + 103c 309f Compaq nx9420 Notebook 103c 30a1 NC2400 103c 30a3 Compaq nw8440 803a PCIxx12 OHCI Compliant IEEE 1394 Host Controller @@ -3120,7 +3124,7 @@ 103c 309f nx9420 103c 30a3 Compaq nw8440 803d PCIxx12 GemCore based SmartCard controller - 103c 309f nx9420 + 103c 309f Compaq nx9420 Notebook 103c 30a1 NC2400 103c 30a3 nc8430 103c 30aa nc6310 @@ -3290,6 +3294,7 @@ 3012 ColdFusion 3e Chipset Memory Controller Hub 3017 Unassigned Hitachi Shared FC Device 3017 301d PCIe-to-PCIe Bridge with Virtualization IO Assist Feature + 3020 FIVE-EX based Fibre Channel to PCIe HBA 3505 SH7751 PCI Controller (PCIC) 350e SH7751R PCI Controller (PCIC) 1055 Efar Microsystems @@ -3460,7 +3465,10 @@ 105a 8603 SuperTrak EX8658 105a 8604 SuperTrak EX8650 105a 8610 SuperTrak EX8650M + 105a a600 SuperTrak EX12650 105a b600 SuperTrak EX16650 + 105a b601 SuperTrak EX16654 + 105a b602 SuperTrak EX16658 c350 80333 [SuperTrak EX12350] e350 80333 [SuperTrak EX24350] 105b Foxconn International, Inc. @@ -5081,6 +5089,7 @@ 105b 0c43 Winfast NF3250K8AA 1462 7030 K8N Neo-FSR v2.0 147b 1c0b NF8 Mainboard + f849 00e5 Motherboard (one of many) 00e6 CK8S Ethernet Controller 00e7 CK8S USB Controller 1043 813f K8N-E @@ -5822,6 +5831,7 @@ 0600 GeForce 8800 GTS 512 0602 GeForce 8800 GT 512 0604 GeForce 9800 GX2 + 0605 GeForce 9800 GT 0606 GeForce 8800 GS 0609 GeForce 8800M GTS 060c GeForce 8800M GTX @@ -5831,7 +5841,9 @@ 107d 2ab0 Winfast PX8800 GT PCI-E 19da 1040 ZT-88TES2P-FSP 0612 GeForce 9800 GTX + 0613 GeForce 9800 GTX+ 0614 GeForce 9800 GT + 0617 GeForce 9800M GTX 061a Quadro FX 3700 061c Quadro FX 3600M 0622 G94 [GeForce 9600 GT] @@ -5839,7 +5851,7 @@ 0623 GeForce 9600 GS 063a Quadro FX 2700M 0640 GeForce 9500 GT - 0641 GeForce 9400 GT + 0641 D9M-20 [GeForce 9400 GT] 0647 GeForce 9600M GT 0648 GeForce 9600M GS 0649 GeForce 9600M GT @@ -5929,6 +5941,7 @@ 07e2 GeForce 7050 / nForce 630i 07e3 GeForce 7050/nForce 610i 07e5 GeForce 7100 / nForce 620i + 07f0 MCP73 IDE 07f4 GeForce 7100/nForce 630i 07f8 MCP73 SATA RAID Controller 07fc MCP73 High Definition Audio @@ -5936,6 +5949,7 @@ 07fe GeForce 7100/nForce 630i 1afa 7150 JW-IN7150-HD 0844 GeForce 9100M G + 0845 GeForce 8200M G 0848 GeForce 8300 0849 GeForce 8200 1849 0849 K10N78FullHD-hSLI R3.0 GeForce 8200 @@ -6011,6 +6025,7 @@ 1849 0ad0 K10N78FullHD-hSLI R3.0 IDE 0ad4 MCP78S [GeForce 8200] AHCI Controller 1849 0ad4 K10N78FullHD-hSLI R3.0 AHCI Controller + 10de GeForce 9800M GTX 21c3 nVidia Corporation G73 [GeForce 7600 GS] (rev a2) c615 G70 [GeForce 7600 GT] 10df Emulex Corporation @@ -6212,6 +6227,7 @@ 1458 e000 GA-EP45-DS5 Motherboard 1462 238c Onboard RTL8111b on MSI P965 Platinum Mainboard 1462 368c K9AG Neo2 + 1849 8168 A770CrossFire motherboard 8169 RTL-8169 Gigabit Ethernet 1025 0079 Aspire 5024WLMi 1259 c107 CG-LAPCIGT @@ -6309,6 +6325,7 @@ 1102 8061 SBLive! Player 5.1 1102 8064 SBLive! 5.1 Model SB0100 1102 8065 SBLive! 5.1 Digital Model SB0220 + 1102 8066 Live! 5.1 Digital [SB0228] 1102 8067 SBLive! 5.1 eMicro 28028 0004 SB Audigy 1102 0051 SB0090 Audigy Player @@ -6968,6 +6985,9 @@ 0026 DT3005 0027 DT3001-PGL 0028 DT3003-PGL + 0051 DT322 + 0060 DT340 + 0069 DT332 1117 Datacube, Inc 9500 Max-1C SVGA card 9501 Max-1C image processing @@ -7105,6 +7125,7 @@ 8061 PES12T3G2 PCI Express Gen2 Switch 8068 PES6T6G2 PCI Express Gen2 Switch 806a PES24T3G2 PCI Express Gen2 Switch + 14c1 000c 10G-PCIE2-8B2 806c PES16T4A/4T4G2 PCI Express Gen2 Switch 806e PES24T6G2 PCI Express Gen2 Switch 806f HIO524G2 PCI Express Gen2 Switch @@ -9990,9 +10011,9 @@ 1001 7xxx/8xxx-series PATA/SATA-RAID 13c1 1001 7xxx/8xxx-series PATA/SATA-RAID 1002 9xxx-series SATA-RAID - 1003 9550SX SATA-RAID - 1004 9650SE SATA-II RAID - 1005 9690SA SAS-RAID + 1003 9550SX SATA-II RAID PCI-X + 1004 9650SE SATA-II RAID PCIe + 1005 9690SA SAS/SATA-II RAID PCIe 13c2 Technotrend Systemtechnik GmbH 000e Technotrend/Hauppauge DVB card rev2.3 1019 TTechnoTrend-budget DVB S2-3200 @@ -10612,6 +10633,8 @@ 14c1 0008 10G-PCIE-8A 14c1 0009 10G-PCIE-8A (MSI-X firmware) 14c1 000a 10G-PCIE-8B + 14c1 000b 10G-PCIE-8B2 + 14c1 000c 10G-PCIE2-8B2 8043 Myrinet 2000 Scalable Cluster Interconnect 103c 1240 Myrinet M2L-PCI64/2-3.0 LANai 7.4 (HP OEM) 14c2 DTK Computer @@ -10910,6 +10933,7 @@ 14e4 000b NetXtreme BCM5703 1000Base-T 14e4 800a NetXtreme BCM5703 1000Base-T 16a8 NetXtreme BCM5704S Gigabit Ethernet + 103c 132b PCI-X 1000Mbps Dual-port Built-in 10a9 8014 Dual Port Gigabit Ethernet (PCI-X,Fiber) 10a9 801c Quad Port Gigabit Ethernet (PCI-E,Fiber) 10b7 2001 3C998-SX Dual Port 1000-SX PCI-X @@ -10937,6 +10961,7 @@ 16dd NetLink BCM5781 Gigabit Ethernet PCI Express 16f7 NetXtreme BCM5753 Gigabit Ethernet PCI Express 16fd NetXtreme BCM5753M Gigabit Ethernet PCI Express + 103c 309f Compaq nx9420 Notebook 103c 30a3 Compaq nw8440 16fe NetXtreme BCM5753F Fast Ethernet PCI Express 170c BCM4401-B0 100Base-TX @@ -11656,6 +11681,7 @@ 1587 Konica Corp 1588 Solidum Systems Corp 1589 Atlantek Microsystems Pty Ltd + 0008 Leutron Vision PicPortExpress CL 0009 Leutron Vision PicPortExpress CL Stereo 158a Digalog Systems Inc 158b Allied Data Technologies @@ -11730,13 +11756,12 @@ 6274 MT25204 [InfiniHost III Lx HCA] 6278 MT25208 InfiniHost III Ex (Tavor compatibility mode) 6279 MT25208 [InfiniHost III Ex HCA Flash Recovery] - 6282 MT25208 InfiniHost III Ex - 6340 MT25408 [ConnectX IB SDR] - 634a MT25418 [ConnectX IB DDR, PCIe 2.0 2.5GT/s] - 6354 MT25428 [ConnectX IB QDR] + 6282 MT25208 [InfiniHost III Ex] + 6340 MT25408 [ConnectX VPI - IB SDR / 10GigE] + 634a MT25418 [ConnectX VPI PCIe 2.0 2.5GT/s - IB DDR / 10GigE] 6368 MT25448 [ConnectX EN 10GigE, PCIe 2.0 2.5GT/s] - 6732 MT26418 [ConnectX IB DDR, PCIe 2.0 5GT/s] - 673c MT26428 [ConnectX IB QDR, PCIe 2.0 5GT/s] + 6732 MT26418 [ConnectX VPI PCIe 2.0 5GT/s - IB DDR / 10GigE] + 673c MT26428 [ConnectX VPI PCIe 2.0 5GT/s - IB QDR / 10GigE] 6750 MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] 15b4 CCI/TRIAD 15b5 Cimetrics Inc @@ -11996,6 +12021,7 @@ 0027 AR9160 802.11abgn Wireless PCI Adapter 0029 AR922X Wireless Network Adapter 002a AR928X Wireless Network Adapter (PCI-Express) + 002b AR9285 Wireless Network Adapter (PCI-Express) 0033 11a/b/g/n Wireless LAN Mini-PCI Express Adapter 0207 AR5210 1014 AR5212 802.11abg NIC @@ -12074,6 +12100,7 @@ 5602 PMC-VLX110 Reconfigurable Virtex-5 FPGA with plug-in I/O 5603 PMC-VSX95 Reconfigurable Virtex-5 FPGA with plug-in I/O 5604 PMC-VLX155 Reconfigurable Virtex-5 FPGA with plug-in I/O + 5605 PMC-VFX70 Reconfigurable Virtex-5 FPGA with plug-in I/O 16da Advantech Co., Ltd. 0011 INES GPIB-PCI 16df PIKA Technologies Inc. @@ -12479,6 +12506,7 @@ 1924 0500 SFE4005-A0 1924 5102 SFN4111T-A2 1924 5103 SFN4111T-R3 + 1924 5104 SFN4111T-R4 6703 SFC4000 rev A iSCSI/Onload [Solarstorm] 10b8 0102 SMC10GPCIe-10BT (A2) [TigerCard] 10b8 0103 SMC10GPCIe-10BT (A3) [TigerCard] @@ -12562,9 +12590,12 @@ 1966 Orad Hi-Tec Systems 1975 DVG64 family 1969 Attansic Technology Corp. - 1026 L1 Gigabit Ethernet Adapter + 1026 L1e Gigabit Ethernet Adapter + 1043 8304 P5KPL-CM Motherboard 1048 L1 Gigabit Ethernet Adapter 1043 8226 P5KPL-VM Motherboard + 1066 L2c Gigabit Ethernet Adapter + 1067 L1c Gigabit Ethernet Adapter 2048 L2 100 Mbit Ethernet Adapter 196a Sensory Networks Inc. 0101 NodalCore C-1000 Content Classification Accelerator @@ -12622,6 +12653,8 @@ 19da ZOTAC International (MCO) Ltd. 19de Pico Computing 19e2 Vector Informatik GmbH +19e3 DDRdrive LLC + dd52 DDRdrive X1 19e7 NET (Network Equipment Technologies) 1001 STIX DSP Card 1002 STIX - 1 Port T1/E1 Card @@ -12630,7 +12663,7 @@ 1005 STIX - 4 Port FXS Card 19ee Netronome Systems, Inc. 1a03 ASPEED Technology, Inc. - 2000 AST2000 + 2000 ASPEED Graphics Family 1a07 Kvaser AB 0006 CAN interface PC104+ HS/HS 0007 CAN interface PCIcanx II HS or HS/HS @@ -13177,6 +13210,14 @@ 0041 Auburndale/Havendale PCI Express x16 Root Port 0042 Auburndale/Havendale Integrated Graphics Controller 0050 Auburndale/Havendale Thermal Management Controller + 0082 WiFi Link 6000 Series + 0083 WiFi Link 100 Series + 0084 WiFi Link 100 Series + 0085 WiFi Link 6000 Series + 0086 WiMAX/WiFi Link 6050 Series + 0087 WiMAX/WiFi Link 6050 Series + 0088 WiMAX/WiFi Link 6050 Series + 0089 WiMAX/WiFi Link 6050 Series 0122 82437FX 0309 80303 I/O Processor PCI-to-PCI Bridge 030d 80312 I/O Companion Chip PCI-to-PCI Bridge @@ -13984,7 +14025,7 @@ # (rev d3) (prog-if (rev d3) (prog-if 01 [Subtractive decode]) 103c 0934 HP Compaq nw8240 Mobile Workstation 103c 099c NX6110/NC6120 - 103c 309f HP Compaq nx9420 + 103c 309f Compaq nx9420 Notebook 103c 30a3 Compaq nw8440 103c 30c1 Compaq 6910p 144d c00c P30 notebook @@ -14926,16 +14967,19 @@ 27a0 Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub 1025 006c 9814 WKMI 1028 01d7 XPS M1210 + 103c 309f Compaq nx9420 Notebook 103c 30a1 NC2400 103c 30a3 Compaq nw8440 1043 1237 A6J-Q008 17aa 2015 ThinkPad T60 17aa 2017 ThinkPad T60/R60 series 27a1 Mobile 945GM/PM/GMS, 943/940GML and 945GT Express PCI Express Root Port + 103c 309f Compaq nx9420 Notebook 103c 30a3 Compaq nw8440 27a2 Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller 103c 30a1 NC2400 17aa 201a ThinkPad T60/R60 series + 9902 1584 CCE MPL-D10H120F 27a6 Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller 103c 30a1 NC2400 17aa 201a ThinkPad T60/R60 series @@ -14951,7 +14995,7 @@ 8086 544e DeskTop Board D945GTP 27b9 82801GBM (ICH7-M) LPC Interface Bridge 1028 01d7 XPS M1210 - 103c 309f HP Compaq nx9420 + 103c 309f Compaq nx9420 Notebook 103c 30a1 NC2400 103c 30a3 Compaq nw8440 10f7 8338 Panasonic CF-Y5 laptop @@ -14977,6 +15021,7 @@ 1028 01d7 XPS M1210 17aa 200e Thinkpad T60 model 2007 27c5 82801GBM/GHM (ICH7 Family) SATA AHCI Controller + 103c 309f Compaq nx9420 Notebook 103c 30a3 Compaq nw8440 17aa 200d ThinkPad T60/R60 series 27c6 82801GHM (ICH7-M DH) SATA RAID Controller @@ -14986,6 +15031,7 @@ 1028 01d7 XPS M1210 1028 01df PowerEdge SC440 1028 01e6 PowerEdge 860 + 103c 309f Compaq nx9420 Notebook 103c 30a1 NC2400 103c 30a3 Compaq nw8440 1043 1237 A6J-Q008 @@ -14999,6 +15045,7 @@ 1028 01d7 XPS M1210 1028 01df PowerEdge SC440 1028 01e6 PowerEdge 860 + 103c 309f Compaq nx9420 Notebook 103c 30a1 NC2400 103c 30a3 Compaq nw8440 1043 1237 A6J-Q008 @@ -15012,6 +15059,7 @@ 1028 01d7 XPS M1210 1028 01df PowerEdge SC440 1028 01e6 PowerEdge 860 + 103c 309f Compaq nx9420 Notebook 103c 30a1 NC2400 103c 30a3 Compaq nw8440 1043 1237 A6J-Q008 @@ -15024,6 +15072,7 @@ 1028 01ad OptiPlex GX620 1028 01d7 XPS M1210 1028 01df PowerEdge SC440 + 103c 309f Compaq nx9420 Notebook 103c 30a1 NC2400 103c 30a3 Compaq nw8440 1043 1237 A6J-Q008 @@ -15037,6 +15086,7 @@ 1028 01d7 XPS M1210 1028 01df PowerEdge SC440 1028 01e6 PowerEdge 860 + 103c 309f Compaq nx9420 Notebook 103c 30a1 NC2400 103c 30a3 Compaq nw8440 1043 1237 A6J-Q008 @@ -15044,8 +15094,10 @@ 17aa 200b ThinkPad T60/R60 series 8086 544e DeskTop Board D945GTP 27d0 82801G (ICH7 Family) PCI Express Port 1 + 103c 309f Compaq nx9420 Notebook 103c 30a3 Compaq nw8440 27d2 82801G (ICH7 Family) PCI Express Port 2 + 103c 309f Compaq nx9420 Notebook 103c 30a3 Compaq nw8440 27d4 82801G (ICH7 Family) PCI Express Port 3 27d6 82801G (ICH7 Family) PCI Express Port 4 @@ -15053,11 +15105,13 @@ 27d8 82801G (ICH7 Family) High Definition Audio Controller 1025 006c 9814 WKMI 1028 01d7 XPS M1210 + 103c 309f Compaq nx9420 Notebook 103c 30a1 NC2400 103c 30a3 Compaq nw8440 1043 1123 A6J-Q008 1043 13c4 Asus G2P 1043 8290 P5KPL-VM Motherboard + 1043 82ea P5KPL-CM Motherboard 107b 5048 E4500 10f7 8338 Panasonic CF-Y5 laptop 1179 ff10 Toshiba Satellite A100-796 audio (Realtek ALC861) @@ -15090,6 +15144,7 @@ 27df 82801G (ICH7 Family) IDE Controller 1028 01df PowerEdge SC440 1028 01e6 PowerEdge 860 + 103c 309f Compaq nx9420 Notebook 103c 30a1 NC2400 103c 30a3 Compaq nw8440 1043 1237 A6J-Q008 @@ -15940,7 +15995,7 @@ 8086 2722 Dell Latitude D600 8086 2731 Samsung P35 integrated WLAN 4222 PRO/Wireless 3945ABG [Golan] Network Connection - 103c 135c Compaq 6710b + 103c 135c Compaq 6710b or nx9420 Notebook 8086 1000 PRO/Wireless 3945ABG Network Connection 8086 1001 PRO/Wireless 3945ABG Network Connection 8086 1005 PRO/Wireless 3945BG Network Connection @@ -15958,6 +16013,7 @@ 8086 1011 ThinkPad R60e/X60s 8086 1014 PRO/Wireless 3945BG Network Connection 4229 PRO/Wireless 4965 AG or AGN [Kedron] Network Connection + 422b WiFi Link 6000 Series 4230 PRO/Wireless 4965 AG or AGN [Kedron] Network Connection 8086 1110 Lenovo ThinkPad T51 8086 1111 Lenovo ThinkPad T61 @@ -15967,11 +16023,16 @@ 8086 1216 PRO/Wireless 5100ABG Network Connection 8086 1305 PRO/Wireless 5100BG Network Connection 8086 1306 PRO/Wireless 5100ABG Network Connection + 8086 1321 Wireless WiFi Link 5100 8086 1326 PRO/Wireless 5100ABG Network Connection 4235 PRO/Wireless 5300 AGN [Shiloh] Network Connection - 4236 Wireless WiFi Link 5100 + 4236 Wireless WiFi Link 5300 4237 PRO/Wireless 5100 AGN [Shiloh] Network Connection + 4238 WiFi Link 6000 Series 423a PRO/Wireless 5350 AGN [Echo Peak] Network Connection + 423b PRO/Wireless 5350 AGN [Echo Peak] Network Connection + 423c WiMAX/WiFi Link 5050 Series + 423d WiMAX/WiFi Link 5050 Series 444e Turbo Memory Controller 5001 LE80578 5002 LE80578 Graphics Processor Unit From axeld at mail.berlios.de Wed Jan 14 22:32:21 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Wed, 14 Jan 2009 22:32:21 +0100 Subject: [Haiku-commits] r28905 - haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep Message-ID: <200901142132.n0ELWLA4028928@sheep.berlios.de> Author: axeld Date: 2009-01-14 22:32:21 +0100 (Wed, 14 Jan 2009) New Revision: 28905 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28905&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/enhanced_speedstep.cpp Log: * Forgot some debug output in the driver... * Took the opportunity and cleaned up coding style problems in that file. Clemens, I hope you're reading :-) Modified: haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/enhanced_speedstep.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/enhanced_speedstep.cpp 2009-01-14 21:17:39 UTC (rev 28904) +++ haiku/trunk/src/add-ons/kernel/drivers/power/enhanced_speedstep/enhanced_speedstep.cpp 2009-01-14 21:32:21 UTC (rev 28905) @@ -34,12 +34,10 @@ #define EST_PATHID_GENERATOR "est/path_id" static device_manager_info *sDeviceManager; -static ConditionVariable cv_frequency; -vint32 current_id; +static ConditionVariable sFrequencyCondition; +static vint32 sCurrentID; -status_t est_control(void* _cookie, uint32 op, void* arg, size_t len); - static status_t est_open(void *initCookie, const char *path, int flags, void** cookie) { @@ -73,7 +71,7 @@ device->number_states = 0; for (f = freqsInfo; f->frequency != 0; f++) { TRACE("est: Frequency %u, Volts %u, Power %i, Latency %u, id %u\n", - f->frequency, f->volts, f->power, f->id, EST_TRANS_LAT); + f->frequency, f->volts, f->power, f->id, EST_TRANS_LAT); device->number_states++; } @@ -81,7 +79,7 @@ freq_info *f2 = est_get_current(freqsInfo); if (f2) { TRACE("est: Current Frequency %u, Volts %u, Power %i, Latency %u\n", - f2->frequency, f2->volts, f2->power, EST_TRANS_LAT); + f2->frequency, f2->volts, f2->power, EST_TRANS_LAT); } return B_OK; @@ -89,18 +87,18 @@ static status_t -est_read(void* _cookie, off_t position, void *buf, size_t* num_bytes) +est_read(void* _cookie, off_t position, void *buffer, size_t* numBytes) { TRACE("est: est_read\n"); - if (*num_bytes < 1) + if (*numBytes < 1) return B_IO_ERROR; est_cookie *device = (est_cookie *)_cookie; if (position == 0) { - size_t max_len = *num_bytes; - char *str = (char *)buf; + size_t max_len = *numBytes; + char *str = (char *)buffer; snprintf(str, max_len, "CPU Frequency states:\n"); max_len-= strlen(str); @@ -109,22 +107,23 @@ freq_info *freqsInfo = device->available_states; freq_info *f; for (f = freqsInfo; f->frequency != 0; f++) { - snprintf(str, max_len, " Frequency %hu, Volts %hu, Power %i, Latency %i, id %hu\n", - f->frequency, f->volts, f->power, f->id, - EST_TRANS_LAT); + snprintf(str, max_len, " Frequency %hu, Volts %hu, Power %i, " + "Latency %i, id %hu\n", f->frequency, f->volts, f->power, f->id, + EST_TRANS_LAT); max_len-= strlen(str); str += strlen(str); } freq_info *f2 = est_get_current(freqsInfo); if (f2) { - snprintf(str, max_len, "\nCurrent State: Frequency %hu, Volts %hu, Power %i, Latency %i\n", - f2->frequency, f2->volts, f2->power, EST_TRANS_LAT); + snprintf(str, max_len, "\nCurrent State: Frequency %hu, Volts %hu, " + "Power %i, Latency %i\n", f2->frequency, f2->volts, f2->power, + EST_TRANS_LAT); } - *num_bytes = strlen((char *)buf); + *numBytes = strlen((char *)buffer); } else { - *num_bytes = 0; + *numBytes = 0; } return B_OK; @@ -132,7 +131,7 @@ static status_t -est_write(void* cookie, off_t position, const void* buffer, size_t* num_bytes) +est_write(void* cookie, off_t position, const void* buffer, size_t* numBytes) { return B_ERROR; } @@ -162,7 +161,7 @@ return B_IO_ERROR; freqInfo = (freq_info*)arg; user_memcpy(freqInfo, device->available_states, - sizeof(freq_info) * (device->number_states + 1)); + sizeof(freq_info) * (device->number_states + 1)); err = B_OK; break; @@ -172,7 +171,7 @@ freqInfo = est_get_current(device->available_states); if (!freqInfo) return B_ERROR; - atomic_set(¤t_id, freqInfo->id); + atomic_set(&sCurrentID, freqInfo->id); *((uint16*)arg) = freqInfo->id; err = B_OK; break; @@ -183,28 +182,27 @@ id = (uint16*)arg; err = est_set_id16(*id); if (err == B_OK) { - atomic_set(¤t_id, *id); - cv_frequency.NotifyAll(); + atomic_set(&sCurrentID, *id); + sFrequencyCondition.NotifyAll(); } break; case WATCH_CPU_FREQ: if (len < sizeof(uint16)) return B_IO_ERROR; - cv_frequency.Wait(); + sFrequencyCondition.Wait(); if (atomic_get(&(device->stop_watching))) { atomic_set(&(device->stop_watching), 0); err = B_ERROR; - } - else { - *((uint16*)arg) = atomic_get(¤t_id); + } else { + *((uint16*)arg) = atomic_get(&sCurrentID); err = B_OK; } break; case STOP_WATCHING_CPU_FREQ: atomic_set(&(device->stop_watching), 1); - cv_frequency.NotifyAll(); + sFrequencyCondition.NotifyAll(); err = B_OK; break; } @@ -213,14 +211,14 @@ static status_t -est_close (void* cookie) +est_close(void* cookie) { return B_OK; } static status_t -est_free (void* cookie) +est_free(void* cookie) { return B_OK; } @@ -232,26 +230,21 @@ static float est_support(device_node *parent) { - const char *bus; - uint32 device_type; - -dprintf("EST1\n"); // make sure parent is really the ACPI bus manager + const char *bus; if (sDeviceManager->get_attr_string(parent, B_DEVICE_BUS, &bus, false)) return -1; -dprintf("EST2\n"); if (strcmp(bus, "acpi")) return 0.0; -dprintf("EST3\n"); // check whether it's really a cpu Device + uint32 deviceType; if (sDeviceManager->get_attr_uint32(parent, ACPI_DEVICE_TYPE_ITEM, - &device_type, false) != B_OK - || device_type != ACPI_TYPE_PROCESSOR) { + &deviceType, false) != B_OK + || deviceType != ACPI_TYPE_PROCESSOR) { return 0.0; } -dprintf("EST4\n"); TRACE("est_support: supported\n"); // check if cpu support est @@ -260,31 +253,22 @@ if (get_system_info(&sysInfo) != B_OK) return 0.0; TRACE("cpu_type: %u vendor %u model %u\n", sysInfo.cpu_type, - sysInfo.cpu_type & B_CPU_x86_VENDOR_MASK, - sysInfo.cpu_type & 0x00FF); -dprintf("EST5\n"); + sysInfo.cpu_type & B_CPU_x86_VENDOR_MASK, sysInfo.cpu_type & 0x00FF); if ((sysInfo.cpu_type & B_CPU_x86_VENDOR_MASK) != B_CPU_INTEL_x86) return 0.0; -dprintf("EST6\n"); TRACE("ext\n"); cpuid_info info; if (get_cpuid(&info, 1, cpuNum) != B_OK) return 0.0; -dprintf("EST7\n"); TRACE("extended_features: %i\n", int(info.eax_1.extended_features)); -dprintf("EST8\n"); // check for enhanced speedstep - if (info.eax_1.extended_features & IA32_FEATURE_EXT_EST) - TRACE("supprot est\n"); - else + if ((info.eax_1.extended_features & IA32_FEATURE_EXT_EST) == 0) return 0.0; -dprintf("EST9\n"); - TRACE("success\n"); - + TRACE("supports est\n"); return 0.6; } @@ -299,7 +283,7 @@ }; return sDeviceManager->register_node(node, EST_MODULE_NAME, attrs, - NULL, NULL); + NULL, NULL); } @@ -308,8 +292,8 @@ { *_driverCookie = node; - cv_frequency.Init(NULL, "frequency cv"); - current_id = -1; + sFrequencyCondition.Init(NULL, "frequency cv"); + sCurrentID = -1; return B_OK; } @@ -325,16 +309,15 @@ est_register_child_devices(void *_cookie) { device_node *node = (device_node*)_cookie; - int path_id; - char name[128]; - path_id = sDeviceManager->create_id(EST_PATHID_GENERATOR); - if (path_id < 0) { + int pathID = sDeviceManager->create_id(EST_PATHID_GENERATOR); + if (pathID < 0) { TRACE("est_register_child_devices: couldn't create a path_id\n"); return B_ERROR; } - snprintf(name, sizeof(name), EST_BASENAME, path_id); + char name[128]; + snprintf(name, sizeof(name), EST_BASENAME, pathID); return sDeviceManager->publish_device(node, name, EST_DEVICE_MODULE_NAME); } @@ -347,6 +330,7 @@ device = (est_cookie *)calloc(1, sizeof(est_cookie)); if (device == NULL) return B_NO_MEMORY; + *cookie = device; device_node *node = (device_node *)driverCookie; From korli at mail.berlios.de Thu Jan 15 00:26:10 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Thu, 15 Jan 2009 00:26:10 +0100 Subject: [Haiku-commits] r28906 - haiku/trunk/src/add-ons/kernel/drivers/audio/hda Message-ID: <200901142326.n0ENQAFQ006468@sheep.berlios.de> Author: korli Date: 2009-01-15 00:26:10 +0100 (Thu, 15 Jan 2009) New Revision: 28906 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28906&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp Log: try to complete snooping enablement Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-01-14 21:32:21 UTC (rev 28905) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-01-14 23:26:10 UTC (rev 28906) @@ -49,13 +49,13 @@ static inline void -update_pci_register(hda_controller* controller, uint8 reg, uint8 mask, uint8 value) +update_pci_register(hda_controller* controller, uint8 reg, uint32 mask, uint32 value, uint8 size) { uint8 tmp = (gPci->read_pci_config)(controller->pci_info.bus, - controller->pci_info.device, controller->pci_info.function, reg, 1); + controller->pci_info.device, controller->pci_info.function, reg, size); (gPci->write_pci_config)(controller->pci_info.bus, controller->pci_info.device, controller->pci_info.function, - reg, 1, (tmp & mask) | value); + reg, size, (tmp & mask) | value); } @@ -737,19 +737,29 @@ goto no_irq; /* TCSEL is reset to TC0 (clear 0-2 bits) */ - update_pci_register(controller, PCI_HDA_TCSEL, PCI_HDA_TCSEL_MASK, 0); + update_pci_register(controller, PCI_HDA_TCSEL, PCI_HDA_TCSEL_MASK, 0, 1); /* Enable snooping for ATI and Nvidia, right now for all their hda-devices, but only based on guessing. */ switch (controller->pci_info.vendor_id) { case NVIDIA_VENDORID: update_pci_register(controller, NVIDIA_HDA_TRANSREG, - NVIDIA_HDA_TRANSREG_MASK, NVIDIA_HDA_ENABLE_COHBITS); + NVIDIA_HDA_TRANSREG_MASK, NVIDIA_HDA_ENABLE_COHBITS, 1); + update_pci_register(controller, NVIDIA_HDA_ISTRM_COH, + ~NVIDIA_HDA_ENABLE_COHBIT, NVIDIA_HDA_ENABLE_COHBIT, 1); + update_pci_register(controller, NVIDIA_HDA_OSTRM_COH, + ~NVIDIA_HDA_ENABLE_COHBIT, NVIDIA_HDA_ENABLE_COHBIT, 1); break; case ATI_VENDORID: update_pci_register(controller, ATI_HDA_MISC_CNTR2, - ATI_HDA_MISC_CNTR2_MASK, ATI_HDA_ENABLE_SNOOP); + ATI_HDA_MISC_CNTR2_MASK, ATI_HDA_ENABLE_SNOOP, 1); break; + case INTEL_VENDORID: + if (controller->pci_info.device_id == INTEL_SCH_DEVICEID) { + update_pci_register(controller, INTEL_SCH_HDA_DEVC, + ~INTEL_SCH_HDA_DEVC_SNOOP, INTEL_SCH_HDA_DEVC_SNOOP, 2); + } + break; } capabilities = controller->Read16(HDAC_GLOBAL_CAP); From marcusoverhagen at arcor.de Thu Jan 15 00:49:53 2009 From: marcusoverhagen at arcor.de (Marcus Overhagen) Date: Thu, 15 Jan 2009 00:49:53 +0100 (CET) Subject: [Haiku-commits] r28906 - haiku/trunk/src/add-ons/kernel/drivers/audio/hda In-Reply-To: <200901142326.n0ENQAFQ006468@sheep.berlios.de> References: <200901142326.n0ENQAFQ006468@sheep.berlios.de> Message-ID: <8478192.1231976993112.JavaMail.ngmail@webmail09.arcor-online.net> korli wrote: > try to complete snooping enablement nice try, but it has a bug ;) > +update_pci_register(hda_controller* controller, uint8 reg, uint32 mask, uint32 value, uint8 size) > { > uint8 tmp = (gPci->read_pci_config)(controller->pci_info.bus, You should make tmp an uint32 This wont work as expected: > + update_pci_register(controller, INTEL_SCH_HDA_DEVC, > + ~INTEL_SCH_HDA_DEVC_SNOOP, INTEL_SCH_HDA_DEVC_SNOOP, 2); regards Marcus Jetzt komfortabel bei Arcor-Digital TV einsteigen: Mehr Happy Ends, mehr Herzschmerz, mehr Fernsehen! Erleben Sie 50 digitale TV Programme und optional 60 Pay TV Sender, einen elektronischen Programmf?hrer mit Movie Star Bewertungen von TV Movie. Au?erdem, aktuelle Filmhits und spannende Dokus in der Arcor-Videothek. Infos unter www.arcor.de/tv From korli at users.berlios.de Thu Jan 15 10:18:25 2009 From: korli at users.berlios.de (=?ISO-8859-1?Q?J=E9r=F4me_Duval?=) Date: Thu, 15 Jan 2009 10:18:25 +0100 Subject: [Haiku-commits] r28906 - haiku/trunk/src/add-ons/kernel/drivers/audio/hda In-Reply-To: <8478192.1231976993112.JavaMail.ngmail@webmail09.arcor-online.net> References: <200901142326.n0ENQAFQ006468@sheep.berlios.de> <8478192.1231976993112.JavaMail.ngmail@webmail09.arcor-online.net> Message-ID: 2009/1/15 Marcus Overhagen > > uint8 tmp = (gPci->read_pci_config)(controller->pci_info.bus, > > You should make tmp an uint32 > > This wont work as expected: > You're right! Thanks for noticing. J?r?me -------------- next part -------------- An HTML attachment was scrubbed... URL: From axeld at mail.berlios.de Thu Jan 15 12:33:15 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Thu, 15 Jan 2009 12:33:15 +0100 Subject: [Haiku-commits] r28907 - haiku/trunk/src/servers/app Message-ID: <200901151133.n0FBXFrK022331@sheep.berlios.de> Author: axeld Date: 2009-01-15 12:33:13 +0100 (Thu, 15 Jan 2009) New Revision: 28907 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28907&view=rev Modified: haiku/trunk/src/servers/app/Desktop.cpp Log: * Moved the screen change to a later point, as the workspace-leaving message did arrive after the change; now it's: leave workspace, change screen, enter workspace. Modified: haiku/trunk/src/servers/app/Desktop.cpp =================================================================== --- haiku/trunk/src/servers/app/Desktop.cpp 2009-01-14 23:26:10 UTC (rev 28906) +++ haiku/trunk/src/servers/app/Desktop.cpp 2009-01-15 11:33:13 UTC (rev 28907) @@ -945,14 +945,6 @@ int32 previousIndex = fCurrentWorkspace; rgb_color previousColor = fWorkspaces[fCurrentWorkspace].Color(); bool movedMouseEventWindow = false; - display_mode previousMode, newMode; - fVirtualScreen.ScreenAt(0)->GetMode(&previousMode); - fVirtualScreen.RestoreConfiguration(*this, - fSettings->WorkspacesMessage(index)); - fVirtualScreen.ScreenAt(0)->GetMode(&newMode); - // We only need to invalidate the entire desktop if we changed display modes - if (memcmp(&previousMode, &newMode, sizeof(display_mode))) - ScreenChanged(fVirtualScreen.ScreenAt(0), false); if (fMouseEventWindow != NULL) { if (fMouseEventWindow->IsNormal()) { @@ -1010,6 +1002,17 @@ fPreviousWorkspace = fCurrentWorkspace; fCurrentWorkspace = index; + // Change the display mode, if needed + // TODO: this needs to be done for all screens + display_mode previousMode, newMode; + fVirtualScreen.ScreenAt(0)->GetMode(&previousMode); + fVirtualScreen.RestoreConfiguration(*this, + fSettings->WorkspacesMessage(index)); + fVirtualScreen.ScreenAt(0)->GetMode(&newMode); + // We only need to invalidate the entire desktop if we changed display modes + if (memcmp(&previousMode, &newMode, sizeof(display_mode))) + ScreenChanged(fVirtualScreen.ScreenAt(0), false); + // show windows, and include them in the changed region - but only // those that were not visible before (or whose position changed) From axeld at mail.berlios.de Thu Jan 15 12:35:41 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Thu, 15 Jan 2009 12:35:41 +0100 Subject: [Haiku-commits] r28908 - in haiku/trunk/src: kits/interface servers/app Message-ID: <200901151135.n0FBZf4O025849@sheep.berlios.de> Author: axeld Date: 2009-01-15 12:35:39 +0100 (Thu, 15 Jan 2009) New Revision: 28908 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28908&view=rev Modified: haiku/trunk/src/kits/interface/Window.cpp haiku/trunk/src/servers/app/ServerWindow.cpp Log: * The move/resize window protocol now uses absolute coordinates rather than relative ones. This fixes bugs #2658, and #3213; in BWindow::ScreenChanged() the window does not yet know that it moved on the new screen (when it already had a position on that workspace). Modified: haiku/trunk/src/kits/interface/Window.cpp =================================================================== --- haiku/trunk/src/kits/interface/Window.cpp 2009-01-15 11:33:13 UTC (rev 28907) +++ haiku/trunk/src/kits/interface/Window.cpp 2009-01-15 11:35:39 UTC (rev 28908) @@ -1530,7 +1530,7 @@ The dimensions that non-virtual Zoom() passes to hook Zoom() are deduced from the smallest of three rectangles: */ - + // fallback in case retrieving the decorator settings fails (highly unlikely) float borderWidth = 5.0; float tabHeight = 21.0; @@ -1541,7 +1541,7 @@ tabHeight = tabRect.Height(); settings.FindFloat("border width", &borderWidth); } - + // 1) the rectangle defined by SetZoomLimits(), float zoomedWidth = fMaxZoomWidth; float zoomedHeight = fMaxZoomHeight; @@ -2251,35 +2251,37 @@ void BWindow::MoveBy(float dx, float dy) { - if ((dx == 0.0 && dy == 0.0) || !Lock()) - return; + if ((dx != 0.0f || dy != 0.0f) && Lock()) { + MoveTo(fFrame.left + dx, fFrame.top + dy); + Unlock(); + } +} - fLink->StartMessage(AS_WINDOW_MOVE); - fLink->Attach(dx); - fLink->Attach(dy); - status_t status; - if (fLink->FlushWithReply(status) == B_OK && status == B_OK) - fFrame.OffsetBy(dx, dy); - - Unlock(); +void +BWindow::MoveTo(BPoint point) +{ + MoveTo(point.x, point.y); } void -BWindow::MoveTo(BPoint point) +BWindow::MoveTo(float x, float y) { if (!Lock()) return; - point.x = roundf(point.x); - point.y = roundf(point.y); + x = roundf(x); + y = roundf(y); - if (fFrame.left != point.x || fFrame.top != point.y) { - float xOffset = point.x - fFrame.left; - float yOffset = point.y - fFrame.top; + if (fFrame.left != x || fFrame.top != y) { + fLink->StartMessage(AS_WINDOW_MOVE); + fLink->Attach(x); + fLink->Attach(y); - MoveBy(xOffset, yOffset); + status_t status; + if (fLink->FlushWithReply(status) == B_OK && status == B_OK) + fFrame.OffsetTo(x, y); } Unlock(); @@ -2287,57 +2289,53 @@ void -BWindow::MoveTo(float x, float y) +BWindow::ResizeBy(float dx, float dy) { - MoveTo(BPoint(x, y)); + if (Lock()) { + ResizeTo(fFrame.Width() + dx, fFrame.Height() + dy); + Unlock(); + } } void -BWindow::ResizeBy(float dx, float dy) +BWindow::ResizeTo(float width, float height) { if (!Lock()) return; - dx = roundf(dx); - dy = roundf(dy); + width = roundf(width); + height = roundf(height); // stay in minimum & maximum frame limits - if (fFrame.Width() + dx < fMinWidth) - dx = fMinWidth - fFrame.Width(); - if (fFrame.Width() + dx > fMaxWidth) - dx = fMaxWidth - fFrame.Width(); - if (fFrame.Height() + dy < fMinHeight) - dy = fMinHeight - fFrame.Height(); - if (fFrame.Height() + dy > fMaxHeight) - dy = fMaxHeight - fFrame.Height(); + if (width < fMinWidth) + width = fMinWidth; + else if (width > fMaxWidth) + width = fMaxWidth; - if (dx != 0.0 || dy != 0.0) { + if (height < fMinHeight) + height = fMinHeight; + else if (height > fMaxHeight) + height = fMaxHeight; + + if (width != fFrame.Width() || height != fFrame.Height()) { fLink->StartMessage(AS_WINDOW_RESIZE); - fLink->Attach(dx); - fLink->Attach(dy); + fLink->Attach(width); + fLink->Attach(height); status_t status; if (fLink->FlushWithReply(status) == B_OK && status == B_OK) { - fFrame.SetRightBottom(fFrame.RightBottom() + BPoint(dx, dy)); + fFrame.right = fFrame.left + width; + fFrame.bottom = fFrame.top + height; _AdoptResize(); } } + Unlock(); } void -BWindow::ResizeTo(float width, float height) -{ - if (Lock()) { - ResizeBy(width - fFrame.Width(), height - fFrame.Height()); - Unlock(); - } -} - - -void BWindow::Show() { bool runCalled = true; @@ -3166,7 +3164,7 @@ if (message->what != B_MOUSE_MOVED) { // Yep, the meaning of "where" is different // for regular mouse moved messages versus - // mouse up/down! + // mouse up/down! message->AddPoint("where", viewWhere); } message->AddPoint("be:view_where", viewWhere); Modified: haiku/trunk/src/servers/app/ServerWindow.cpp =================================================================== --- haiku/trunk/src/servers/app/ServerWindow.cpp 2009-01-15 11:33:13 UTC (rev 28907) +++ haiku/trunk/src/servers/app/ServerWindow.cpp 2009-01-15 11:35:39 UTC (rev 28908) @@ -938,14 +938,14 @@ } case AS_WINDOW_RESIZE: { - float xResizeBy; - float yResizeBy; - link.Read(&xResizeBy); - if (link.Read(&yResizeBy) != B_OK) + float xResizeTo; + float yResizeTo; + link.Read(&xResizeTo); + if (link.Read(&yResizeTo) != B_OK) break; DTRACE(("ServerWindow %s: Message AS_WINDOW_RESIZE %.1f, %.1f\n", - Title(), xResizeBy, yResizeBy)); + Title(), xResizeTo, yResizeTo)); // comment this code for the time being, as some apps rely // on the programmatically resize behavior during user resize @@ -955,7 +955,9 @@ // fLink.StartMessage(B_BUSY); // } else { //fDesktop->UnlockSingleWindow(); - fDesktop->ResizeWindowBy(fWindow, xResizeBy, yResizeBy); + fDesktop->ResizeWindowBy(fWindow, + xResizeTo - fWindow->Frame().Width(), + yResizeTo - fWindow->Frame().Height()); //fDesktop->LockSingleWindow(); fLink.StartMessage(B_OK); // } @@ -964,14 +966,14 @@ } case AS_WINDOW_MOVE: { - float xMoveBy; - float yMoveBy; - link.Read(&xMoveBy); - if (link.Read(&yMoveBy) != B_OK) + float xMoveTo; + float yMoveTo; + link.Read(&xMoveTo); + if (link.Read(&yMoveTo) != B_OK) break; DTRACE(("ServerWindow %s: Message AS_WINDOW_MOVE: %.1f, %.1f\n", - Title(), xMoveBy, yMoveBy)); + Title(), xMoveTo, yMoveTo)); if (fWindow->IsDragging()) { // While the user moves the window, we ignore @@ -979,7 +981,8 @@ fLink.StartMessage(B_BUSY); } else { //fDesktop->UnlockSingleWindow(); - fDesktop->MoveWindowBy(fWindow, xMoveBy, yMoveBy); + fDesktop->MoveWindowBy(fWindow, xMoveTo - fWindow->Frame().left, + yMoveTo - fWindow->Frame().top); //fDesktop->LockSingleWindow(); fLink.StartMessage(B_OK); } From axeld at mail.berlios.de Thu Jan 15 12:39:56 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Thu, 15 Jan 2009 12:39:56 +0100 Subject: [Haiku-commits] r28909 - haiku/trunk/src/apps/workspaces Message-ID: <200901151139.n0FBduY8030107@sheep.berlios.de> Author: axeld Date: 2009-01-15 12:39:55 +0100 (Thu, 15 Jan 2009) New Revision: 28909 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28909&view=rev Modified: haiku/trunk/src/apps/workspaces/Workspaces.cpp Log: * We don't need the BeOS FrameMoved() work-around for Haiku. Modified: haiku/trunk/src/apps/workspaces/Workspaces.cpp =================================================================== --- haiku/trunk/src/apps/workspaces/Workspaces.cpp 2009-01-15 11:35:39 UTC (rev 28908) +++ haiku/trunk/src/apps/workspaces/Workspaces.cpp 2009-01-15 11:39:55 UTC (rev 28909) @@ -116,7 +116,6 @@ private: WorkspacesSettings *fSettings; - BRect fPreviousFrame; bool fAutoRaising; }; @@ -257,14 +256,16 @@ return; // adjust horizontal position - if (fWindowFrame.right > fScreenFrame.right / 2) + if (fWindowFrame.right > fScreenFrame.right / 2) { fWindowFrame.OffsetTo(newScreenFrame.right - (fScreenFrame.right - fWindowFrame.left), fWindowFrame.top); + } // adjust vertical position - if (fWindowFrame.bottom > fScreenFrame.bottom / 2) + if (fWindowFrame.bottom > fScreenFrame.bottom / 2) { fWindowFrame.OffsetTo(fWindowFrame.left, newScreenFrame.bottom - (fScreenFrame.bottom - fWindowFrame.top)); + } fScreenFrame = newScreenFrame; } @@ -474,7 +475,6 @@ fAutoRaising(false) { AddChild(new WorkspacesView(Bounds())); - fPreviousFrame = Frame(); if (!fSettings->HasTitle()) SetLook(B_MODAL_WINDOW_LOOK); @@ -497,9 +497,6 @@ void WorkspacesWindow::ScreenChanged(BRect rect, color_space mode) { - fPreviousFrame = fSettings->WindowFrame(); - // work-around for a bug in BeOS, see explanation in FrameMoved() - fSettings->UpdateFramesForScreen(rect); MoveTo(fSettings->WindowFrame().LeftTop()); } @@ -508,14 +505,6 @@ void WorkspacesWindow::FrameMoved(BPoint origin) { - if (origin == fPreviousFrame.LeftTop()) { - // This works around a bug in BeOS; when you change the window - // position in WorkspaceActivated() or ScreenChanged(), it will - // send an old repositioning message *after* the FrameMoved() - // that originated your change has arrived - return; - } - fSettings->SetWindowFrame(Frame()); } From mmu_man at mail.berlios.de Thu Jan 15 17:47:54 2009 From: mmu_man at mail.berlios.de (mmu_man at BerliOS) Date: Thu, 15 Jan 2009 17:47:54 +0100 Subject: [Haiku-commits] r28910 - haiku/trunk/src/system/boot Message-ID: <200901151647.n0FGlssX032344@sheep.berlios.de> Author: mmu_man Date: 2009-01-15 17:47:53 +0100 (Thu, 15 Jan 2009) New Revision: 28910 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28910&view=rev Modified: haiku/trunk/src/system/boot/Jamfile Log: Make sure the hack-coff tool is built when needed. Modified: haiku/trunk/src/system/boot/Jamfile =================================================================== --- haiku/trunk/src/system/boot/Jamfile 2009-01-15 11:39:55 UTC (rev 28909) +++ haiku/trunk/src/system/boot/Jamfile 2009-01-15 16:47:53 UTC (rev 28910) @@ -54,6 +54,7 @@ COFF_FORMAT on $(coffLoader) = xcoff-powermac ; HACK_COFF on $(coffLoader) = hack-coff ; + Depends $(coffLoader) : hack-coff ; Depends $(coffLoader) : $(bootLoader) ; MakeLocateDebug $(coffLoader) ; } From korli at mail.berlios.de Thu Jan 15 21:37:11 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Thu, 15 Jan 2009 21:37:11 +0100 Subject: [Haiku-commits] r28911 - haiku/trunk/src/add-ons/kernel/drivers/audio/hda Message-ID: <200901152037.n0FKbB1I013914@sheep.berlios.de> Author: korli Date: 2009-01-15 21:37:10 +0100 (Thu, 15 Jan 2009) New Revision: 28911 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28911&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller_defs.h Log: build fix Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller_defs.h =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller_defs.h 2009-01-15 16:47:53 UTC (rev 28910) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller_defs.h 2009-01-15 20:37:10 UTC (rev 28911) @@ -138,12 +138,18 @@ #define ATI_HDA_MISC_CNTR2 0x42 #define ATI_HDA_MISC_CNTR2_MASK 0xf8 #define ATI_HDA_ENABLE_SNOOP 0x02 +#define NVIDIA_HDA_OSTRM_COH 0x4c +#define NVIDIA_HDA_ISTRM_COH 0x4d +#define NVIDIA_HDA_ENABLE_COHBIT 0x01 #define NVIDIA_HDA_TRANSREG 0x4e #define NVIDIA_HDA_TRANSREG_MASK 0xf0 #define NVIDIA_HDA_ENABLE_COHBITS 0x0f +#define INTEL_SCH_HDA_DEVC 0x78 +#define INTEL_SCH_HDA_DEVC_SNOOP 0x800 #define ATI_VENDORID 0x1002 #define INTEL_VENDORID 0x8086 +#define INTEL_SCH_DEVICEID 0x811b #define NVIDIA_VENDORID 0x10de From axeld at mail.berlios.de Thu Jan 15 23:16:32 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Thu, 15 Jan 2009 23:16:32 +0100 Subject: [Haiku-commits] r28912 - haiku/trunk/src/add-ons/accelerants/intel_extreme Message-ID: <200901152216.n0FMGWVx024918@sheep.berlios.de> Author: axeld Date: 2009-01-15 23:16:31 +0100 (Thu, 15 Jan 2009) New Revision: 28912 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28912&view=rev Modified: haiku/trunk/src/add-ons/accelerants/intel_extreme/mode.cpp Log: * Fixed typo. Modified: haiku/trunk/src/add-ons/accelerants/intel_extreme/mode.cpp =================================================================== --- haiku/trunk/src/add-ons/accelerants/intel_extreme/mode.cpp 2009-01-15 20:37:10 UTC (rev 28911) +++ haiku/trunk/src/add-ons/accelerants/intel_extreme/mode.cpp 2009-01-15 22:16:31 UTC (rev 28912) @@ -596,7 +596,7 @@ if ((gInfo->head_mode & HEAD_MODE_B_DIGITAL) != 0) { pll_divisors divisors; - compute_pll_divisors(target, divisors,true); + compute_pll_divisors(target, divisors, true); uint32 dpll = DISPLAY_PLL_NO_VGA_CONTROL; if ((gInfo->shared_info->device_type & INTEL_TYPE_9xx) != 0) { From axeld at mail.berlios.de Thu Jan 15 23:23:21 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Thu, 15 Jan 2009 23:23:21 +0100 Subject: [Haiku-commits] r28913 - in haiku/trunk/src/add-ons/accelerants: common nvidia radeon Message-ID: <200901152223.n0FMNL2w025763@sheep.berlios.de> Author: axeld Date: 2009-01-15 23:23:20 +0100 (Thu, 15 Jan 2009) New Revision: 28913 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28913&view=rev Modified: haiku/trunk/src/add-ons/accelerants/common/create_display_modes.cpp haiku/trunk/src/add-ons/accelerants/nvidia/ProposeDisplayMode.c haiku/trunk/src/add-ons/accelerants/radeon/ProposeDisplayMode.c Log: * Another try for ticket #2791, this time using the modeline proposed by tigerdog; let's see how many complaints we get this time :-) Modified: haiku/trunk/src/add-ons/accelerants/common/create_display_modes.cpp =================================================================== --- haiku/trunk/src/add-ons/accelerants/common/create_display_modes.cpp 2009-01-15 22:16:31 UTC (rev 28912) +++ haiku/trunk/src/add-ons/accelerants/common/create_display_modes.cpp 2009-01-15 22:23:20 UTC (rev 28913) @@ -70,7 +70,8 @@ {{147100, 1680, 1784, 1968, 2256, 1050, 1051, 1054, 1087, POSITIVE_SYNC}, B_CMAP8, 1680, 1050, 0, 0, MODE_FLAGS}, /* Vesa_Monitor_ at 60Hz_(1680X1050) */ - {{160000, 1920, 2010, 2060, 2110, 1200, 1202, 1208, 1235, POSITIVE_SYNC}, B_CMAP8, 1920, 1200, 0, 0, MODE_FLAGS}, /* Vesa_Monitor_ at 60Hz_(1920X1200) */ + //{{160000, 1920, 2010, 2060, 2110, 1200, 1202, 1208, 1235, POSITIVE_SYNC}, B_CMAP8, 1920, 1200, 0, 0, MODE_FLAGS}, /* Vesa_Monitor_ at 60Hz_(1920X1200) */ + {{193160, 1920, 2048, 2256, 2592, 1200, 1201, 1204, 1242, POSITIVE_SYNC}, B_CMAP8, 1920, 1200, 0, 0, MODE_FLAGS}, /* Vesa_Monitor_ at 60Hz_(1920X1200) */ }; static const uint32 kNumBaseModes = sizeof(kBaseModeList) / sizeof(display_mode); Modified: haiku/trunk/src/add-ons/accelerants/nvidia/ProposeDisplayMode.c =================================================================== --- haiku/trunk/src/add-ons/accelerants/nvidia/ProposeDisplayMode.c 2009-01-15 22:16:31 UTC (rev 28912) +++ haiku/trunk/src/add-ons/accelerants/nvidia/ProposeDisplayMode.c 2009-01-15 22:23:20 UTC (rev 28913) @@ -86,7 +86,8 @@ /* 16:10 panel mode; 1.764M pixels */ { { 147100, 1680, 1784, 1968, 2256, 1050, 1051, 1054, 1087, T_POSITIVE_SYNC}, B_CMAP8, 1680, 1050, 0, 0, MODE_FLAGS}, /* Vesa_Monitor_ at 60Hz_(1680X1050) */ /* 16:10 panel mode; 2.304M pixels */ -{ { 160000, 1920, 2010, 2060, 2110, 1200, 1202, 1208, 1235, T_POSITIVE_SYNC}, B_CMAP8, 1920, 1200, 0, 0, MODE_FLAGS}, /* Vesa_Monitor_ at 60Hz_(1920X1200) */ +{ { 193160, 1920, 2048, 2256, 2592, 1200, 1201, 1204, 1242, T_POSITIVE_SYNC}, B_CMAP8, 1920, 1200, 0, 0, MODE_FLAGS}, /* Vesa_Monitor_ at 60Hz_(1920X1200) */ +//{ { 160000, 1920, 2010, 2060, 2110, 1200, 1202, 1208, 1235, T_POSITIVE_SYNC}, B_CMAP8, 1920, 1200, 0, 0, MODE_FLAGS}, /* Vesa_Monitor_ at 60Hz_(1920X1200) */ /* 16:9 panel mode; 1280x720 */ { { 74520, 1280, 1368, 1424, 1656, 720, 724, 730, 750, T_POSITIVE_SYNC}, B_CMAP8, 1280, 720, 0, 0, MODE_FLAGS}, /* Vesa_Monitor_ at 60Hz_(1280X720) */ }; Modified: haiku/trunk/src/add-ons/accelerants/radeon/ProposeDisplayMode.c =================================================================== --- haiku/trunk/src/add-ons/accelerants/radeon/ProposeDisplayMode.c 2009-01-15 22:16:31 UTC (rev 28912) +++ haiku/trunk/src/add-ons/accelerants/radeon/ProposeDisplayMode.c 2009-01-15 22:23:20 UTC (rev 28913) @@ -87,7 +87,8 @@ { { 106500, 1440, 1520, 1672, 1904, 900, 901, 904, 932, T_POSITIVE_SYNC}, B_CMAP8, 1440, 900, 0, 0, MODE_FLAGS}, /* Vesa_Monitor_ at 60Hz_(1440X900) */ { { 147100, 1680, 1784, 1968, 2256, 1050, 1051, 1054, 1087, T_POSITIVE_SYNC}, B_CMAP8, 1680, 1050, 0, 0, MODE_FLAGS}, /* Vesa_Monitor_ at 60Hz_(1680X1050) */ /* 16:10 panel mode; 2.304M pixels */ -{ { 160000, 1920, 2010, 2060, 2110, 1200, 1202, 1208, 1235, T_POSITIVE_SYNC}, B_CMAP8, 1920, 1200, 0, 0, MODE_FLAGS}, /* Vesa_Monitor_ at 60Hz_(1920X1200) */ +{ { 193160, 1920, 2048, 2256, 2592, 1200, 1201, 1204, 1242, T_POSITIVE_SYNC}, B_CMAP8, 1920, 1200, 0, 0, MODE_FLAGS}, /* Vesa_Monitor_ at 60Hz_(1920X1200) */ +//{ { 160000, 1920, 2010, 2060, 2110, 1200, 1202, 1208, 1235, T_POSITIVE_SYNC}, B_CMAP8, 1920, 1200, 0, 0, MODE_FLAGS}, /* Vesa_Monitor_ at 60Hz_(1920X1200) */ // widescreen resolutions, 16:9 { { 74520, 1280, 1368, 1424, 1656, 720, 724, 730, 750, T_POSITIVE_SYNC}, B_CMAP8, 1280, 720, 0, 0, MODE_FLAGS}, /* Vesa_Monitor_ at 60Hz_(1280X720) */ }; From korli at mail.berlios.de Fri Jan 16 00:01:46 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Fri, 16 Jan 2009 00:01:46 +0100 Subject: [Haiku-commits] r28914 - haiku/trunk/src/add-ons/kernel/drivers/audio/hda Message-ID: <200901152301.n0FN1kt9030446@sheep.berlios.de> Author: korli Date: 2009-01-16 00:01:45 +0100 (Fri, 16 Jan 2009) New Revision: 28914 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28914&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp Log: use uint32 as temp variable, noticed by Marcus. Thanks! Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-01-15 22:23:20 UTC (rev 28913) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-01-15 23:01:45 UTC (rev 28914) @@ -51,7 +51,7 @@ static inline void update_pci_register(hda_controller* controller, uint8 reg, uint32 mask, uint32 value, uint8 size) { - uint8 tmp = (gPci->read_pci_config)(controller->pci_info.bus, + uint32 tmp = (gPci->read_pci_config)(controller->pci_info.bus, controller->pci_info.device, controller->pci_info.function, reg, size); (gPci->write_pci_config)(controller->pci_info.bus, controller->pci_info.device, controller->pci_info.function, From oruizdorantes at mail.berlios.de Fri Jan 16 21:32:20 2009 From: oruizdorantes at mail.berlios.de (oruizdorantes at BerliOS) Date: Fri, 16 Jan 2009 21:32:20 +0100 Subject: [Haiku-commits] r28915 - in haiku/trunk: headers/os/bluetooth src/servers/bluetooth Message-ID: <200901162032.n0GKWKob025286@sheep.berlios.de> Author: oruizdorantes Date: 2009-01-16 21:32:19 +0100 (Fri, 16 Jan 2009) New Revision: 28915 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28915&view=rev Modified: haiku/trunk/headers/os/bluetooth/LinkKeyUtils.h haiku/trunk/headers/os/bluetooth/bdaddrUtils.h haiku/trunk/headers/os/bluetooth/bluetooth_util.h haiku/trunk/src/servers/bluetooth/BluetoothServer.cpp haiku/trunk/src/servers/bluetooth/HCIDelegate.h haiku/trunk/src/servers/bluetooth/LocalDeviceHandler.cpp haiku/trunk/src/servers/bluetooth/LocalDeviceImpl.cpp haiku/trunk/src/servers/bluetooth/LocalDeviceImpl.h Log: some cleanups and styling by Mika and me Modified: haiku/trunk/headers/os/bluetooth/LinkKeyUtils.h =================================================================== --- haiku/trunk/headers/os/bluetooth/LinkKeyUtils.h 2009-01-15 23:01:45 UTC (rev 28914) +++ haiku/trunk/headers/os/bluetooth/LinkKeyUtils.h 2009-01-16 20:32:19 UTC (rev 28915) @@ -30,10 +30,10 @@ static char str[50]; sprintf(str, "%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:" - "%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X", - lk.l[0], lk.l[1], lk.l[2], lk.l[3], lk.l[4], lk.l[5], - lk.l[6], lk.l[7], lk.l[8], lk.l[9], lk.l[10], lk.l[11], - lk.l[12], lk.l[13], lk.l[14], lk.l[15]); + "%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X:%2.2X", + lk.l[0], lk.l[1], lk.l[2], lk.l[3], lk.l[4], lk.l[5], + lk.l[6], lk.l[7], lk.l[8], lk.l[9], lk.l[10], lk.l[11], + lk.l[12], lk.l[13], lk.l[14], lk.l[15]); return str; } @@ -43,9 +43,9 @@ if (lkstr != NULL) { int l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15; size_t count = sscanf(lkstr, "%2X:%2X:%2X:%2X:%2X:%2X:%2X:%2X:" - "%2X:%2X:%2X:%2X:%2X:%2X:%2X:%2X", &l0, &l1, &l2, &l3, - &l4, &l5, &l6, &l7, &l8, &l9, &l10, &l11, &l12, &l13, - &l14, &l15); + "%2X:%2X:%2X:%2X:%2X:%2X:%2X:%2X", &l0, &l1, &l2, &l3, + &l4, &l5, &l6, &l7, &l8, &l9, &l10, &l11, &l12, &l13, + &l14, &l15); if (count == 16) { return (linkkey_t){{l0, l1, l2, l3, l4, l5, l6, l7, l8, Modified: haiku/trunk/headers/os/bluetooth/bdaddrUtils.h =================================================================== --- haiku/trunk/headers/os/bluetooth/bdaddrUtils.h 2009-01-15 23:01:45 UTC (rev 28914) +++ haiku/trunk/headers/os/bluetooth/bdaddrUtils.h 2009-01-16 20:32:19 UTC (rev 28915) @@ -58,7 +58,7 @@ if (addr != NULL) { size_t count = sscanf(addr, "%2X:%2X:%2X:%2X:%2X:%2X", - &b0, &b1, &b2, &b3, &b4, &b5); + &b0, &b1, &b2, &b3, &b4, &b5); if (count == 6) return ((bdaddr_t) {{b0, b1, b2, b3, b4, b5}}); Modified: haiku/trunk/headers/os/bluetooth/bluetooth_util.h =================================================================== --- haiku/trunk/headers/os/bluetooth/bluetooth_util.h 2009-01-15 23:01:45 UTC (rev 28914) +++ haiku/trunk/headers/os/bluetooth/bluetooth_util.h 2009-01-16 20:32:19 UTC (rev 28915) @@ -21,31 +21,17 @@ } -static inline void baswap(bdaddr_t* dst, bdaddr_t* src) { - -} - - -static inline char* batostr(bdaddr_t *ba) +static inline void baswap(bdaddr_t* dst, bdaddr_t* src) { - return "00:00:00:00:00:00"; + register uint8* d = (uint8*)dst; + register uint8* s = (uint8*)src; + register int i; -} + for(i=0; i<6; i++) d[i] = s[5-i]; - -static inline void strtoba(const char *str, bdaddr_t *ba) -{ - } -/* Link key Management */ -static inline char* lktostr( uint8 link_key[16] ) -{ - return "00:00:00:00:00:00"; -} - - /* TODO: Bluetooth Errors */ static inline char* btstrerror(int error_code) { Modified: haiku/trunk/src/servers/bluetooth/BluetoothServer.cpp =================================================================== --- haiku/trunk/src/servers/bluetooth/BluetoothServer.cpp 2009-01-15 23:01:45 UTC (rev 28914) +++ haiku/trunk/src/servers/bluetooth/BluetoothServer.cpp 2009-01-16 20:32:19 UTC (rev 28915) @@ -1,6 +1,6 @@ /* - * Copyright 2007 Oliver Ruiz Dorantes, oliver.ruiz.dorantes_at_gmail.com - * + * Copyright 2007-2009 Oliver Ruiz Dorantes, oliver.ruiz.dorantes_at_gmail.com + * Copyright 2008 Mika Lindqvist, monni1995_at_gmail.com * All rights reserved. Distributed under the terms of the MIT License. * */ @@ -9,15 +9,13 @@ #include #include - #include -#include -#include #include -#include +#include +#include #include +#include - #include #include @@ -31,7 +29,7 @@ BluetoothServer::BluetoothServer() : BApplication(BLUETOOTH_SIGNATURE) -{ +{ Output::Instance()->Run(); Output::Instance()->SetTitle("Bluetooth message gathering"); @@ -40,16 +38,15 @@ Output::Instance()->AddTab("Events", BLACKBOARD_EVENTS); Output::Instance()->AddTab("Kit", BLACKBOARD_KIT); - ShowWindow(Output::Instance()); - fDeviceManager = new DeviceManager(); + fDeviceManager = new DeviceManager(); fLocalDevicesList.MakeEmpty(); // TODO: Some events should be handled faster than in KL... - fEventListener = spawn_thread(notification_Thread, "BT port listener" , B_URGENT_DISPLAY_PRIORITY , this); + fEventListener = spawn_thread(notification_Thread, "BT port listener" , + B_URGENT_DISPLAY_PRIORITY , this); - } bool BluetoothServer::QuitRequested(void) @@ -58,128 +55,114 @@ Output::Instance()->Lock(); Output::Instance()->Quit(); - -/* HCIDelegate *hd = NULL; - while ((hd = (HCIDelegate *)fDelegatesList.RemoveItem((int32)0)) !=NULL) - delete hd; -*/ - + LocalDeviceImpl* ldi = NULL; + while ((ldi = (LocalDeviceImpl *)fLocalDevicesList.RemoveItem((int32)0)) + != NULL) + delete ldi; + printf("Accepting quitting of the application\n"); return BApplication::QuitRequested(); } + void BluetoothServer::ArgvReceived(int32 argc, char **argv) { if (argc>1) { if (strcmp(argv[1], "--finish") == 0) PostMessage(B_QUIT_REQUESTED); - - else { - - - } } } -void BluetoothServer::ReadyToRun(void) { - - fDeviceManager->StartMonitoringDevice("bluetooth/h2generic"); - - +void BluetoothServer::ReadyToRun(void) +{ + fDeviceManager->StartMonitoringDevice("bluetooth/h2generic"); // Launch the notifier thread if ( resume_thread(fEventListener) != B_OK ) { Output::Instance()->Post("Bluetooth port listener failed\n", BLACKBOARD_GENERAL); } - - Output::Instance()->Post("Bluetooth server Ready\n", BLACKBOARD_GENERAL); + + Output::Instance()->Post("Bluetooth server Ready\n", BLACKBOARD_GENERAL); } -void BluetoothServer::AppActivated(bool act) { +void BluetoothServer::AppActivated(bool act) +{ printf("Activated %d\n",act); - } - void BluetoothServer::MessageReceived(BMessage *message) { BMessage reply; - status_t status = B_WOULD_BLOCK; // mark somehow.. do not reply anything + status_t status = B_WOULD_BLOCK; + // mark somehow.. do not reply anything switch(message->what) { - case BT_MSG_ADD_DEVICE: { BString str; - message->FindString("name", &str); + message->FindString("name", &str); BPath path(str.String()); + Output::Instance()->Postf(BLACKBOARD_GENERAL, + "Requested LocalDevice %s\n", str.String()); + LocalDeviceImpl* ldi = LocalDeviceImpl::CreateTransportAccessor(&path); - (Output::Instance()->Postf(BLACKBOARD_GENERAL, "Requested LocalDevice %s\n", str.String())); - - LocalDeviceImpl* ldi = LocalDeviceImpl::CreateTransportAccessor(&path); + if (ldi->GetID() >= 0) { + fLocalDevicesList.AddItem(ldi); + Output::Instance()->AddTab("Local Device", BLACKBOARD_LD(ldi->GetID())); + Output::Instance()->Postf(BLACKBOARD_LD(ldi->GetID()), + "LocalDevice %s id=%x added\n", + str.String(), ldi->GetID()); + } else { + Output::Instance()->Post("Adding LocalDevice failed\n", + BLACKBOARD_GENERAL); + } - if (ldi->GetID() >= 0) { - fLocalDevicesList.AddItem(ldi); - Output::Instance()->AddTab("Local Device", BLACKBOARD_LD(ldi->GetID())); - (Output::Instance()->Postf(BLACKBOARD_LD(ldi->GetID()), "LocalDevice %s id=%x added\n", str.String(), ldi->GetID())); - - - } else { - (Output::Instance()->Post("Adding LocalDevice failed\n", BLACKBOARD_GENERAL)); - } - - status = B_WOULD_BLOCK; - - /* TODO: This should be by user request only! */ - ldi->Launch(); - } - + status = B_WOULD_BLOCK; + /* TODO: This should be by user request only! */ + ldi->Launch(); + } + break; case BT_MSG_COUNT_LOCAL_DEVICES: status = HandleLocalDevicesCount(message, &reply); - break; - + break; case BT_MSG_ACQUIRE_LOCAL_DEVICE: status = HandleAcquireLocalDevice(message, &reply); break; - case BT_MSG_HANDLE_SIMPLE_REQUEST: - status = HandleSimpleRequest(message, &reply); - break; - - + case BT_MSG_HANDLE_SIMPLE_REQUEST: + status = HandleSimpleRequest(message, &reply); + break; /* Handle if the bluetooth preferences is running?? */ case B_SOME_APP_LAUNCHED: { const char *signature; // TODO: what's this for? - if (message->FindString("be:signature", &signature)==B_OK) { + if (message->FindString("be:signature", &signature) == B_OK) { printf("input_server : %s\n", signature); - if (strcmp(signature, "application/x-vnd.Be-TSKB")==0) { + if (strcmp(signature, "application/x-vnd.Be-TSKB") == 0) { } } return; } - default: BApplication::MessageReceived(message); break; } - // Can we reply right now? + // Can we reply right now? // TOD: review this condition - if (status != B_WOULD_BLOCK) { - reply.AddInt32("status", status); - message->SendReply(&reply); - printf("Sending reply message\n"); + if (status != B_WOULD_BLOCK) { + reply.AddInt32("status", status); + message->SendReply(&reply); + printf("Sending reply message\n"); } - } #if 0 @@ -189,42 +172,36 @@ LocalDeviceImpl* BluetoothServer::LocateDelegateFromMessage(BMessage* message) { - LocalDeviceImpl* ldi = NULL; - hci_id hid; - - if (message->FindInt32("hci_id", &hid) == B_OK) - { - /* Try to find out when a ID was specified */ - int index; - - for (index = 0; index < fLocalDevicesList.CountItems() ; index ++) { + LocalDeviceImpl* ldi = NULL; + hci_id hid; + if (message->FindInt32("hci_id", &hid) == B_OK) { + /* Try to find out when a ID was specified */ + int index; + for (index = 0; index < fLocalDevicesList.CountItems(); index ++) { ldi = fLocalDevicesList.ItemAt(index); - if (ldi->GetID() == hid) { + if (ldi->GetID() == hid) break; - } - } - } - - return ldi; + } + } + + return ldi; + } LocalDeviceImpl* BluetoothServer::LocateLocalDeviceImpl(hci_id hid) { + /* Try to find out when a ID was specified */ + int index; - /* Try to find out when a ID was specified */ - int index; - - for (index = 0; index < fLocalDevicesList.CountItems() ; index ++) { + for (index = 0; index < fLocalDevicesList.CountItems(); index ++) { + LocalDeviceImpl* ldi = fLocalDevicesList.ItemAt(index); + if (ldi->GetID() == hid) + return ldi; + } - LocalDeviceImpl* ldi = fLocalDevicesList.ItemAt(index); - if (ldi->GetID() == hid) { - return ldi; - } - } - - return NULL; + return NULL; } @@ -246,79 +223,72 @@ ssize_t size; bdaddr_t bdaddr; LocalDeviceImpl* ldi = NULL; - int32 index = 0; + int32 index = 0; - if (message->FindInt32("hci_id", &hid) == B_OK) + if (message->FindInt32("hci_id", &hid) == B_OK) { - Output::Instance()->Post("GetLocalDevice requested with id\n", BLACKBOARD_KIT); - ldi = LocateDelegateFromMessage(message); - - } else if (message->FindData("bdaddr", B_ANY_TYPE, (const void**)&bdaddr, &size ) == B_OK) - { - /* Try to find out when the user specified the address */ - Output::Instance()->Post("GetLocalDevice requested with bdaddr\n", BLACKBOARD_KIT); - for (index = 0; index < fLocalDevicesList.CountItems() ; index ++) { - - bdaddr_t local; - ldi = fLocalDevicesList.ItemAt(index); - // TODO: Only if the property is available - //if ((ldi->GetAddress(&local, message) == B_OK) && bacmp(&local, &bdaddr)) { - // break; - //} - } - - } else - { - /* Careless, any device not performing operations will be fine */ - Output::Instance()->Post("GetLocalDevice requested\n", BLACKBOARD_KIT); - for (index = 0; index < fLocalDevicesList.CountItems() ; index ++) { - - ldi = fLocalDevicesList.ItemAt(index); - printf("Requesting local device %ld\n", ldi->GetID()); - if (ldi != NULL && ldi->Available()) - { - printf("dev ours %ld\n", ldi->GetID()); - break; - } - - } - } + Output::Instance()->Post("GetLocalDevice requested with id\n", + BLACKBOARD_KIT); + ldi = LocateDelegateFromMessage(message); - if (index <= fLocalDevicesList.CountItems() && ldi != NULL && ldi->Available()) - { - Output::Instance()->Post("Device acquired\n", BLACKBOARD_KIT); - ldi->Acquire(); - return reply->AddInt32("hci_id", hid); - } + } else if (message->FindData("bdaddr", B_ANY_TYPE, (const void**)&bdaddr, &size ) + == B_OK) { + /* Try to find out when the user specified the address */ + Output::Instance()->Post("GetLocalDevice requested with bdaddr\n", + BLACKBOARD_KIT); + for (index = 0; index < fLocalDevicesList.CountItems(); index ++) { + bdaddr_t local; + ldi = fLocalDevicesList.ItemAt(index); + // TODO: Only if the property is available + //if ((ldi->GetAddress(&local, message) == B_OK) + // && bacmp(&local, &bdaddr)) { + // break; + //} + } - return B_ERROR; + } else { + /* Careless, any device not performing operations will be fine */ + Output::Instance()->Post("GetLocalDevice requested\n", BLACKBOARD_KIT); + for (index = 0; index < fLocalDevicesList.CountItems(); index ++) { + ldi = fLocalDevicesList.ItemAt(index); + printf("Requesting local device %ld\n", ldi->GetID()); + if (ldi != NULL && ldi->Available()) + { + printf("dev ours %ld\n", ldi->GetID()); + break; + } + } + } + if (index <= fLocalDevicesList.CountItems() && ldi != NULL && ldi->Available()) { + Output::Instance()->Post("Device acquired\n", BLACKBOARD_KIT); + ldi->Acquire(); + return reply->AddInt32("hci_id", hid); + } + + return B_ERROR; + } status_t BluetoothServer::HandleSimpleRequest(BMessage* message, BMessage* reply) { - - LocalDeviceImpl* ldi = LocateDelegateFromMessage(message); + LocalDeviceImpl* ldi = LocateDelegateFromMessage(message); BString propertyRequested; - - // Find out if there is a property being requested, - if (message->FindString("property", &propertyRequested) == B_OK) { - // Check if the property has been already retrieved - - if (ldi->IsPropertyAvailable(propertyRequested)) { - - // Dump everything - reply->AddMessage("properties",ldi->GetPropertiesMessage()); - return B_OK; - } - - } + + // Find out if there is a property being requested, + if (message->FindString("property", &propertyRequested) == B_OK) { + // Check if the property has been already retrieved + if (ldi->IsPropertyAvailable(propertyRequested)) { + // Dump everything + reply->AddMessage("properties",ldi->GetPropertiesMessage()); + return B_OK; + } + } // we are gonna need issue the command ... if (ldi->ProcessSimpleRequest(DetachCurrentMessage()) == B_OK) -// if (ldi->ProcessSimpleRequest(message) == B_OK) return B_WOULD_BLOCK; else return B_ERROR; @@ -334,7 +304,7 @@ int32 BluetoothServer::notification_Thread(void* data) { - BPortNot notifierd( (BluetoothServer*) data , BT_USERLAND_PORT_NAME); + BPortNot notifierd((BluetoothServer*)data, BT_USERLAND_PORT_NAME); notifierd.loop(); return B_NO_ERROR; @@ -367,7 +337,7 @@ int main(int /*argc*/, char** /*argv*/) { - setbuf(stdout,NULL); + setbuf(stdout, NULL); BluetoothServer* bluetoothServer = new BluetoothServer; Modified: haiku/trunk/src/servers/bluetooth/HCIDelegate.h =================================================================== --- haiku/trunk/src/servers/bluetooth/HCIDelegate.h 2009-01-15 23:01:45 UTC (rev 28914) +++ haiku/trunk/src/servers/bluetooth/HCIDelegate.h 2009-01-16 20:32:19 UTC (rev 28915) @@ -1,10 +1,8 @@ /* * Copyright 2007-2008 Oliver Ruiz Dorantes, oliver.ruiz.dorantes_at_gmail.com - * + * Copyright 2008 Mika Lindqvist, monni1995_at_gmail.com * All rights reserved. Distributed under the terms of the MIT License. - * */ - #ifndef _HCIDELEGATE_H_ #define _HCIDELEGATE_H_ @@ -30,43 +28,59 @@ if (fFD > 0) { // find out which ID was assigned status = ioctl(fFD, GET_HCI_ID, &fHID, 0); - printf("%s: hid retrieved %lx status=%ld\n", __FUNCTION__, fHID, status); + printf("%s: hid retrieved %lx status=%ld\n", __FUNCTION__, + fHID, status); } else { - printf("%s: Device driver could not be opened %ld\n", __FUNCTION__, fHID); + printf("%s: Device driver could not be opened %ld\n", __FUNCTION__, + fHID); fHID = B_ERROR; } - - //TODO create such queue + //TODO create such queue + } - + hci_id GetID(void) { return fHID; } - virtual status_t IssueCommand(raw_command rc, size_t size)=0; // TODO means to be private + + virtual ~HCIDelegate() + { + if (fFD > 0) + { + close (fFD); + fFD = -1; + fHID = B_ERROR; + } + } + + virtual status_t IssueCommand(raw_command rc, size_t size)=0; + // TODO means to be private use QueueCommand virtual status_t Launch()=0; - void FreeWindow(uint8 slots) { // TODO: hci control flow + void FreeWindow(uint8 slots) + { + // TODO: hci control flow } + status_t QueueCommand(raw_command rc, size_t size) { - // TODO: this is suposed to queue the command in a queue so all are actually send to HW + // TODO: this is suposed to queue the command in a queue so all + // are actually send to HW return IssueCommand(rc, size); } - protected: - hci_id fHID; int fFD; - + private: Modified: haiku/trunk/src/servers/bluetooth/LocalDeviceHandler.cpp =================================================================== --- haiku/trunk/src/servers/bluetooth/LocalDeviceHandler.cpp 2009-01-15 23:01:45 UTC (rev 28914) +++ haiku/trunk/src/servers/bluetooth/LocalDeviceHandler.cpp 2009-01-16 20:32:19 UTC (rev 28915) @@ -1,25 +1,22 @@ /* - * Copyright 2007 Oliver Ruiz Dorantes, oliver.ruiz.dorantes_at_gmail.com - * + * Copyright 2007-2009 Oliver Ruiz Dorantes, oliver.ruiz.dorantes_at_gmail.com + * Copyright 2008 Mika Lindqvist, monni1995_at_gmail.com * All rights reserved. Distributed under the terms of the MIT License. - * */ - #include "LocalDeviceHandler.h" - - + LocalDeviceHandler::LocalDeviceHandler(HCIDelegate* hd) { fHCIDelegate = hd; - fProperties = new BMessage(); - + fProperties = new BMessage(); } + LocalDeviceHandler::~LocalDeviceHandler() { - + delete fProperties; } @@ -29,6 +26,7 @@ return fHCIDelegate->GetID(); } + status_t LocalDeviceHandler::Launch(void) { @@ -37,26 +35,27 @@ bool -LocalDeviceHandler::Available() { +LocalDeviceHandler::Available() +{ return true; } void -LocalDeviceHandler::Acquire(void) { +LocalDeviceHandler::Acquire(void) +{ } bool -LocalDeviceHandler::IsPropertyAvailable(const BString& property) { - +LocalDeviceHandler::IsPropertyAvailable(const BString& property) +{ type_code typeFound; int32 countFound; return (fProperties->GetInfo(property.String(), &typeFound, &countFound) == B_OK ); - } @@ -70,28 +69,28 @@ fEventsWanted.Unlock(); } + void LocalDeviceHandler::ClearWantedEvent(BMessage* msg) { fEventsWanted.Lock(); - fEventsWanted.RemoveMessage(msg); + fEventsWanted.RemoveMessage(msg); fEventsWanted.Unlock(); - } void LocalDeviceHandler::ClearWantedEvent(BMessage* msg, uint16 event, uint16 opcode) -{ - // Remove the whole petition from queue - fEventsWanted.Lock(); +{ + // Remove the whole petition from queue + fEventsWanted.Lock(); - int16 eventFound; - int16 opcodeFound; + int16 eventFound; + int16 opcodeFound; int32 eventIndex = 0; - // for each Event - while (msg->FindInt16("eventExpected", eventIndex, &eventFound) == B_OK ) { + // for each Event + while (msg->FindInt16("eventExpected", eventIndex, &eventFound) == B_OK) { printf("%s:Event expected@%ld...\n", __FUNCTION__, eventIndex); @@ -102,19 +101,20 @@ if (opcode != 0) { // The opcode matches - if ( (msg->FindInt16("opcodeExpected", eventIndex, &opcodeFound) == B_OK) && - ((uint16)opcodeFound == opcode) ) { + if ( (msg->FindInt16("opcodeExpected", eventIndex, &opcodeFound) == B_OK) + && ((uint16)opcodeFound == opcode) ) { // this should remove only the entry - printf("Removed event %#x and opcode %d from request %p\n", event, opcode, msg); + printf("Removed event %#x and opcode %d from request %p\n", + event, opcode, msg); (void)msg->RemoveData("eventExpected", eventIndex); (void)msg->RemoveData("opcodeExpected", eventIndex); goto finish; } - } else { + } else { // Event matches so far - printf("Removed event %d from message %p\n", event, msg); + printf("Removed event %d from message %p\n", event, msg); (void)msg->RemoveData("eventExpected", eventIndex); goto finish; } @@ -133,49 +133,49 @@ BMessage* LocalDeviceHandler::FindPetition(uint16 event, uint16 opcode, int32* indexFound) { - int16 eventFound; - int16 opcodeFound; + int16 eventFound; + int16 opcodeFound; int32 eventIndex; - fEventsWanted.Lock(); - // for each Petition - for (int32 index = 0 ; index < fEventsWanted.CountMessages() ; index++) { - BMessage* msg = fEventsWanted.FindMessage(index); - - printf("%s:Petition %ld ... of %ld msg #%p\n", __FUNCTION__, index, fEventsWanted.CountMessages(), msg); + fEventsWanted.Lock(); + // for each Petition + for (int32 index = 0 ; index < fEventsWanted.CountMessages() ; index++) { + BMessage* msg = fEventsWanted.FindMessage(index); + printf("%s:Petition %ld ... of %ld msg #%p\n", __FUNCTION__, index, + fEventsWanted.CountMessages(), msg); //msg->PrintToStream(); eventIndex = 0; - // for each Event - while (msg->FindInt16("eventExpected", eventIndex, &eventFound) == B_OK ) { - if (eventFound == event) { - - printf("%s:Event found@%ld...", __FUNCTION__, eventIndex); - // there is an opcode specified.. - if (msg->FindInt16("opcodeExpected", eventIndex, &opcodeFound) == B_OK) { - - // ensure the opcode - if ((uint16)opcodeFound != opcode) { - printf("%s:opcode does not match %d\n",__FUNCTION__, opcode); - break; - } - printf("opcode match %d\n", opcode); - } else { - printf("no opcode specified\n"); - } - - fEventsWanted.Unlock(); + // for each Event + while (msg->FindInt16("eventExpected", eventIndex, &eventFound) == B_OK ) { + if (eventFound == event) { + + printf("%s:Event found@%ld...", __FUNCTION__, eventIndex); + // there is an opcode specified.. + if (msg->FindInt16("opcodeExpected", eventIndex, &opcodeFound) + == B_OK) { + // ensure the opcode + if ((uint16)opcodeFound != opcode) { + printf("%s:opcode does not match %d\n", + __FUNCTION__, opcode); + break; + } + printf("Opcode matches %d\n", opcode); + } else { + printf("No opcode specified\n"); + } + + fEventsWanted.Unlock(); if (indexFound != NULL) *indexFound = eventIndex; - return msg; + return msg; + } + eventIndex++; + } + } + printf("%s:Nothing found\n", __FUNCTION__); + fEventsWanted.Unlock(); + return NULL; - } - eventIndex++; - } - } - printf("%s:Nothing found\n",__FUNCTION__); - - fEventsWanted.Unlock(); - return NULL; } Modified: haiku/trunk/src/servers/bluetooth/LocalDeviceImpl.cpp =================================================================== --- haiku/trunk/src/servers/bluetooth/LocalDeviceImpl.cpp 2009-01-15 23:01:45 UTC (rev 28914) +++ haiku/trunk/src/servers/bluetooth/LocalDeviceImpl.cpp 2009-01-16 20:32:19 UTC (rev 28915) @@ -34,7 +34,7 @@ LocalDeviceImpl::CreateControllerAccessor(BPath* path) { HCIDelegate* hd = new HCIControllerAccessor(path); - + if ( hd != NULL) return new LocalDeviceImpl(hd); else @@ -46,11 +46,11 @@ LocalDeviceImpl::CreateTransportAccessor(BPath* path) { HCIDelegate* hd = new HCITransportAccessor(path); - + if ( hd != NULL) - return new LocalDeviceImpl(hd); + return new LocalDeviceImpl(hd); else - return NULL; + return NULL; } @@ -75,30 +75,25 @@ // Events here might have not been initated by us // TODO: ML mark as handled pass a reply by parameter and reply in common - switch (event->ecode) { - case HCI_EVENT_HARDWARE_ERROR: + switch (event->ecode) { + case HCI_EVENT_HARDWARE_ERROR: //HardwareError(event); - return; + return; case HCI_EVENT_CONN_REQUEST: ConnectionRequest((struct hci_ev_conn_request*)(event+1), NULL); return; - case HCI_EVENT_CONN_COMPLETE: // should belong to a request? can be sporadic or initiated by us??... ConnectionComplete((struct hci_ev_conn_complete*)(event+1), NULL); return; - case HCI_EVENT_PIN_CODE_REQ: PinCodeRequest((struct hci_ev_pin_code_req*)(event+1), NULL); return; - - default: - // lets go on - break; + default: + // lets go on + break; } - - BMessage* request = NULL; int32 eventIndexLocation; Modified: haiku/trunk/src/servers/bluetooth/LocalDeviceImpl.h =================================================================== --- haiku/trunk/src/servers/bluetooth/LocalDeviceImpl.h 2009-01-15 23:01:45 UTC (rev 28914) +++ haiku/trunk/src/servers/bluetooth/LocalDeviceImpl.h 2009-01-16 20:32:19 UTC (rev 28915) @@ -48,7 +48,7 @@ // Connection void ConnectionComplete(struct hci_ev_conn_complete* event, BMessage* request); void ConnectionRequest(struct hci_ev_conn_request* event, BMessage* request); - void DisconnectionComplete(struct hci_ev_disconnection_complete_reply* event, BMessage *request); + void DisconnectionComplete(struct hci_ev_disconnection_complete_reply* event, BMessage* request); // Pairing void PinCodeRequest(struct hci_ev_pin_code_req* event, BMessage* request); From superstippi at gmx.de Fri Jan 16 23:01:29 2009 From: superstippi at gmx.de (=?UTF-8?B?U3RlcGhhbiBBw59tdXM=?=) Date: Fri, 16 Jan 2009 23:01:29 +0100 Subject: [Haiku-commits] r28915 - in haiku/trunk: headers/os/bluetooth src/servers/bluetooth In-Reply-To: <200901162032.n0GKWKob025286@sheep.berlios.de> References: <200901162032.n0GKWKob025286@sheep.berlios.de> Message-ID: <497103B9.3040509@gmx.de> oruizdorantes at BerliOS schrieb: > Author: oruizdorantes > Date: 2009-01-16 21:32:19 +0100 (Fri, 16 Jan 2009) > New Revision: 28915 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28915&view=rev > > Modified: > haiku/trunk/headers/os/bluetooth/LinkKeyUtils.h > haiku/trunk/headers/os/bluetooth/bdaddrUtils.h > haiku/trunk/headers/os/bluetooth/bluetooth_util.h > haiku/trunk/src/servers/bluetooth/BluetoothServer.cpp > haiku/trunk/src/servers/bluetooth/HCIDelegate.h > haiku/trunk/src/servers/bluetooth/LocalDeviceHandler.cpp > haiku/trunk/src/servers/bluetooth/LocalDeviceImpl.cpp > haiku/trunk/src/servers/bluetooth/LocalDeviceImpl.h > Log: > some cleanups and styling by Mika and me > -static inline char* batostr(bdaddr_t *ba) > +static inline void baswap(bdaddr_t* dst, bdaddr_t* src) > { > - return "00:00:00:00:00:00"; > + register uint8* d = (uint8*)dst; > + register uint8* s = (uint8*)src; > + register int i; > > -} > + for(i=0; i<6; i++) d[i] = s[5-i]; Actually, I see a whole lot of style violations also in the new code. Why is it so hard to read the coding style guide and stick to it? Best regards, -Stephan From mmu_man at mail.berlios.de Sat Jan 17 01:02:20 2009 From: mmu_man at mail.berlios.de (mmu_man at BerliOS) Date: Sat, 17 Jan 2009 01:02:20 +0100 Subject: [Haiku-commits] r28916 - haiku/trunk/build/jam Message-ID: <200901170002.n0H02Knx015272@sheep.berlios.de> Author: mmu_man Date: 2009-01-17 01:02:18 +0100 (Sat, 17 Jan 2009) New Revision: 28916 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28916&view=rev Modified: haiku/trunk/build/jam/HaikuImage Log: Add /dev/mem driver, it builds fine. Modified: haiku/trunk/build/jam/HaikuImage =================================================================== --- haiku/trunk/build/jam/HaikuImage 2009-01-16 20:32:19 UTC (rev 28915) +++ haiku/trunk/build/jam/HaikuImage 2009-01-17 00:02:18 UTC (rev 28916) @@ -190,7 +190,7 @@ AddDriversToHaikuImage dvb : cx23882 ; AddDriversToHaikuImage graphics : $(BEOS_ADD_ONS_DRIVERS_GRAPHICS) ; AddDriversToHaikuImage input : ps2_hid usb_hid wacom ; -AddDriversToHaikuImage misc : poke test ; +AddDriversToHaikuImage misc : poke test mem ; AddDriversToHaikuImage net : $(BEOS_ADD_ONS_DRIVERS_NET) ; #AddDriversToHaikuImage power : $(BEOS_ADD_ONS_DRIVERS_ACPI) ; From stippi at mail.berlios.de Sat Jan 17 14:04:01 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Sat, 17 Jan 2009 14:04:01 +0100 Subject: [Haiku-commits] r28917 - haiku/trunk/src/apps/mediaplayer Message-ID: <200901171304.n0HD41Zu027821@sheep.berlios.de> Author: stippi Date: 2009-01-17 14:04:01 +0100 (Sat, 17 Jan 2009) New Revision: 28917 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28917&view=rev Modified: haiku/trunk/src/apps/mediaplayer/MainWin.cpp Log: Set resizing mode before calling BMenuBar::ResizeToPreferred(), since the default menu bar resizing mode triggers some R5 compatibility behavior wich we don't want in MediaPlayer. This fixes the (apparantly) last remaining issue from #2180. Modified: haiku/trunk/src/apps/mediaplayer/MainWin.cpp =================================================================== --- haiku/trunk/src/apps/mediaplayer/MainWin.cpp 2009-01-17 00:02:18 UTC (rev 28916) +++ haiku/trunk/src/apps/mediaplayer/MainWin.cpp 2009-01-17 13:04:01 UTC (rev 28917) @@ -142,10 +142,10 @@ fMenuBar = new BMenuBar(fBackground->Bounds(), "menu"); _CreateMenu(); fBackground->AddChild(fMenuBar); + fMenuBar->SetResizingMode(B_FOLLOW_NONE); fMenuBar->ResizeToPreferred(); fMenuBarWidth = (int)fMenuBar->Frame().Width() + 1; fMenuBarHeight = (int)fMenuBar->Frame().Height() + 1; - fMenuBar->SetResizingMode(B_FOLLOW_NONE); // video view rect = BRect(0, fMenuBarHeight, fBackground->Bounds().right, From bga at mail.berlios.de Sat Jan 17 14:30:22 2009 From: bga at mail.berlios.de (bga at BerliOS) Date: Sat, 17 Jan 2009 14:30:22 +0100 Subject: [Haiku-commits] r28918 - in haiku/trunk: headers/private/net src/kits/network/libnetapi Message-ID: <200901171330.n0HDUMWx031523@sheep.berlios.de> Author: bga Date: 2009-01-17 14:30:21 +0100 (Sat, 17 Jan 2009) New Revision: 28918 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28918&view=rev Added: haiku/trunk/headers/private/net/DynamicBuffer.h haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp Log: - Simple dynamic buffer class implementation. - Will be used by the new (R5 compatible) NetBuffer class. Added: haiku/trunk/headers/private/net/DynamicBuffer.h =================================================================== --- haiku/trunk/headers/private/net/DynamicBuffer.h 2009-01-17 13:04:01 UTC (rev 28917) +++ haiku/trunk/headers/private/net/DynamicBuffer.h 2009-01-17 13:30:21 UTC (rev 28918) @@ -0,0 +1,60 @@ +/* + * Copyright 2009, Haiku, Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Bruno Albuquerque, bga at bug-br.org.br + */ + +#ifndef _DYNAMIC_BUFFER_H +#define _DYNAMIC_BUFFER_H + +#include + + +class DynamicBuffer { +public: + DynamicBuffer(size_t _initialSize = 0); + ~DynamicBuffer(); + + // InitCheck() should be called to guarantee the object initialization + // didn't fail. If it does not return B_OK, the initialization failed. + status_t InitCheck() const; + + // Insert data at the end of the buffer. The buffer will be increased to + // accomodate the data if needed. + status_t Insert(const void* _data, size_t _size); + + // Remove data from the start of the buffer. Move the buffer start + // pointer to point to the data following it. + status_t Remove(void* _data, size_t _size); + + // Return a pointer to the underlying buffer. Note this will not + // necessarily be a pointer to the start of the allocated memory as the + // initial data may be positioned at an offset inside the buffer. In other + // words, this returns a pointer to the start of data inside the buffer. + unsigned char* Data() const; + + // Returns the actual buffer size. This is the amount of memory allocated + // for the buffer. + size_t Size() const; + + // Number of bytes of data still present in the buffer that can be + // extracted through calls to Remove(). + size_t BytesRemaining() const; + + // Dump some buffer statistics to stdout. + void PrintToStream(); + +private: + status_t _GrowToFit(size_t _size); + + unsigned char* fBuffer; + size_t fBufferSize; + size_t fDataStart; + size_t fDataEnd; + + status_t fInit; +}; + +#endif // _DYNAMIC_BUFFER_H Added: haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp =================================================================== --- haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp 2009-01-17 13:04:01 UTC (rev 28917) +++ haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp 2009-01-17 13:30:21 UTC (rev 28918) @@ -0,0 +1,139 @@ +/* + * Copyright 2009, Haiku, Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Bruno Albuquerque, bga at bug-br.org.br + */ + +#include "DynamicBuffer.h" + +#include +#include + + +DynamicBuffer::DynamicBuffer(size_t _initialSize) : + fBuffer(NULL), + fBufferSize(0), + fDataStart(0), + fDataEnd(0), + fInit(B_NO_INIT) +{ + if (_initialSize > 0) { + fBuffer = new unsigned char[_initialSize]; + if (fBuffer != NULL) { + fBufferSize = _initialSize; + fInit = B_OK; + } + } +} + + +DynamicBuffer::~DynamicBuffer() +{ + delete[] fBuffer; + fBufferSize = 0; + fDataStart = 0; + fDataEnd = 0; +} + + +status_t +DynamicBuffer::InitCheck() const +{ + return fInit; +} + + +status_t +DynamicBuffer::Insert(const void* _data, size_t _size) +{ + if (fInit != B_OK) + return fInit; + + status_t result = _GrowToFit(_size); + if (result != B_OK) + return result; + + memcpy(fBuffer + fDataEnd, _data, _size); + fDataEnd += _size; + + return B_OK; +} + + +status_t +DynamicBuffer::Remove(void* _data, size_t _size) +{ + if (fInit != B_OK) + return fInit; + + if (fDataStart + _size > fDataEnd) + return B_BUFFER_OVERFLOW; + + memcpy(_data, fBuffer + fDataStart, _size); + fDataStart += _size; + + if (fDataStart == fDataEnd) + fDataStart = fDataEnd = 0; + + return B_OK; +} + + +unsigned char* +DynamicBuffer::Data() const +{ + return fBuffer + fDataStart; +} + + +size_t +DynamicBuffer::Size() const +{ + return fBufferSize; +} + + +size_t +DynamicBuffer::BytesRemaining() const +{ + return fDataEnd - fDataStart; +} + + +void +DynamicBuffer::PrintToStream() +{ + printf("Current buffer size : %ld\n", fBufferSize); + printf("Data start position : %ld\n", fDataStart); + printf("Data end position : %ld\n", fDataEnd); + printf("Bytes wasted : %ld\n", fDataStart); + printf("Bytes available : %ld\n", fBufferSize - fDataEnd); +} + + +status_t +DynamicBuffer::_GrowToFit(size_t _size) +{ + if (_size <= fBufferSize - fDataEnd) + return B_OK; + + size_t newSize = (fBufferSize + _size) * 2; + + unsigned char* newBuffer = new unsigned char[newSize]; + if (newBuffer == NULL) + return B_NO_MEMORY; + + if (fDataStart != fDataEnd) { + memcpy(newBuffer, fBuffer + fDataStart, fDataEnd - fDataStart); + } + + delete[] fBuffer; + fBuffer = newBuffer; + fDataEnd -= fDataStart; + fDataStart = 0; + fBufferSize = newSize; + + return B_OK; +} From superstippi at gmx.de Sat Jan 17 14:41:42 2009 From: superstippi at gmx.de (=?ISO-8859-1?Q?Stephan_A=DFmus?=) Date: Sat, 17 Jan 2009 14:41:42 +0100 Subject: [Haiku-commits] r28918 - in haiku/trunk: headers/private/net src/kits/network/libnetapi In-Reply-To: <200901171330.n0HDUMWx031523@sheep.berlios.de> References: <200901171330.n0HDUMWx031523@sheep.berlios.de> Message-ID: <4971E016.5040700@gmx.de> bga at BerliOS schrieb: > Author: bga > Date: 2009-01-17 14:30:21 +0100 (Sat, 17 Jan 2009) > New Revision: 28918 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28918&view=rev > > Added: > haiku/trunk/headers/private/net/DynamicBuffer.h > haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp > Log: > - Simple dynamic buffer class implementation. > - Will be used by the new (R5 compatible) NetBuffer class. [...] > +DynamicBuffer::DynamicBuffer(size_t _initialSize) : > + fBuffer(NULL), > + fBufferSize(0), > + fDataStart(0), > + fDataEnd(0), > + fInit(B_NO_INIT) > +{ > + if (_initialSize > 0) { > + fBuffer = new unsigned char[_initialSize]; > + if (fBuffer != NULL) { > + fBufferSize = _initialSize; > + fInit = B_OK; > + } > + } > +} [...] > +status_t > +DynamicBuffer::_GrowToFit(size_t _size) > +{ > + if (_size <= fBufferSize - fDataEnd) > + return B_OK; > + > + size_t newSize = (fBufferSize + _size) * 2; > + > + unsigned char* newBuffer = new unsigned char[newSize]; > + if (newBuffer == NULL) > + return B_NO_MEMORY; These checks for allocation failure do not work. new will throw std::bad_alloc in case of failure. Instead, you need to use "new (std::nothrow)" and then you can check the result against NULL. While I am at it, I hope you don't mind if I mention a slight coding style violation: The method parameters are not prepended with an underscore in Haiku code. Best regards, -Stephan From bga at mail.berlios.de Sat Jan 17 15:01:22 2009 From: bga at mail.berlios.de (bga at BerliOS) Date: Sat, 17 Jan 2009 15:01:22 +0100 Subject: [Haiku-commits] r28919 - in haiku/trunk: headers/private/net src/kits/network/libnetapi Message-ID: <200901171401.n0HE1MG7001338@sheep.berlios.de> Author: bga Date: 2009-01-17 15:01:22 +0100 (Sat, 17 Jan 2009) New Revision: 28919 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28919&view=rev Modified: haiku/trunk/headers/private/net/DynamicBuffer.h haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp Log: - Fixed style violations pointed by stippi. - Use std:nothrow for new calls. Modified: haiku/trunk/headers/private/net/DynamicBuffer.h =================================================================== --- haiku/trunk/headers/private/net/DynamicBuffer.h 2009-01-17 13:30:21 UTC (rev 28918) +++ haiku/trunk/headers/private/net/DynamicBuffer.h 2009-01-17 14:01:22 UTC (rev 28919) @@ -14,7 +14,7 @@ class DynamicBuffer { public: - DynamicBuffer(size_t _initialSize = 0); + DynamicBuffer(size_t initialSize = 0); ~DynamicBuffer(); // InitCheck() should be called to guarantee the object initialization @@ -23,11 +23,11 @@ // Insert data at the end of the buffer. The buffer will be increased to // accomodate the data if needed. - status_t Insert(const void* _data, size_t _size); + status_t Insert(const void* data, size_t size); // Remove data from the start of the buffer. Move the buffer start // pointer to point to the data following it. - status_t Remove(void* _data, size_t _size); + status_t Remove(void* data, size_t size); // Return a pointer to the underlying buffer. Note this will not // necessarily be a pointer to the start of the allocated memory as the @@ -47,7 +47,7 @@ void PrintToStream(); private: - status_t _GrowToFit(size_t _size); + status_t _GrowToFit(size_t size); unsigned char* fBuffer; size_t fBufferSize; Modified: haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp =================================================================== --- haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp 2009-01-17 13:30:21 UTC (rev 28918) +++ haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp 2009-01-17 14:01:22 UTC (rev 28919) @@ -12,17 +12,17 @@ #include -DynamicBuffer::DynamicBuffer(size_t _initialSize) : +DynamicBuffer::DynamicBuffer(size_t initialSize) : fBuffer(NULL), fBufferSize(0), fDataStart(0), fDataEnd(0), fInit(B_NO_INIT) { - if (_initialSize > 0) { - fBuffer = new unsigned char[_initialSize]; + if (initialSize > 0) { + fBuffer = new (std::nothrow) unsigned char[initialSize]; if (fBuffer != NULL) { - fBufferSize = _initialSize; + fBufferSize = initialSize; fInit = B_OK; } } @@ -46,33 +46,33 @@ status_t -DynamicBuffer::Insert(const void* _data, size_t _size) +DynamicBuffer::Insert(const void* data, size_t size) { if (fInit != B_OK) return fInit; - status_t result = _GrowToFit(_size); + status_t result = _GrowToFit(size); if (result != B_OK) return result; - memcpy(fBuffer + fDataEnd, _data, _size); - fDataEnd += _size; + memcpy(fBuffer + fDataEnd, data, size); + fDataEnd += size; return B_OK; } status_t -DynamicBuffer::Remove(void* _data, size_t _size) +DynamicBuffer::Remove(void* data, size_t size) { if (fInit != B_OK) return fInit; - if (fDataStart + _size > fDataEnd) + if (fDataStart + size > fDataEnd) return B_BUFFER_OVERFLOW; - memcpy(_data, fBuffer + fDataStart, _size); - fDataStart += _size; + memcpy(_data, fBuffer + fDataStart, size); + fDataStart += size; if (fDataStart == fDataEnd) fDataStart = fDataEnd = 0; @@ -114,14 +114,14 @@ status_t -DynamicBuffer::_GrowToFit(size_t _size) +DynamicBuffer::_GrowToFit(size_t size) { if (_size <= fBufferSize - fDataEnd) return B_OK; - size_t newSize = (fBufferSize + _size) * 2; + size_t newSize = (fBufferSize + size) * 2; - unsigned char* newBuffer = new unsigned char[newSize]; + unsigned char* newBuffer = new (std::nothrow) unsigned char[newSize]; if (newBuffer == NULL) return B_NO_MEMORY; From bga at mail.berlios.de Sat Jan 17 15:03:22 2009 From: bga at mail.berlios.de (bga at BerliOS) Date: Sat, 17 Jan 2009 15:03:22 +0100 Subject: [Haiku-commits] r28920 - haiku/trunk/src/kits/network/libnetapi Message-ID: <200901171403.n0HE3MWF001450@sheep.berlios.de> Author: bga Date: 2009-01-17 15:03:22 +0100 (Sat, 17 Jan 2009) New Revision: 28920 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28920&view=rev Modified: haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp Log: - Ops... Missed some. Modified: haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp =================================================================== --- haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp 2009-01-17 14:01:22 UTC (rev 28919) +++ haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp 2009-01-17 14:03:22 UTC (rev 28920) @@ -71,7 +71,7 @@ if (fDataStart + size > fDataEnd) return B_BUFFER_OVERFLOW; - memcpy(_data, fBuffer + fDataStart, size); + memcpy(data, fBuffer + fDataStart, size); fDataStart += size; if (fDataStart == fDataEnd) @@ -116,7 +116,7 @@ status_t DynamicBuffer::_GrowToFit(size_t size) { - if (_size <= fBufferSize - fDataEnd) + if (size <= fBufferSize - fDataEnd) return B_OK; size_t newSize = (fBufferSize + size) * 2; From bga at bug-br.org.br Sat Jan 17 14:04:57 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Sat, 17 Jan 2009 14:04:57 Subject: [Haiku-commits] r28918 - in haiku/trunk: headers/private/net src/kits/network/libnetapi In-Reply-To: <4971E016.5040700@gmx.de> Message-ID: <11812379657-BeMail@Gaspode> On Sat, 17 Jan 2009 14:41:42 +0100, Stephan A?mus said: > These checks for allocation failure do not work. new will throw > std::bad_alloc in case of failure. Instead, you need to use "new > (std::nothrow)" and then you can check the result against NULL. Yes. I started using malloc (to be able to use realloc) but decided it would not help anything so I went using new and forgot about using nothrow. > While I am at it, I hope you don't mind if I mention a slight coding > style violation: The method parameters are not prepended with an > underscore in Haiku code. Removed. Thanks. -Bruno From stippi at mail.berlios.de Sat Jan 17 15:19:36 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Sat, 17 Jan 2009 15:19:36 +0100 Subject: [Haiku-commits] r28921 - haiku/trunk/src/apps/deskcalc Message-ID: <200901171419.n0HEJaZR002611@sheep.berlios.de> Author: stippi Date: 2009-01-17 15:19:36 +0100 (Sat, 17 Jan 2009) New Revision: 28921 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28921&view=rev Modified: haiku/trunk/src/apps/deskcalc/ExpressionParser.cpp Log: Changed token type handling so that different chars can resolve to the same token type (part of #3236). "/" now equals "\" and ":" to mean "divide by". Modified: haiku/trunk/src/apps/deskcalc/ExpressionParser.cpp =================================================================== --- haiku/trunk/src/apps/deskcalc/ExpressionParser.cpp 2009-01-17 14:03:22 UTC (rev 28920) +++ haiku/trunk/src/apps/deskcalc/ExpressionParser.cpp 2009-01-17 14:19:36 UTC (rev 28921) @@ -19,31 +19,30 @@ static const int32 kMaxDigits = 64; enum { - TOKEN_IDENTIFIER = 'a', + TOKEN_IDENTIFIER = 0, - TOKEN_CONSTANT = '0', + TOKEN_CONSTANT, - TOKEN_PLUS = '+', - TOKEN_MINUS = '-', + TOKEN_PLUS, + TOKEN_MINUS, - TOKEN_STAR = '*', - TOKEN_SLASH = '/', - TOKEN_MODULO = '%', + TOKEN_STAR, + TOKEN_SLASH, + TOKEN_MODULO, - TOKEN_POWER = '^', + TOKEN_POWER, - TOKEN_OPENING_BRACKET = '(', - TOKEN_CLOSING_BRACKET = ')', + TOKEN_OPENING_BRACKET, + TOKEN_CLOSING_BRACKET, - TOKEN_AND = '&', - TOKEN_OR = '|', - TOKEN_NOT = '~', + TOKEN_AND, + TOKEN_OR, + TOKEN_NOT, - TOKEN_NONE = ' ', - TOKEN_END_OF_LINE = '\n', + TOKEN_NONE, + TOKEN_END_OF_LINE }; - struct Token { Token() : string(""), @@ -168,29 +167,57 @@ } else { + int32 type = TOKEN_NONE; + switch (*fCurrentChar) { case '+': + type = TOKEN_PLUS; + break; case '-': + type = TOKEN_MINUS; + break; case '*': + type = TOKEN_STAR; + break; case '/': + case '\\': + case ':': + type = TOKEN_SLASH; + break; + case '%': + type = TOKEN_MODULO; + break; case '^': - case '%': + type = TOKEN_POWER; + break; case '(': + type = TOKEN_OPENING_BRACKET; + break; case ')': + type = TOKEN_CLOSING_BRACKET; + break; case '&': + type = TOKEN_AND; + break; case '|': + type = TOKEN_OR; + break; case '~': - fCurrentToken = Token(fCurrentChar, 1, _CurrentPos(), - *fCurrentChar); - fCurrentChar++; + type = TOKEN_NOT; break; - + + case '\n': + type = TOKEN_END_OF_LINE; + break; + default: throw ParseException("unexpected character", _CurrentPos()); } + fCurrentToken = Token(fCurrentChar, 1, _CurrentPos(), type); + fCurrentChar++; } //printf("next token: '%s'\n", fCurrentToken.string.String()); From stippi at mail.berlios.de Sat Jan 17 15:21:54 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Sat, 17 Jan 2009 15:21:54 +0100 Subject: [Haiku-commits] r28922 - haiku/trunk/src/apps/deskcalc Message-ID: <200901171421.n0HELsQV002863@sheep.berlios.de> Author: stippi Date: 2009-01-17 15:21:53 +0100 (Sat, 17 Jan 2009) New Revision: 28922 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28922&view=rev Modified: haiku/trunk/src/apps/deskcalc/ExpressionParser.cpp Log: Forgot to add "x" as a multiplication sign as well. Modified: haiku/trunk/src/apps/deskcalc/ExpressionParser.cpp =================================================================== --- haiku/trunk/src/apps/deskcalc/ExpressionParser.cpp 2009-01-17 14:19:36 UTC (rev 28921) +++ haiku/trunk/src/apps/deskcalc/ExpressionParser.cpp 2009-01-17 14:21:53 UTC (rev 28922) @@ -154,7 +154,7 @@ TOKEN_CONSTANT); fCurrentToken.value = temp.String(); - } else if (isalpha(*fCurrentChar)) { + } else if (isalpha(*fCurrentChar) && *fCurrentChar != 'x') { const char* begin = fCurrentChar; while (*fCurrentChar != 0 && (isalpha(*fCurrentChar) @@ -177,6 +177,7 @@ type = TOKEN_MINUS; break; case '*': + case 'x': type = TOKEN_STAR; break; case '/': From stippi at mail.berlios.de Sat Jan 17 15:55:16 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Sat, 17 Jan 2009 15:55:16 +0100 Subject: [Haiku-commits] r28923 - haiku/trunk/src/apps/deskcalc Message-ID: <200901171455.n0HEtGQw005018@sheep.berlios.de> Author: stippi Date: 2009-01-17 15:55:15 +0100 (Sat, 17 Jan 2009) New Revision: 28923 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28923&view=rev Modified: haiku/trunk/src/apps/deskcalc/ExpressionTextView.cpp haiku/trunk/src/apps/deskcalc/ExpressionTextView.h Log: Make sure that text clippings dragged from DeskCalc will be named "DeskCalc clipping" instead of the default "Untitled clipping". Fixes last remaining issue of #2749. Modified: haiku/trunk/src/apps/deskcalc/ExpressionTextView.cpp =================================================================== --- haiku/trunk/src/apps/deskcalc/ExpressionTextView.cpp 2009-01-17 14:21:53 UTC (rev 28922) +++ haiku/trunk/src/apps/deskcalc/ExpressionTextView.cpp 2009-01-17 14:55:15 UTC (rev 28923) @@ -103,6 +103,15 @@ } +void +ExpressionTextView::GetDragParameters(BMessage* dragMessage, + BBitmap** bitmap, BPoint* point, BHandler** handler) +{ + InputTextView::GetDragParameters(dragMessage, bitmap, point, handler); + dragMessage->AddString("be:clip_name", "DeskCalc clipping"); +} + + // #pragma mark - Modified: haiku/trunk/src/apps/deskcalc/ExpressionTextView.h =================================================================== --- haiku/trunk/src/apps/deskcalc/ExpressionTextView.h 2009-01-17 14:21:53 UTC (rev 28922) +++ haiku/trunk/src/apps/deskcalc/ExpressionTextView.h 2009-01-17 14:55:15 UTC (rev 28923) @@ -28,6 +28,11 @@ virtual void MouseDown(BPoint where); + // TextView + virtual void GetDragParameters(BMessage* dragMessage, + BBitmap** bitmap, BPoint* point, + BHandler** handler); + // InputTextView virtual void RevertChanges(); virtual void ApplyChanges(); From humdingerb at googlemail.com Sat Jan 17 16:54:28 2009 From: humdingerb at googlemail.com (Humdinger) Date: Sat, 17 Jan 2009 16:54:28 +0100 Subject: [Haiku-commits] r28923 - haiku/trunk/src/apps/deskcalc In-Reply-To: <200901171455.n0HEtGQw005018@sheep.berlios.de> References: <200901171455.n0HEtGQw005018@sheep.berlios.de> Message-ID: <4971FF34.5080909@googlemail.com> stippi at BerliOS wrote: > Author: stippi > Date: 2009-01-17 15:55:15 +0100 (Sat, 17 Jan 2009) > New Revision: 28923 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28923&view=rev > > Modified: > haiku/trunk/src/apps/deskcalc/ExpressionTextView.cpp > haiku/trunk/src/apps/deskcalc/ExpressionTextView.h > Log: > Make sure that text clippings dragged from DeskCalc will be named "DeskCalc > clipping" instead of the default "Untitled clipping". Fixes last remaining > issue of #2749. Thanks for working on these and similar smaller tasks. The naming of clippings would also be nice for other apps, e.g. StyledEdit, ShowImage, Soundrecorder etc. In those cases, naming according to the file the clipping was cut out from would make more sense than the app doing the clipping, however: "[filename] clipping". Regards, Humdinger -- --=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=- Deutsche Haiku News @ http://www.haiku-gazette.de From bga at mail.berlios.de Sat Jan 17 16:56:40 2009 From: bga at mail.berlios.de (bga at BerliOS) Date: Sat, 17 Jan 2009 16:56:40 +0100 Subject: [Haiku-commits] r28924 - in haiku/trunk: headers/private/net src/kits/network/libnetapi Message-ID: <200901171556.n0HFueOv009905@sheep.berlios.de> Author: bga Date: 2009-01-17 16:56:40 +0100 (Sat, 17 Jan 2009) New Revision: 28924 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28924&view=rev Modified: haiku/trunk/headers/private/net/DynamicBuffer.h haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp Log: - Got it to actually compile. - Default buffer size is now set to 1 instead of 0, which would cause the construction without a given size to fail. - Added copy constructor. - Changed _GrowToFit() to have a boolean parameter to indicate if we want to resize the buffer to an exact size. Used by the copy constructor. Modified: haiku/trunk/headers/private/net/DynamicBuffer.h =================================================================== --- haiku/trunk/headers/private/net/DynamicBuffer.h 2009-01-17 14:55:15 UTC (rev 28923) +++ haiku/trunk/headers/private/net/DynamicBuffer.h 2009-01-17 15:56:40 UTC (rev 28924) @@ -14,8 +14,10 @@ class DynamicBuffer { public: - DynamicBuffer(size_t initialSize = 0); + DynamicBuffer(size_t initialSize = 1); ~DynamicBuffer(); + + DynamicBuffer(const DynamicBuffer& buffer); // InitCheck() should be called to guarantee the object initialization // didn't fail. If it does not return B_OK, the initialization failed. @@ -47,7 +49,7 @@ void PrintToStream(); private: - status_t _GrowToFit(size_t size); + status_t _GrowToFit(size_t size, bool exact = false); unsigned char* fBuffer; size_t fBufferSize; Modified: haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp =================================================================== --- haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp 2009-01-17 14:55:15 UTC (rev 28923) +++ haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp 2009-01-17 15:56:40 UTC (rev 28924) @@ -8,9 +8,12 @@ #include "DynamicBuffer.h" +#include + #include #include +#include DynamicBuffer::DynamicBuffer(size_t initialSize) : fBuffer(NULL), @@ -38,6 +41,26 @@ } +DynamicBuffer::DynamicBuffer(const DynamicBuffer& buffer) : + fBuffer(NULL), + fBufferSize(0), + fDataStart(0), + fDataEnd(0), + fInit(B_NO_INIT) +{ + fInit = buffer.fInit; + if (fInit == B_OK) { + status_t result = _GrowToFit(buffer.fBufferSize, true); + if (result == B_OK) { + memcpy(fBuffer, buffer.fBuffer, fBufferSize); + fDataStart = buffer.fDataStart; + fDataEnd = buffer.fDataEnd; + } else + fInit = result; + } +} + + status_t DynamicBuffer::InitCheck() const { @@ -114,13 +137,17 @@ status_t -DynamicBuffer::_GrowToFit(size_t size) +DynamicBuffer::_GrowToFit(size_t size, bool exact) { if (size <= fBufferSize - fDataEnd) return B_OK; - - size_t newSize = (fBufferSize + size) * 2; + size_t newSize; + if (!exact) + newSize = (fBufferSize + size) * 2; + else + newSize = size; + unsigned char* newBuffer = new (std::nothrow) unsigned char[newSize]; if (newBuffer == NULL) return B_NO_MEMORY; From humdingerb at mail.berlios.de Sat Jan 17 19:06:02 2009 From: humdingerb at mail.berlios.de (humdingerb at mail.berlios.de) Date: Sat, 17 Jan 2009 19:06:02 +0100 Subject: [Haiku-commits] r28925 - in haiku/trunk/docs: . userguide/en userguide/en/installation userguide/images userguide/images/installation-images Message-ID: <200901171806.n0HI627V027603@sheep.berlios.de> Author: humdingerb Date: 2009-01-17 19:05:49 +0100 (Sat, 17 Jan 2009) New Revision: 28925 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28925&view=rev Added: haiku/trunk/docs/userguide/en/installation.html haiku/trunk/docs/userguide/en/installation/ haiku/trunk/docs/userguide/en/installation/install-boot-process.html haiku/trunk/docs/userguide/en/installation/install-raw.html haiku/trunk/docs/userguide/en/installation/install-source-beos.html haiku/trunk/docs/userguide/en/installation/install-source-linux.html haiku/trunk/docs/userguide/en/installation/install-source-mac.html haiku/trunk/docs/userguide/en/installation/install-source-windows.html haiku/trunk/docs/userguide/en/installation/install-usb.html haiku/trunk/docs/userguide/en/installation/install-vm.html haiku/trunk/docs/userguide/images/installation-images/ haiku/trunk/docs/userguide/images/installation-images/haiku-qemu.jpg haiku/trunk/docs/userguide/images/installation-images/haiku-virtualbox.jpg haiku/trunk/docs/userguide/images/installation-images/haiku-vmware.jpg haiku/trunk/docs/userguide/images/installation-images/haiku.jpg haiku/trunk/docs/userguide/images/installation-images/haiku_big.jpg haiku/trunk/docs/userguide/images/installation-images/macosx.png Modified: haiku/trunk/docs/Haiku-doc.css haiku/trunk/docs/userguide/en/bootloader.html haiku/trunk/docs/userguide/en/contents.html Log: * Added Philippe ("Socapex_2K") Groarke's work on an installation topic. It's based on the blog articles of several people that will be credited in each page's header comment soon. * Did a little additional formatting and restructuring. * This is still a work in progress as we continue to restructure and remove redundancies. Modified: haiku/trunk/docs/Haiku-doc.css =================================================================== --- haiku/trunk/docs/Haiku-doc.css 2009-01-17 15:56:40 UTC (rev 28924) +++ haiku/trunk/docs/Haiku-doc.css 2009-01-17 18:05:49 UTC (rev 28925) @@ -39,17 +39,21 @@ /* Some headers act as anchors, don't give them a hover effect */ +h1 a:hover, a:active { + text-decoration: none; + color: #0c3762; +} h2 a:hover, a:active { text-decoration: none; color: #0c3762; } h3 a:hover, a:active { text-decoration: none; - color: #222; + color: #0c3762; } h4 a:hover, a:active { text-decoration: none; - color: #000; + color: #0c3762; } /* basic text elements */ @@ -77,9 +81,15 @@ h3 { font-size: 1.1em; font-weight: normal; - color: #222; + color: #0c3762; margin-top: 30px; } +h4 { + font-size: 1.0em; + font-weight: lighter; + color: #0c3762; + margin-top: 30px; +} p { text-align: justify; line-height: 1.3; Modified: haiku/trunk/docs/userguide/en/bootloader.html =================================================================== --- haiku/trunk/docs/userguide/en/bootloader.html 2009-01-17 15:56:40 UTC (rev 28924) +++ haiku/trunk/docs/userguide/en/bootloader.html 2009-01-17 18:05:49 UTC (rev 28925) @@ -28,6 +28,8 @@

Contents     + Previous: Installing Haiku +     Next: Filesystem layout

@@ -77,6 +79,8 @@

Contents     + Previous: Installing Haiku +     Next: Filesystem layout

Modified: haiku/trunk/docs/userguide/en/contents.html =================================================================== --- haiku/trunk/docs/userguide/en/contents.html 2009-01-17 15:56:40 UTC (rev 28924) +++ haiku/trunk/docs/userguide/en/contents.html 2009-01-17 18:05:49 UTC (rev 28925) @@ -35,6 +35,14 @@

Welcome to Haiku's User Guide

Below, you'll find the documentation of the most important aspects of Haiku. Naturally, completing and extending the documentation is a continuing process. If you find errors or would like to suggest topics or maybe even contribute yourself, please file a bugreport or get in touch on the documentation mailing list.

Boot Loader Set safe boot options to solve configuration problems.
+ + +
InstallationStep by step guides covering Haiku installation during the (pre-) alpha release phase.
Boot Loader Set safe boot options to solve configuration problems.
Filesystem layout
    Added: haiku/trunk/docs/userguide/en/installation/install-boot-process.html =================================================================== --- haiku/trunk/docs/userguide/en/installation/install-boot-process.html 2009-01-17 15:56:40 UTC (rev 28924) +++ haiku/trunk/docs/userguide/en/installation/install-boot-process.html 2009-01-17 18:05:49 UTC (rev 28925) @@ -0,0 +1,71 @@ + + + + + + + + + The basic boot process + + + + + +
    +

    + Contents +     + Back to Installing Haiku +

    +
    + +
    + +

    The BIOS

    +

    When you turn on a BIOS based (as opposed to firmware based) system, which is still the most common today, the first thing loaded will be the BIOS. It is like a small operating system of its own and has the purpose of configuring the system hardware and provide an environment that a more high level operating system can work with. For example it configures PCI devices, harddrive controllers, USB, the processor itself and sets up ACPI tables in main memory.
    +Current BIOSes are quite a bit more advanced than they were in the past, commonly having support for USB keyboards and USB mass storage to allow operating in so called legacy free configurations (i.e. without the old PS/2 input and maybe without some of the more traditional PC architecture components).
    +OK, not going into more detail as that's not essential here.

    +

    So when the BIOS has done its job, it will try to find a MBR on any of the harddisk-like medias or other boot method specific block on other media (El-Torito on CDs/DVDs for example). Something like a USB memory stick is regarded as being harddisk-like, because it really is emulating a SCSI harddisk to the system. When it finds a boot record, it then loads that into memory and instructs the CPU to start execution of the instructions present.

    + +

    The Master Boot Record

    +

    Generally this is just the first block of any harddisk-like medium, usually 512 bytes in length. It contains boot code in the first part and the partition table at the end of the block. What you have there as boot code depends on what boot manager you have installed. You have either installed a boot manager explicitly, for example GRUB or BeOS' bootman, or it was implicitly installed for you when partitioning the device (during Windows setup for example).
    +Boot managers range from totally simple ones that are just enough to find the partition marked active and jump to the partition boot code of said partition, to almost complete operating systems with editing capabilities and other fancy features.

    + +

    The Partition Boot Record

    +

    Additionally to the Master Boot Record, there can also be a partition boot record. It's located at the start of a partition and contains further boot code. Depending on the boot manager you are using and how you configured it, this boot code will be executed or not. In the case of Haiku the partition boot code does locate the /boot/beos/system/zbeos" file which then starts the operating system boot process.
    Additionally it contains the partition offset needed to access this partition during boot. A wrong value for that offset is probably one of the most common reason why a Haiku installation doesn't start to boot.

    +

    As mentioned, whether or not the partition boot code is used depends on the boot manager and boot manager configuration. If you take GRUB installed as boot manager in the MBR and booting Linux. GRUB knows how to handle most Linux filesystems and it does know how to load and start a Linux kernel off of it. Therefore it can directly load Linux without the need for any additional boot code.
    +However GRUB does neither know how to handle BFS and find the zbeos boot loader, nor would it really know how to execute it. Therefore you cannot use GRUB to directly boot Haiku.
    +Instead you need to chainload the partition boot code of the BFS partition, as it knows how to handle both the BFS and zbeos.

    + +

    The Boot Loader

    +

    After the boot loader (zbeos in case of BeOS/Haiku) has been found and loaded into memory, it is executed. The boot loader is the one providing you with the Haiku boot menu when pressing the space bar in early boot and is the one detecting basic system configuration. It also contains the logic to find and load the kernel (kernel_intel on BeOS and kernel_x86 on Haiku) as well as some boot modules required. Boot modules include the bus managers, bus and device drivers required by the kernel to successfully access the boot volume to load the rest of the modules and execute anything it needs to fully boot the system.
    +If you boot to an ATA harddisk it would require for example the IDE or ATA bus manager, the harddisk controller driver and the helper modules used by them. Booting from USB would require the USB bus manager, the host controller drivers and the usb_disk driver for example. The boot loader also provides the kernel with configuration information and info about initial memory layout for example. This data passing between the boot loader and the kernel is specific to Haiku and the Haiku revision, it is possible that the information passed changes from one revision to another. This also makes it obvious that a zbeos from a BeOS installation cannot work with a Haiku kernel. Likewise using a BeOS bootfloppy that provides such a zbeos is not going to boot Haiku.

    + +

    The Kernel

    +

    Once the kernel is loaded and starts executing it sets up a working environment. Memory management, bootstrapping and configuring non-boot CPUs, timers, interrupts, filesystems, module infrastructure, drivers... Everything that is needed for a fully working system and has not yet been loaded. Once this environment is set up, the kernel will start the bootscript, that then launches the different servers to provide a usable userland.

    + +
    + +
    +

    + Contents +     + Back to Installing Haiku +

    +
    + + + Added: haiku/trunk/docs/userguide/en/installation/install-raw.html =================================================================== --- haiku/trunk/docs/userguide/en/installation/install-raw.html 2009-01-17 15:56:40 UTC (rev 28924) +++ haiku/trunk/docs/userguide/en/installation/install-raw.html 2009-01-17 18:05:49 UTC (rev 28925) @@ -0,0 +1,116 @@ + + + + + + + + + Installing from a Raw Image + + + + + +
    +

    + Contents +     + Back to Installing Haiku +

    +
    + +
    + + +

    If you can't or don't want to go through building from source, you can also install an already built image. You'll have to download a raw image for that, not a VMWare image. Note that these are test images, they are not complete distributions that include a lot of software, both to keep the size and complexity of building them down.

    + +

    Installing on a partition

    +

    After you have downloaded the raw image, you need to get this image to the partition or medium you intend to install it to. Under BeOS, Linux or basically everything except Windows you can use dd to just copy it over, using the partition or drive as a target.

    + +

    Under BeOS to partition X on the master on the first channel:

    +
    dd if=/path/to/image of=/dev/disk/ide/ata/0/master/X
    + +

    Under BeOS to the raw slave on the first channel (overwriting the MBR):

    +
    dd if=/path/to/image of=/dev/disk/ide/ata/0/master/raw
    + +

    Under Linux to partition X on the first hard disk:

    +
    dd if=/path/to/image of=/dev/hdaX
    + +

    Make extra sure that you have the right partition picked there, as these commands are destructive. Recheck with a partitioning tool to verify for example. Note that you'll probably need administrative rights under Linux, so use sudo or su to execute these commands.

    + +

    If you want to put the image at the absolute start of the drive (so that you don't need an additional boot manager), make sure that you write to the whole raw drive and not to a partition. You do that by specifying a raw device instead of a partition. Under Linux you would for example omit the partition number resulting in sdb instead of sdb1. Under BeOS you would pick the .../raw path instead of one with a number. If you use such a command, you overwrite the MBR containing the partition table. This means, that all the partitions on that drive will become inaccessible (not only the first part of the drive). So be sure that you want to do such a destructive operation!

    + +

    Under Windows things are sadly a bit more complicated. You can try dd for Windows or use a tool like Flashnul to get the image to a partition or USB drive. You should find the tools on the Internet, go back to the USB section to learn how to use Flashnul to copy a Haiku image.

    + +

    Note that when you just copy over an image to a partition or drive, you won't be able to use the full size of the target partition/drive. The image was built with a certain size (256MB currently) which is the size of the filesystem inside the image. So there's no real point in making a 10GB partition available for it, it won't be usable.

    + +

    Copying the contents of a pre-built image

    +

    Instead of copying the image itself you can also make a separate BFS partition yourself and then copy over the contents of the image to that partition. You will need a platform supporting BFS to do that obviously, which leaves you with two possible options. Either you use a version of BeOS to do the setup with DriveSetup or mkbfs or you use Haiku itself with Installer or DriveSetup.
    +Once you've created and initialized the target partition you can mount the image (using tools like Mount Image or through the Terminal) and copy over all the files. If you are under Haiku, you can just as well use Installer to make a duplicate of your currently booted installation.

    + +

    Making it bootable

    +

    When you just create a plain partition and initialize it to a BFS filesystem or if you copy over a complete Haiku image, this doesn't necessarily make the partition bootable. The partition boot record may be missing, or the partition offset could be misconfigured. The prebuilt images for example contain a partition offset of 0 for example, since they are not actually partitioned. They only consist of a direct BFS filesystem, so the offset to that is 0. This will work in exactly one case, where you don't actually put it into a partition. If you for example copy such an image directly to a USB drive starting from 0, overwriting the MBR (destroying all partitions already there), then this will boot. If you however copy an image to the first partition on your hard disk, this will not work out of the box, as the boot code in the partition boot record won't find the desired filesystem at offset 0 (that's where the MBR still is).

    + +

    To make sure a partition boot record is there and it contains the right partition offset, you can use the tool makebootable. It will do both, write the partition boot code to the beginning of the partition and detect and write the partition offset to where it is needed. You can use the makebootable from BeOS if you have a BeOS installation that has access to the partition in question. To do that, mount the volume you have Haiku installed to and use:

    + +
    makebootable /HaikuMountpoint
    + +

    Where /HaikuMountpoint is where you have mounted your Haiku volume to. Note that the BeOS' makebootable can be used, because the partition boot record does only load the zbeos boot loader. As Haiku does provide a zbeos as well and there is no information passed from the partition boot code to the boot loader, this is compatible between BeOS and Haiku and you can use a BeOS' makebootable with a Haiku boot loader and the other way around.

    + +

    If you already have some Haiku medium capable of booting Haiku (like a USB drive) you could also boot into Haiku and run makebootable from there. Note that there is currently a bug that will require you to run it from the location it resides in like so:

    + +
    cd /bin
    +makebootable /MountpointOfNewHaikuInstallation
    + +

    If you are on Linux or another build platform that has support for makebootable and have the sources available you can run:

    + +
    jam run ":<build>makebootable" /dev/sdaX
    + +

    Where the /dev/sdaX is the partition that is supposed to be made bootable. Under Windows this is currently not possible.

    + +

    Configuring the boot manager

    +

    When the partition itself is bootable, i.e. contains a partition boot record and the correct partition offset, there needs to be a way to get it executed. If you use a boot manager like GRUB, you need to instruct it to load from that partition. You do that for GRUB by adding an entry to its menu.lst usually located at /boot/grub/menu.lst. The following would instruct it to switch to the partition and then just chainload the partition boot record:

    + +
    title Haiku
    +rootnoverify (hd0,3)
    +chainloader +1
    + +

    That would work if you installed to disk "0" and partition "3". Note that the GRUB naming is one-off the Linux one, so if you have it installed to /dev/sda4 that would translate to disk "0" (sda == 0, sdb == 1, ...) and partition "3" (4 - 1).

    + +

    In case you are using the BeOS boot manager, just re-run the bootman command and add the new Haiku partition to the boot menu.

    + +

    If you have another boot manager consult its documentation on how to chainload partitions, most should support such a thing, possibly named a bit different. In doubt just add an entry for the partition, probably this will cause it to chainload, even if not explicitly named so.

    + + +
    + +
    +

    + Contents +     + Back to Installing Haiku +

    +
    + + + Added: haiku/trunk/docs/userguide/en/installation/install-source-beos.html =================================================================== --- haiku/trunk/docs/userguide/en/installation/install-source-beos.html 2009-01-17 15:56:40 UTC (rev 28924) +++ haiku/trunk/docs/userguide/en/installation/install-source-beos.html 2009-01-17 18:05:49 UTC (rev 28925) @@ -0,0 +1,92 @@ + + + + + + + + + Building Haiku on BeOS + + + + + +
    +

    + Contents +     + Back to Installing Haiku +

    +
    + +
    + +

    Getting the source

    +

    Note: All commands must be executed in the Terminal.

    + +

    Go to the parent directory for Haiku's repository (ex. /home/develop) and enter:

    + +
    svn checkout svn://svn.berlios.de/haiku/haiku/trunk haiku
    + +

    This will checkout the source into a new subdirectory called "haiku". Members of Haiku should login with their BerliOS account to get commit access:

    +
    svn checkout svn+ssh://developername at svn.berlios.de/svnroot/repos/haiku/haiku/trunk haiku
    + +

    After the initial checkout (also in case not the entire tree was checked out successfully) you can fetch source code updates with the following command in your repository's root folder:

    +
    svn update
    + + +

    Installing the cross-compiler

    +

    Download the Haiku cross-compiler and extract it to /boot (for example by setting the Destination in Expander to just /boot). Then you need to configure your tree to use this cross compiler. Go to the root folder of your checked out Haiku repository and invoke the configure script with the --cross-tools-prefix option like this:

    + +
    configure --cross-tools-prefix /boot/apps/haiku/cross-tools/bin/i586-pc-haiku-
    + +

    Be careful to include all of the string up to and including the last dash, as all the cross compiler tools have this prefix (they are for example called i586-pc-haiku-ar). You need to specify this prefix everytime you run configure.

    + +

    Building the source

    + +

    You can now start the build process with:

    + +
    jam
    + +

    Note: this will just build any target that is found in the tree. This is usually not that useful, as many parts might not build and are not required. So optionally, a target can be specified by adding a target name. For example, jam app_server will only build the app_server target. Normally though you will want to build an image or installation using the commands below. Add the -a option to rebuild the whole source or only the specified target in case Jam didn't notice source changes.

    + +

    Building an image

    + +

    You can build a Haiku image with:

    +
    jam haiku-image
    + +

    This will place a file named haiku.image into the generated/ folder.

    + +

    To build an image for testing in VMWare:

    +
    jam haiku-vmware-image
    + +

    This will place a file named haiku.vmdk into the generated/ folder.

    + +

    Instead of building an image, you may install Haiku on a mounted partition using:

    +
    HAIKU_INSTALL_DIR=/target_folder jam install-haiku
    + +
    + +
    +

    + Contents +     + Back to Installing Haiku +

    +
    + + + Added: haiku/trunk/docs/userguide/en/installation/install-source-linux.html =================================================================== --- haiku/trunk/docs/userguide/en/installation/install-source-linux.html 2009-01-17 15:56:40 UTC (rev 28924) +++ haiku/trunk/docs/userguide/en/installation/install-source-linux.html 2009-01-17 18:05:49 UTC (rev 28925) @@ -0,0 +1,310 @@ + + + + + + + + + Building Haiku on linux + + + + + +
    +

    + Contents +     + Back to Installing Haiku +

    +
    + +
    + +

    The following will show you step by step how to get Haiku's source code and build tools, how to compile it all and how to generate either a VMWare image or directly install onto a partition or USB drive. You'll also learn how to exchange data with an image or an installation on it's partition.

    +

    Note: This guide is based on Ubuntu 8.10, but should generally work the same way on all other Linux distributions. Some changes may apply.

    + +

    Downloading the tools and the Haiku source

    +
      +
    1. Install all needed packages:

      +
      sudo apt-get install subversion autoconf automake texinfo flex bison gawk build-essential
    2. + +
    3. Create the Haiku development directories and get the Haiku build tools source:

      +
      mkdir develop
      +cd develop
      +mkdir haiku
      +cd haiku
      +svn checkout svn://svn.berlios.de/haiku/buildtools/trunk buildtools
    4. + +
    5. Build and install the Haiku Jam:

      +
      cd  buildtools/jam
      +make
      +sudo ./jam0 install
      +cd ../..
    6. + +
    7. Get the Haiku source (this will take a while).
      +For anonymous check-out:

      +
      svn checkout http://svn.berlios.de/svnroot/repos/haiku/haiku/trunk trunk
      +

      If you have a valid Haiku developer account at Berlios:

      +
      svn checkout https://developername at svn.berlios.de/svnroot/repos/haiku/haiku/trunk trunk
      + +

      If there are any errors while checking out the source, just cd into the trunk directory and type svn update to get any missed files.
      +This is also how you update the code in the future.

    8. + +
    9. Build the cross compiler tools (GCC 2.95):

      +
      cd ~/develop/haiku/trunk
      +./configure --build-cross-tools ../buildtools/
      +

      To build with GCC 4.x the configure line changes to:

      +
      ./configure  --build-cross-tools-gcc4 x86 ../buildtools/
      +

      But keep in mind this will produce binaries which are not compatible with BeOS.

    10. +
    + +


    +

    To download all code changes from now on, simply enter the haiku/trunk/ folder and type:

    +
    svn update
    + +

    Customizing UserBuildConfig

    + +

    Now you could already start to build RAW or VMWare images. Before we come to that, however, let's have a look at the UserBuildConfig that can be used to customize and automate some things.

    + +

    In trunk/haiku/build/jam/ there's a UserBuildConfig.ReadMe that explains various options. Don't simply rename it and use it as UserBuildConfig!

    +

    You start by duplicating the UserBuildConfig.sample and the remove the.sample suffix to get your UserBuildConfig. From the .ReadMe you can copy interesting parts into your config and customize them there.

    + +
      +
    1. First, the line needed for the optional "OpenSSH" package:

      +
      HAIKU_IMAGE_HOST_NAME = "TEST" ;
      +
    2. +
    3. Now the block that sets the defaults for timezone and keymap:

      +
      # Add symlink/file (timezone and keymap settings) to the image.
      +AddSymlinkToHaikuImage home config settings
      +	: /boot/beos/etc/timezones/Europe/Paris : timezone ;
      +AddFilesToHaikuImage home config settings : German 
      +	: Key_map ;
    4. +
    5. The build process can be fine tuned until it fits your needs. You could create your own folder haiku/trunk/user_data/ +and put files there that are then copied or unzipped into the image. +Zipping is important when dealing with Haiku files with their +attributes, because zipping them up will preserve them on non-BFS +partitions.
      +For example:

      + +
      # Zip up your emails between each system update and place the archive into the
      +# user_data folder to be automatically put back when building the new image.
      +UnzipArchiveToHaikuImage home
      +	: $(HAIKU_TOP)/user_data/mail.zip ;
      +

      The first line defines the location in the image where the archive will be unzipped (here: /boot/home/). Deeper hierarchies are separated with a blank instead of the usual "/" (see the setting of the timezone above).
      +The second line is the location of the zip file. $(HAIKU_TOP) is the lowest level of the checked out source tree, normally haiku/trunk/.

      +

      In the same way, you use CopyDirectoryToHaikuImage and AddFilesToHaikuImage to copy whole directories or single files into the image.

    6. + +
    7. The above commands are executed when building any kind of image. +"Build Profiles" provide the means to set commands specifically for +different configurations.
      +These are two profiles, one for building and installing an image +directly onto a partition and the other to generate a VMWare image:

      +
      DefineBuildProfile disk : disk : "/dev/sda7" ;
      +DefineBuildProfile vmware : vmware-image ;
      +
      +switch $(HAIKU_BUILD_PROFILE) {
      +	case "disk" : {
      +		HAIKU_ADD_ALL_OPTIONAL_PACKAGES = 1 ;
      +	}
      +
      +
      +	case "vmware" : {
      +		HAIKU_IMAGE_SIZE = 900 ;
      +		HAIKU_DONT_CLEAR_IMAGE = 1 ;
      +		HAIKU_ADD_ALL_OPTIONAL_PACKAGES = 1
      +	}
      +
      +}
      +

      The first line is especially important and dangerous: "/dev/sda7"
      +The so defined partition will be irretrievably overwritten! +

      +

      Before you use this profile, you should make sure that it's really +the correct partition on the right harddisk or USB-stick, for example +by using Ubuntu's partition editor GParted.

    8. + +
    +


    +

    Here's the complete UserBuildConfig once more:

    +
    # Quick start file for UserBuildConfig. Copy it and uncomment and edit the
    +# lines you want. See UserBuildConfig.ReadMe for details.
    +
    +# Optional package OpenSSH needs this variable set
    +HAIKU_IMAGE_HOST_NAME = "TEST" ;
    +
    +# Add symlink/file (timezone and keymap settings) to the image.
    +AddSymlinkToHaikuImage home config settings
    +	: /boot/beos/etc/timezones/Europe/Paris : timezone ;
    +AddFilesToHaikuImage home config settings : German 
    +	: Key_map ;
    +
    +DefineBuildProfile disk : disk : "/dev/sda7" ;
    +DefineBuildProfile vmware : vmware-image ;
    +
    +switch $(HAIKU_BUILD_PROFILE) {
    +	case "disk" : {
    +		HAIKU_ADD_ALL_OPTIONAL_PACKAGES = 1 ;
    +	}
    +
    +
    +	case "vmware" : {
    +		HAIKU_IMAGE_SIZE = 900 ;
    +		HAIKU_DONT_CLEAR_IMAGE = 1 ;
    +		HAIKU_ADD_ALL_OPTIONAL_PACKAGES = 1 ;
    +	}
    +
    +}
    + +

    Note: when building an a USB memory stick, you wouldn't specify the partition number in the disk entry (ex. /dev/sdb instead of /dev/sdb1). This will erase your whole flash drive and it's partitions, so be cautious the drive name is exact.

    + +

    Besides these user build profiles, there are also official release profiles, see ReleaseBuildProfiles in the same folder. The profiles alpha-raw and alpha-vmware will build all officially planned components for the alpha release. They are invoked just like the user profiles, see Building a VMWare Image a bit further down. +

    + +

    Building/installing Haiku Images

    + +

    Thanks to our UserBuildConfig it's all quite simple now.

    + +

    Installing on a partition/USB-stick

    + +

    To install Haiku directly onto a partition/USB-stick, you have to +set the according read and write permissions.
    +When installing to a hard drive partition, replace the drive name and use:

    + +
    +sudo chmod o+r /dev/sda
    +sudo chmod o+rw /dev/sda7
    +
    + +

    Note that the read permission is set for the whole disk (1st line) +while the write permission is limited to one specific partition (2nd +line).

    + +

    When installing to a USB flashdrive, replace the drive name, and type:

    +
    sudo chmod o+r /dev/sda
    +
    + +

    Now the Haiku image is built and installed on the partition:

    + +
    sudo jam -q @disk
    + +

    Installing to its own partition offers some interesting possibilities:

    +
    sudo jam -q @disk update-all
    + +

    This updates all of the system, but leaves the home folder untouched, so all your data will still be there.

    + +

    You can also decide to only update certain components:

    +
    sudo jam -q @disk update {components}
    + +

    Just replace the {components} with the program/component to be updated, e.g. kernel, StyledEdit or libmedia.so or more than one, separated with blanks. haiku/build/jam/HaikuImage lists all possible "targets".

    + + +

    Building a VMWare Image

    + +

    Just enter:

    +
    sudo jam -q @vmware
    + +

    You'll now have to rededicate the generated image to satisfy the VMPlayer, before you can run it with an associated .vmx file (There's also a .vmx file in haiku/3rdparty/vmware/):

    + +
    sudo chown [YourUsername] haiku.image
    + + +

    Booting with GRUB

    + +

    If you installed Haiku directly onto a USB-stick, you just have to +make sure the boot order in the BIOS looks first for USB devices to +have Haiku boot right up from the stick.

    + +

    If Haiku was installed on a partition on your hard drive, you have to +adjust the boot loader accordingly. This is how it's done with GRUB:

    + +
    sudo gedit /boot/grub/menu.lst
    + +

    You'll note that GRUB uses a different naming strategy for hard drives than Linux.

    + +

    With GRUB it's: (hdN,n)

    +

    All harddisks start with "hd"
    +"N" is the hard disk number, starting with "0".
    +"n is the partition number, also starting with "0".
    + +The first logical partition always have the number 4, regardless of the number of primary partitions.

    + +

    If you're still unsure, check out the GRUB manual.

    + +

    As an example:

    + +

    /dev/sda7 would be (hd0,6) in GRUB.

    + +

    Now using your own hard drive number, type this entry in /boot/grub/menu.lst:

    + +
    # Haiku on /dev/sda7
    +title		Haiku
    +rootnoverify	(hd0,6)
    +chainloader	+1
    + +

    Save, reboot and choose "Haiku" in the GRUB menu at boot-up.

    + + +

    Accessing images/partitions

    + +

    Using build profiles has another advantage: You can mount a VMWare +image or the partition of a Haiku installation to transfer data. +Navigate to haiku/trunk/ and simply enter:

    +
    sudo jam @disk mount
    + +

    or

    +
    sudo jam @vmware mount
    +

    You are now in the bfs_shell. Enter help to get a list of all supported commands:

    +
    fssh:/> help
    +supported commands:
    +cd               - change current directory
    +chmod            - change file permissions
    +cp               - copy files and directories
    +exit             - quit the shell
    +help             - list supported commands
    +info             - prints volume informations
    +ln               - create a hard or symbolic link
    +ls               - list files or directories
    +mkdir            - create directories
    +mkindex          - create an index
    +query            - query for files
    +quit             - quit the shell
    +rm               - remove files and directories
    +sync             - syncs the file system
    +

    It all works pretty much like in your normal bash shell (besides there's sadly no tab-completion).
    + +The one thing to remember: You have to prefix every local path (your Linux partition) with a ":".

    +

    Here's an example to copy the file .bash_history from Haiku to your Linux partition:

    +
    fssh:/> cd myfs/home
    +fssh:/myfs/home> cp .bash_history :/home/humdinger/
    +

    The other way around works the same:

    + +
    fssh:> cp :/home/humdinger/Bilder/gazette-final.png myfs/home/
    + + +
    + +
    +

    + Contents +     + Back to Installing Haiku +

    +
    + + + Added: haiku/trunk/docs/userguide/en/installation/install-source-mac.html =================================================================== --- haiku/trunk/docs/userguide/en/installation/install-source-mac.html 2009-01-17 15:56:40 UTC (rev 28924) +++ haiku/trunk/docs/userguide/en/installation/install-source-mac.html 2009-01-17 18:05:49 UTC (rev 28925) @@ -0,0 +1,251 @@ + + + + + + + + + Building Haiku on Mac OS X + + + + + +
    +

    + Contents +     + Back to Installing Haiku +

    +
    + +
    + + + +

    Even if Mac OS X is Unix based, building Haiku on it still requires some tweaks. +These instructions were tested on Mac OS X 10.5.5 (Leopard). They may not work on older versions of Mac OS X (Tiger, Panther etc.)

    + +

    Requirements

    +
      +
    • You will need the Xcode Tools: use the installer on your Mac OS X Install DVD, or download the latest version from Apple Developer Connection (free registration required).
    • + +
    • You must be logged in as administrator to install some tools.
    • +
    • MacPorts will also be required (see Step 3 for installation tips)
    • +
    + +

    Step 1: Case-sensitive disk image

    + +

    The Mac OS file system, HFS+, is case-insensitive by default. This causes troubles during the build of some Haiku components, because of wrong headers inclusion ("String.h" (from Haiku) instead of "string.h" (from the system) for +instance). If your Mac OS X partition is not in case-sensitive HFS+ (which is very +likely), you need to create a case-sensitive disk image and put Haiku +buildtools and source code on it.

    + +

    1) Open Disk Utility (in /Application/Utilities)
    +2) Click "New Image", and enter the following parameters:

    +
      +
    • Volume name: You should enter a short name without special character or spaces.
    • +
    • Volume size: the minimum volume size is 2.68 Gb, the recommended size is the double. Do not worry about making the image bigger, since only the consumed space will be used on your hard drive.
    • +
    • Volume format: Mac OS Extended (Case-sensitive, Journaled)
    • +
    • Encryption: You should say "none", unless you really want to slow down Haiku building?
    • +
    • Partitions: (Tiger users will not have this - just skip it): Choose No partition map.
    • +
    • Image format: Choose ?sparse disk image?.
    • +
    + +

    macosx.png

    + +

    The image is automatically mounted on the Desktop. If you want to remount it later, just double-click on the image file.

    + +

    Step 2: Fetching the buildtools and the Haiku source code

    + +

    Open a Terminal (in /Application/Utilities), and enter:

    +
    cd /Volumes/Haiku/
    + +

    /Volumes/Haiku refers here (and in +all this tutorial) to the mounted disk image name. I named it "Haiku", +so if you chose another name, use it instead of "Haiku" after +/Volumes/.

    + +

    Checkout the buildtools:

    +
    svn checkout svn://svn.berlios.de/haiku/buildtools/trunk buildtools
    + +

    Note: in Tiger, as I remember, Subversion is not available with Xcode 2.5. You have to install it manually.

    + +

    And the source code:

    +
    svn checkout svn://svn.berlios.de/haiku/haiku/trunk haiku
    + +

    You should now have two folders "haiku" and "buildtools" into the mounted disk image.

    + +

    To update your code from now on, go to the haiku/trunk/ folder and type:

    +
    svn update
    + +

    Step 3: Install required software

    + +

    First, install MacPorts (A standard Installer package is provided)

    + +

    Close your Terminal, and enter in a new one:

    +
    sudo port install gnuregex gawk wget
    + +

    You will be prompted for the administrator password of the current account - Do not worry if nothing you type shows after the Password prompt, this is intended.

    + +

    If you get an error "port: command not found", the MacPorts shell configuration is probably not taken into account. You probably have a ~/.bash_profile or ~/.bash_login file overwriting MacPorts config located in ~/.profile. When a "login shell" starts up, it reads the file "/etc/profile" and then "~/.bash_profile" or "~/.bash_login" or "~/.profile" (whichever one exists - it only reads one of these, checking for them in the order mentioned). Check the file used by Bash (in the mentioned order) and add these lines to the used file:

    + +
    nano ~/.bash_profile
    +or
    +nano ~/.bash_login
    +or
    +nano ~/.profile
    +
    + +

    Add at the end of the chosen file :

    +
    export PATH=/opt/local/bin:$PATH
    +export MANPATH=$MANPATH:/opt/local/share/man
    +export INFOPATH=$INFOPATH:/opt/local/share/info
    + +

    To save the file and quit the editor, type CTRL-X, Y and RETURN. If you are using another shell, take a look a the shell documentation to see which file is parsed at login, and add the required commands.

    + +

    You can now retry the command in a new Terminal:

    +
    sudo port install gnuregex gaw wget
    + +

    After MacPorts finished installing the tools, install the modified Haiku jam:

    +
    cd /Volumes/Haiku/buildtools/jam
    +make
    +sudo ./jam0 install
    +[Enter your password]
    +cd ..
    + +

    Reopen a new Terminal, and enter:

    +
    jam -v
    . + +

    You should get:

    +
    Jam 2.5-haiku-20080327. OS=MACOSX. Copyright 1993-2002 Christopher Seiwald.
    + +

    Step 4: Let's Patch

    + +

    With your favorite text editor, open the file:
    [Mounted Disk Image]/buildtools/legacy/gcc/config.guess

    + +

    Go to line 522, and add this:

    +
    *:Darwin:*:*)
    +echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
    +exit 0 ;;
    + +

    before:

    +
    *:FreeBSD:*:*)
    +  if test -x /usr/bin/objformat -a "elf" = "`/usr/bin/objformat`"; then
    +    echo ${UNAME_MACHINE}-unknown-freebsdelf
    +  else
    +    echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
    +  fi
    +exit 0 ;;
    + +

    Warning! When you copy-paste preformatted text from a web page, some versions of Safari replace every space with a no-break space. You can use the search/replace function of your text editor to replaces these "spaces" with real ones. (or copy the text by hand... or use another browser).

    + +

    Save the file, and open:
    +[Mounted Disk Image]/buildtools/legacy/gcc/Makefile.in

    + +

    Replace (line 144):

    + +
    MAKEINFO = `if [ -f $$r/texinfo/makeinfo/Makefile ] ; \
    +	then echo $$r/texinfo/makeinfo/makeinfo ; \
    +	else echo makeinfo ; fi`
    +

    By:

    +
    MAKEINFO = `if which -s makeinfo ; \
    +	then echo makeinfo ; \
    +	else echo $$r/texinfo/makeinfo/makeinfo ; fi`
    + +

    These patches are from the Haiku development mailing list, thanks to their authors!

    + +

    Step 5: Building the buildtools

    + +

    Now, you can compile GCC2 with:

    +
    cd /Volumes/Haiku/haiku
    +./configure --build-cross-tools ../buildtools
    + +

    If you want to build Haiku with GCC4, use :

    +
    ./configure --build-cross-tools-gcc4 x86 ../buildtools/
    + +

    If you do not now which one you should use, choose gcc2 : Original BeOS R5 binaries (and many Haiku optional packages) will not run on a gcc4 build.

    + +

    ./configure has some more options, use this command to list them:

    +
    ./configure --help
    + +

    After some time, you should get:

    +
    binutils and gcc for cross compilation have been built successfully!
    + +

    Step 6: Customizing the UserBuildConfig

    + +

    Now you could already start to build RAW or VMWare images. Before we come to that, however, let's have a look at the UserBuildConfig that can be used to customize and automate some things.

    + +

    In trunk/haiku/build/jam/ there's a UserBuildConfig.ReadMe that explains various options. Don't simply rename it and use it as UserBuildConfig!

    + +You start by duplicating the UserBuildConfig.sample and the remove the .sample suffix to get your UserBuildConfig. From the .ReadMe you can copy interesting parts into your config and customize them there. + +

    Step 7: Building Haiku

    + +

    Since on-disk install from Mac OS X does not seems possible at this time, you will need to use an emulation or virtualisation software.

    + +

    Instructions for VMWare Fusion:

    +

    The command:

    +
    cd /Volumes/Haiku/haiku
    +jam -q haiku-vmware-image
    + +

    will build a VMWare disk image:
    +[Mounted Disk Image]/haiku/generated/haiku.vmdk.

    + +

    To use it, follow these steps:

    + +
      +
    1. Create a folder at the root of the disk image.
    2. +
    3. Copy [Mounted Disk Image]/3rdparty/vmware/haiku.vmx inside this folder, and edit the copy.
    4. +
    5. Change ide0:0.fileName = "haiku.vmdk" to ide0:0.fileName = "../haiku/generated/haiku.vmdk". Save the file.
    6. +
    7. Double-clicking on the file should start VMWare Fusion and launch Haiku.
    8. +
    + +

    VMWare will create some files in the folder you put haiku.vmx. If you want easy access to the virtual machine file, make an alias of the haiku.vmx file (or put it into the Dock). Launching this alias will mount the disk image and start the VM, automatically.

    + +

    Haiku should run in:
    +Q (free),
    +Parallels Desktop (commercial) and,
    +VirtualBox (free).

    + +

    Note: For more information refer to the topic Running Haiku in a virtual machine.

    + +

    Some of them (like Parallels and Virtual box, maybe others) can use the VMWare disk image (see above). For the others you can create a raw disk image.

    + +

    Create a raw disk image

    + +
    cd /Volumes/Haiku/haiku
    +jam haiku-image
    + +

    The image will be created in [Mounted Disk Image]/haiku/generated/haiku.image.

    + +
    + +
    +

    + Contents +     + Back to Installing Haiku +

    +
    + + + Added: haiku/trunk/docs/userguide/en/installation/install-source-windows.html =================================================================== --- haiku/trunk/docs/userguide/en/installation/install-source-windows.html 2009-01-17 15:56:40 UTC (rev 28924) +++ haiku/trunk/docs/userguide/en/installation/install-source-windows.html 2009-01-17 18:05:49 UTC (rev 28925) @@ -0,0 +1,50 @@ + + + + + + + + + Building Haiku on Windows + + + + + +
    +

    + Contents +     + Back to Installing Haiku +

    +
    + +
    + [... truncated: 541 lines follow ...] From korli at mail.berlios.de Sat Jan 17 19:32:22 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Sat, 17 Jan 2009 19:32:22 +0100 Subject: [Haiku-commits] r28926 - haiku/trunk/src/data/etc/timezones Message-ID: <200901171832.n0HIWMJE028326@sheep.berlios.de> Author: korli Date: 2009-01-17 19:32:21 +0100 (Sat, 17 Jan 2009) New Revision: 28926 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28926&view=rev Modified: haiku/trunk/src/data/etc/timezones/africa haiku/trunk/src/data/etc/timezones/asia haiku/trunk/src/data/etc/timezones/southamerica haiku/trunk/src/data/etc/timezones/zone.tab Log: update to tzdata2008i Modified: haiku/trunk/src/data/etc/timezones/africa =================================================================== --- haiku/trunk/src/data/etc/timezones/africa 2009-01-17 18:05:49 UTC (rev 28925) +++ haiku/trunk/src/data/etc/timezones/africa 2009-01-17 18:32:21 UTC (rev 28926) @@ -1,4 +1,4 @@ -# @(#)africa 8.16 +# @(#)africa 8.17 #
     
     # This data is by no means authoritative; if you think you know better,
    @@ -453,11 +453,19 @@
     # year 2008 - 2009 will, therefore, be effective as from 26 October 2008
     # and end on 29 March 2009.
     
    +# From Ed Maste (2008-10-07):
    +# THE TIME BILL (No. XXVII of 2008) Explanatory Memorandum states the
    +# beginning / ending of summer time is 2 o'clock standard time in the
    +# morning of the last Sunday of October / last Sunday of March.
    +# 
    +# http://www.gov.mu/portal/goc/assemblysite/file/bill2708.pdf
    +# 
    +
     # Rule	NAME	FROM	TO	TYPE	IN	ON	AT	SAVE	LETTER/S
     Rule Mauritius	1982	only	-	Oct	10	0:00	1:00	S
     Rule Mauritius	1983	only	-	Mar	21	0:00	0	-
    -Rule Mauritius	2008	max	-	Oct	lastSun	2:00	1:00	S
    -Rule Mauritius	2009	max	-	Mar	lastSun	2:00	0	-
    +Rule Mauritius	2008	max	-	Oct	lastSun	2:00s	1:00	S
    +Rule Mauritius	2009	max	-	Mar	lastSun	2:00s	0	-
     # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
     Zone Indian/Mauritius	3:50:00 -	LMT	1907		# Port Louis
     			4:00 Mauritius	MU%sT	# Mauritius Time
    
    Modified: haiku/trunk/src/data/etc/timezones/asia
    ===================================================================
    --- haiku/trunk/src/data/etc/timezones/asia	2009-01-17 18:05:49 UTC (rev 28925)
    +++ haiku/trunk/src/data/etc/timezones/asia	2009-01-17 18:32:21 UTC (rev 28926)
    @@ -1,4 +1,4 @@
    -# @(#)asia	8.23
    +# @(#)asia	8.24
     # 
     
     # This data is by no means authoritative; if you think you know better,
    @@ -1957,8 +1957,20 @@
     # compilers can't handle  or having multiple Rules (a la Israel).
     # For now, use "Apr Fri>=1", and go with IATA on a uniform Sep 30 end.
     
    +# From Steffen Thorsen (2008-10-07):
    +# Syria has now officially decided to end DST on 2008-11-01 this year,
    +# according to the following article in the Syrian Arab News Agency (SANA).
    +#
    +# The article is in Arabic, and seems to tell that they will go back to
    +# winter time on 2008-11-01 at 00:00 local daylight time (delaying/setting
    +# clocks back 60 minutes).
    +#
    +# 
    +# http://sana.sy/ara/2/2008/10/07/195459.htm
    +# 
    +
     Rule	Syria	2008	max	-	Apr	Fri>=1	0:00	1:00	S
    -Rule	Syria	2008	max	-	Oct	1	0:00	0	-
    +Rule	Syria	2008	max	-	Nov	1	0:00	0	-
     
     # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
     Zone	Asia/Damascus	2:25:12 -	LMT	1920	# Dimashq
    
    Modified: haiku/trunk/src/data/etc/timezones/southamerica
    ===================================================================
    --- haiku/trunk/src/data/etc/timezones/southamerica	2009-01-17 18:05:49 UTC (rev 28925)
    +++ haiku/trunk/src/data/etc/timezones/southamerica	2009-01-17 18:32:21 UTC (rev 28926)
    @@ -1,4 +1,4 @@
    -# @(#)southamerica	8.29
    +# @(#)southamerica	8.33
     # 
     
     # This data is by no means authoritative; if you think you know better,
    @@ -177,6 +177,42 @@
     # http://www.impulsobaires.com.ar/nota.php?id=57832 (in spanish)
     # 
     
    +# From Rodrigo Severo (2008-10-06):
    +# Here is some info available at a Gentoo bug related to TZ on Argentina's DST:
    +# ...
    +# ------- Comment #1 from [jmdocile]  2008-10-06 16:28 0000 -------
    +# Hi, there is a problem with timezone-data-2008e and maybe with
    +# timezone-data-2008f
    +# Argentinian law [Number] 25.155 is no longer valid.
    +# 
    +# http://www.infoleg.gov.ar/infolegInternet/anexos/60000-64999/60036/norma.htm
    +# 
    +# The new one is law [Number] 26.350
    +# 
    +# http://www.infoleg.gov.ar/infolegInternet/anexos/135000-139999/136191/norma.htm
    +# 
    +# So there is no summer time in Argentina for now.
    +
    +# From Mariano Absatz (2008-10-20):
    +# Decree 1693/2008 applies Law 26.350 for the summer 2008/2009 establishing DST in Argentina
    +# From 2008-10-19 until 2009-03-15
    +# 
    +# http://www.boletinoficial.gov.ar/Bora.Portal/CustomControls/PdfContent.aspx?fp=16102008&pi=3&pf=4&s=0&sec=01
    +# 
    +#
    +# Decree 1705/2008 excepting 12 Provinces from applying DST in the summer 2008/2009:
    +# Catamarca, La Rioja, Mendoza, Salta, San Juan, San Luis, La Pampa, Neuquen, Rio Negro, Chubut, Santa Cruz
    +# and Tierra del Fuego
    +# 
    +# http://www.boletinoficial.gov.ar/Bora.Portal/CustomControls/PdfContent.aspx?fp=17102008&pi=1&pf=1&s=0&sec=01
    +# 
    +#
    +# Press release 235 dated Saturday October 18th, from the Government of the Province of Jujuy saying
    +# it will not apply DST either (even when it was not included in Decree 1705/2008)
    +# 
    +# http://www.jujuy.gov.ar/index2/partes_prensa/18_10_08/235-181008.doc
    +# 
    +
     Rule	Arg	2007	only	-	Dec	30	0:00	1:00	S
     Rule	Arg	2008	max	-	Mar	Sun>=15	0:00	0	-
     Rule	Arg	2008	max	-	Oct	Sun>=15	0:00	1:00	S
    @@ -327,9 +363,8 @@
     			-4:00	Arg	AR%sT	2000 Mar  3
     			-3:00	Arg	AR%sT
     #
    -# Santa Fe (SF), Entre Rios (ER), Corrientes (CN), Misiones (MN), Chaco (CC),
    -# Formosa (FM), Salta (SA), Santiago del Estero (SE), Cordoba (CB),
    -# La Pampa (LP), Neuquen (NQ), Rio Negro (RN)
    +# Cordoba (CB), Santa Fe (SF), Entre Rios (ER), Corrientes (CN), Misiones (MN),
    +# Chaco (CC), Formosa (FM), Santiago del Estero (SE)
     #
     # Shanks & Pottenger also make the following claims, which we haven't verified:
     # - Formosa switched to -3:00 on 1991-01-07.
    @@ -348,6 +383,18 @@
     			-4:00	Arg	AR%sT	2000 Mar  3
     			-3:00	Arg	AR%sT
     #
    +# Salta (SA), La Pampa (LP), Neuquen (NQ), Rio Negro (RN)
    +Zone America/Argentina/Salta -4:21:40 - LMT	1894 Oct 31
    +			-4:16:48 -	CMT	1920 May
    +			-4:00	-	ART	1930 Dec
    +			-4:00	Arg	AR%sT	1969 Oct  5
    +			-3:00	Arg	AR%sT	1991 Mar  3
    +			-4:00	-	WART	1991 Oct 20
    +			-3:00	Arg	AR%sT	1999 Oct  3
    +			-4:00	Arg	AR%sT	2000 Mar  3
    +			-3:00	Arg	AR%sT	2008 Oct 18
    +			-3:00	-	ART
    +#
     # Tucuman (TM)
     Zone America/Argentina/Tucuman -4:20:52 - LMT	1894 Oct 31
     			-4:16:48 -	CMT	1920 May
    @@ -372,7 +419,8 @@
     			-4:00	Arg	AR%sT	2000 Mar  3
     			-3:00	-	ART	2004 Jun  1
     			-4:00	-	WART	2004 Jun 20
    -			-3:00	Arg	AR%sT
    +			-3:00	Arg	AR%sT	2008 Oct 18
    +			-3:00	-	ART
     #
     # San Juan (SJ)
     Zone America/Argentina/San_Juan -4:34:04 - LMT	1894 Oct 31
    @@ -385,7 +433,8 @@
     			-4:00	Arg	AR%sT	2000 Mar  3
     			-3:00	-	ART	2004 May 31
     			-4:00	-	WART	2004 Jul 25
    -			-3:00	Arg	AR%sT
    +			-3:00	Arg	AR%sT	2008 Oct 18
    +			-3:00	-	ART
     #
     # Jujuy (JY)
     Zone America/Argentina/Jujuy -4:21:12 -	LMT	1894 Oct 31
    @@ -399,7 +448,8 @@
     			-3:00	1:00	ARST	1992
     			-3:00	Arg	AR%sT	1999 Oct  3
     			-4:00	Arg	AR%sT	2000 Mar  3
    -			-3:00	Arg	AR%sT
    +			-3:00	Arg	AR%sT	2008 Oct 18
    +			-3:00	-	ART
     #
     # Catamarca (CT), Chubut (CH)
     Zone America/Argentina/Catamarca -4:23:08 - LMT	1894 Oct 31
    @@ -412,7 +462,8 @@
     			-4:00	Arg	AR%sT	2000 Mar  3
     			-3:00	-	ART	2004 Jun  1
     			-4:00	-	WART	2004 Jun 20
    -			-3:00	Arg	AR%sT
    +			-3:00	Arg	AR%sT	2008 Oct 18
    +			-3:00	-	ART
     #
     # Mendoza (MZ)
     Zone America/Argentina/Mendoza -4:35:16 - LMT	1894 Oct 31
    @@ -429,7 +480,8 @@
     			-4:00	Arg	AR%sT	2000 Mar  3
     			-3:00	-	ART	2004 May 23
     			-4:00	-	WART	2004 Sep 26
    -			-3:00	Arg	AR%sT
    +			-3:00	Arg	AR%sT	2008 Oct 18
    +			-3:00	-	ART
     #
     # San Luis (SL)
     Zone America/Argentina/San_Luis -4:25:24 - LMT	1894 Oct 31
    @@ -457,7 +509,8 @@
     			-4:00	Arg	AR%sT	2000 Mar  3
     			-3:00	-	ART	2004 Jun  1
     			-4:00	-	WART	2004 Jun 20
    -			-3:00	Arg	AR%sT
    +			-3:00	Arg	AR%sT	2008 Oct 18
    +			-3:00	-	ART
     #
     # Tierra del Fuego, Antartida e Islas del Atlantico Sur (TF)
     Zone America/Argentina/Ushuaia -4:33:12 - LMT 1894 Oct 31
    @@ -468,7 +521,8 @@
     			-4:00	Arg	AR%sT	2000 Mar  3
     			-3:00	-	ART	2004 May 30
     			-4:00	-	WART	2004 Jun 20
    -			-3:00	Arg	AR%sT
    +			-3:00	Arg	AR%sT	2008 Oct 18
    +			-3:00	-	ART
     
     # Aruba
     # Zone	NAME		GMTOFF	RULES	FORMAT	[UNTIL]
    
    Modified: haiku/trunk/src/data/etc/timezones/zone.tab
    ===================================================================
    --- haiku/trunk/src/data/etc/timezones/zone.tab	2009-01-17 18:05:49 UTC (rev 28925)
    +++ haiku/trunk/src/data/etc/timezones/zone.tab	2009-01-17 18:32:21 UTC (rev 28926)
    @@ -1,4 +1,4 @@
    -# @(#)zone.tab	8.18
    +# @(#)zone.tab	8.21
     #
     # TZ zone descriptions
     #
    @@ -42,14 +42,15 @@
     AQ	-6640+14001	Antarctica/DumontDUrville	Dumont-d'Urville Station, Terre Adelie
     AQ	-690022+0393524	Antarctica/Syowa	Syowa Station, E Ongul I
     AR	-3436-05827	America/Argentina/Buenos_Aires	Buenos Aires (BA, CF)
    -AR	-3124-06411	America/Argentina/Cordoba	most locations (CB, CC, CN, ER, FM, LP, MN, NQ, RN, SA, SE, SF)
    -AR	-3319-06621	America/Argentina/San_Luis	San Luis (SL)
    +AR	-3124-06411	America/Argentina/Cordoba	most locations (CB, CC, CN, ER, FM, MN, SE, SF)
    +AR	-2447-06525	America/Argentina/Salta	(SA, LP, NQ, RN)
     AR	-2411-06518	America/Argentina/Jujuy	Jujuy (JY)
     AR	-2649-06513	America/Argentina/Tucuman	Tucuman (TM)
     AR	-2828-06547	America/Argentina/Catamarca	Catamarca (CT), Chubut (CH)
     AR	-2926-06651	America/Argentina/La_Rioja	La Rioja (LR)
     AR	-3132-06831	America/Argentina/San_Juan	San Juan (SJ)
     AR	-3253-06849	America/Argentina/Mendoza	Mendoza (MZ)
    +AR	-3319-06621	America/Argentina/San_Luis	San Luis (SL)
     AR	-5138-06913	America/Argentina/Rio_Gallegos	Santa Cruz (SC)
     AR	-5448-06818	America/Argentina/Ushuaia	Tierra del Fuego (TF)
     AS	-1416-17042	Pacific/Pago_Pago
    @@ -293,7 +294,7 @@
     NO	+5955+01045	Europe/Oslo
     NP	+2743+08519	Asia/Katmandu
     NR	-0031+16655	Pacific/Nauru
    -NU	-1901+16955	Pacific/Niue
    +NU	-1901-16955	Pacific/Niue
     NZ	-3652+17446	Pacific/Auckland	most locations
     NZ	-4357-17633	Pacific/Chatham	Chatham Islands
     OM	+2336+05835	Asia/Muscat
    @@ -384,13 +385,13 @@
     US	+364947-0845057	America/Kentucky/Monticello	Eastern Time - Kentucky - Wayne County
     US	+394606-0860929	America/Indiana/Indianapolis	Eastern Time - Indiana - most locations
     US	+384038-0873143	America/Indiana/Vincennes	Eastern Time - Indiana - Daviess, Dubois, Knox & Martin Counties
    -US	+411745-0863730	America/Indiana/Knox	Eastern Time - Indiana - Starke County
     US	+410305-0863611	America/Indiana/Winamac	Eastern Time - Indiana - Pulaski County
     US	+382232-0862041	America/Indiana/Marengo	Eastern Time - Indiana - Crawford County
    +US	+382931-0871643	America/Indiana/Petersburg	Eastern Time - Indiana - Pike County
     US	+384452-0850402	America/Indiana/Vevay	Eastern Time - Indiana - Switzerland County
     US	+415100-0873900	America/Chicago	Central Time
     US	+375711-0864541	America/Indiana/Tell_City	Central Time - Indiana - Perry County
    -US	+382931-0871643	America/Indiana/Petersburg	Central Time - Indiana - Pike County
    +US	+411745-0863730	America/Indiana/Knox	Central Time - Indiana - Starke County
     US	+450628-0873651	America/Menominee	Central Time - Michigan - Dickinson, Gogebic, Iron & Menominee Counties
     US	+470659-1011757	America/North_Dakota/Center	Central Time - North Dakota - Oliver County
     US	+465042-1012439	America/North_Dakota/New_Salem	Central Time - North Dakota - Morton County (except Mandan area)
    
    
    
    From korli at mail.berlios.de  Sat Jan 17 19:43:11 2009
    From: korli at mail.berlios.de (korli at BerliOS)
    Date: Sat, 17 Jan 2009 19:43:11 +0100
    Subject: [Haiku-commits] r28927 - in haiku/trunk: headers/libs/png
    	src/libs/png
    Message-ID: <200901171843.n0HIhB8E012467@sheep.berlios.de>
    
    Author: korli
    Date: 2009-01-17 19:43:09 +0100 (Sat, 17 Jan 2009)
    New Revision: 28927
    ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28927&view=rev
    
    Modified:
       haiku/trunk/headers/libs/png/png.h
       haiku/trunk/headers/libs/png/pngconf.h
       haiku/trunk/src/libs/png/png.c
       haiku/trunk/src/libs/png/pngerror.c
       haiku/trunk/src/libs/png/pngget.c
       haiku/trunk/src/libs/png/pngread.c
       haiku/trunk/src/libs/png/pngrio.c
       haiku/trunk/src/libs/png/pngrtran.c
       haiku/trunk/src/libs/png/pngrutil.c
       haiku/trunk/src/libs/png/pngset.c
       haiku/trunk/src/libs/png/pngtrans.c
       haiku/trunk/src/libs/png/pngwrite.c
       haiku/trunk/src/libs/png/pngwtran.c
       haiku/trunk/src/libs/png/pngwutil.c
    Log:
    updated libpng to 1.2.34
    
    
    Modified: haiku/trunk/headers/libs/png/png.h
    ===================================================================
    --- haiku/trunk/headers/libs/png/png.h	2009-01-17 18:32:21 UTC (rev 28926)
    +++ haiku/trunk/headers/libs/png/png.h	2009-01-17 18:43:09 UTC (rev 28927)
    @@ -1,6 +1,6 @@
     /* png.h - header file for PNG reference library
      *
    - * libpng version 1.2.33 - October 31, 2008
    + * libpng version 1.2.34 - December 18, 2008
      * Copyright (c) 1998-2008 Glenn Randers-Pehrson
      * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
      * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
    @@ -8,7 +8,7 @@
      * Authors and maintainers:
      *  libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
      *  libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
    - *  libpng versions 0.97, January 1998, through 1.2.33 - October 31, 2008: Glenn
    + *  libpng versions 0.97, January 1998, through 1.2.34 - December 18, 2008: Glenn
      *  See also "Contributing Authors", below.
      *
      * Note about libpng version numbers:
    @@ -212,6 +212,11 @@
      *    1.0.41rc01              10    10041  10.so.0.41[.0]
      *    1.2.33                  13    10233  12.so.0.33[.0]
      *    1.0.41                  10    10041  10.so.0.41[.0]
    + *    1.2.34beta01-07         13    10234  12.so.0.34[.0]
    + *    1.0.42rc01              10    10042  10.so.0.42[.0]
    + *    1.2.34rc01              13    10234  12.so.0.34[.0]
    + *    1.0.42                  10    10042  10.so.0.42[.0]
    + *    1.2.34                  13    10234  12.so.0.34[.0]
      *
      *    Henceforth the source version will match the shared-library major
      *    and minor numbers; the shared-library major version number will be
    @@ -241,7 +246,7 @@
      * If you modify libpng you may insert additional notices immediately following
      * this sentence.
      *
    - * libpng versions 1.2.6, August 15, 2004, through 1.2.33, October 31, 2008, are
    + * libpng versions 1.2.6, August 15, 2004, through 1.2.34, December 18, 2008, are
      * Copyright (c) 2004, 2006-2008 Glenn Randers-Pehrson, and are
      * distributed according to the same disclaimer and license as libpng-1.2.5
      * with the following individual added to the list of Contributing Authors:
    @@ -353,13 +358,13 @@
      * Y2K compliance in libpng:
      * =========================
      *
    - *    October 31, 2008
    + *    December 18, 2008
      *
      *    Since the PNG Development group is an ad-hoc body, we can't make
      *    an official declaration.
      *
      *    This is your unofficial assurance that libpng from version 0.71 and
    - *    upward through 1.2.33 are Y2K compliant.  It is my belief that earlier
    + *    upward through 1.2.34 are Y2K compliant.  It is my belief that earlier
      *    versions were also Y2K compliant.
      *
      *    Libpng only has three year fields.  One is a 2-byte unsigned integer
    @@ -415,9 +420,9 @@
      */
     
     /* Version information for png.h - this should match the version in png.c */
    -#define PNG_LIBPNG_VER_STRING "1.2.33"
    +#define PNG_LIBPNG_VER_STRING "1.2.34"
     #define PNG_HEADER_VERSION_STRING \
    -   " libpng version 1.2.33 - October 31, 2008\n"
    +   " libpng version 1.2.34 - December 18, 2008\n"
     
     #define PNG_LIBPNG_VER_SONUM   0
     #define PNG_LIBPNG_VER_DLLNUM  13
    @@ -425,7 +430,7 @@
     /* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */
     #define PNG_LIBPNG_VER_MAJOR   1
     #define PNG_LIBPNG_VER_MINOR   2
    -#define PNG_LIBPNG_VER_RELEASE 33
    +#define PNG_LIBPNG_VER_RELEASE 34
     /* This should match the numeric part of the final component of
      * PNG_LIBPNG_VER_STRING, omitting any leading zero: */
     
    @@ -453,7 +458,7 @@
      * Versions 0.7 through 1.0.0 were in the range 0 to 100 here (only
      * version 1.0.0 was mis-numbered 100 instead of 10000).  From
      * version 1.0.1 it's    xxyyzz, where x=major, y=minor, z=release */
    -#define PNG_LIBPNG_VER 10233 /* 1.2.33 */
    +#define PNG_LIBPNG_VER 10234 /* 1.2.34 */
     
     #ifndef PNG_VERSION_INFO_ONLY
     /* include the compression library's header */
    @@ -1154,7 +1159,10 @@
     #define PNG_TRANSFORM_SWAP_ALPHA     0x0100    /* read and write */
     #define PNG_TRANSFORM_SWAP_ENDIAN    0x0200    /* read and write */
     #define PNG_TRANSFORM_INVERT_ALPHA   0x0400    /* read and write */
    -#define PNG_TRANSFORM_STRIP_FILLER   0x0800    /* WRITE only */
    +#define PNG_TRANSFORM_STRIP_FILLER   0x0800    /* WRITE only, deprecated */
    +/* Added to libpng-1.2.34 */
    +#define PNG_TRANSFORM_STRIP_FILLER_BEFORE 0x0800  /* WRITE only */
    +#define PNG_TRANSFORM_STRIP_FILLER_AFTER  0x1000  /* WRITE only */
     
     /* Flags for MNG supported features */
     #define PNG_FLAG_MNG_EMPTY_PLTE     0x01
    @@ -1474,7 +1482,7 @@
     /* This triggers a compiler error in png.c, if png.c and png.h
      * do not agree upon the version number.
      */
    -typedef png_structp version_1_2_33;
    +typedef png_structp version_1_2_34;
     
     typedef png_struct FAR * FAR * png_structpp;
     
    @@ -2526,33 +2534,80 @@
     #if !defined(PNG_DEBUG_FILE) && defined(_MSC_VER)
     #include 
     #if (PNG_DEBUG > 1)
    -#define png_debug(l,m)  _RPT0(_CRT_WARN,m)
    -#define png_debug1(l,m,p1)  _RPT1(_CRT_WARN,m,p1)
    -#define png_debug2(l,m,p1,p2) _RPT2(_CRT_WARN,m,p1,p2)
    +#ifndef _DEBUG
    +#  define _DEBUG
     #endif
    +#ifndef png_debug
    +#define png_debug(l,m)  _RPT0(_CRT_WARN,m PNG_STRING_NEWLINE)
    +#endif
    +#ifndef png_debug1
    +#define png_debug1(l,m,p1)  _RPT1(_CRT_WARN,m PNG_STRING_NEWLINE,p1)
    +#endif
    +#ifndef png_debug2
    +#define png_debug2(l,m,p1,p2) _RPT2(_CRT_WARN,m PNG_STRING_NEWLINE,p1,p2)
    +#endif
    +#endif
     #else /* PNG_DEBUG_FILE || !_MSC_VER */
     #ifndef PNG_DEBUG_FILE
     #define PNG_DEBUG_FILE stderr
     #endif /* PNG_DEBUG_FILE */
     #if (PNG_DEBUG > 1)
    +#ifndef png_debug
    +/* Note: ["%s"m PNG_STRING_NEWLINE] probably does not work on
    + * non-ISO compilers */
    +#ifdef __STDC__
     #define png_debug(l,m) \
     { \
          int num_tabs=l; \
    -     fprintf(PNG_DEBUG_FILE,"%s"m,(num_tabs==1 ? "\t" : \
    +     fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \
            (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":"")))); \
     }
    +#endif
    +#ifndef png_debug1
     #define png_debug1(l,m,p1) \
     { \
          int num_tabs=l; \
    -     fprintf(PNG_DEBUG_FILE,"%s"m,(num_tabs==1 ? "\t" : \
    +     fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \
            (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1); \
     }
    +#endif
    +#ifndef png_debug2
     #define png_debug2(l,m,p1,p2) \
     { \
          int num_tabs=l; \
    -     fprintf(PNG_DEBUG_FILE,"%s"m,(num_tabs==1 ? "\t" : \
    +     fprintf(PNG_DEBUG_FILE,"%s"m PNG_STRING_NEWLINE,(num_tabs==1 ? "\t" : \
            (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))),p1,p2); \
     }
    +#endif
    +#else /* __STDC __ */
    +#ifndef png_debug
    +#define png_debug(l,m) \
    +     int num_tabs=l; \
    +     char format[256]; \
    +     snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
    +       (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
    +       m,PNG_STRING_NEWLINE); \
    +     fprintf(PNG_DEBUG_FILE,format);
    +#endif
    +#ifndef png_debug1
    +#define png_debug1(l,m,p1) \
    +     int num_tabs=l; \
    +     char format[256]; \
    +     snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
    +       (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
    +       m,PNG_STRING_NEWLINE); \
    +     fprintf(PNG_DEBUG_FILE,format,p1);
    +#endif
    +#ifndef png_debug2
    +#define png_debug2(l,m,p1,p2) \
    +     int num_tabs=l; \
    +     char format[256]; \
    +     snprintf(format,256,"%s%s%s",(num_tabs==1 ? "\t" : \
    +       (num_tabs==2 ? "\t\t":(num_tabs>2 ? "\t\t\t":""))), \
    +       m,PNG_STRING_NEWLINE); \
    +     fprintf(PNG_DEBUG_FILE,format,p1,p2);
    +#endif
    +#endif /* __STDC __ */
     #endif /* (PNG_DEBUG > 1) */
     #endif /* _MSC_VER */
     #endif /* (PNG_DEBUG > 0) */
    @@ -3584,6 +3639,15 @@
     /* Read the chunk header (length + type name) */
     PNG_EXTERN png_uint_32 png_read_chunk_header PNGARG((png_structp png_ptr));
     
    +/* Added at libpng version 1.2.34 */
    +#if defined(PNG_cHRM_SUPPORTED)
    +PNG_EXTERN int png_check_cHRM_fixed  PNGARG((png_structp png_ptr,
    +   png_fixed_point int_white_x, png_fixed_point int_white_y,
    +   png_fixed_point int_red_x, png_fixed_point int_red_y, png_fixed_point
    +   int_green_x, png_fixed_point int_green_y, png_fixed_point int_blue_x,
    +   png_fixed_point int_blue_y));
    +#endif
    +
     /* Maintainer: Put new private prototypes here ^ and in libpngpf.3 */
     
     #endif /* PNG_INTERNAL */
    
    Modified: haiku/trunk/headers/libs/png/pngconf.h
    ===================================================================
    --- haiku/trunk/headers/libs/png/pngconf.h	2009-01-17 18:32:21 UTC (rev 28926)
    +++ haiku/trunk/headers/libs/png/pngconf.h	2009-01-17 18:43:09 UTC (rev 28927)
    @@ -1,7 +1,7 @@
     
     /* pngconf.h - machine configurable file for libpng
      *
    - * libpng version 1.2.33 - October 31, 2008
    + * libpng version 1.2.34 - December 18, 2008
      * For conditions of distribution and use, see copyright notice in png.h
      * Copyright (c) 1998-2008 Glenn Randers-Pehrson
      * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
    @@ -798,6 +798,12 @@
     #  define PNG_USER_HEIGHT_MAX 1000000L
     #endif
     
    +
    +/* Added at libpng-1.2.34 and 1.4.0 */
    +#ifndef PNG_STRING_NEWLINE
    +#define PNG_STRING_NEWLINE "\n"
    +#endif
    +
     /* These are currently experimental features, define them if you want */
     
     /* very little testing */
    
    Modified: haiku/trunk/src/libs/png/png.c
    ===================================================================
    --- haiku/trunk/src/libs/png/png.c	2009-01-17 18:32:21 UTC (rev 28926)
    +++ haiku/trunk/src/libs/png/png.c	2009-01-17 18:43:09 UTC (rev 28927)
    @@ -1,7 +1,7 @@
     
     /* png.c - location for general purpose libpng functions
      *
    - * Last changed in libpng 1.2.30 [August 15, 2008]
    + * Last changed in libpng 1.2.34 [December 18, 2008]
      * For conditions of distribution and use, see copyright notice in png.h
      * Copyright (c) 1998-2008 Glenn Randers-Pehrson
      * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
    @@ -13,7 +13,7 @@
     #include "png.h"
     
     /* Generate a compiler error if there is an old png.h in the search path. */
    -typedef version_1_2_33 Your_png_h_is_not_version_1_2_33;
    +typedef version_1_2_34 Your_png_h_is_not_version_1_2_34;
     
     /* Version information for C files.  This had better match the version
      * string defined in png.h.  */
    @@ -93,7 +93,7 @@
     png_set_sig_bytes(png_structp png_ptr, int num_bytes)
     {
        if (png_ptr == NULL) return;
    -   png_debug(1, "in png_set_sig_bytes\n");
    +   png_debug(1, "in png_set_sig_bytes");
        if (num_bytes > 8)
           png_error(png_ptr, "Too many bytes for PNG signature.");
     
    @@ -240,7 +240,7 @@
     {
        png_infop info_ptr;
     
    -   png_debug(1, "in png_create_info_struct\n");
    +   png_debug(1, "in png_create_info_struct");
        if (png_ptr == NULL) return (NULL);
     #ifdef PNG_USER_MEM_SUPPORTED
        info_ptr = (png_infop)png_create_struct_2(PNG_STRUCT_INFO,
    @@ -265,7 +265,7 @@
        png_infop info_ptr = NULL;
        if (png_ptr == NULL) return;
     
    -   png_debug(1, "in png_destroy_info_struct\n");
    +   png_debug(1, "in png_destroy_info_struct");
        if (info_ptr_ptr != NULL)
           info_ptr = *info_ptr_ptr;
     
    @@ -304,7 +304,7 @@
     
        if (info_ptr == NULL) return;
     
    -   png_debug(1, "in png_info_init_3\n");
    +   png_debug(1, "in png_info_init_3");
     
        if (png_sizeof(png_info) > png_info_struct_size)
          {
    @@ -322,7 +322,7 @@
     png_data_freer(png_structp png_ptr, png_infop info_ptr,
        int freer, png_uint_32 mask)
     {
    -   png_debug(1, "in png_data_freer\n");
    +   png_debug(1, "in png_data_freer");
        if (png_ptr == NULL || info_ptr == NULL)
           return;
        if (freer == PNG_DESTROY_WILL_FREE_DATA)
    @@ -339,7 +339,7 @@
     png_free_data(png_structp png_ptr, png_infop info_ptr, png_uint_32 mask,
        int num)
     {
    -   png_debug(1, "in png_free_data\n");
    +   png_debug(1, "in png_free_data");
        if (png_ptr == NULL || info_ptr == NULL)
           return;
     
    @@ -593,7 +593,7 @@
     void /* PRIVATE */
     png_info_destroy(png_structp png_ptr, png_infop info_ptr)
     {
    -   png_debug(1, "in png_info_destroy\n");
    +   png_debug(1, "in png_info_destroy");
     
        png_free_data(png_ptr, info_ptr, PNG_FREE_ALL, -1);
     
    @@ -632,7 +632,7 @@
     void PNGAPI
     png_init_io(png_structp png_ptr, png_FILE_p fp)
     {
    -   png_debug(1, "in png_init_io\n");
    +   png_debug(1, "in png_init_io");
        if (png_ptr == NULL) return;
        png_ptr->io_ptr = (png_voidp)fp;
     }
    @@ -694,7 +694,7 @@
     png_get_copyright(png_structp png_ptr)
     {
        png_ptr = png_ptr;  /* silence compiler warning about unused png_ptr */
    -   return ((png_charp) "\n libpng version 1.2.33 - October 31, 2008\n\
    +   return ((png_charp) "\n libpng version 1.2.34 - December 18, 2008\n\
        Copyright (c) 1998-2008 Glenn Randers-Pehrson\n\
        Copyright (c) 1996-1997 Andreas Dilger\n\
        Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\n");
    @@ -796,4 +796,116 @@
       return ((png_size_t)size);
     }
     #endif /* PNG_SIZE_T */
    +
    +/* Added at libpng version 1.2.34 and 1.4.0 (moved from pngset.c) */
    +#if defined(PNG_cHRM_SUPPORTED)
    +#if !defined(PNG_NO_CHECK_cHRM)
    +/*
    + Multiply two 32-bit numbers, V1 and V2, using 32-bit
    + arithmetic, to produce a 64 bit result in the HI/LO words.
    +
    +          A B
    +        x C D
    +       ------
    +      AD || BD
    +AC || CB || 0
    +
    + where A and B are the high and low 16-bit words of V1,
    + C and D are the 16-bit words of V2, AD is the product of
    + A and D, and X || Y is (X << 16) + Y.
    +*/
    +
    +void png_64bit_product (long v1, long v2, unsigned long *hi_product,
    +   unsigned long *lo_product)
    +{
    + int a, b, c, d;
    + long lo, hi, x, y;
    +
    + a = (v1 >> 16) & 0xffff;
    + b = v1 & 0xffff;
    + c = (v2 >> 16) & 0xffff;
    + d = v2 & 0xffff;
    +
    + lo = b * d;                   /* BD */
    + x = a * d + c * b;            /* AD + CB */
    + y = ((lo >> 16) & 0xffff) + x;
    +
    + lo = (lo & 0xffff) | ((y & 0xffff) << 16);
    + hi = (y >> 16) & 0xffff;
    +
    + hi += a * c;                  /* AC */
    +
    + *hi_product = (unsigned long)hi;
    + *lo_product = (unsigned long)lo;
    +}
    +int /* private */
    +png_check_cHRM_fixed(png_structp png_ptr,
    +   png_fixed_point white_x, png_fixed_point white_y, png_fixed_point red_x,
    +   png_fixed_point red_y, png_fixed_point green_x, png_fixed_point green_y,
    +   png_fixed_point blue_x, png_fixed_point blue_y)
    +{
    +   int ret = 1;
    +   unsigned long xy_hi,xy_lo,yx_hi,yx_lo;
    +
    +   png_debug(1, "in function png_check_cHRM_fixed");
    +   if (png_ptr == NULL)
    +      return 0;
    +
    +   if (white_x < 0 || white_y <= 0 ||
    +         red_x < 0 ||   red_y <  0 ||
    +       green_x < 0 || green_y <  0 ||
    +        blue_x < 0 ||  blue_y <  0)
    +   {
    +      png_warning(png_ptr,
    +        "Ignoring attempt to set negative chromaticity value");
    +      ret = 0;
    +   }
    +   if (white_x > (png_fixed_point) PNG_UINT_31_MAX ||
    +       white_y > (png_fixed_point) PNG_UINT_31_MAX ||
    +         red_x > (png_fixed_point) PNG_UINT_31_MAX ||
    +         red_y > (png_fixed_point) PNG_UINT_31_MAX ||
    +       green_x > (png_fixed_point) PNG_UINT_31_MAX ||
    +       green_y > (png_fixed_point) PNG_UINT_31_MAX ||
    +        blue_x > (png_fixed_point) PNG_UINT_31_MAX ||
    +        blue_y > (png_fixed_point) PNG_UINT_31_MAX )
    +   {
    +      png_warning(png_ptr,
    +        "Ignoring attempt to set chromaticity value exceeding 21474.83");
    +      ret = 0;
    +   }
    +   if (white_x > 100000L - white_y)
    +   {
    +      png_warning(png_ptr, "Invalid cHRM white point");
    +      ret = 0;
    +   }
    +   if (red_x > 100000L - red_y)
    +   {
    +      png_warning(png_ptr, "Invalid cHRM red point");
    +      ret = 0;
    +   }
    +   if (green_x > 100000L - green_y)
    +   {
    +      png_warning(png_ptr, "Invalid cHRM green point");
    +      ret = 0;
    +   }
    +   if (blue_x > 100000L - blue_y)
    +   {
    +      png_warning(png_ptr, "Invalid cHRM blue point");
    +      ret = 0;
    +   }
    +
    +   png_64bit_product(green_x - red_x, blue_y - red_y, &xy_hi, &xy_lo);
    +   png_64bit_product(green_y - red_y, blue_x - red_x, &yx_hi, &yx_lo);
    +
    +   if (xy_hi == yx_hi && xy_lo == yx_lo)
    +   {
    +      png_warning(png_ptr,
    +         "Ignoring attempt to set cHRM RGB triangle with zero area");
    +      ret = 0;
    +   }
    +
    +   return ret;
    +}
    +#endif /* NO_PNG_CHECK_cHRM */
    +#endif /* PNG_cHRM_SUPPORTED */
     #endif /* defined(PNG_READ_SUPPORTED) || defined(PNG_WRITE_SUPPORTED) */
    
    Modified: haiku/trunk/src/libs/png/pngerror.c
    ===================================================================
    --- haiku/trunk/src/libs/png/pngerror.c	2009-01-17 18:32:21 UTC (rev 28926)
    +++ haiku/trunk/src/libs/png/pngerror.c	2009-01-17 18:43:09 UTC (rev 28927)
    @@ -1,7 +1,7 @@
     
     /* pngerror.c - stub functions for i/o and memory allocation
      *
    - * Last changed in libpng 1.2.30 [August 15, 2008]
    + * Last changed in libpng 1.2.34 [December 18, 2008]
      * For conditions of distribution and use, see copyright notice in png.h
      * Copyright (c) 1998-2008 Glenn Randers-Pehrson
      * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
    @@ -116,9 +116,9 @@
                       break;
            }
          }
    -     if (png_ptr != NULL && png_ptr->warning_fn != NULL)
    -        (*(png_ptr->warning_fn))(png_ptr, warning_message + offset);
        }
    +   if (png_ptr != NULL && png_ptr->warning_fn != NULL)
    +      (*(png_ptr->warning_fn))(png_ptr, warning_message + offset);
        else
           png_default_warning(png_ptr, warning_message + offset);
     }
    
    Modified: haiku/trunk/src/libs/png/pngget.c
    ===================================================================
    --- haiku/trunk/src/libs/png/pngget.c	2009-01-17 18:32:21 UTC (rev 28926)
    +++ haiku/trunk/src/libs/png/pngget.c	2009-01-17 18:43:09 UTC (rev 28927)
    @@ -120,7 +120,7 @@
     #if defined(PNG_pHYs_SUPPORTED)
        if (info_ptr->valid & PNG_INFO_pHYs)
        {
    -      png_debug1(1, "in %s retrieval function\n", "png_get_x_pixels_per_meter");
    +      png_debug1(1, "in %s retrieval function", "png_get_x_pixels_per_meter");
           if (info_ptr->phys_unit_type != PNG_RESOLUTION_METER)
               return (0);
           else return (info_ptr->x_pixels_per_unit);
    @@ -138,7 +138,7 @@
     #if defined(PNG_pHYs_SUPPORTED)
        if (info_ptr->valid & PNG_INFO_pHYs)
        {
    -      png_debug1(1, "in %s retrieval function\n", "png_get_y_pixels_per_meter");
    +      png_debug1(1, "in %s retrieval function", "png_get_y_pixels_per_meter");
           if (info_ptr->phys_unit_type != PNG_RESOLUTION_METER)
               return (0);
           else return (info_ptr->y_pixels_per_unit);
    @@ -156,7 +156,7 @@
     #if defined(PNG_pHYs_SUPPORTED)
        if (info_ptr->valid & PNG_INFO_pHYs)
        {
    -      png_debug1(1, "in %s retrieval function\n", "png_get_pixels_per_meter");
    +      png_debug1(1, "in %s retrieval function", "png_get_pixels_per_meter");
           if (info_ptr->phys_unit_type != PNG_RESOLUTION_METER ||
              info_ptr->x_pixels_per_unit != info_ptr->y_pixels_per_unit)
               return (0);
    @@ -176,7 +176,7 @@
     #if defined(PNG_pHYs_SUPPORTED)
        if (info_ptr->valid & PNG_INFO_pHYs)
        {
    -      png_debug1(1, "in %s retrieval function\n", "png_get_aspect_ratio");
    +      png_debug1(1, "in %s retrieval function", "png_get_aspect_ratio");
           if (info_ptr->x_pixels_per_unit == 0)
              return ((float)0.0);
           else
    @@ -197,7 +197,7 @@
     #if defined(PNG_oFFs_SUPPORTED)
        if (info_ptr->valid & PNG_INFO_oFFs)
        {
    -      png_debug1(1, "in %s retrieval function\n", "png_get_x_offset_microns");
    +      png_debug1(1, "in %s retrieval function", "png_get_x_offset_microns");
           if (info_ptr->offset_unit_type != PNG_OFFSET_MICROMETER)
               return (0);
           else return (info_ptr->x_offset);
    @@ -215,7 +215,7 @@
     #if defined(PNG_oFFs_SUPPORTED)
        if (info_ptr->valid & PNG_INFO_oFFs)
        {
    -      png_debug1(1, "in %s retrieval function\n", "png_get_y_offset_microns");
    +      png_debug1(1, "in %s retrieval function", "png_get_y_offset_microns");
           if (info_ptr->offset_unit_type != PNG_OFFSET_MICROMETER)
               return (0);
           else return (info_ptr->y_offset);
    @@ -233,7 +233,7 @@
     #if defined(PNG_oFFs_SUPPORTED)
        if (info_ptr->valid & PNG_INFO_oFFs)
        {
    -      png_debug1(1, "in %s retrieval function\n", "png_get_x_offset_microns");
    +      png_debug1(1, "in %s retrieval function", "png_get_x_offset_microns");
           if (info_ptr->offset_unit_type != PNG_OFFSET_PIXEL)
               return (0);
           else return (info_ptr->x_offset);
    @@ -251,7 +251,7 @@
     #if defined(PNG_oFFs_SUPPORTED)
        if (info_ptr->valid & PNG_INFO_oFFs)
        {
    -      png_debug1(1, "in %s retrieval function\n", "png_get_y_offset_microns");
    +      png_debug1(1, "in %s retrieval function", "png_get_y_offset_microns");
           if (info_ptr->offset_unit_type != PNG_OFFSET_PIXEL)
               return (0);
           else return (info_ptr->y_offset);
    @@ -307,7 +307,7 @@
     
        if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_pHYs))
        {
    -      png_debug1(1, "in %s retrieval function\n", "pHYs");
    +      png_debug1(1, "in %s retrieval function", "pHYs");
           if (res_x != NULL)
           {
              *res_x = info_ptr->x_pixels_per_unit;
    @@ -364,7 +364,7 @@
        if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_bKGD)
           && background != NULL)
        {
    -      png_debug1(1, "in %s retrieval function\n", "bKGD");
    +      png_debug1(1, "in %s retrieval function", "bKGD");
           *background = &(info_ptr->background);
           return (PNG_INFO_bKGD);
        }
    @@ -381,7 +381,7 @@
     {
        if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_cHRM))
        {
    -      png_debug1(1, "in %s retrieval function\n", "cHRM");
    +      png_debug1(1, "in %s retrieval function", "cHRM");
           if (white_x != NULL)
              *white_x = (double)info_ptr->x_white;
           if (white_y != NULL)
    @@ -412,7 +412,7 @@
     {
        if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_cHRM))
        {
    -      png_debug1(1, "in %s retrieval function\n", "cHRM");
    +      png_debug1(1, "in %s retrieval function", "cHRM");
           if (white_x != NULL)
              *white_x = info_ptr->int_x_white;
           if (white_y != NULL)
    @@ -444,7 +444,7 @@
        if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_gAMA)
           && file_gamma != NULL)
        {
    -      png_debug1(1, "in %s retrieval function\n", "gAMA");
    +      png_debug1(1, "in %s retrieval function", "gAMA");
           *file_gamma = (double)info_ptr->gamma;
           return (PNG_INFO_gAMA);
        }
    @@ -459,7 +459,7 @@
        if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_gAMA)
           && int_file_gamma != NULL)
        {
    -      png_debug1(1, "in %s retrieval function\n", "gAMA");
    +      png_debug1(1, "in %s retrieval function", "gAMA");
           *int_file_gamma = info_ptr->int_gamma;
           return (PNG_INFO_gAMA);
        }
    @@ -475,7 +475,7 @@
        if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_sRGB)
           && file_srgb_intent != NULL)
        {
    -      png_debug1(1, "in %s retrieval function\n", "sRGB");
    +      png_debug1(1, "in %s retrieval function", "sRGB");
           *file_srgb_intent = (int)info_ptr->srgb_intent;
           return (PNG_INFO_sRGB);
        }
    @@ -492,7 +492,7 @@
        if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_iCCP)
           && name != NULL && profile != NULL && proflen != NULL)
        {
    -      png_debug1(1, "in %s retrieval function\n", "iCCP");
    +      png_debug1(1, "in %s retrieval function", "iCCP");
           *name = info_ptr->iccp_name;
           *profile = info_ptr->iccp_profile;
           /* compression_type is a dummy so the API won't have to change
    @@ -526,7 +526,7 @@
        if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_hIST)
           && hist != NULL)
        {
    -      png_debug1(1, "in %s retrieval function\n", "hIST");
    +      png_debug1(1, "in %s retrieval function", "hIST");
           *hist = info_ptr->hist;
           return (PNG_INFO_hIST);
        }
    @@ -544,7 +544,7 @@
        if (png_ptr != NULL && info_ptr != NULL && width != NULL && height != NULL &&
           bit_depth != NULL && color_type != NULL)
        {
    -      png_debug1(1, "in %s retrieval function\n", "IHDR");
    +      png_debug1(1, "in %s retrieval function", "IHDR");
           *width = info_ptr->width;
           *height = info_ptr->height;
           *bit_depth = info_ptr->bit_depth;
    @@ -588,7 +588,7 @@
        if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_oFFs)
           && offset_x != NULL && offset_y != NULL && unit_type != NULL)
        {
    -      png_debug1(1, "in %s retrieval function\n", "oFFs");
    +      png_debug1(1, "in %s retrieval function", "oFFs");
           *offset_x = info_ptr->x_offset;
           *offset_y = info_ptr->y_offset;
           *unit_type = (int)info_ptr->offset_unit_type;
    @@ -608,7 +608,7 @@
           && purpose != NULL && X0 != NULL && X1 != NULL && type != NULL &&
           nparams != NULL && units != NULL && params != NULL)
        {
    -      png_debug1(1, "in %s retrieval function\n", "pCAL");
    +      png_debug1(1, "in %s retrieval function", "pCAL");
           *purpose = info_ptr->pcal_purpose;
           *X0 = info_ptr->pcal_X0;
           *X1 = info_ptr->pcal_X1;
    @@ -668,7 +668,7 @@
        if (png_ptr != NULL && info_ptr != NULL &&
           (info_ptr->valid & PNG_INFO_pHYs))
        {
    -      png_debug1(1, "in %s retrieval function\n", "pHYs");
    +      png_debug1(1, "in %s retrieval function", "pHYs");
           if (res_x != NULL)
           {
              *res_x = info_ptr->x_pixels_per_unit;
    @@ -696,10 +696,10 @@
        if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_PLTE)
            && palette != NULL)
        {
    -      png_debug1(1, "in %s retrieval function\n", "PLTE");
    +      png_debug1(1, "in %s retrieval function", "PLTE");
           *palette = info_ptr->palette;
           *num_palette = info_ptr->num_palette;
    -      png_debug1(3, "num_palette = %d\n", *num_palette);
    +      png_debug1(3, "num_palette = %d", *num_palette);
           return (PNG_INFO_PLTE);
        }
        return (0);
    @@ -712,7 +712,7 @@
        if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_sBIT)
           && sig_bit != NULL)
        {
    -      png_debug1(1, "in %s retrieval function\n", "sBIT");
    +      png_debug1(1, "in %s retrieval function", "sBIT");
           *sig_bit = &(info_ptr->sig_bit);
           return (PNG_INFO_sBIT);
        }
    @@ -727,7 +727,7 @@
     {
        if (png_ptr != NULL && info_ptr != NULL && info_ptr->num_text > 0)
        {
    -      png_debug1(1, "in %s retrieval function\n",
    +      png_debug1(1, "in %s retrieval function",
              (png_ptr->chunk_name[0] == '\0' ? "text"
                  : (png_const_charp)png_ptr->chunk_name));
           if (text_ptr != NULL)
    @@ -749,7 +749,7 @@
        if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_tIME)
            && mod_time != NULL)
        {
    -      png_debug1(1, "in %s retrieval function\n", "tIME");
    +      png_debug1(1, "in %s retrieval function", "tIME");
           *mod_time = &(info_ptr->mod_time);
           return (PNG_INFO_tIME);
        }
    @@ -765,7 +765,7 @@
        png_uint_32 retval = 0;
        if (png_ptr != NULL && info_ptr != NULL && (info_ptr->valid & PNG_INFO_tRNS))
        {
    -      png_debug1(1, "in %s retrieval function\n", "tRNS");
    +      png_debug1(1, "in %s retrieval function", "tRNS");
           if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE)
           {
               if (trans != NULL)
    
    Modified: haiku/trunk/src/libs/png/pngread.c
    ===================================================================
    --- haiku/trunk/src/libs/png/pngread.c	2009-01-17 18:32:21 UTC (rev 28926)
    +++ haiku/trunk/src/libs/png/pngread.c	2009-01-17 18:43:09 UTC (rev 28927)
    @@ -47,7 +47,7 @@
     
        int i;
     
    -   png_debug(1, "in png_create_read_struct\n");
    +   png_debug(1, "in png_create_read_struct");
     #ifdef PNG_USER_MEM_SUPPORTED
        png_ptr = (png_structp)png_create_struct_2(PNG_STRUCT_PNG,
           (png_malloc_ptr)malloc_fn, (png_voidp)mem_ptr);
    @@ -263,7 +263,7 @@
          }
        } while (png_libpng_ver[i++]);
     
    -   png_debug(1, "in png_read_init_3\n");
    +   png_debug(1, "in png_read_init_3");
     
     #ifdef PNG_SETJMP_SUPPORTED
        /* save jump buffer and error functions */
    @@ -327,7 +327,7 @@
     png_read_info(png_structp png_ptr, png_infop info_ptr)
     {
        if (png_ptr == NULL || info_ptr == NULL) return;
    -   png_debug(1, "in png_read_info\n");
    +   png_debug(1, "in png_read_info");
        /* If we haven't checked all of the PNG signature bytes, do so now. */
        if (png_ptr->sig_bytes < 8)
        {
    @@ -533,7 +533,7 @@
     void PNGAPI
     png_read_update_info(png_structp png_ptr, png_infop info_ptr)
     {
    -   png_debug(1, "in png_read_update_info\n");
    +   png_debug(1, "in png_read_update_info");
        if (png_ptr == NULL) return;
        if (!(png_ptr->flags & PNG_FLAG_ROW_INIT))
           png_read_start_row(png_ptr);
    @@ -552,7 +552,7 @@
     void PNGAPI
     png_start_read_image(png_structp png_ptr)
     {
    -   png_debug(1, "in png_start_read_image\n");
    +   png_debug(1, "in png_start_read_image");
        if (png_ptr == NULL) return;
        if (!(png_ptr->flags & PNG_FLAG_ROW_INIT))
           png_read_start_row(png_ptr);
    @@ -571,7 +571,7 @@
     #endif
        int ret;
        if (png_ptr == NULL) return;
    -   png_debug2(1, "in png_read_row (row %lu, pass %d)\n",
    +   png_debug2(1, "in png_read_row (row %lu, pass %d)",
           png_ptr->row_number, png_ptr->pass);
        if (!(png_ptr->flags & PNG_FLAG_ROW_INIT))
           png_read_start_row(png_ptr);
    @@ -822,7 +822,7 @@
        png_bytepp rp;
        png_bytepp dp;
     
    -   png_debug(1, "in png_read_rows\n");
    +   png_debug(1, "in png_read_rows");
        if (png_ptr == NULL) return;
        rp = row;
        dp = display_row;
    @@ -871,7 +871,7 @@
        int pass, j;
        png_bytepp rp;
     
    -   png_debug(1, "in png_read_image\n");
    +   png_debug(1, "in png_read_image");
        if (png_ptr == NULL) return;
     
     #ifdef PNG_READ_INTERLACING_SUPPORTED
    @@ -907,7 +907,7 @@
     void PNGAPI
     png_read_end(png_structp png_ptr, png_infop info_ptr)
     {
    -   png_debug(1, "in png_read_end\n");
    +   png_debug(1, "in png_read_end");
        if (png_ptr == NULL) return;
        png_crc_finish(png_ptr, 0); /* Finish off CRC from last IDAT chunk */
     
    @@ -1087,7 +1087,7 @@
        png_voidp mem_ptr = NULL;
     #endif
     
    -   png_debug(1, "in png_destroy_read_struct\n");
    +   png_debug(1, "in png_destroy_read_struct");
        if (png_ptr_ptr != NULL)
           png_ptr = *png_ptr_ptr;
        if (png_ptr == NULL)
    @@ -1161,7 +1161,7 @@
        png_free_ptr free_fn;
     #endif
     
    -   png_debug(1, "in png_read_destroy\n");
    +   png_debug(1, "in png_read_destroy");
        if (info_ptr != NULL)
           png_info_destroy(png_ptr, info_ptr);
     
    
    Modified: haiku/trunk/src/libs/png/pngrio.c
    ===================================================================
    --- haiku/trunk/src/libs/png/pngrio.c	2009-01-17 18:32:21 UTC (rev 28926)
    +++ haiku/trunk/src/libs/png/pngrio.c	2009-01-17 18:43:09 UTC (rev 28927)
    @@ -27,7 +27,7 @@
     void /* PRIVATE */
     png_read_data(png_structp png_ptr, png_bytep data, png_size_t length)
     {
    -   png_debug1(4, "reading %d bytes\n", (int)length);
    +   png_debug1(4, "reading %d bytes", (int)length);
        if (png_ptr->read_data_fn != NULL)
           (*(png_ptr->read_data_fn))(png_ptr, data, length);
        else
    
    Modified: haiku/trunk/src/libs/png/pngrtran.c
    ===================================================================
    --- haiku/trunk/src/libs/png/pngrtran.c	2009-01-17 18:32:21 UTC (rev 28926)
    +++ haiku/trunk/src/libs/png/pngrtran.c	2009-01-17 18:43:09 UTC (rev 28927)
    @@ -21,7 +21,7 @@
     void PNGAPI
     png_set_crc_action(png_structp png_ptr, int crit_action, int ancil_action)
     {
    -   png_debug(1, "in png_set_crc_action\n");
    +   png_debug(1, "in png_set_crc_action");
        /* Tell libpng how we react to CRC errors in critical chunks */
        if (png_ptr == NULL) return;
        switch (crit_action)
    @@ -80,7 +80,7 @@
        png_color_16p background_color, int background_gamma_code,
        int need_expand, double background_gamma)
     {
    -   png_debug(1, "in png_set_background\n");
    +   png_debug(1, "in png_set_background");
        if (png_ptr == NULL) return;
        if (background_gamma_code == PNG_BACKGROUND_GAMMA_UNKNOWN)
        {
    @@ -102,7 +102,7 @@
     void PNGAPI
     png_set_strip_16(png_structp png_ptr)
     {
    -   png_debug(1, "in png_set_strip_16\n");
    +   png_debug(1, "in png_set_strip_16");
        if (png_ptr == NULL) return;
        png_ptr->transformations |= PNG_16_TO_8;
     }
    @@ -112,7 +112,7 @@
     void PNGAPI
     png_set_strip_alpha(png_structp png_ptr)
     {
    -   png_debug(1, "in png_set_strip_alpha\n");
    +   png_debug(1, "in png_set_strip_alpha");
        if (png_ptr == NULL) return;
        png_ptr->flags |= PNG_FLAG_STRIP_ALPHA;
     }
    @@ -142,7 +142,7 @@
        int num_palette, int maximum_colors, png_uint_16p histogram,
        int full_dither)
     {
    -   png_debug(1, "in png_set_dither\n");
    +   png_debug(1, "in png_set_dither");
        if (png_ptr == NULL) return;
        png_ptr->transformations |= PNG_DITHER;
     
    @@ -526,7 +526,7 @@
     void PNGAPI
     png_set_gamma(png_structp png_ptr, double scrn_gamma, double file_gamma)
     {
    -   png_debug(1, "in png_set_gamma\n");
    +   png_debug(1, "in png_set_gamma");
        if (png_ptr == NULL) return;
        if ((fabs(scrn_gamma * file_gamma - 1.0) > PNG_GAMMA_THRESHOLD) ||
            (png_ptr->color_type & PNG_COLOR_MASK_ALPHA) ||
    @@ -545,7 +545,7 @@
     void PNGAPI
     png_set_expand(png_structp png_ptr)
     {
    -   png_debug(1, "in png_set_expand\n");
    +   png_debug(1, "in png_set_expand");
        if (png_ptr == NULL) return;
        png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS);
        png_ptr->flags &= ~PNG_FLAG_ROW_INIT;
    @@ -572,7 +572,7 @@
     void PNGAPI
     png_set_palette_to_rgb(png_structp png_ptr)
     {
    -   png_debug(1, "in png_set_palette_to_rgb\n");
    +   png_debug(1, "in png_set_palette_to_rgb");
        if (png_ptr == NULL) return;
        png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS);
        png_ptr->flags &= ~PNG_FLAG_ROW_INIT;
    @@ -583,7 +583,7 @@
     void PNGAPI
     png_set_expand_gray_1_2_4_to_8(png_structp png_ptr)
     {
    -   png_debug(1, "in png_set_expand_gray_1_2_4_to_8\n");
    +   png_debug(1, "in png_set_expand_gray_1_2_4_to_8");
        if (png_ptr == NULL) return;
        png_ptr->transformations |= PNG_EXPAND;
        png_ptr->flags &= ~PNG_FLAG_ROW_INIT;
    @@ -596,7 +596,7 @@
     void PNGAPI
     png_set_gray_1_2_4_to_8(png_structp png_ptr)
     {
    -   png_debug(1, "in png_set_gray_1_2_4_to_8\n");
    +   png_debug(1, "in png_set_gray_1_2_4_to_8");
        if (png_ptr == NULL) return;
        png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS);
     }
    @@ -607,7 +607,7 @@
     void PNGAPI
     png_set_tRNS_to_alpha(png_structp png_ptr)
     {
    -   png_debug(1, "in png_set_tRNS_to_alpha\n");
    +   png_debug(1, "in png_set_tRNS_to_alpha");
        png_ptr->transformations |= (PNG_EXPAND | PNG_EXPAND_tRNS);
        png_ptr->flags &= ~PNG_FLAG_ROW_INIT;
     }
    @@ -617,7 +617,7 @@
     void PNGAPI
     png_set_gray_to_rgb(png_structp png_ptr)
     {
    -   png_debug(1, "in png_set_gray_to_rgb\n");
    +   png_debug(1, "in png_set_gray_to_rgb");
        png_ptr->transformations |= PNG_GRAY_TO_RGB;
        png_ptr->flags &= ~PNG_FLAG_ROW_INIT;
     }
    @@ -644,7 +644,7 @@
     png_set_rgb_to_gray_fixed(png_structp png_ptr, int error_action,
        png_fixed_point red, png_fixed_point green)
     {
    -   png_debug(1, "in png_set_rgb_to_gray\n");
    +   png_debug(1, "in png_set_rgb_to_gray");
        if (png_ptr == NULL) return;
        switch(error_action)
        {
    @@ -697,7 +697,7 @@
     png_set_read_user_transform_fn(png_structp png_ptr, png_user_transform_ptr
        read_user_transform_fn)
     {
    -   png_debug(1, "in png_set_read_user_transform_fn\n");
    +   png_debug(1, "in png_set_read_user_transform_fn");
        if (png_ptr == NULL) return;
     #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
        png_ptr->transformations |= PNG_USER_TRANSFORM;
    @@ -717,7 +717,7 @@
     void /* PRIVATE */
     png_init_read_transformations(png_structp png_ptr)
     {
    -   png_debug(1, "in png_init_read_transformations\n");
    +   png_debug(1, "in png_init_read_transformations");
     #if defined(PNG_USELESS_TESTS_SUPPORTED)
        if (png_ptr != NULL)
     #endif
    @@ -1124,7 +1124,7 @@
     void /* PRIVATE */
     png_read_transform_info(png_structp png_ptr, png_infop info_ptr)
     {
    -   png_debug(1, "in png_read_transform_info\n");
    +   png_debug(1, "in png_read_transform_info");
     #if defined(PNG_READ_EXPAND_SUPPORTED)
        if (png_ptr->transformations & PNG_EXPAND)
        {
    @@ -1268,7 +1268,7 @@
     void /* PRIVATE */
     png_do_read_transformations(png_structp png_ptr)
     {
    
    [... truncated: 2103 lines follow ...]
    
    
    From bga at mail.berlios.de  Sat Jan 17 22:28:11 2009
    From: bga at mail.berlios.de (bga at BerliOS)
    Date: Sat, 17 Jan 2009 22:28:11 +0100
    Subject: [Haiku-commits] r28928 - in haiku/trunk: headers/os/net
    	src/kits/network/libnetapi
    Message-ID: <200901172128.n0HLSB9F025649@sheep.berlios.de>
    
    Author: bga
    Date: 2009-01-17 22:28:10 +0100 (Sat, 17 Jan 2009)
    New Revision: 28928
    ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28928&view=rev
    
    Modified:
       haiku/trunk/headers/os/net/NetBuffer.h
       haiku/trunk/src/kits/network/libnetapi/Jamfile
       haiku/trunk/src/kits/network/libnetapi/NetBuffer.cpp
    Log:
    - Changed BNetBuffer to a simpler (and R5 compatible) implementation.
    - This has the side effect that now it actually works.
    - This also indirectly fix BNetEndpoint usage of BNetBuffer.
    - Added DynamicBuffer (the underlying buffer implementation) to the Jamfile.
    
    
    
    Modified: haiku/trunk/headers/os/net/NetBuffer.h
    ===================================================================
    --- haiku/trunk/headers/os/net/NetBuffer.h	2009-01-17 18:43:09 UTC (rev 28927)
    +++ haiku/trunk/headers/os/net/NetBuffer.h	2009-01-17 21:28:10 UTC (rev 28928)
    @@ -1,86 +1,93 @@
     /*
    - * Copyright 2002-2006, Haiku, Inc. All Rights Reserved.
    + * Copyright 2009, Haiku, Inc. All Rights Reserved.
      * Distributed under the terms of the MIT License.
    + *
    + * Authors:
    + *              Bruno Albuquerque, bga at bug-br.org.br
      */
    +
     #ifndef _NETBUFFER_H
     #define _NETBUFFER_H
     
    -
    -#include 
    +#include 
     #include 
    -#include 
     
    -#include 
     
    +class BMessage;
    +class DynamicBuffer;
     
    +
     class BNetBuffer : public BArchivable {
    -	public:
    -		BNetBuffer(size_t size = 0);
    -		virtual ~BNetBuffer();
    +public:
    +	BNetBuffer(size_t size = 0);
     
    -		status_t InitCheck();
    +	virtual ~BNetBuffer();
     
    -		BNetBuffer(BMessage* archive);
    -		virtual status_t Archive(BMessage* into, bool deep = true) const;
    -		static BArchivable* Instantiate(BMessage* archive);
    +	BNetBuffer(const BNetBuffer& buffer);	
    +	BNetBuffer(BMessage* archive);
     
    -		BNetBuffer(const BNetBuffer &);
    -		BNetBuffer& operator=(const BNetBuffer &);
    +	BNetBuffer& operator=(const BNetBuffer& buffer);
     
    -		// Mutators.
    -		status_t AppendInt8(int8);
    -		status_t AppendUint8(uint8);
    -		status_t AppendInt16(int16);
    -		status_t AppendUint16(uint16);
    -		status_t AppendInt32(int32);
    -		status_t AppendUint32(uint32);
    -		status_t AppendFloat(float);
    -		status_t AppendDouble(double);
    -		status_t AppendString(const char *);
    -		status_t AppendData(const void *, size_t);
    -		status_t AppendMessage(const BMessage &);
    -		status_t AppendInt64(int64);
    -		status_t AppendUint64(uint64);
    +	virtual	status_t Archive(BMessage* into, bool deep = true) const;
    +	static BArchivable* Instantiate(BMessage* archive);	
     
    -		status_t RemoveInt8(int8 &);
    -		status_t RemoveUint8(uint8 &);
    -		status_t RemoveInt16(int16 &);
    -		status_t RemoveUint16(uint16 &);
    -		status_t RemoveInt32(int32 &);
    -		status_t RemoveUint32(uint32 &);
    -		status_t RemoveFloat(float &);
    -		status_t RemoveDouble(double &);
    -		status_t RemoveString(char *, size_t);
    -		status_t RemoveData(void *, size_t);
    -		status_t RemoveMessage(BMessage &);
    -		status_t RemoveInt64(int64 &);
    -		status_t RemoveUint64(uint64 &);
    +	status_t InitCheck();
     
    -		// Accessors.
    -		unsigned char* Data() const;
    -		size_t Size() const;
    -		size_t BytesRemaining() const;
    +	status_t AppendInt8(int8 data);
    +	status_t AppendUint8(uint8 data);
    +	status_t AppendInt16(int16 data);
    +	status_t AppendUint16(uint16 data);
    +	status_t AppendInt32(int32 data);
    +	status_t AppendUint32(uint32 data);
    +	status_t AppendFloat(float data);
    +	status_t AppendDouble(double data);
    +	status_t AppendString(const char* data);
    +	status_t AppendData(const void* data, size_t size);
    +	status_t AppendMessage(const BMessage& data);
    +	status_t AppendInt64(int64 data);
    +	status_t AppendUint64(uint64 data);
     
    -	private:
    -		virtual void _ReservedBNetBufferFBCCruft1();
    -		virtual void _ReservedBNetBufferFBCCruft2();
    -		virtual void _ReservedBNetBufferFBCCruft3();
    -		virtual void _ReservedBNetBufferFBCCruft4();
    -		virtual void _ReservedBNetBufferFBCCruft5();
    -		virtual void _ReservedBNetBufferFBCCruft6();
    + 	status_t RemoveInt8(int8& data);
    +	status_t RemoveUint8(uint8& data);
    +	status_t RemoveInt16(int16& data);
    +	status_t RemoveUint16(uint16& data);
    +	status_t RemoveInt32(int32& data);
    +	status_t RemoveUint32(uint32& data);
    +	status_t RemoveFloat(float& data);
    +	status_t RemoveDouble(double& data);
    +	status_t RemoveString(char* data, size_t size);
    +	status_t RemoveData(void* data, size_t size);
    +	status_t RemoveMessage(BMessage& data);
    +	status_t RemoveInt64(int64& data);
    +	status_t RemoveUint64(uint64& data);
    + 
    +	unsigned char* Data() const;
    +	size_t Size() const;
    +	size_t BytesRemaining() const;
    +	
    +	inline DynamicBuffer* GetImpl() const;
     
    -		// Private class helpers.
    -		status_t clone(const BNetBuffer&);
    -		status_t dpop(int32, int32, void*);
    -		status_t dpush(int32, int32, const void*);
    -		status_t resize(int32 newSize, bool regenStack = false);
    -		
    -		status_t	fInit;		
    -		uint8*		fData;
    -		int32		fDataSize;
    -		int32		fStackSize;
    -		int32		fCapacity;
    -		int32		_reserved[5];
    +protected:
    +	status_t fInit;
    +
    +private:
    +	virtual	void		_ReservedBNetBufferFBCCruft1();
    +	virtual	void		_ReservedBNetBufferFBCCruft2();
    +	virtual	void		_ReservedBNetBufferFBCCruft3();
    +	virtual	void		_ReservedBNetBufferFBCCruft4();
    +	virtual	void		_ReservedBNetBufferFBCCruft5();
    +	virtual	void		_ReservedBNetBufferFBCCruft6();
    +
    +	DynamicBuffer* 		fImpl;
    +	int32				__ReservedBNetBufferFBCCruftData[8];
    +
     };
     
    -#endif	// _NETBUFFER_H
    +
    +inline DynamicBuffer*
    +BNetBuffer::GetImpl() const
    +{
    +	return fImpl;
    +}
    +
    +#endif  // _NET_BUFFER_H
    
    Modified: haiku/trunk/src/kits/network/libnetapi/Jamfile
    ===================================================================
    --- haiku/trunk/src/kits/network/libnetapi/Jamfile	2009-01-17 18:43:09 UTC (rev 28927)
    +++ haiku/trunk/src/kits/network/libnetapi/Jamfile	2009-01-17 21:28:10 UTC (rev 28928)
    @@ -6,6 +6,7 @@
     
     local netapi_sources =
     	init.cpp
    +	DynamicBuffer.cpp
     	NetEndpoint.cpp
     	NetAddress.cpp 
     	NetBuffer.cpp
    
    Modified: haiku/trunk/src/kits/network/libnetapi/NetBuffer.cpp
    ===================================================================
    --- haiku/trunk/src/kits/network/libnetapi/NetBuffer.cpp	2009-01-17 18:43:09 UTC (rev 28927)
    +++ haiku/trunk/src/kits/network/libnetapi/NetBuffer.cpp	2009-01-17 21:28:10 UTC (rev 28928)
    @@ -1,889 +1,435 @@
     /*
    - * Copyright 2002-2006, Haiku, Inc. All Rights Reserved.
    + * Copyright 2009, Haiku, Inc. All Rights Reserved.
      * Distributed under the terms of the MIT License.
      *
      * Authors:
    - *		Scott T. Mansfield, thephantom at mac.com
    + *              Bruno Albuquerque, bga at bug-br.org.br
      */
     
    -/*!
    -	Remarks:
    -	 * This is basically a fancy-schmancy FIFO stack manager.  Thusly, it is
    -	   considered an error if data is not popped off a particular instance's
    -	   stack in the order it was pushed on.
    -	 * We could possibly implement this class as a thin wrapper around the
    -	   BMessage class, but I'm not sure what kind of payload the latter class
    -	   brings to the party, so we'll do our own stack management.  We also
    -	   cannot be sure that BMessage behaves as described above down the road.
    -	 * Never use hot wax to soothe enraged lobsters.
    -*/
    -
     #include 
     #include 
    -#include 
    +#include 
     
    -#include 
    +#include "DynamicBuffer.h"
    +#include "NetBuffer.h"
     
    +#include 
     
    -/*
    - * Parametric ctor initialization list defaults.
    - */
    -#define CTOR_INIT_LIST \
    -    BArchivable( ), \
    -    fInit( B_NO_INIT ), \
    -    fData( NULL ), \
    -    fDataSize( 0 ), \
    -    fStackSize( 0 ), \
    -    fCapacity( 0 )
    -
    -
    -/*
    - * Markers that surround a record in an instance's stack.
    - */
    -#define DATA_START_MARKER   0x01c0ffee
    -#define DATA_END_MARKER     0xbeefeeee
    -
    -
    -/* BNetBuffer
    - *=--------------------------------------------------------------------------=*
    - * Purpose:
    - *     Class ctor.
    - *
    - * Input parameter:
    - *     size         : Initial size of buffer (default is zero).
    - *
    - * Remarks:
    - *     This bad boy doubles up as the default ctor.
    - */
    -BNetBuffer::BNetBuffer( size_t size )
    -           : CTOR_INIT_LIST
    +BNetBuffer::BNetBuffer(size_t size) :
    +	BArchivable(),
    +	fInit(B_NO_INIT)
     {
    -    fInit = ( resize( size ) == B_OK ) ? B_OK : B_NO_INIT;
    +	fImpl = new (std::nothrow) DynamicBuffer(size);
    +	if (fImpl != NULL)
    +		fInit = fImpl->InitCheck();
     }
     
     
    -/* BNetBuffer
    - *=--------------------------------------------------------------------------=*
    - * Purpose:
    - *     Class copy ctor.
    - *
    - * Input parameter:
    - *     refparam     : Instance to copy.
    - */
    -BNetBuffer::BNetBuffer( const BNetBuffer& refparam )
    -            : CTOR_INIT_LIST
    +BNetBuffer::~BNetBuffer()
     {
    -    fInit = ( clone( refparam ) == B_OK ) ? B_OK : B_NO_INIT;
    +	delete fImpl;
     }
     
     
    -/* BNetBuffer
    - *=--------------------------------------------------------------------------=*
    - * Purpose:
    - *     Ctor to instantiate from serialized data (BMessage).
    - *
    - * Input parameter:
    - *     archive      : Serialized object to instantiate from.
    - */
    -BNetBuffer::BNetBuffer( BMessage* archive )
    -           : CTOR_INIT_LIST
    +BNetBuffer::BNetBuffer(const BNetBuffer& buffer) :
    +	BArchivable(),
    +	fInit(B_NO_INIT)
     {
    -    const unsigned char* msgDataPtr;
    -    ssize_t msgNBytes;
    -
    -    int32  dataSize;
    -    int32  stackSize;
    -    int32  capacity;
    -
    -    if ( archive->FindInt32( "bnbuff_datasize", &dataSize ) != B_OK )
    -    {
    -        return;
    -    }
    -
    -    if ( archive->FindInt32( "bnbuff_stacksize", &stackSize ) != B_OK )
    -    {
    -        return;
    -    }
    -
    -    if ( archive->FindInt32( "bnbuff_capacity", &capacity ) != B_OK )
    -    {
    -        return;
    -    }
    -
    -    if ( archive->FindData( "bnbuff_stack", B_RAW_TYPE,
    -                            ( const void** )&msgDataPtr, &msgNBytes ) != B_OK )
    -    {
    -        return;
    -    }
    -
    -    if ( capacity )
    -    {
    -        if ( resize( capacity, true ) != B_OK )
    -        {
    -            return;
    -        }
    -
    -        memcpy( fData, msgDataPtr, stackSize );
    -    }
    -
    -    fDataSize = dataSize;
    -    fStackSize = stackSize;
    -    fCapacity = capacity;
    -
    -    fInit = B_OK;
    +	fImpl = new (std::nothrow) DynamicBuffer(*buffer.GetImpl());
    +	if (fImpl != NULL)
    +		fInit = fImpl->InitCheck();
     }
     
     
    -/* ~BNetBuffer
    - *=--------------------------------------------------------------------------=*
    - * Purpose:
    - *     Class dtor.
    - */
    -BNetBuffer::~BNetBuffer( void )
    +BNetBuffer::BNetBuffer(BMessage* archive) :
    +	BArchivable(),
    +	fInit(B_NO_INIT)
     {
    -    if ( fData != NULL )
    -    {
    -        delete fData;
    -        fData = NULL;
    -    }
    -
    -    fDataSize = fStackSize = fCapacity = 0;
    -
    -    fInit = B_NO_INIT;
    +	const unsigned char* bufferPtr;
    +	ssize_t bufferSize;
    +	
    +	if (archive->FindData("buffer", B_RAW_TYPE, (const void**)&bufferPtr,
    +		&bufferSize) == B_OK) {
    +		fImpl = new (std::nothrow) DynamicBuffer(bufferSize);
    +		if (fImpl != NULL) {
    +			status_t result = fImpl->Insert(bufferPtr, bufferSize);
    +			if (result == B_OK)
    +				fInit = fImpl->InitCheck();
    +			else
    +				fInit = result;
    +		}
    +	}
     }
     
    -
    -/* operator=
    - *=--------------------------------------------------------------------------=*
    - * Purpose:
    - *     Class' assignment operator.
    - *
    - * Input parameter:
    - *     refparam     : Instance to assign from.
    - */
    -BNetBuffer& BNetBuffer::operator=( const BNetBuffer& refparam )
    +BNetBuffer&
    +BNetBuffer::operator=(const BNetBuffer& buffer)
     {
    -    fInit = clone( refparam );
    -
    -    return *this;
    +	fImpl = new (std::nothrow) DynamicBuffer(*buffer.GetImpl());
    +	if (fImpl != NULL)
    +		fInit = fImpl->InitCheck();
    +	
    +	return *this;
     }
     
     
    -/* InitCheck
    - *=--------------------------------------------------------------------------=*
    - * Purpose:
    - *     Determine whether or not this instance is properly initialized.
    - *
    - * Returns:
    - *     B_OK if this instance is initialized, B_ERROR if not.
    - */
    -status_t BNetBuffer::InitCheck( void )
    +status_t
    +BNetBuffer::Archive(BMessage* into, bool deep) const
     {
    -    return ( fInit == B_OK ) ? B_OK : B_ERROR;
    +	if (fInit != B_OK)
    +		return B_NO_INIT;
    +	
    +	if (into->AddData("buffer", B_RAW_TYPE, fImpl->Data(),
    +		fImpl->BytesRemaining()) != B_OK)
    +		return B_ERROR;
    +	
    +	return B_OK;
     }
     
     
    -/* Archive
    - *=--------------------------------------------------------------------------=*
    - * Purpose:
    - *     Serialize this instance into the passed BMessage parameter.
    - *
    - * Input parameter:
    - *     deep         : [ignored] default==true.
    - *
    - * Output parameter:
    - *     into         : BMessage object to serialize into.
    - *
    - * Returns:
    - *     B_OK/BERROR on success/failure.  Returns B_NO_INIT if instance not
    - *     properly initialized.
    - */
    -status_t BNetBuffer::Archive( BMessage* into, bool deep ) const
    +BArchivable*
    +BNetBuffer::Instantiate(BMessage* archive)
     {
    -    if ( fInit != B_OK )
    -    {
    -        return B_NO_INIT;
    -    }
    -
    -    if ( into->AddInt32( "bnbuff_datasize", fDataSize ) )
    -    {
    -        return B_ERROR;
    -    }
    -
    -    if ( into->AddInt32( "bnbuff_stacksize", fStackSize ) )
    -    {
    -        return B_ERROR;
    -    }
    -
    -    if ( into->AddInt32( "bnbuff_capacity", fCapacity ) )
    -    {
    -        return B_ERROR;
    -    }
    -
    -    if ( into->AddData( "bnbuff_stack", B_RAW_TYPE, fData, fStackSize ) != B_OK )
    -    //STM: Should we store the *whole* stack instead?......^^^^^^^^^^fCapacity
    -    {
    -        return B_ERROR;
    -    }
    -
    -    return B_OK;
    -}
    -
    -
    -/* Instantiate
    - *=--------------------------------------------------------------------------=*
    - * Purpose:
    - *     Un-serialize and instantiate from the passed BMessage parameter.
    - *
    - * Input parameter:
    - *     archive      : Archived BMessage object for (de)serialization.
    - *
    - * Returns:
    - *     NULL if a BNetBuffer instance can not be initialized, otherwise
    - *     a new BNetBuffer object instantiated from the BMessage parameter.
    - */
    -BArchivable* BNetBuffer::Instantiate( BMessage* archive )
    -{
    -    if ( !validate_instantiation( archive, "BNetBuffer" ) )
    -    {
    +    if (!validate_instantiation(archive, "BNetBuffer")) {
             return NULL;
         }
     
    -    BNetBuffer* bnb = new BNetBuffer( archive );
    -    if ( bnb == NULL )
    -    {
    +    BNetBuffer* buffer = new BNetBuffer(archive);
    +    if (buffer == NULL)
             return NULL;
    -    }
     
    -    if ( bnb->InitCheck( ) != B_OK )
    -    {
    -        delete bnb;
    +    if (buffer->InitCheck() != B_OK) {
    +        delete buffer;
             return NULL;
         }
     
    -    return bnb;
    +    return buffer;
     }
     
     
    -/* AppendXXX
    - *=--------------------------------------------------------------------------=*
    - * Purpose:
    - *     Append some data to this buffer (think PUSHing onto a FIFO stack).
    - *
    - * Returns:
    - *     B_OK/B_ERROR for success/failure.  B_NO_INIT if instance not properly
    - *     initialized or stuck in some unknown state during construction.
    - *
    - * Remarks:
    - *   * Where appropriate numeric data such as (u)int16, et al, are converted
    - *     to network byte order during storage, no need to do this in advance.
    - */
    -status_t BNetBuffer::AppendInt8( int8 Data )
    +status_t
    +BNetBuffer::InitCheck()
     {
    -    return dpush( B_INT8_TYPE, sizeof( int8 ), &Data );
    +	return fInit;
     }
     
    -status_t BNetBuffer::AppendUint8( uint8 Data )
    -{
    -    return dpush( B_UINT8_TYPE, sizeof( uint8 ), &Data );
    -}
     
    -status_t BNetBuffer::AppendInt16( int16 Data )
    +status_t
    +BNetBuffer::AppendInt8(int8 data)
     {
    -    int16 locData = B_HOST_TO_BENDIAN_INT16( Data );
    -    return dpush( B_INT16_TYPE, sizeof( int16 ), &locData );
    +	return AppendData((const void*)&data, sizeof(int8));
     }
     
    -status_t BNetBuffer::AppendUint16( uint16 Data )
    +
    +status_t
    +BNetBuffer::AppendUint8(uint8 data)
     {
    -    uint16 locData = B_HOST_TO_BENDIAN_INT16( Data );
    -    return dpush( B_UINT16_TYPE, sizeof( uint16 ), &locData );
    +	return AppendData((const void*)&data, sizeof(int8));
     }
     
    -status_t BNetBuffer::AppendInt32( int32 Data )
    +
    +status_t
    +BNetBuffer::AppendInt16(int16 data)
     {
    -    int32 locData = B_HOST_TO_BENDIAN_INT32( Data );
    -    return dpush( B_INT32_TYPE, sizeof( int32 ), &locData );
    +	int16 be_data = B_HOST_TO_BENDIAN_INT16(data);
    +	return AppendData((const void*)&be_data, sizeof(int16));
     }
     
    -status_t BNetBuffer::AppendUint32( uint32 Data )
    +
    +status_t
    +BNetBuffer::AppendUint16(uint16 data)
     {
    -    uint32 locData = B_HOST_TO_BENDIAN_INT32( Data );
    -    return dpush( B_UINT32_TYPE, sizeof( uint32 ), &locData );
    +	uint16 be_data = B_HOST_TO_BENDIAN_INT16(data);
    +	return AppendData((const void*)&be_data, sizeof(uint16));
     }
     
    -status_t BNetBuffer::AppendInt64( int64 Data )
    +
    +status_t
    +BNetBuffer::AppendInt32(int32 data)
     {
    -    int64 locData = B_HOST_TO_BENDIAN_INT64( Data );
    -    return dpush( B_INT64_TYPE, sizeof( int64 ), &locData );
    +	int32 be_data = B_HOST_TO_BENDIAN_INT32(data);
    +	return AppendData((const void*)&be_data, sizeof(int32));
     }
     
    -status_t BNetBuffer::AppendUint64( uint64 Data )
    +
    +status_t
    +BNetBuffer::AppendUint32(uint32 data)
     {
    -    uint64 locData = B_HOST_TO_BENDIAN_INT64( Data );
    -    return dpush( B_UINT64_TYPE, sizeof( uint64 ), &locData );
    +	uint32 be_data = B_HOST_TO_BENDIAN_INT32(data);
    +	return AppendData((const void*)&be_data, sizeof(uint32));
     }
     
    -status_t BNetBuffer::AppendFloat( float Data )
    +
    +status_t
    +BNetBuffer::AppendFloat(float data)
     {
    -    return dpush( B_FLOAT_TYPE, sizeof( float ), &Data );
    +	return AppendData((const void*)&data, sizeof(float));
     }
     
    -status_t BNetBuffer::AppendDouble( double Data )
    +
    +status_t
    +BNetBuffer::AppendDouble(double data)
     {
    -    return dpush( B_DOUBLE_TYPE, sizeof( double ), &Data );
    +	return AppendData((const void*)&data, sizeof(double));
     }
     
    -status_t BNetBuffer::AppendString( const char* Data )
    +
    +status_t
    +BNetBuffer::AppendString(const char* data)
     {
    -    return dpush( B_STRING_TYPE, strlen( Data ), Data );
    +	return AppendData((const void*)data, strlen(data) + 1);
     }
     
    -status_t BNetBuffer::AppendData( const void* Data, size_t Length )
    +
    +status_t
    +BNetBuffer::AppendData(const void* data, size_t size)
     {
    -    return dpush( B_RAW_TYPE, Length, Data );
    +	return fImpl->Insert(data, size);
     }
     
    -status_t BNetBuffer::AppendMessage( const BMessage& Msg )
    +
    +status_t
    +BNetBuffer::AppendMessage(const BMessage& data)
     {
    -    status_t result;
    -    ssize_t msgLen;
    -    char* msgData;
    +	size_t dataSize = data.FlattenedSize();
    +	if (dataSize == 0)
    +		return B_ERROR;
     
    -    msgLen = Msg.FlattenedSize( );
    -    if ( msgLen == 0 )
    -    {
    -        //STM: It's possible, but SHOULD we store an empty BMessage?
    -        //STM: Is an empty BMessage instance even legit in Be/OBOS?
    -        return B_ERROR;
    -    }
    -
    -    if ( ( msgData = new char[msgLen] ) == NULL )
    -    {
    -        return B_ERROR; //STM: B_NO_MEM???
    -    }
    -
    -    // Don't get tripped on this, just trying to err on the side of caution.
    -    result = B_ERROR;
    -
    -    if ( Msg.Flatten( msgData, msgLen ) == B_OK )
    -    {
    -        result = dpush( B_MESSAGE_TYPE, msgLen, msgData );
    -    }
    -
    -    delete[] msgData;
    -    return result;
    +	char* flattenedData = new (std::nothrow) char[dataSize];
    +	if (flattenedData == NULL)
    +		return B_NO_MEMORY;
    +	
    +	status_t result = B_OK;	
    +	if (data.Flatten(flattenedData, dataSize) == B_OK)		
    +		result = AppendData((const void*)&flattenedData, dataSize);
    +	
    +	delete[] flattenedData;
    +	
    +	return result;
     }
     
     
    -/* RemoveXXXX
    - *=--------------------------------------------------------------------------=*
    - * Purpose:
    - *     Remove some data from this buffer, think POPping from a FIFO stack.
    - *
    - * Returns:
    - *     B_OK/B_ERROR for success/failure.  B_NO_INIT if instance not properly
    - *     initialized or stuck in some unknown state during construction.
    - *
    - * Remarks:
    - *     Where appropriate numeric data such as (u)int16, et al, are converted
    - *     from network byte order.  No need to do this ipso post facto.
    - */
    -status_t BNetBuffer::RemoveInt8( int8& Data )
    +status_t
    +BNetBuffer::AppendInt64(int64 data)
     {
    -    return dpop( B_INT8_TYPE, sizeof( int8 ), &Data );
    +	int64 be_data = B_HOST_TO_BENDIAN_INT64(data);
    +	return AppendData((const void*)&be_data, sizeof(int64));
     }
     
    -status_t BNetBuffer::RemoveUint8( uint8& Data )
    -{
    -    return dpop( B_UINT8_TYPE, sizeof( uint8 ), &Data );
    -}
     
    -status_t BNetBuffer::RemoveInt16( int16& Data )
    +status_t
    +BNetBuffer::AppendUint64(uint64 data)
     {
    -    // dpop will convert this bad boy from network to host byte order.
    -    return dpop( B_INT16_TYPE, sizeof( int16 ), &Data );
    +	uint64 be_data = B_HOST_TO_BENDIAN_INT64(data);
    +	return AppendData((const void*)&be_data, sizeof(uint64));
     }
     
    -status_t BNetBuffer::RemoveUint16( uint16& Data )
    -{
    -    // dpop will convert this beast from network to host byte order.
    -    return dpop( B_UINT16_TYPE, sizeof( uint16 ), &Data );
    -}
     
    -status_t BNetBuffer::RemoveInt32( int32& Data )
    +status_t
    +BNetBuffer::RemoveInt8(int8& data)
     {
    -    // dpop will convert this thang from network to host byte order.
    -    return dpop( B_INT32_TYPE, sizeof( int32 ), &Data );
    +	return RemoveData((void*)&data, sizeof(int8));
     }
     
    -status_t BNetBuffer::RemoveUint32( uint32& Data )
    -{
    -    // dpop will convert this variable from network to host byte order.
    -    return dpop( B_UINT32_TYPE, sizeof( uint32 ), &Data );
    -}
     
    -status_t BNetBuffer::RemoveInt64( int64& Data )
    +status_t
    +BNetBuffer::RemoveUint8(uint8& data)
     {
    -    // dpop will convert this bag-o-bits from network to host byte order.
    -    return dpop( B_INT64_TYPE, sizeof( int64 ), &Data );
    +	return RemoveData((void*)&data, sizeof(uint8));
     }
     
    -status_t BNetBuffer::RemoveUint64( uint64& Data )
    -{
    -    // dpop will convert this construct from network to host byte order.
    -    return dpop( B_UINT64_TYPE, sizeof( uint64 ), &Data );
    -}
     
    -status_t BNetBuffer::RemoveFloat( float& Data )
    +status_t
    +BNetBuffer::RemoveInt16(int16& data)
     {
    -    return dpop( B_FLOAT_TYPE, sizeof( float ), &Data );
    +	int16 be_data;
    +	status_t result = RemoveData((void*)&be_data, sizeof(int16));
    +	if (result != B_OK)
    +		return result;
    +	
    +	data = B_BENDIAN_TO_HOST_INT16(be_data);
    +	
    +	return B_OK;
     }
     
    -status_t BNetBuffer::RemoveDouble( double& Data )
    -{
    -    return dpop( B_DOUBLE_TYPE, sizeof( double ), &Data );
    -}
     
    -status_t BNetBuffer::RemoveString( char* Data, size_t Length )
    +status_t
    +BNetBuffer::RemoveUint16(uint16& data)
     {
    -    return dpop( B_STRING_TYPE, Length, Data );
    +	uint16 be_data;
    +	status_t result = RemoveData((void*)&be_data, sizeof(uint16));
    +	if (result != B_OK)
    +		return result;
    +	
    +	data = B_BENDIAN_TO_HOST_INT16(be_data);
    +	
    +	return B_OK;
     }
     
    -status_t BNetBuffer::RemoveData( void* Data, size_t Length )
    -{
    -    return dpop( B_RAW_TYPE, Length, Data );
    -}
     
    -status_t BNetBuffer::RemoveMessage( BMessage& message )
    +status_t
    +BNetBuffer::RemoveInt32(int32& data)
     {
    -    status_t result;
    -    int32 v;
    -    unsigned char* stackPtr = fData;
    -    char* msgData;
    -
    -    /* 
    -     * We have to cheat a little bit here and peek ahead of dpop so we can
    -     * get at the size parameter.  Perform basic checks along the way so we
    -     * can make sure that we really get to the size parameter and not some
    -     * bogus value.  Redundant, but necessary.
    -     */
    -    v = *( int32 * )stackPtr;
    -    if ( v != DATA_START_MARKER )
    -    {
    -        return B_ERROR;
    -    }
    -
    -    stackPtr += sizeof( int32 );
    -    v = *( int32 * )stackPtr;
    -    if ( v != B_MESSAGE_TYPE )
    -    {
    -        return B_ERROR;
    -    }
    -
    -    // Snarf the data size.
    -    stackPtr += sizeof( int32 );
    -    v = *( int32 * )stackPtr;
    -
    -    if ( ( msgData = new char[v] ) == NULL )
    -    {
    -        return B_ERROR; //STM: B_NO_MEM???
    -    }
    -
    -    if ( dpop( B_MESSAGE_TYPE, v, msgData ) != B_OK )
    -    {
    -        delete msgData;
    -        return B_ERROR;
    -    }
    -
    -    result = message.Unflatten( msgData );
    -    delete msgData;
    -    return result;
    +	int32 be_data;
    +	status_t result = RemoveData((void*)&be_data, sizeof(int32));
    +	if (result != B_OK)
    +		return result;
    +	
    +	data = B_BENDIAN_TO_HOST_INT32(be_data);
    +	
    +	return B_OK;
     }
     
     
    -/* Data
    - *=--------------------------------------------------------------------------=*
    - * Purpose:
    - *     Class accessor.
    - *
    - * Returns:
    - *   Pointer to class' data suitable for those functions and methods that
    - *   expect some kind of "generic" pointer.
    - *
    - * Remarks:
    - *   * This is WEAK and WRONG, as it allows non-members to directly
    - *     manipulate an instance's member data without the usual checks in
    - *     place.  At the very least the return value should be const.  Ideally,
    - *     this method should not exist. 
    - */
    -unsigned char* BNetBuffer::Data( void ) const
    +status_t
    +BNetBuffer::RemoveUint32(uint32& data)
     {
    -    // Have I mentioned that this is a Really Bad Thing to do?
    -    return fData;
    -    // In case I missed it: returning a non-const pointer to our member data
    -    // is not a good thing.  Caveat emptor.
    +	uint32 be_data;
    +	status_t result = RemoveData((void*)&be_data, sizeof(uint32));
    +	if (result != B_OK)
    +		return result;
    +	
    +	data = B_BENDIAN_TO_HOST_INT32(be_data);
    +	
    +	return B_OK;
     }
     
     
    -/* Size
    - *=--------------------------------------------------------------------------=*
    - * Purpose:
    - *     Class accessor.
    - *
    - * Returns:
    - *     How many bytes of data are contained.  This *does not* include the
    - *     overhead of the stack control variables (delineators and size).
    - */
    -size_t BNetBuffer::Size( void ) const
    +status_t
    +BNetBuffer::RemoveFloat(float& data)
     {
    -    return fDataSize;
    +	return RemoveData((void*)&data, sizeof(float));
     }
     
     
    -/* BytesRemaining
    - *=--------------------------------------------------------------------------=*
    - * Purpose:
    - *     Class accessor ...erm... sort of.
    - *
    - * Returns:
    - *     How much capacity this instance has left to store data.
    - *
    - * Remarks:
    - *     This method is essentially meaningless as the class' storage capacity
    - *     will grow (or shrink) as necessary (that's an obfuscated way to say
    - *     "dynamically re-allocated" boys and girls).  Do not rely on this
    - *     particular method in normal use as it refers to a moving target.
    - */
    -size_t BNetBuffer::BytesRemaining( void ) const
    +status_t
    +BNetBuffer::RemoveDouble(double& data)
     {
    -    return ( fCapacity - fStackSize );
    +	return RemoveData((void*)&data, sizeof(double));
     }
     
     
    -/* clone
    - *=--------------------------------------------------------------------------=*
    - * Purpose:
    - *     Private copy helper method.
    - *
    - * Input parameter:
    - *     RefParam: Instance to clone.
    - *
    - * Returns:
    - *     status_t indicating success or point of failure (see resize()).
    - *     B_NO_INIT if RefParam not properly initialized.
    - */
    -status_t BNetBuffer::clone( const BNetBuffer& RefParam )
    +status_t
    +BNetBuffer::RemoveString(char* data, size_t size)
     {
    -    if ( !RefParam.fInit )
    -    {
    -        return B_NO_INIT;
    -    }
    -
    -    if ( resize( RefParam.fCapacity, true ) != B_OK )
    -    {
    -        return B_ERROR;
    -    }
    -
    -    fDataSize = RefParam.fDataSize;
    -    fStackSize = RefParam.fStackSize;
    -    memcpy( fData, RefParam.fData, fStackSize );
    -
    -    return B_OK;
    +	// TODO(bga): Should we do anything specific to handle the terminating
    +	// NULL byte?
    +	return RemoveData((void*)data, size);
     }
     
     
    -/* dpop
    - *=--------------------------------------------------------------------------=*
    - * Purpose:
    - *     Pop some data from our stack.
    - *
    - * Input parameters:
    - *     Type         : Expected data type for this record.
    - *     Length       : Expected data size for this record.
    - *
    - * Output parameter:
    - *     Data         : Recepticle for popped data.  You are responsible for
    - *                    insuring that this is large enough to hold your
    - *                    intended data.  If this parameter is NULL, you'll get
    - *                    back a B_ERROR.  If the space allocated that this
    - *                    parameter points to is not sufficient to contain the
    - *                    intended data, you'll likely over-run something else
    - *                    in user-space and piss off a few folks in the process.
    - *
    - * Returns:
    - *     B_OK/B_ERROR on success/failure.
    - *     B_NO_INIT if this instance not properly initialized.
    - */
    -status_t BNetBuffer::dpop( int32 Type, int32 Length, void* Data )
    +status_t
    +BNetBuffer::RemoveData(void* data, size_t size)
     {
    -    if ( fInit != B_OK )
    -    {
    -        return B_NO_INIT;
    -    }
    +	return fImpl->Remove(data, size);
    +}
     
    
    [... truncated: 341 lines follow ...]
    
    
    From superstippi at gmx.de  Sun Jan 18 01:19:55 2009
    From: superstippi at gmx.de (=?ISO-8859-1?Q?Stephan_A=DFmus?=)
    Date: Sun, 18 Jan 2009 01:19:55 +0100
    Subject: [Haiku-commits] r28928 - in haiku/trunk:
    	headers/os/net	src/kits/network/libnetapi
    In-Reply-To: <200901172128.n0HLSB9F025649@sheep.berlios.de>
    References: <200901172128.n0HLSB9F025649@sheep.berlios.de>
    Message-ID: <497275AB.1060403@gmx.de>
    
    Hi Bruno,
    
    a few comments again:
    
    > Modified: haiku/trunk/src/kits/network/libnetapi/NetBuffer.cpp
    > ===================================================================
    > --- haiku/trunk/src/kits/network/libnetapi/NetBuffer.cpp	2009-01-17 18:43:09 UTC (rev 28927)
    > +++ haiku/trunk/src/kits/network/libnetapi/NetBuffer.cpp	2009-01-17 21:28:10 UTC (rev 28928)
    > @@ -1,889 +1,435 @@
    >  /*
    > - * Copyright 2002-2006, Haiku, Inc. All Rights Reserved.
    > + * Copyright 2009, Haiku, Inc. All Rights Reserved.
    >   * Distributed under the terms of the MIT License.
    >   *
    >   * Authors:
    > - *		Scott T. Mansfield, thephantom at mac.com
    > + *              Bruno Albuquerque, bga at bug-br.org.br
    
    Even though there may not be any actual code left from Scott, I would 
    still keep him in the authors list, since at least you may have learned 
    from his code, even if just about flaws you need to avoid :-). I think 
    that's a nice practice anyways.
    
    
    
    > +BNetBuffer&
    > +BNetBuffer::operator=(const BNetBuffer& buffer)
    >  {
    > -    fInit = clone( refparam );
    > -
    > -    return *this;
    > +	fImpl = new (std::nothrow) DynamicBuffer(*buffer.GetImpl());
    > +	if (fImpl != NULL)
    > +		fInit = fImpl->InitCheck();
    > +	
    > +	return *this;
    >  }
    
    You are leaking the previous fImpl here.
    
    
    
    > -status_t BNetBuffer::InitCheck( void )
    > +status_t
    > +BNetBuffer::Archive(BMessage* into, bool deep) const
    >  {
    > -    return ( fInit == B_OK ) ? B_OK : B_ERROR;
    > +	if (fInit != B_OK)
    > +		return B_NO_INIT;
    > +	
    > +	if (into->AddData("buffer", B_RAW_TYPE, fImpl->Data(),
    > +		fImpl->BytesRemaining()) != B_OK)
    > +		return B_ERROR;
    
    Not very important, but I usually try to forward the BMessage error in 
    these situations. Maybe it helps someone debugging one day... :-)
    
    > +	
    > +	return B_OK;
    >  }
    
    
    > -BArchivable* BNetBuffer::Instantiate( BMessage* archive )
    > -{
    > -    if ( !validate_instantiation( archive, "BNetBuffer" ) )
    > -    {
    > +    if (!validate_instantiation(archive, "BNetBuffer")) {
    >          return NULL;
    >      }
    >  
    > -    BNetBuffer* bnb = new BNetBuffer( archive );
    > -    if ( bnb == NULL )
    > -    {
    > +    BNetBuffer* buffer = new BNetBuffer(archive);
    > +    if (buffer == NULL)
    >          return NULL;
    > -    }
    
    Need to use std::nothrow here again.
    
    
    
    > +status_t
    > +BNetBuffer::AppendMessage(const BMessage& data)
    >  {
    > -    status_t result;
    > -    ssize_t msgLen;
    > -    char* msgData;
    > +	size_t dataSize = data.FlattenedSize();
    > +	if (dataSize == 0)
    > +		return B_ERROR;
    >  
    > -    msgLen = Msg.FlattenedSize( );
    > -    if ( msgLen == 0 )
    > -    {
    > -        //STM: It's possible, but SHOULD we store an empty BMessage?
    > -        //STM: Is an empty BMessage instance even legit in Be/OBOS?
    > -        return B_ERROR;
    > -    }
    > -
    > -    if ( ( msgData = new char[msgLen] ) == NULL )
    > -    {
    > -        return B_ERROR; //STM: B_NO_MEM???
    > -    }
    > -
    > -    // Don't get tripped on this, just trying to err on the side of caution.
    > -    result = B_ERROR;
    > -
    > -    if ( Msg.Flatten( msgData, msgLen ) == B_OK )
    > -    {
    > -        result = dpush( B_MESSAGE_TYPE, msgLen, msgData );
    > -    }
    > -
    > -    delete[] msgData;
    > -    return result;
    > +	char* flattenedData = new (std::nothrow) char[dataSize];
    > +	if (flattenedData == NULL)
    > +		return B_NO_MEMORY;
    > +	
    > +	status_t result = B_OK;	
    > +	if (data.Flatten(flattenedData, dataSize) == B_OK)		
    > +		result = AppendData((const void*)&flattenedData, dataSize);
    > +	
    > +	delete[] flattenedData;
    > +	
    > +	return result;
    >  }
    
    A possible performance optimization: you could pre-allocate a fixed (2K 
    maybe?) buffer size on the stack, and only use the allocator if the 
    flattened size exceeds that size. Might be nice to have that since this 
    call may be used frequently. In one test I was doing once, it saved 
    about 200?s per call, which may actually be quite a lot depending on how 
    small the message is and our BMessages probably flatten pretty quickly 
    anyways.
    
    
    Best regards,
    -Stephan
    
    
    
    From mmlr at mail.berlios.de  Sun Jan 18 02:13:22 2009
    From: mmlr at mail.berlios.de (mmlr at mail.berlios.de)
    Date: Sun, 18 Jan 2009 02:13:22 +0100
    Subject: [Haiku-commits] r28929 -
    	haiku/trunk/src/add-ons/kernel/bus_managers/usb
    Message-ID: <200901180113.n0I1DMjR000582@sheep.berlios.de>
    
    Author: mmlr
    Date: 2009-01-18 02:13:17 +0100 (Sun, 18 Jan 2009)
    New Revision: 28929
    ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28929&view=rev
    
    Modified:
       haiku/trunk/src/add-ons/kernel/bus_managers/usb/Pipe.cpp
    Log:
    Fix pretty severe error in the convenience functions Pipe::SetFeature(),
    Pipe::ClearFeature() and Pipe::GetStatus(). These requests take the endpoint
    address in the logical form, including the direction bit. This caused all those
    requests to fail for all input pipes, most prominently visible in mass storage
    where a mass storage reset could never be done completely and would cause many
    devices to be unable to recover from errors.
    
    
    Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/Pipe.cpp
    ===================================================================
    --- haiku/trunk/src/add-ons/kernel/bus_managers/usb/Pipe.cpp	2009-01-17 21:28:10 UTC (rev 28928)
    +++ haiku/trunk/src/add-ons/kernel/bus_managers/usb/Pipe.cpp	2009-01-18 01:13:17 UTC (rev 28929)
    @@ -73,7 +73,8 @@
     		USB_REQTYPE_STANDARD | USB_REQTYPE_ENDPOINT_OUT,
     		USB_REQUEST_SET_FEATURE,
     		selector,
    -		fEndpointAddress,
    +		fEndpointAddress | (fDirection == In ? USB_ENDPOINT_ADDR_DIR_IN
    +			: USB_ENDPOINT_ADDR_DIR_OUT),
     		0,
     		NULL,
     		0,
    @@ -92,7 +93,8 @@
     		USB_REQTYPE_STANDARD | USB_REQTYPE_ENDPOINT_OUT,
     		USB_REQUEST_CLEAR_FEATURE,
     		selector,
    -		fEndpointAddress,
    +		fEndpointAddress | (fDirection == In ? USB_ENDPOINT_ADDR_DIR_IN
    +			: USB_ENDPOINT_ADDR_DIR_OUT),
     		0,
     		NULL,
     		0,
    @@ -107,7 +109,8 @@
     		USB_REQTYPE_STANDARD | USB_REQTYPE_ENDPOINT_IN,
     		USB_REQUEST_GET_STATUS,
     		0,
    -		fEndpointAddress,
    +		fEndpointAddress | (fDirection == In ? USB_ENDPOINT_ADDR_DIR_IN
    +			: USB_ENDPOINT_ADDR_DIR_OUT),
     		2,
     		(void *)status,
     		2,
    
    
    
    From mmlr at mail.berlios.de  Sun Jan 18 02:34:26 2009
    From: mmlr at mail.berlios.de (mmlr at mail.berlios.de)
    Date: Sun, 18 Jan 2009 02:34:26 +0100
    Subject: [Haiku-commits] r28930 -
    	haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk
    Message-ID: <200901180134.n0I1YQqZ003599@sheep.berlios.de>
    
    Author: mmlr
    Date: 2009-01-18 02:34:22 +0100 (Sun, 18 Jan 2009)
    New Revision: 28930
    ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28930&view=rev
    
    Modified:
       haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp
    Log:
    * The close hook did trigger a synchronize without locking the device. This
      could have messed up the state of other transfers currently running on that
      device. Since devices are regularly opened/closed for enumeration/scanning
      from different threads, this could've easily lead to bad situations. I've
      removed the sync completely as it's not our task to issue it and because
      a close doesn't always correspond with an unmount at all.
    * Retry receiving the command status wrapper also when another error than a
      stall is returned. The specs aren't too specific, but the graphic suggests
      this is a general recovery path.
    * Do a reset in case there is an error during data transfer to start the next
      command from a clean state.
    * Make sure we never acknowledge more data than we actually transfered. This
      is to make sure devices that return broken residue values do not mess up our
      transfers.
    * Detect a few more cases of invalid and non-meaningful command status wrappers.
    * If the device explicitly tells us that the sync command isn't supported don't
      try it a few more times. Only retry at most five times if an unspecific error
      is returned that could also come from another (temporary) error case.
    * Add a bit more trace output.
    
    
    Modified: haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp
    ===================================================================
    --- haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp	2009-01-18 01:13:17 UTC (rev 28929)
    +++ haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp	2009-01-18 01:34:22 UTC (rev 28930)
    @@ -186,6 +186,11 @@
     	uint32 logicalBlockAddress, uint16 transferLength, void *data,
     	uint32 *dataLength, bool directionIn)
     {
    +	TRACE("operation: lun: %u; op: %u; oplen: %u; lba: %lu; tlen: %u; data: %p; dlen: %p (%lu); in: %c\n",
    +		lun->logical_unit_number, operation, opLength, logicalBlockAddress,
    +		transferLength, data, dataLength, dataLength ? *dataLength : 0,
    +		directionIn ? 'y' : 'n');
    +
     	disk_device *device = lun->device;
     	command_block_wrapper command;
     	command.signature = CBW_SIGNATURE;
    @@ -232,13 +237,15 @@
     		return B_ERROR;
     	}
     
    +	size_t transferedData = 0;
     	if (data != NULL && dataLength != NULL && *dataLength > 0) {
     		// we have data to transfer in a data stage
     		result = usb_disk_transfer_data(device, directionIn, data, *dataLength);
     		if (result != B_OK)
     			return result;
     
    -		if (device->status != B_OK || device->actual_length != *dataLength) {
    +		transferedData = device->actual_length;
    +		if (device->status != B_OK || transferedData != *dataLength) {
     			// sending or receiving of the data failed
     			if (device->status == B_DEV_STALLED) {
     				TRACE("stall while transfering data\n");
    @@ -246,6 +253,7 @@
     					: device->bulk_out, USB_FEATURE_ENDPOINT_HALT);
     			} else {
     				TRACE_ALWAYS("sending or receiving of the data failed\n");
    +				usb_disk_reset_recovery(device);
     				return B_ERROR;
     			}
     		}
    @@ -253,8 +261,8 @@
     
     	command_status_wrapper status;
     	result =  usb_disk_receive_csw(device, &status);
    -	if (result != B_OK && device->status == B_DEV_STALLED) {
    -		// in case of a stall clear the stall and try again
    +	if (result != B_OK) {
    +		// in case of a stall or error clear the stall and try again
     		gUSBModule->clear_feature(device->bulk_in, USB_FEATURE_ENDPOINT_HALT);
     		result = usb_disk_receive_csw(device, &status);
     	}
    @@ -275,34 +283,47 @@
     	switch (status.status) {
     		case CSW_STATUS_COMMAND_PASSED:
     		case CSW_STATUS_COMMAND_FAILED: {
    -			if (dataLength != NULL && status.data_residue <= *dataLength)
    +			if (status.data_residue > command.data_transfer_length) {
    +				// command status wrapper is not meaningful
    +				TRACE_ALWAYS("command status wrapper has invalid residue\n");
    +				usb_disk_reset_recovery(device);
    +				return B_ERROR;
    +			}
    +
    +			if (dataLength != NULL) {
     				*dataLength -= status.data_residue;
    +				if (transferedData < *dataLength) {
    +					TRACE_ALWAYS("less data transfered than indicated\n");
    +					*dataLength = transferedData;
    +				}
    +			}
     
     			if (status.status == CSW_STATUS_COMMAND_PASSED) {
     				// the operation is complete and has succeeded
    -				result = B_OK;
    +				return B_OK;
     			} else {
     				// the operation is complete but has failed at the SCSI level
     				TRACE_ALWAYS("operation 0x%02x failed at the SCSI level\n",
     					operation);
     				result = usb_disk_request_sense(lun);
    -				if (result == B_OK)
    -					result = B_ERROR;
    +				return result == B_OK ? B_ERROR : result;
     			}
    -			break;
     		}
     
     		case CSW_STATUS_PHASE_ERROR: {
     			// a protocol or device error occured
     			TRACE_ALWAYS("phase error in operation 0x%02x\n", operation);
     			usb_disk_reset_recovery(device);
    -			if (dataLength != NULL)
    -				*dataLength = 0;
    -			result = B_ERROR;
    +			return B_ERROR;
     		}
    +
    +		default: {
    +			// command status wrapper is not meaningful
    +			TRACE_ALWAYS("command status wrapper has invalid status\n");
    +			usb_disk_reset_recovery(device);
    +			return B_ERROR;
    +		}
     	}
    -
    -	return result;
     }
     
     
    @@ -472,7 +493,10 @@
     		if (result == B_OK)
     			lun->device->sync_support = SYNC_SUPPORT_RELOAD;
     		else if (result == B_DEV_INVALID_IOCTL)
    +			lun->device->sync_support = 0;
    +		else
     			lun->device->sync_support--;
    +
     		return result;
     	}
     
    @@ -790,8 +814,6 @@
     usb_disk_close(void *cookie)
     {
     	TRACE("close()\n");
    -	device_lun *lun = (device_lun *)cookie;
    -	usb_disk_synchronize(lun, false);
     	return B_OK;
     }
     
    
    
    
    From revol at free.fr  Sun Jan 18 02:41:25 2009
    From: revol at free.fr (=?utf-8?q?Fran=C3=A7ois?= Revol)
    Date: Sun, 18 Jan 2009 02:41:25 +0100 CET
    Subject: [Haiku-commits]
     =?utf-8?q?r28930_-_haiku/trunk/src/add-ons/kernel?=
     =?utf-8?q?/drivers/disk/usb/usb=5Fdisk?=
    In-Reply-To: <200901180134.n0I1YQqZ003599@sheep.berlios.de>
    Message-ID: <14750529042-BeMail@laptop>
    
    > Author: mmlr
    > Date: 2009-01-18 02:34:22 +0100 (Sun, 18 Jan 2009)
    > New Revision: 28930
    > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28930&view=rev
    > 
    > Modified:
    >    haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/
    > usb_disk.cpp
    > Log:
    > * The close hook did trigger a synchronize without locking the 
    > device. This
    >   could have messed up the state of other transfers currently running 
    > on that
    >   device. Since devices are regularly opened/closed for enumeration/
    > scanning
    >   from different threads, this could've easily lead to bad 
    > situations. I've
    >   removed the sync completely as it's not our task to issue it and 
    > because
    >   a close doesn't always correspond with an unmount at all.
    
    How about if someone does a 
    dd of=/dev/... ?
    I don't think dd does a sync at all...
    maybe in free hook?
    
    Fran?ois.
    
    
    From mmlr at mlotz.ch  Sun Jan 18 02:59:02 2009
    From: mmlr at mlotz.ch (Michael Lotz)
    Date: Sun, 18 Jan 2009 02:59:02 +0100
    Subject: [Haiku-commits] r28930 -
    	haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk
    In-Reply-To: <14750529042-BeMail@laptop>
    References: <200901180134.n0I1YQqZ003599@sheep.berlios.de>
    	<14750529042-BeMail@laptop>
    Message-ID: <20090118015431.M52770@mlotz.ch>
    
    On Sun, 18 Jan 2009 02:41:25 +0100 CET, Fran?ois Revol wrote
    >> Author: mmlr
    >> Date: 2009-01-18 02:34:22 +0100 (Sun, 18 Jan 2009)
    >> New Revision: 28930
    >> ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28930&view=rev
    >> 
    >> Modified:
    >>    haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/
    >> usb_disk.cpp
    >> Log:
    >> * The close hook did trigger a synchronize without locking the 
    >> device. This
    >>   could have messed up the state of other transfers currently running 
    >> on that
    >>   device. Since devices are regularly opened/closed for enumeration/
    >> scanning
    >>   from different threads, this could've easily lead to bad 
    >> situations. I've
    >>   removed the sync completely as it's not our task to issue it and 
    >> because
    >>   a close doesn't always correspond with an unmount at all.
    > 
    > How about if someone does a 
    > dd of=/dev/... ?
    > I don't think dd does a sync at all...
    > maybe in free hook?
    
    Well, it's the same situation for any other kind of disk like SCSI or ATA.
    Either dd, the user or the system should trigger it. The user through sync and
    the system on shutdown through the same mechanism. dd does have some sync
    stuff included like fdatasync() and fsync() but I'm not sure what they target.
    
    Regards
    Michael
    
    
    From revol at free.fr  Sun Jan 18 03:15:50 2009
    From: revol at free.fr (=?utf-8?q?Fran=C3=A7ois?= Revol)
    Date: Sun, 18 Jan 2009 03:15:50 +0100 CET
    Subject: [Haiku-commits]
     =?utf-8?q?r28930_-_haiku/trunk/src/add-ons/kernel?=
     =?utf-8?q?/drivers/disk/usb/usb=5Fdisk?=
    In-Reply-To: <20090118015431.M52770@mlotz.ch>
    Message-ID: <16815966246-BeMail@laptop>
    
    > > How about if someone does a 
    > > dd of=/dev/... ?
    > > I don't think dd does a sync at all...
    > > maybe in free hook?
    > 
    > Well, it's the same situation for any other kind of disk like SCSI or 
    > ATA.
    > Either dd, the user or the system should trigger it. The user through 
    > sync
    >  and
    > the system on shutdown through the same mechanism. dd does have some 
    > sync
    > stuff included like fdatasync() and fsync() but I'm not sure what 
    > they
    >  target.
    
    Checking with strace in ZETA it doesn't seem to do anything before 
    closing the devices...
    
    Maybe devfs should do it ?
    
    Isn't close() is supposed to flush the data by itself by POSIX specs ?
    
    Fran?ois.
    
    
    From ingo_weinhold at gmx.de  Sun Jan 18 05:16:20 2009
    From: ingo_weinhold at gmx.de (Ingo Weinhold)
    Date: Sun, 18 Jan 2009 05:16:20 +0100
    Subject: [Haiku-commits] r28930 -
     haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk
    In-Reply-To: <16815966246-BeMail@laptop>
    References: <16815966246-BeMail@laptop>
    Message-ID: <20090118051620.369.1@knochen-vm.localdomain>
    
    
    On 2009-01-18 at 03:15:50 [+0100], Fran?ois Revol  wrote:
    > > > How about if someone does a
    > > > dd of=/dev/... ?
    > > > I don't think dd does a sync at all...
    > > > maybe in free hook?
    > > 
    > > Well, it's the same situation for any other kind of disk like SCSI or
    > > ATA.
    > > Either dd, the user or the system should trigger it. The user through
    > > sync
    > >  and
    > > the system on shutdown through the same mechanism. dd does have some
    > > sync
    > > stuff included like fdatasync() and fsync() but I'm not sure what
    > > they
    > >  target.
    > 
    > Checking with strace in ZETA it doesn't seem to do anything before
    > closing the devices...
    > 
    > Maybe devfs should do it ?
    
    I don't think the devfs has enough knowledge for that. The device driver 
    can probably better judge when to sync or if to do that at all. The close() 
    or free() hook might be a good place, maybe only when the last descriptor 
    is closed.
    
    > Isn't close() is supposed to flush the data by itself by POSIX specs ?
    
    Can't remember having read anything in this regard at least.
    
    CU, Ingo
    
    
    From julun at mail.berlios.de  Sun Jan 18 13:12:00 2009
    From: julun at mail.berlios.de (julun at BerliOS)
    Date: Sun, 18 Jan 2009 13:12:00 +0100
    Subject: [Haiku-commits] r28931 - haiku/trunk/src/kits/network/libnetapi
    Message-ID: <200901181212.n0ICC06B027683@sheep.berlios.de>
    
    Author: julun
    Date: 2009-01-18 13:11:59 +0100 (Sun, 18 Jan 2009)
    New Revision: 28931
    ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28931&view=rev
    
    Modified:
       haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp
       haiku/trunk/src/kits/network/libnetapi/NetBuffer.cpp
    Log:
    * fix gcc4 build
    
    
    
    Modified: haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp
    ===================================================================
    --- haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp	2009-01-18 01:34:22 UTC (rev 28930)
    +++ haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp	2009-01-18 12:11:59 UTC (rev 28931)
    @@ -9,6 +9,7 @@
     #include "DynamicBuffer.h"
     
     #include 
    +#include 
     
     #include 
     #include 
    
    Modified: haiku/trunk/src/kits/network/libnetapi/NetBuffer.cpp
    ===================================================================
    --- haiku/trunk/src/kits/network/libnetapi/NetBuffer.cpp	2009-01-18 01:34:22 UTC (rev 28930)
    +++ haiku/trunk/src/kits/network/libnetapi/NetBuffer.cpp	2009-01-18 12:11:59 UTC (rev 28931)
    @@ -14,6 +14,7 @@
     #include "NetBuffer.h"
     
     #include 
    +#include 
     
     BNetBuffer::BNetBuffer(size_t size) :
     	BArchivable(),
    
    
    
    From korli at mail.berlios.de  Sun Jan 18 13:13:08 2009
    From: korli at mail.berlios.de (korli at BerliOS)
    Date: Sun, 18 Jan 2009 13:13:08 +0100
    Subject: [Haiku-commits] r28932 - in haiku/trunk:
    	headers/libs/freetype2/freetype
    	headers/libs/freetype2/freetype/config
    	headers/libs/freetype2/freetype/internal
    	headers/libs/freetype2/freetype/internal/services
    	src/libs/freetype2/autofit src/libs/freetype2/base
    	src/libs/freetype2/bdf src/libs/freetype2/cache
    	src/libs/freetype2/cff src/libs/freetype2/cid
    	src/libs/freetype2/gzip src/libs/freetype2/lzw
    	src/libs/freetype2/otvalid src/libs/freetype2/pcf
    	src/libs/freetype2/pfr src/libs/freetype2/psaux
    	src/libs/freetype2/pshinter src/libs/freetype2/psnames
    	src/libs/freetype2/raster src/libs/freetype2/sfnt
    	src/libs/freetype2/smooth src/libs/freetype2/truetype
    	src/libs/freetype2/type1 src/libs/freetype2/type42
    	src/libs/freetype2/winfonts
    Message-ID: <200901181213.n0ICD8IQ028897@sheep.berlios.de>
    
    Author: korli
    Date: 2009-01-18 13:13:00 +0100 (Sun, 18 Jan 2009)
    New Revision: 28932
    ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28932&view=rev
    
    Added:
       haiku/trunk/headers/libs/freetype2/freetype/ftadvanc.h
       haiku/trunk/src/libs/freetype2/base/ftadvanc.c
       haiku/trunk/src/libs/freetype2/base/ftbase.h
    Modified:
       haiku/trunk/headers/libs/freetype2/freetype/config/ftconfig.h
       haiku/trunk/headers/libs/freetype2/freetype/config/ftheader.h
       haiku/trunk/headers/libs/freetype2/freetype/config/ftmodule.h
       haiku/trunk/headers/libs/freetype2/freetype/config/ftoption.h
       haiku/trunk/headers/libs/freetype2/freetype/config/ftstdlib.h
       haiku/trunk/headers/libs/freetype2/freetype/freetype.h
       haiku/trunk/headers/libs/freetype2/freetype/ftbdf.h
       haiku/trunk/headers/libs/freetype2/freetype/ftbitmap.h
       haiku/trunk/headers/libs/freetype2/freetype/ftcache.h
       haiku/trunk/headers/libs/freetype2/freetype/ftchapters.h
       haiku/trunk/headers/libs/freetype2/freetype/ftgasp.h
       haiku/trunk/headers/libs/freetype2/freetype/ftglyph.h
       haiku/trunk/headers/libs/freetype2/freetype/ftimage.h
       haiku/trunk/headers/libs/freetype2/freetype/ftlcdfil.h
       haiku/trunk/headers/libs/freetype2/freetype/ftmodapi.h
       haiku/trunk/headers/libs/freetype2/freetype/ftoutln.h
       haiku/trunk/headers/libs/freetype2/freetype/ftpfr.h
       haiku/trunk/headers/libs/freetype2/freetype/ftstroke.h
       haiku/trunk/headers/libs/freetype2/freetype/ftsynth.h
       haiku/trunk/headers/libs/freetype2/freetype/internal/ftdebug.h
       haiku/trunk/headers/libs/freetype2/freetype/internal/ftdriver.h
       haiku/trunk/headers/libs/freetype2/freetype/internal/psaux.h
       haiku/trunk/headers/libs/freetype2/freetype/internal/services/svttcmap.h
       haiku/trunk/headers/libs/freetype2/freetype/internal/t1types.h
       haiku/trunk/headers/libs/freetype2/freetype/t1tables.h
       haiku/trunk/headers/libs/freetype2/freetype/ttnameid.h
       haiku/trunk/headers/libs/freetype2/freetype/tttags.h
       haiku/trunk/src/libs/freetype2/autofit/afcjk.c
       haiku/trunk/src/libs/freetype2/autofit/afhints.c
       haiku/trunk/src/libs/freetype2/autofit/aflatin.c
       haiku/trunk/src/libs/freetype2/autofit/aflatin2.c
       haiku/trunk/src/libs/freetype2/autofit/aftypes.h
       haiku/trunk/src/libs/freetype2/autofit/module.mk
       haiku/trunk/src/libs/freetype2/base/ftbase.c
       haiku/trunk/src/libs/freetype2/base/ftbitmap.c
       haiku/trunk/src/libs/freetype2/base/ftcalc.c
       haiku/trunk/src/libs/freetype2/base/ftdbgmem.c
       haiku/trunk/src/libs/freetype2/base/ftdebug.c
       haiku/trunk/src/libs/freetype2/base/ftinit.c
       haiku/trunk/src/libs/freetype2/base/ftlcdfil.c
       haiku/trunk/src/libs/freetype2/base/ftmac.c
       haiku/trunk/src/libs/freetype2/base/ftobjs.c
       haiku/trunk/src/libs/freetype2/base/ftotval.c
       haiku/trunk/src/libs/freetype2/base/ftoutln.c
       haiku/trunk/src/libs/freetype2/base/ftpatent.c
       haiku/trunk/src/libs/freetype2/base/ftpfr.c
       haiku/trunk/src/libs/freetype2/base/ftrfork.c
       haiku/trunk/src/libs/freetype2/base/ftstream.c
       haiku/trunk/src/libs/freetype2/base/ftstroke.c
       haiku/trunk/src/libs/freetype2/base/ftsynth.c
       haiku/trunk/src/libs/freetype2/base/ftsystem.c
       haiku/trunk/src/libs/freetype2/base/rules.mk
       haiku/trunk/src/libs/freetype2/bdf/bdfdrivr.c
       haiku/trunk/src/libs/freetype2/bdf/module.mk
       haiku/trunk/src/libs/freetype2/bdf/rules.mk
       haiku/trunk/src/libs/freetype2/cache/ftccmap.c
       haiku/trunk/src/libs/freetype2/cache/ftcmanag.c
       haiku/trunk/src/libs/freetype2/cache/rules.mk
       haiku/trunk/src/libs/freetype2/cff/cffdrivr.c
       haiku/trunk/src/libs/freetype2/cff/cffgload.c
       haiku/trunk/src/libs/freetype2/cff/cffgload.h
       haiku/trunk/src/libs/freetype2/cff/cffload.c
       haiku/trunk/src/libs/freetype2/cff/cffload.h
       haiku/trunk/src/libs/freetype2/cff/cffobjs.c
       haiku/trunk/src/libs/freetype2/cff/cffparse.c
       haiku/trunk/src/libs/freetype2/cff/module.mk
       haiku/trunk/src/libs/freetype2/cid/cidload.c
       haiku/trunk/src/libs/freetype2/cid/cidobjs.c
       haiku/trunk/src/libs/freetype2/cid/cidtoken.h
       haiku/trunk/src/libs/freetype2/cid/module.mk
       haiku/trunk/src/libs/freetype2/gzip/ftgzip.c
       haiku/trunk/src/libs/freetype2/gzip/inftrees.c
       haiku/trunk/src/libs/freetype2/lzw/ftlzw.c
       haiku/trunk/src/libs/freetype2/otvalid/Jamfile
       haiku/trunk/src/libs/freetype2/otvalid/module.mk
       haiku/trunk/src/libs/freetype2/otvalid/otvalid.h
       haiku/trunk/src/libs/freetype2/otvalid/otvcommn.h
       haiku/trunk/src/libs/freetype2/otvalid/otvgdef.c
       haiku/trunk/src/libs/freetype2/otvalid/otvmath.c
       haiku/trunk/src/libs/freetype2/otvalid/otvmod.c
       haiku/trunk/src/libs/freetype2/pcf/module.mk
       haiku/trunk/src/libs/freetype2/pcf/pcfdrivr.c
       haiku/trunk/src/libs/freetype2/pcf/pcfread.c
       haiku/trunk/src/libs/freetype2/pcf/rules.mk
       haiku/trunk/src/libs/freetype2/pfr/module.mk
       haiku/trunk/src/libs/freetype2/pfr/pfrdrivr.c
       haiku/trunk/src/libs/freetype2/pfr/pfrobjs.c
       haiku/trunk/src/libs/freetype2/psaux/afmparse.c
       haiku/trunk/src/libs/freetype2/psaux/module.mk
       haiku/trunk/src/libs/freetype2/psaux/psobjs.c
       haiku/trunk/src/libs/freetype2/psaux/t1decode.c
       haiku/trunk/src/libs/freetype2/pshinter/module.mk
       haiku/trunk/src/libs/freetype2/pshinter/pshalgo.c
       haiku/trunk/src/libs/freetype2/psnames/module.mk
       haiku/trunk/src/libs/freetype2/psnames/psmodule.c
       haiku/trunk/src/libs/freetype2/psnames/pstables.h
       haiku/trunk/src/libs/freetype2/raster/ftmisc.h
       haiku/trunk/src/libs/freetype2/raster/ftraster.c
       haiku/trunk/src/libs/freetype2/raster/module.mk
       haiku/trunk/src/libs/freetype2/raster/rules.mk
       haiku/trunk/src/libs/freetype2/sfnt/Jamfile
       haiku/trunk/src/libs/freetype2/sfnt/module.mk
       haiku/trunk/src/libs/freetype2/sfnt/sfobjs.c
       haiku/trunk/src/libs/freetype2/sfnt/ttcmap.c
       haiku/trunk/src/libs/freetype2/sfnt/ttload.c
       haiku/trunk/src/libs/freetype2/sfnt/ttmtx.c
       haiku/trunk/src/libs/freetype2/sfnt/ttpost.c
       haiku/trunk/src/libs/freetype2/sfnt/ttsbit.c
       haiku/trunk/src/libs/freetype2/sfnt/ttsbit.h
       haiku/trunk/src/libs/freetype2/smooth/ftgrays.c
       haiku/trunk/src/libs/freetype2/smooth/ftsmooth.c
       haiku/trunk/src/libs/freetype2/smooth/module.mk
       haiku/trunk/src/libs/freetype2/truetype/module.mk
       haiku/trunk/src/libs/freetype2/truetype/ttdriver.c
       haiku/trunk/src/libs/freetype2/truetype/ttgload.c
       haiku/trunk/src/libs/freetype2/truetype/ttgload.h
       haiku/trunk/src/libs/freetype2/truetype/ttgxvar.c
       haiku/trunk/src/libs/freetype2/truetype/ttinterp.c
       haiku/trunk/src/libs/freetype2/truetype/ttobjs.c
       haiku/trunk/src/libs/freetype2/truetype/ttobjs.h
       haiku/trunk/src/libs/freetype2/truetype/ttpload.c
       haiku/trunk/src/libs/freetype2/type1/module.mk
       haiku/trunk/src/libs/freetype2/type1/t1afm.c
       haiku/trunk/src/libs/freetype2/type1/t1driver.c
       haiku/trunk/src/libs/freetype2/type1/t1gload.c
       haiku/trunk/src/libs/freetype2/type1/t1gload.h
       haiku/trunk/src/libs/freetype2/type1/t1load.c
       haiku/trunk/src/libs/freetype2/type1/t1objs.c
       haiku/trunk/src/libs/freetype2/type1/t1tokens.h
       haiku/trunk/src/libs/freetype2/type42/module.mk
       haiku/trunk/src/libs/freetype2/type42/rules.mk
       haiku/trunk/src/libs/freetype2/type42/t42objs.c
       haiku/trunk/src/libs/freetype2/type42/t42parse.c
       haiku/trunk/src/libs/freetype2/type42/t42types.h
       haiku/trunk/src/libs/freetype2/winfonts/module.mk
       haiku/trunk/src/libs/freetype2/winfonts/winfnt.c
    Log:
    updated freetype to 2.3.8
    
    
    Modified: haiku/trunk/headers/libs/freetype2/freetype/config/ftconfig.h
    ===================================================================
    --- haiku/trunk/headers/libs/freetype2/freetype/config/ftconfig.h	2009-01-18 12:11:59 UTC (rev 28931)
    +++ haiku/trunk/headers/libs/freetype2/freetype/config/ftconfig.h	2009-01-18 12:13:00 UTC (rev 28932)
    @@ -4,7 +4,7 @@
     /*                                                                         */
     /*    ANSI-specific configuration file (specification only).               */
     /*                                                                         */
    -/*  Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007 by                   */
    +/*  Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007, 2008 by             */
     /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
     /*                                                                         */
     /*  This file is part of the FreeType project, and may only be used,       */
    @@ -43,6 +43,7 @@
     #include FT_CONFIG_OPTIONS_H
     #include FT_CONFIG_STANDARD_LIBRARY_H
     
    +
     FT_BEGIN_HEADER
     
     
    @@ -134,9 +135,17 @@
     #else
     #define FT_MACINTOSH 1
     #endif
    +
    +#elif defined( __SC__ ) || defined( __MRC__ )
    +  /* Classic MacOS compilers */
    +#include "ConditionalMacros.h"
    +#if TARGET_OS_MAC
    +#define FT_MACINTOSH 1
     #endif
     
    +#endif
     
    +
       /*************************************************************************/
       /*                                                                       */
       /* 
    */ @@ -212,6 +221,7 @@ #error "no 32bit type found -- please check your configuration files" #endif + /* look up an integer type that is at least 32 bits */ #if FT_SIZEOF_INT >= (32 / FT_CHAR_BIT) @@ -267,17 +277,12 @@ #endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */ -#define FT_BEGIN_STMNT do { -#define FT_END_STMNT } while ( 0 ) -#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT - - /*************************************************************************/ /* */ /* A 64-bit data type will create compilation problems if you compile */ - /* in strict ANSI mode. To avoid them, we disable their use if */ - /* __STDC__ is defined. You can however ignore this rule by */ - /* defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */ + /* in strict ANSI mode. To avoid them, we disable its use if __STDC__ */ + /* is defined. You can however ignore this rule by defining the */ + /* FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */ /* */ #if defined( FT_LONG64 ) && !defined( FT_CONFIG_OPTION_FORCE_INT64 ) @@ -292,6 +297,86 @@ #endif /* FT_LONG64 && !FT_CONFIG_OPTION_FORCE_INT64 */ +#define FT_BEGIN_STMNT do { +#define FT_END_STMNT } while ( 0 ) +#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT + + +#ifndef FT_CONFIG_OPTION_NO_ASSEMBLER + /* Provide assembler fragments for performance-critical functions. */ + /* These must be defined `static __inline__' with GCC. */ + +#ifdef __GNUC__ + +#if defined( __arm__ ) && !defined( __thumb__ ) +#define FT_MULFIX_ASSEMBLER FT_MulFix_arm + + /* documentation is in freetype.h */ + + static __inline__ FT_Int32 + FT_MulFix_arm( FT_Int32 a, + FT_Int32 b ) + { + register FT_Int32 t, t2; + + + asm __volatile__ ( + "smull %1, %2, %4, %3\n\t" /* (lo=%1,hi=%2) = a*b */ + "mov %0, %2, asr #31\n\t" /* %0 = (hi >> 31) */ + "add %0, %0, #0x8000\n\t" /* %0 += 0x8000 */ + "adds %1, %1, %0\n\t" /* %1 += %0 */ + "adc %2, %2, #0\n\t" /* %2 += carry */ + "mov %0, %1, lsr #16\n\t" /* %0 = %1 >> 16 */ + "orr %0, %2, lsl #16\n\t" /* %0 |= %2 << 16 */ + : "=r"(a), "=&r"(t2), "=&r"(t) + : "r"(a), "r"(b) ); + return a; + } + +#endif /* __arm__ && !__thumb__ */ + +#if defined( i386 ) +#define FT_MULFIX_ASSEMBLER FT_MulFix_i386 + + /* documentation is in freetype.h */ + + static __inline__ FT_Int32 + FT_MulFix_i386( FT_Int32 a, + FT_Int32 b ) + { + register FT_Int32 result; + + + __asm__ __volatile__ ( + "imul %%edx\n" + "movl %%edx, %%ecx\n" + "sarl $31, %%ecx\n" + "addl $0x8000, %%ecx\n" + "addl %%ecx, %%eax\n" + "adcl $0, %%edx\n" + "shrl $16, %%eax\n" + "shll $16, %%edx\n" + "addl %%edx, %%eax\n" + : "=a"(result), "+d"(b) + : "a"(a) + : "%ecx" ); + return result; + } + +#endif /* i386 */ + +#endif /* __GNUC__ */ + +#endif /* !FT_CONFIG_OPTION_NO_ASSEMBLER */ + + +#ifdef FT_CONFIG_OPTION_INLINE_MULFIX +#ifdef FT_MULFIX_ASSEMBLER +#define FT_MULFIX_INLINED FT_MULFIX_ASSEMBLER +#endif +#endif + + #ifdef FT_MAKE_OPTION_SINGLE_OBJECT #define FT_LOCAL( x ) static x Modified: haiku/trunk/headers/libs/freetype2/freetype/config/ftheader.h =================================================================== --- haiku/trunk/headers/libs/freetype2/freetype/config/ftheader.h 2009-01-18 12:11:59 UTC (rev 28931) +++ haiku/trunk/headers/libs/freetype2/freetype/config/ftheader.h 2009-01-18 12:13:00 UTC (rev 28932) @@ -729,6 +729,18 @@ #define FT_GASP_H + /************************************************************************* + * + * @macro: + * FT_ADVANCES_H + * + * @description: + * A macro used in #include statements to name the file containing the + * FreeType~2 API which returns individual and ranged glyph advances. + */ +#define FT_ADVANCES_H + + /* */ #define FT_ERROR_DEFINITIONS_H Modified: haiku/trunk/headers/libs/freetype2/freetype/config/ftmodule.h =================================================================== --- haiku/trunk/headers/libs/freetype2/freetype/config/ftmodule.h 2009-01-18 12:11:59 UTC (rev 28931) +++ haiku/trunk/headers/libs/freetype2/freetype/config/ftmodule.h 2009-01-18 12:13:00 UTC (rev 28932) @@ -10,23 +10,23 @@ * */ -FT_USE_MODULE(autofit_module_class) -FT_USE_MODULE(tt_driver_class) -FT_USE_MODULE(t1_driver_class) -FT_USE_MODULE(cff_driver_class) -FT_USE_MODULE(t1cid_driver_class) -FT_USE_MODULE(pfr_driver_class) -FT_USE_MODULE(t42_driver_class) -FT_USE_MODULE(winfnt_driver_class) -FT_USE_MODULE(pcf_driver_class) -FT_USE_MODULE(psaux_module_class) -FT_USE_MODULE(psnames_module_class) -FT_USE_MODULE(pshinter_module_class) -FT_USE_MODULE(ft_raster1_renderer_class) -FT_USE_MODULE(sfnt_module_class) -FT_USE_MODULE(ft_smooth_renderer_class) -FT_USE_MODULE(ft_smooth_lcd_renderer_class) -FT_USE_MODULE(ft_smooth_lcdv_renderer_class) -FT_USE_MODULE(bdf_driver_class) +FT_USE_MODULE( FT_Module_Class, autofit_module_class ) +FT_USE_MODULE( FT_Driver_ClassRec, tt_driver_class ) +FT_USE_MODULE( FT_Driver_ClassRec, t1_driver_class ) +FT_USE_MODULE( FT_Driver_ClassRec, cff_driver_class ) +FT_USE_MODULE( FT_Driver_ClassRec, t1cid_driver_class ) +FT_USE_MODULE( FT_Driver_ClassRec, pfr_driver_class ) +FT_USE_MODULE( FT_Driver_ClassRec, t42_driver_class ) +FT_USE_MODULE( FT_Driver_ClassRec, winfnt_driver_class ) +FT_USE_MODULE( FT_Driver_ClassRec, pcf_driver_class ) +FT_USE_MODULE( FT_Module_Class, psaux_module_class ) +FT_USE_MODULE( FT_Module_Class, psnames_module_class ) +FT_USE_MODULE( FT_Module_Class, pshinter_module_class ) +FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class ) +FT_USE_MODULE( FT_Module_Class, sfnt_module_class ) +FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class ) +FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcd_renderer_class ) +FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcdv_renderer_class ) +FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class ) /* EOF */ Modified: haiku/trunk/headers/libs/freetype2/freetype/config/ftoption.h =================================================================== --- haiku/trunk/headers/libs/freetype2/freetype/config/ftoption.h 2009-01-18 12:11:59 UTC (rev 28931) +++ haiku/trunk/headers/libs/freetype2/freetype/config/ftoption.h 2009-01-18 12:13:00 UTC (rev 28932) @@ -112,11 +112,32 @@ /* file `ftconfig.h' either statically or through the */ /* `configure' script on supported platforms. */ /* */ -#undef FT_CONFIG_OPTION_FORCE_INT64 +#undef FT_CONFIG_OPTION_FORCE_INT64 /*************************************************************************/ /* */ + /* If this macro is defined, do not try to use an assembler version of */ + /* performance-critical functions (e.g. FT_MulFix). You should only do */ + /* that to verify that the assembler function works properly, or to */ + /* execute benchmark tests of the various implementations. */ +/* #define FT_CONFIG_OPTION_NO_ASSEMBLER */ + + + /*************************************************************************/ + /* */ + /* If this macro is defined, try to use an inlined assembler version of */ + /* the `FT_MulFix' function, which is a `hotspot' when loading and */ + /* hinting glyphs, and which should be executed as fast as possible. */ + /* */ + /* Note that if your compiler or CPU is not supported, this will default */ + /* to the standard and portable implementation found in `ftcalc.c'. */ + /* */ +#define FT_CONFIG_OPTION_INLINE_MULFIX + + + /*************************************************************************/ + /* */ /* LZW-compressed file support. */ /* */ /* FreeType now handles font files that have been compressed with the */ @@ -163,7 +184,7 @@ /* Do not #undef this macro here since the build system might define */ /* it for certain configurations only. */ /* */ -/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ +/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ /*************************************************************************/ @@ -204,27 +225,27 @@ /* Do not #undef these macros here since the build system might define */ /* them for certain configurations only. */ /* */ -/* #define FT_EXPORT(x) extern x */ -/* #define FT_EXPORT_DEF(x) x */ +/* #define FT_EXPORT(x) extern x */ +/* #define FT_EXPORT_DEF(x) x */ /*************************************************************************/ /* */ /* Glyph Postscript Names handling */ /* */ - /* By default, FreeType 2 is compiled with the `PSNames' module. This */ + /* By default, FreeType 2 is compiled with the `psnames' module. This */ /* module is in charge of converting a glyph name string into a */ /* Unicode value, or return a Macintosh standard glyph name for the */ /* use with the TrueType `post' table. */ /* */ - /* Undefine this macro if you do not want `PSNames' compiled in your */ + /* Undefine this macro if you do not want `psnames' compiled in your */ /* build of FreeType. This has the following effects: */ /* */ /* - The TrueType driver will provide its own set of glyph names, */ /* if you build it to support postscript names in the TrueType */ /* `post' table. */ /* */ - /* - The Type 1 driver will not be able to synthetize a Unicode */ + /* - The Type 1 driver will not be able to synthesize a Unicode */ /* charmap out of the glyphs found in the fonts. */ /* */ /* You would normally undefine this configuration macro when building */ @@ -240,12 +261,12 @@ /* By default, FreeType 2 is built with the `PSNames' module compiled */ /* in. Among other things, the module is used to convert a glyph name */ /* into a Unicode value. This is especially useful in order to */ - /* synthetize on the fly a Unicode charmap from the CFF/Type 1 driver */ + /* synthesize on the fly a Unicode charmap from the CFF/Type 1 driver */ /* through a big table named the `Adobe Glyph List' (AGL). */ /* */ /* Undefine this macro if you do not want the Adobe Glyph List */ /* compiled in your `PSNames' module. The Type 1 driver will not be */ - /* able to synthetize a Unicode charmap out of the glyphs found in the */ + /* able to synthesize a Unicode charmap out of the glyphs found in the */ /* fonts. */ /* */ #define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST @@ -467,9 +488,9 @@ /* If you define TT_CONFIG_OPTION_UNPATENTED_HINTING, a special version */ /* of the TrueType bytecode interpreter is used that doesn't implement */ /* any of the patented opcodes and algorithms. Note that the */ - /* the TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* if you */ - /* define TT_CONFIG_OPTION_BYTECODE_INTERPRETER; with other words, */ - /* either define TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */ + /* TT_CONFIG_OPTION_UNPATENTED_HINTING macro is *ignored* if you define */ + /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER; in other words, either define */ + /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER or */ /* TT_CONFIG_OPTION_UNPATENTED_HINTING but not both at the same time. */ /* */ /* This macro is only useful for a small number of font files (mostly */ @@ -653,11 +674,12 @@ /* - * This variable is defined if either unpatented or native TrueType + * This macro is defined if either unpatented or native TrueType * hinting is requested by the definitions above. */ #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER #define TT_USE_BYTECODE_INTERPRETER +#undef TT_CONFIG_OPTION_UNPATENTED_HINTING #elif defined TT_CONFIG_OPTION_UNPATENTED_HINTING #define TT_USE_BYTECODE_INTERPRETER #endif Modified: haiku/trunk/headers/libs/freetype2/freetype/config/ftstdlib.h =================================================================== --- haiku/trunk/headers/libs/freetype2/freetype/config/ftstdlib.h 2009-01-18 12:11:59 UTC (rev 28931) +++ haiku/trunk/headers/libs/freetype2/freetype/config/ftstdlib.h 2009-01-18 12:13:00 UTC (rev 28932) @@ -5,7 +5,7 @@ /* ANSI-specific library and header configuration file (specification */ /* only). */ /* */ -/* Copyright 2002, 2003, 2004, 2005, 2006, 2007 by */ +/* Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2009 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -54,12 +54,6 @@ /* In these case, `ftconfig.h' will refuse to compile anyway with a */ /* message like `couldn't find 32-bit type' or something similar. */ /* */ - /* IMPORTANT NOTE: We do not define aliases for heap management and */ - /* i/o routines (i.e. malloc/free/fopen/fread/...) */ - /* since these functions should all be encapsulated */ - /* by platform-specific implementations of */ - /* `ftsystem.c'. */ - /* */ /**********************************************************************/ @@ -124,9 +118,7 @@ #define ft_qsort qsort -#define ft_exit exit /* only used to exit from unhandled exceptions */ - /**********************************************************************/ /* */ /* memory allocation */ Modified: haiku/trunk/headers/libs/freetype2/freetype/freetype.h =================================================================== --- haiku/trunk/headers/libs/freetype2/freetype/freetype.h 2009-01-18 12:11:59 UTC (rev 28931) +++ haiku/trunk/headers/libs/freetype2/freetype/freetype.h 2009-01-18 12:13:00 UTC (rev 28932) @@ -4,7 +4,7 @@ /* */ /* FreeType high-level API and common types (specification only). */ /* */ -/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by */ +/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -60,8 +60,8 @@ /* */ /* */ /* FreeType assumes that structures allocated by the user and passed */ - /* as arguments are zeroed out except for the actual data. With */ - /* other words, it is recommended to use `calloc' (or variants of it) */ + /* as arguments are zeroed out except for the actual data. In other */ + /* words, it is recommended to use `calloc' (or variants of it) */ /* instead of `malloc' for allocation. */ /* */ /*************************************************************************/ @@ -191,6 +191,15 @@ /* FT_Set_Charmap */ /* FT_Get_Charmap_Index */ /* */ + /* FT_FSTYPE_INSTALLABLE_EMBEDDING */ + /* FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING */ + /* FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING */ + /* FT_FSTYPE_EDITABLE_EMBEDDING */ + /* FT_FSTYPE_NO_SUBSETTING */ + /* FT_FSTYPE_BITMAP_EMBEDDING_ONLY */ + /* */ + /* FT_Get_FSType_Flags */ + /* */ /*************************************************************************/ @@ -606,7 +615,7 @@ /* Same as FT_ENCODING_JOHAB. Deprecated. */ /* */ /* */ - /* By default, FreeType automatically synthetizes a Unicode charmap */ + /* By default, FreeType automatically synthesizes a Unicode charmap */ /* for PostScript fonts, using their glyph names dictionaries. */ /* However, it also reports the encodings defined explicitly in the */ /* font file, for the cases when they are needed, with the Adobe */ @@ -883,7 +892,7 @@ /* scalable formats. */ /* */ /* underline_position :: The position, in font units, of the */ - /* underline line for this face. It's the */ + /* underline line for this face. It is the */ /* center of the underlining stem. Only */ /* relevant for scalable formats. */ /* */ @@ -1037,6 +1046,27 @@ /* exist make FT_Load_Glyph return successfully; in all other cases */ /* you get an `FT_Err_Invalid_Argument' error. */ /* */ + /* Note that CID-keyed fonts which are in an SFNT wrapper don't */ + /* have this flag set since the glyphs are accessed in the normal */ + /* way (using contiguous indices); the `CID-ness' isn't visible to */ + /* the application. */ + /* */ + /* FT_FACE_FLAG_TRICKY :: */ + /* Set if the font is `tricky', this is, it always needs the */ + /* font format's native hinting engine to get a reasonable result. */ + /* A typical example is the Chinese font `mingli.ttf' which uses */ + /* TrueType bytecode instructions to move and scale all of its */ + /* subglyphs. */ + /* */ + /* It is not possible to autohint such fonts using */ + /* @FT_LOAD_FORCE_AUTOHINT; it will also ignore */ + /* @FT_LOAD_NO_HINTING. You have to set both FT_LOAD_NO_HINTING */ + /* and @FT_LOAD_NO_AUTOHINT to really disable hinting; however, you */ + /* probably never want this except for demonstration purposes. */ + /* */ + /* Currently, there are six TrueType fonts in the list of tricky */ + /* fonts; they are hard-coded in file `ttobjs.c'. */ + /* */ #define FT_FACE_FLAG_SCALABLE ( 1L << 0 ) #define FT_FACE_FLAG_FIXED_SIZES ( 1L << 1 ) #define FT_FACE_FLAG_FIXED_WIDTH ( 1L << 2 ) @@ -1050,10 +1080,9 @@ #define FT_FACE_FLAG_EXTERNAL_STREAM ( 1L << 10 ) #define FT_FACE_FLAG_HINTER ( 1L << 11 ) #define FT_FACE_FLAG_CID_KEYED ( 1L << 12 ) +#define FT_FACE_FLAG_TRICKY ( 1L << 13 ) - /* */ - /************************************************************************* * * @macro: @@ -1162,9 +1191,7 @@ #define FT_HAS_FIXED_SIZES( face ) \ ( face->face_flags & FT_FACE_FLAG_FIXED_SIZES ) - /* */ - /************************************************************************* * * @macro: @@ -1224,9 +1251,23 @@ ( face->face_flags & FT_FACE_FLAG_CID_KEYED ) + /************************************************************************* + * + * @macro: + * FT_IS_TRICKY( face ) + * + * @description: + * A macro that returns true whenever a face represents a `tricky' font. + * See the discussion of @FT_FACE_FLAG_TRICKY for more details. + * + */ +#define FT_IS_TRICKY( face ) \ + ( face->face_flags & FT_FACE_FLAG_TRICKY ) + + /*************************************************************************/ /* */ - /* */ + /* */ /* FT_STYLE_FLAG_XXX */ /* */ /* */ @@ -1518,10 +1559,10 @@ /* */ /* This image can later be converted into a bitmap by calling */ /* @FT_Render_Glyph. This function finds the current renderer for */ - /* the native image's format then invokes it. */ + /* the native image's format, then invokes it. */ /* */ /* The renderer is in charge of transforming the native image through */ - /* the slot's face transformation fields, then convert it into a */ + /* the slot's face transformation fields, then converting it into a */ /* bitmap that is returned in `slot->bitmap'. */ /* */ /* Note that `slot->bitmap_left' and `slot->bitmap_top' are also used */ @@ -1769,7 +1810,7 @@ /* `num_params' and `params' is used. They are ignored otherwise. */ /* */ /* Ideally, both the `pathname' and `params' fields should be tagged */ - /* as `const'; this is missing for API backwards compatibility. With */ + /* as `const'; this is missing for API backwards compatibility. In */ /* other words, applications should treat them as read-only. */ /* */ typedef struct FT_Open_Args_ @@ -2174,7 +2215,8 @@ /* A character width or height smaller than 1pt is set to 1pt; if */ /* both resolution values are zero, they are set to 72dpi. */ /* */ - + /* Don't use this function if you are using the FreeType cache API. */ + /* */ FT_EXPORT( FT_Error ) FT_Set_Char_Size( FT_Face face, FT_F26Dot6 char_width, @@ -2390,7 +2432,7 @@ * 8~pixels packed into each byte of the bitmap data. * * Note that this has no effect on the hinting algorithm used. You - * should use @FT_LOAD_TARGET_MONO instead so that the + * should rather use @FT_LOAD_TARGET_MONO so that the * monochrome-optimized hinting algorithm is used. * * FT_LOAD_LINEAR_DESIGN :: @@ -2409,6 +2451,9 @@ * @FT_LOAD_NO_AUTOHINT in case you don't want the auto-hinter to be * used at all. * + * See the description of @FT_FACE_FLAG_TRICKY for a special exception + * (affecting only a handful of Asian fonts). + * * Besides deciding which hinter to use, you can also decide which * hinting algorithm to use. See @FT_LOAD_TARGET_XXX for details. */ @@ -2426,12 +2471,15 @@ #define FT_LOAD_IGNORE_TRANSFORM 0x800 #define FT_LOAD_MONOCHROME 0x1000 #define FT_LOAD_LINEAR_DESIGN 0x2000 -#define FT_LOAD_SBITS_ONLY 0x4000 /* temporary hack! */ #define FT_LOAD_NO_AUTOHINT 0x8000U /* */ + /* used internally only by certain font drivers! */ +#define FT_LOAD_ADVANCE_ONLY 0x100 +#define FT_LOAD_SBITS_ONLY 0x4000 + /************************************************************************** * * @enum: @@ -3158,6 +3206,88 @@ /*************************************************************************/ /* */ + /* */ + /* FT_FSTYPE_XXX */ + /* */ + /* */ + /* A list of bit flags used in the `fsType' field of the OS/2 table */ + /* in a TrueType or OpenType font and the `FSType' entry in a */ + /* PostScript font. These bit flags are returned by */ + /* @FT_Get_FSType_Flags; they inform client applications of embedding */ + /* and subsetting restrictions associated with a font. */ + /* */ + /* See http://www.adobe.com/devnet/acrobat/pdfs/FontPolicies.pdf for */ + /* more details. */ + /* */ + /* */ + /* FT_FSTYPE_INSTALLABLE_EMBEDDING :: */ + /* Fonts with no fsType bit set may be embedded and permanently */ + /* installed on the remote system by an application. */ + /* */ + /* FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING :: */ + /* Fonts that have only this bit set must not be modified, embedded */ + /* or exchanged in any manner without first obtaining permission of */ + /* the font software copyright owner. */ + /* */ + /* FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING :: */ + /* If this bit is set, the font may be embedded and temporarily */ + /* loaded on the remote system. Documents containing Preview & */ + /* Print fonts must be opened `read-only'; no edits can be applied */ + /* to the document. */ + /* */ + /* FT_FSTYPE_EDITABLE_EMBEDDING :: */ + /* If this bit is set, the font may be embedded but must only be */ + /* installed temporarily on other systems. In contrast to Preview */ + /* & Print fonts, documents containing editable fonts may be opened */ + /* for reading, editing is permitted, and changes may be saved. */ + /* */ + /* FT_FSTYPE_NO_SUBSETTING :: */ + /* If this bit is set, the font may not be subsetted prior to */ + /* embedding. */ + /* */ + /* FT_FSTYPE_BITMAP_EMBEDDING_ONLY :: */ + /* If this bit is set, only bitmaps contained in the font may be */ + /* embedded; no outline data may be embedded. If there are no */ + /* bitmaps available in the font, then the font is unembeddable. */ + /* */ + /* */ + /* While the fsType flags can indicate that a font may be embedded, a */ + /* license with the font vendor may be separately required to use the */ + /* font in this way. */ + /* */ +#define FT_FSTYPE_INSTALLABLE_EMBEDDING 0x0000 +#define FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING 0x0002 +#define FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING 0x0004 +#define FT_FSTYPE_EDITABLE_EMBEDDING 0x0008 +#define FT_FSTYPE_NO_SUBSETTING 0x0100 +#define FT_FSTYPE_BITMAP_EMBEDDING_ONLY 0x0200 + + + /*************************************************************************/ + /* */ + /* */ + /* FT_Get_FSType_Flags */ + /* */ + /* */ + /* Return the fsType flags for a font. */ + /* */ + /* */ + /* face :: A handle to the source face object. */ + /* */ + /* */ + /* The fsType flags, @FT_FSTYPE_XXX. */ + /* */ + /* */ + /* Use this function rather than directly reading the `fs_type' field */ + /* in the @PS_FontInfoRec structure which is only guaranteed to */ + /* return the correct results for Type~1 fonts. */ + /* */ + FT_EXPORT( FT_UShort ) + FT_Get_FSType_Flags( FT_Face face ); + + + /*************************************************************************/ + /* */ /*
    */ /* glyph_variants */ /* */ @@ -3431,6 +3561,12 @@ FT_Long c ); + /* */ + + /* The following #if 0 ... #endif is for the documentation formatter, */ + /* hiding the internal `FT_MULFIX_INLINED' macro. */ + +#if 0 /*************************************************************************/ /* */ /* */ @@ -3464,7 +3600,18 @@ FT_MulFix( FT_Long a, FT_Long b ); + /* */ +#endif +#ifdef FT_MULFIX_INLINED +#define FT_MulFix( a, b ) FT_MULFIX_INLINED( a, b ) +#else + FT_EXPORT( FT_Long ) + FT_MulFix( FT_Long a, + FT_Long b ); +#endif + + /*************************************************************************/ /* */ /* */ @@ -3611,7 +3758,7 @@ */ #define FREETYPE_MAJOR 2 #define FREETYPE_MINOR 3 -#define FREETYPE_PATCH 7 +#define FREETYPE_PATCH 8 /*************************************************************************/ @@ -3695,7 +3842,7 @@ /* */ /* */ /* The old setting value. This will always be false if this is not */ - /* a SFNT font, or if the unpatented hinter is not compiled in this */ + /* an SFNT font, or if the unpatented hinter is not compiled in this */ /* instance of the library. */ /* */ /* */ Added: haiku/trunk/headers/libs/freetype2/freetype/ftadvanc.h =================================================================== --- haiku/trunk/headers/libs/freetype2/freetype/ftadvanc.h 2009-01-18 12:11:59 UTC (rev 28931) +++ haiku/trunk/headers/libs/freetype2/freetype/ftadvanc.h 2009-01-18 12:13:00 UTC (rev 28932) @@ -0,0 +1,179 @@ +/***************************************************************************/ +/* */ +/* ftadvanc.h */ +/* */ +/* Quick computation of advance widths (specification only). */ +/* */ +/* Copyright 2008 by */ +/* David Turner, Robert Wilhelm, and Werner Lemberg. */ +/* */ +/* This file is part of the FreeType project, and may only be used, */ +/* modified, and distributed under the terms of the FreeType project */ +/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ +/* this file you indicate that you have read the license and */ +/* understand and accept it fully. */ +/* */ +/***************************************************************************/ + + +#ifndef __FTADVANC_H__ +#define __FTADVANC_H__ + + +#include +#include FT_FREETYPE_H + +#ifdef FREETYPE_H +#error "freetype.h of FreeType 1 has been loaded!" +#error "Please fix the directory search order for header files" +#error "so that freetype.h of FreeType 2 is found first." +#endif + + +FT_BEGIN_HEADER + + + /************************************************************************** + * + * @section: + * quick_advance + * + * @title: + * Quick retrieval of advance values + * + * @abstract: + * Retrieve horizontal and vertical advance values without processing + * glyph outlines, if possible. + * + * @description: + * This section contains functions to quickly extract advance values + * without handling glyph outlines, if possible. + */ + + + /*************************************************************************/ + /* */ + /* */ + /* FT_ADVANCE_FLAG_FAST_ONLY */ + /* */ + /* */ + /* A bit-flag to be OR-ed with the `flags' parameter of the */ + /* @FT_Get_Advance and @FT_Get_Advances functions. */ + /* */ + /* If set, it indicates that you want these functions to fail if the */ + /* corresponding hinting mode or font driver doesn't allow for very */ + /* quick advance computation. */ + /* */ + /* Typically, glyphs which are either unscaled, unhinted, bitmapped, */ + /* or light-hinted can have their advance width computed very */ + /* quickly. */ + /* */ + /* Normal and bytecode hinted modes, which require loading, scaling, */ + /* and hinting of the glyph outline, are extremely slow by */ + /* comparison. */ + /* */ +#define FT_ADVANCE_FLAG_FAST_ONLY 0x20000000UL + + + /*************************************************************************/ + /* */ + /* */ + /* FT_Get_Advance */ + /* */ + /* */ + /* Retrieve the advance value of a given glyph outline in an */ + /* @FT_Face. By default, the unhinted advance is returned in font */ + /* units. */ + /* */ + /* */ + /* face :: The source @FT_Face handle. */ + /* */ + /* gindex :: The glyph index. */ + /* */ + /* load_flags :: A set of bit flags similar to those used when */ + /* calling @FT_Load_Glyph, used to determine what kind */ + /* of advances you need. */ + /* */ + /* padvance :: The advance value, in either font units or 16.16 */ + /* format. */ + /* */ + /* If @FT_LOAD_VERTICAL_LAYOUT is set, this is the */ + /* vertical advance corresponding to a vertical layout. */ + /* Otherwise, it is the horizontal advance in a */ + /* horizontal layout. */ + /* */ + /* */ + /* FreeType error code. 0 means success. */ + /* */ + /* */ + /* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */ + /* if the corresponding font backend doesn't have a quick way to */ + /* retrieve the advances. */ + /* */ + /* A scaled advance is returned in 16.16 format but isn't transformed */ + /* by the affine transformation specified by @FT_Set_Transform. */ + /* */ + FT_EXPORT( FT_Error ) + FT_Get_Advance( FT_Face face, + FT_UInt gindex, + FT_Int32 load_flags, + FT_Fixed *padvance ); + + + /*************************************************************************/ + /* */ + /* */ + /* FT_Get_Advances */ + /* */ + /* */ + /* Retrieve the advance values of several glyph outlines in an */ + /* @FT_Face. By default, the unhinted advances are returned in font */ + /* units. */ + /* */ + /* */ + /* face :: The source @FT_Face handle. */ + /* */ + /* start :: The first glyph index. */ + /* */ + /* count :: The number of advance values you want to retrieve. */ + /* */ + /* load_flags :: A set of bit flags similar to those used when */ + /* calling @FT_Load_Glyph. */ + /* */ + /* */ + /* padvance :: The advances, in either font units or 16.16 format. */ + /* This array must contain at least `count' elements. */ + /* */ + /* If @FT_LOAD_VERTICAL_LAYOUT is set, these are the */ + /* vertical advances corresponding to a vertical layout. */ + /* Otherwise, they are the horizontal advances in a */ + /* horizontal layout. */ + /* */ + /* */ + /* FreeType error code. 0 means success. */ + /* */ + /* */ + /* This function may fail if you use @FT_ADVANCE_FLAG_FAST_ONLY and */ + /* if the corresponding font backend doesn't have a quick way to */ + /* retrieve the advances. */ + /* */ + /* Scaled advances are returned in 16.16 format but aren't */ + /* transformed by the affine transformation specified by */ + /* @FT_Set_Transform. */ + /* */ + FT_EXPORT( FT_Error ) + FT_Get_Advances( FT_Face face, + FT_UInt start, + FT_UInt count, + FT_Int32 load_flags, + FT_Fixed *padvances ); + +/* */ + + +FT_END_HEADER + +#endif /* __FTADVANC_H__ */ + + +/* END */ Modified: haiku/trunk/headers/libs/freetype2/freetype/ftbdf.h =================================================================== --- haiku/trunk/headers/libs/freetype2/freetype/ftbdf.h 2009-01-18 12:11:59 UTC (rev 28931) +++ haiku/trunk/headers/libs/freetype2/freetype/ftbdf.h 2009-01-18 12:13:00 UTC (rev 28932) @@ -4,7 +4,7 @@ /* */ /* FreeType API for accessing BDF-specific strings (specification). */ /* */ -/* Copyright 2002, 2003, 2004, 2006 by */ +/* Copyright 2002, 2003, 2004, 2006, 2009 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -183,6 +183,14 @@ * otherwise. It also returns an error if the property is not in the * font. * + * A `property' is a either key-value pair within the STARTPROPERTIES + * ... ENDPROPERTIES block of a BDF font or a key-value pair from the + * `info->props' array within a `FontRec' structure of a PCF font. + * + * Integer properties are always stored as `signed' within PCF fonts; + * consequently, @BDF_PROPERTY_TYPE_CARDINAL is a possible return value + * for BDF fonts only. + * * In case of error, `aproperty->type' is always set to * @BDF_PROPERTY_TYPE_NONE. */ Modified: haiku/trunk/headers/libs/freetype2/freetype/ftbitmap.h =================================================================== --- haiku/trunk/headers/libs/freetype2/freetype/ftbitmap.h 2009-01-18 12:11:59 UTC (rev 28931) +++ haiku/trunk/headers/libs/freetype2/freetype/ftbitmap.h 2009-01-18 12:13:00 UTC (rev 28932) @@ -2,10 +2,9 @@ /* */ /* ftbitmap.h */ /* */ -/* FreeType utility functions for converting 1bpp, 2bpp, 4bpp, and 8bpp */ -/* bitmaps into 8bpp format (specification). */ +/* FreeType utility functions for bitmaps (specification). */ /* */ -/* Copyright 2004, 2005, 2006 by */ +/* Copyright 2004, 2005, 2006, 2008 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -121,7 +120,7 @@ /* or equal to~8 if bitmap is of pixel_mode @FT_PIXEL_MODE_MONO. */ /* */ /* If you want to embolden the bitmap owned by a @FT_GlyphSlotRec, */ - /* you should call `FT_GlyphSlot_Own_Bitmap' on the slot first. */ + /* you should call @FT_GlyphSlot_Own_Bitmap on the slot first. */ /* */ FT_EXPORT( FT_Error ) FT_Bitmap_Embolden( FT_Library library, @@ -173,6 +172,28 @@ /*************************************************************************/ /* */ /* */ + /* FT_GlyphSlot_Own_Bitmap */ + /* */ + /* */ + /* Make sure that a glyph slot owns `slot->bitmap'. */ + /* */ + /* */ + /* slot :: The glyph slot. */ + /* */ + /* */ + /* FreeType error code. 0~means success. */ + /* */ + /* */ + /* This function is to be used in combination with */ + /* @FT_Bitmap_Embolden. */ + /* */ + FT_EXPORT( FT_Error ) + FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot slot ); + + + /*************************************************************************/ + /* */ + /* */ /* FT_Bitmap_Done */ /* */ /* */ Modified: haiku/trunk/headers/libs/freetype2/freetype/ftcache.h =================================================================== [... truncated: 10189 lines follow ...] From revol at free.fr Sun Jan 18 13:16:51 2009 From: revol at free.fr (=?utf-8?q?Fran=C3=A7ois?= Revol) Date: Sun, 18 Jan 2009 13:16:51 +0100 CET Subject: [Haiku-commits] =?utf-8?q?r28932_-_in_haiku/trunk=3A_headers/libs?= =?utf-8?q?/freetype2/freetype_headers/libs/freetype2/freetype/config_head?= =?utf-8?q?ers/libs/freetype2/freetype/internal_headers/libs/freetype2/fre?= =?utf-8?q?etype/internal/services_src/libs/freetype2/autofit_src/libs/fre?= =?utf-8?q?etype2/base_src/libs/freetype2/bdf_src/libs/freetype2/cache_src?= =?utf-8?q?/libs/freetype2/cff_src/libs/freetype2/cid_src/libs/freetype2/g?= =?utf-8?q?zip_src/libs/freetype2/lzw_src/libs/freetype2/otvalid_src/libs/?= =?utf-8?q?freetype2/pcf_src/libs/freetype2/pfr_src/libs/freetype2/psaux_s?= =?utf-8?q?rc/libs/freetype2/pshinter_src/libs/freetype2/psnames_src/libs/?= =?utf-8?q?freetype2/raster_src/libs/freetype2/sfnt_src/libs/freetype2/smo?= =?utf-8?q?oth_src/libs/freetype2/truetype_src/libs/freetype2/type1_src/li?= =?utf-8?q?bs/freetype2/type42_src/libs/freetype2/winfonts?= In-Reply-To: <200901181213.n0ICD8IQ028897@sheep.berlios.de> Message-ID: <2574501897-BeMail@laptop> > updated freetype to 2.3.8 Don't we have it in vendor/ ? Fran?ois. From bga at mail.berlios.de Sun Jan 18 13:39:44 2009 From: bga at mail.berlios.de (bga at BerliOS) Date: Sun, 18 Jan 2009 13:39:44 +0100 Subject: [Haiku-commits] r28933 - haiku/trunk/src/kits/network/libnetapi Message-ID: <200901181239.n0ICdi1f003219@sheep.berlios.de> Author: bga Date: 2009-01-18 13:39:44 +0100 (Sun, 18 Jan 2009) New Revision: 28933 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28933&view=rev Modified: haiku/trunk/src/kits/network/libnetapi/NetBuffer.cpp Log: - Implemented some suggestions by stippi. - Corrected some bugs also pointed by him. Modified: haiku/trunk/src/kits/network/libnetapi/NetBuffer.cpp =================================================================== --- haiku/trunk/src/kits/network/libnetapi/NetBuffer.cpp 2009-01-18 12:13:00 UTC (rev 28932) +++ haiku/trunk/src/kits/network/libnetapi/NetBuffer.cpp 2009-01-18 12:39:44 UTC (rev 28933) @@ -3,6 +3,7 @@ * Distributed under the terms of the MIT License. * * Authors: + * Scott T. Mansfield, thephantom at mac.com * Bruno Albuquerque, bga at bug-br.org.br */ @@ -65,6 +66,8 @@ BNetBuffer& BNetBuffer::operator=(const BNetBuffer& buffer) { + delete fImpl; + fImpl = new (std::nothrow) DynamicBuffer(*buffer.GetImpl()); if (fImpl != NULL) fInit = fImpl->InitCheck(); @@ -79,11 +82,10 @@ if (fInit != B_OK) return B_NO_INIT; - if (into->AddData("buffer", B_RAW_TYPE, fImpl->Data(), - fImpl->BytesRemaining()) != B_OK) - return B_ERROR; + status_t result = into->AddData("buffer", B_RAW_TYPE, fImpl->Data(), + fImpl->BytesRemaining()); - return B_OK; + return result; } @@ -94,7 +96,7 @@ return NULL; } - BNetBuffer* buffer = new BNetBuffer(archive); + BNetBuffer* buffer = new (std::nothrow) BNetBuffer(archive); if (buffer == NULL) return NULL; @@ -188,22 +190,32 @@ } +#define STACK_BUFFER_SIZE 2048 + status_t BNetBuffer::AppendMessage(const BMessage& data) { + char stackFlattenedData[STACK_BUFFER_SIZE]; + size_t dataSize = data.FlattenedSize(); if (dataSize == 0) return B_ERROR; - char* flattenedData = new (std::nothrow) char[dataSize]; - if (flattenedData == NULL) - return B_NO_MEMORY; + status_t result = B_OK; + + if (dataSize > STACK_BUFFER_SIZE) { + char* flattenedData = new (std::nothrow) char[dataSize]; + if (flattenedData == NULL) + return B_NO_MEMORY; - status_t result = B_OK; - if (data.Flatten(flattenedData, dataSize) == B_OK) - result = AppendData((const void*)&flattenedData, dataSize); + if (data.Flatten(flattenedData, dataSize) == B_OK) + result = AppendData((const void*)&flattenedData, dataSize); - delete[] flattenedData; + delete[] flattenedData; + } else { + if (data.Flatten(stackFlattenedData, dataSize) == B_OK) + result = AppendData((const void*)&stackFlattenedData, dataSize); + } return result; } From bga at bug-br.org.br Sun Jan 18 12:42:18 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Sun, 18 Jan 2009 12:42:18 Subject: [Haiku-commits] =?utf-8?q?r28928_-_in_haiku/trunk=3A_headers/os/n?= =?utf-8?q?et_src/kits/network/libnetapi?= In-Reply-To: <497275AB.1060403@gmx.de> Message-ID: <3192993345-BeMail@Gaspode> On Sun, 18 Jan 2009 01:19:55 +0100, Stephan A?mus said: > Even though there may not be any actual code left from Scott, I would > still keep him in the authors list, since at least you may have > learned > from his code, even if just about flaws you need to avoid :-). I > think > that's a nice practice anyways. I am fine with that. Done. > You are leaking the previous fImpl here. Fixed. > Not very important, but I usually try to forward the BMessage error > in > these situations. Maybe it helps someone debugging one day... :-) Done. > Need to use std::nothrow here again. Fixed. > A possible performance optimization: you could pre-allocate a fixed > (2K > maybe?) buffer size on the stack, and only use the allocator if the > flattened size exceeds that size. Might be nice to have that since > this > call may be used frequently. In one test I was doing once, it saved > about 200?s per call, which may actually be quite a lot depending on > how > small the message is and our BMessages probably flatten pretty quickly > anyways. Done, although it is still to be proven if this optimization really helps as this is a buffer being flattened. It could easily be bigger than 2K. Thanks. -Bruno From superstippi at gmx.de Sun Jan 18 14:29:57 2009 From: superstippi at gmx.de (=?UTF-8?B?U3RlcGhhbiBBw59tdXM=?=) Date: Sun, 18 Jan 2009 14:29:57 +0100 Subject: [Haiku-commits] r28928 - in haiku/trunk: headers/os/net src/kits/network/libnetapi In-Reply-To: <3192993345-BeMail@Gaspode> References: <3192993345-BeMail@Gaspode> Message-ID: <49732ED5.5080107@gmx.de> Hi Bruno, thanks for the quick fixes! >> A possible performance optimization: you could pre-allocate a fixed >> (2K >> maybe?) buffer size on the stack, and only use the allocator if the >> flattened size exceeds that size. Might be nice to have that since >> this >> call may be used frequently. In one test I was doing once, it saved >> about 200?s per call, which may actually be quite a lot depending on >> how >> small the message is and our BMessages probably flatten pretty quickly >> anyways. > > Done, although it is still to be proven if this optimization really > helps as this is a buffer being flattened. It could easily be bigger > than 2K. Yeah, hard to tell. It may help in the situation where lots of small messages are being flattened. If the messages are getting bigger, the time to transmit them becomes larger and the function would probably be called less frequently. So the optimization hopefully kicks in exactly when it would be relevant. In theory anyways... :-) Best regards, -Stephan From superstippi at gmx.de Sun Jan 18 14:30:59 2009 From: superstippi at gmx.de (=?UTF-8?B?U3RlcGhhbiBBw59tdXM=?=) Date: Sun, 18 Jan 2009 14:30:59 +0100 Subject: [Haiku-commits] r28928 - in haiku/trunk: headers/os/net src/kits/network/libnetapi In-Reply-To: <3192993345-BeMail@Gaspode> References: <3192993345-BeMail@Gaspode> Message-ID: <49732F13.1010901@gmx.de> Hi again, forgot to ask this... what applications are now working because of the fixes? Best regards, -Stephan From bga at bug-br.org.br Sun Jan 18 14:26:43 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Sun, 18 Jan 2009 14:26:43 Subject: [Haiku-commits] =?utf-8?q?r28928_-_in_haiku/trunk=3A_headers/os/n?= =?utf-8?q?et_src/kits/network/libnetapi?= In-Reply-To: <49732F13.1010901@gmx.de> Message-ID: <9457469538-BeMail@Gaspode> On Sun, 18 Jan 2009 14:30:59 +0100, Stephan A?mus said: > forgot to ask this... what applications are now working because of > the > fixes? CDDB Daemon. -Bruno From mmlr at mail.berlios.de Sun Jan 18 15:30:06 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 18 Jan 2009 15:30:06 +0100 Subject: [Haiku-commits] r28934 - haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk Message-ID: <200901181430.n0IEU6mu012834@sheep.berlios.de> Author: mmlr Date: 2009-01-18 15:30:03 +0100 (Sun, 18 Jan 2009) New Revision: 28934 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28934&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp Log: * Fix a lock leak in the eject/load ioctls. It did return directly without unlocking the device again, causing deadlocks after unmounting a USB mass storage device. * Synchronize on close again, but this time with proper locking of the device. * Restructured usb_disk_synchronize() a bit and updated comments. Modified: haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp 2009-01-18 12:39:44 UTC (rev 28933) +++ haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp 2009-01-18 14:30:03 UTC (rev 28934) @@ -480,27 +480,29 @@ usb_disk_synchronize(device_lun *lun, bool force) { if (lun->device->sync_support == 0) { - // this device repeatedly reported an illegal request when syncing - // it obviously does really not support this command... + // this device reported an illegal request when syncing or repeatedly + // returned an other error, it apparently does not support syncing... return B_UNSUPPORTED; } - if (lun->should_sync || force) { - status_t result = usb_disk_operation(lun, SCSI_SYNCHRONIZE_CACHE_10, - 10, 0, 0, NULL, NULL, false); - lun->should_sync = false; + if (!lun->should_sync && !force) + return B_OK; - if (result == B_OK) - lun->device->sync_support = SYNC_SUPPORT_RELOAD; - else if (result == B_DEV_INVALID_IOCTL) - lun->device->sync_support = 0; - else - lun->device->sync_support--; + status_t result = usb_disk_operation(lun, SCSI_SYNCHRONIZE_CACHE_10, 10, + 0, 0, NULL, NULL, false); - return result; + if (result == B_OK) { + lun->device->sync_support = SYNC_SUPPORT_RELOAD; + lun->should_sync = false; + return B_OK; } - return B_OK; + if (result == B_DEV_INVALID_IOCTL) + lun->device->sync_support = 0; + else + lun->device->sync_support--; + + return result; } @@ -814,6 +816,14 @@ usb_disk_close(void *cookie) { TRACE("close()\n"); + device_lun *lun = (device_lun *)cookie; + disk_device *device = lun->device; + + mutex_lock(&device->lock); + if (!device->removed) + usb_disk_synchronize(lun, false); + mutex_unlock(&device->lock); + return B_OK; } @@ -827,9 +837,9 @@ device_lun *lun = (device_lun *)cookie; disk_device *device = lun->device; device->open_count--; - if (device->removed && device->open_count == 0) { - // we can simply free the device here as it has been removed from the - // device list in the device removed notification hook + if (device->open_count == 0 && device->removed) { + // we can simply free the device here as it has been removed from + // the device list in the device removed notification hook usb_disk_free_device_and_luns(device); } @@ -885,12 +895,14 @@ break; case B_EJECT_DEVICE: - return usb_disk_operation(lun, SCSI_START_STOP_UNIT_6, 6, 0, 2, + result = usb_disk_operation(lun, SCSI_START_STOP_UNIT_6, 6, 0, 2, NULL, NULL, false); + break; case B_LOAD_MEDIA: - return usb_disk_operation(lun, SCSI_START_STOP_UNIT_6, 6, 0, 3, + result = usb_disk_operation(lun, SCSI_START_STOP_UNIT_6, 6, 0, 3, NULL, NULL, false); + break; default: TRACE_ALWAYS("unhandled ioctl %ld\n", op); From bga at mail.berlios.de Sun Jan 18 16:26:12 2009 From: bga at mail.berlios.de (bga at BerliOS) Date: Sun, 18 Jan 2009 16:26:12 +0100 Subject: [Haiku-commits] r28935 - haiku/trunk/src/servers/cddb_daemon Message-ID: <200901181526.n0IFQCbL017684@sheep.berlios.de> Author: bga Date: 2009-01-18 16:26:11 +0100 (Sun, 18 Jan 2009) New Revision: 28935 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28935&view=rev Modified: haiku/trunk/src/servers/cddb_daemon/cddb_daemon.cpp haiku/trunk/src/servers/cddb_daemon/cddb_daemon.h Log: - Updated copyright header. - Fixed some styles violations. - Changed signature to include the executable name. Preparation for the new code coming. Modified: haiku/trunk/src/servers/cddb_daemon/cddb_daemon.cpp =================================================================== --- haiku/trunk/src/servers/cddb_daemon/cddb_daemon.cpp 2009-01-18 14:30:03 UTC (rev 28934) +++ haiku/trunk/src/servers/cddb_daemon/cddb_daemon.cpp 2009-01-18 15:26:11 UTC (rev 28935) @@ -1,6 +1,9 @@ /* - * Copyright 2008, Bruno Albuquerque, bga at bug-br.org.br. All rights reserved. + * Copyright 2008-2009, Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. + * + * Authors: + * Bruno Albuquerque, bga at bug-br.org.br */ #include "cddb_daemon.h" @@ -21,14 +24,14 @@ CDDBDaemon::CDDBDaemon() - : BApplication("application/x-vnd.Haiku-CDDBDaemon"), + : BApplication("application/x-vnd.Haiku-cddb_daemon"), fVolumeRoster(new BVolumeRoster) { fVolumeRoster->StartWatching(); BVolume volume; while (fVolumeRoster->GetNextVolume(&volume) == B_OK) { - scsi_toc_toc* toc = (scsi_toc_toc *)malloc(kMaxTocSize); + scsi_toc_toc* toc = (scsi_toc_toc*)malloc(kMaxTocSize); if (toc == NULL) continue; @@ -83,20 +86,20 @@ bool -CDDBDaemon::CanLookup(const dev_t _device, uint32* _cddbId, - scsi_toc_toc* _toc) const +CDDBDaemon::CanLookup(const dev_t device, uint32* cddbId, + scsi_toc_toc* toc) const { - if (_cddbId == NULL || _toc == NULL) + if (cddbId == NULL || toc == NULL) return false; // Is it an Audio disk? fs_info info; - fs_stat_dev(_device, &info); + fs_stat_dev(device, &info); if (strncmp(info.fsh_name, kCddaFsName, strlen(kCddaFsName)) != 0) return false; // Does it have the CD:do_lookup attribute and is it true? - BVolume volume(_device); + BVolume volume(device); BDirectory directory; volume.GetRootDirectory(&directory); @@ -106,12 +109,12 @@ return false; // Does it have the CD:cddbid attribute? - if (directory.ReadAttr("CD:cddbid", B_UINT32_TYPE, 0, (void *)_cddbId, + if (directory.ReadAttr("CD:cddbid", B_UINT32_TYPE, 0, (void *)cddbId, sizeof(uint32)) < B_OK) return false; // Does it have the CD:toc attribute? - if (directory.ReadAttr("CD:toc", B_RAW_TYPE, 0, (void *)_toc, + if (directory.ReadAttr("CD:toc", B_RAW_TYPE, 0, (void *)toc, kMaxTocSize) < B_OK) return false; Modified: haiku/trunk/src/servers/cddb_daemon/cddb_daemon.h =================================================================== --- haiku/trunk/src/servers/cddb_daemon/cddb_daemon.h 2009-01-18 14:30:03 UTC (rev 28934) +++ haiku/trunk/src/servers/cddb_daemon/cddb_daemon.h 2009-01-18 15:26:11 UTC (rev 28935) @@ -1,9 +1,13 @@ /* - * Copyright 2008, Bruno Albuquerque, bga at bug-br.org.br. All rights reserved. + * Copyright 2008-2009, Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. + * + * Authors: + * Bruno Albuquerque, bga at bug-br.org.br */ -#ifndef CDDB_DAEMON_H -#define CDDB_DAEMON_H + +#ifndef _CDDB_DAEMON_H +#define _CDDB_DAEMON_H #include #include @@ -11,8 +15,7 @@ #include -class CDDBDaemon : public BApplication -{ +class CDDBDaemon : public BApplication { public: CDDBDaemon(); virtual ~CDDBDaemon(); @@ -20,10 +23,10 @@ virtual void MessageReceived(BMessage* message); private: - bool CanLookup(const dev_t _device, uint32* _cddbId, - scsi_toc_toc* _toc) const; + bool CanLookup(const dev_t device, uint32* cddbId, + scsi_toc_toc* toc) const; BVolumeRoster* fVolumeRoster; }; -#endif +#endif // _CDDB_DAEMON_H From bga at mail.berlios.de Sun Jan 18 17:05:46 2009 From: bga at mail.berlios.de (bga at BerliOS) Date: Sun, 18 Jan 2009 17:05:46 +0100 Subject: [Haiku-commits] r28936 - haiku/trunk/src/servers/cddb_daemon Message-ID: <200901181605.n0IG5kUs020620@sheep.berlios.de> Author: bga Date: 2009-01-18 17:05:46 +0100 (Sun, 18 Jan 2009) New Revision: 28936 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28936&view=rev Modified: haiku/trunk/src/servers/cddb_daemon/cddb_daemon.cpp haiku/trunk/src/servers/cddb_daemon/cddb_daemon.h Log: - Small style change. Modified: haiku/trunk/src/servers/cddb_daemon/cddb_daemon.cpp =================================================================== --- haiku/trunk/src/servers/cddb_daemon/cddb_daemon.cpp 2009-01-18 15:26:11 UTC (rev 28935) +++ haiku/trunk/src/servers/cddb_daemon/cddb_daemon.cpp 2009-01-18 16:05:46 UTC (rev 28936) @@ -36,7 +36,7 @@ continue; uint32 cddbId; - if (CanLookup(volume.Device(), &cddbId, toc)) { + if (_CanLookup(volume.Device(), &cddbId, toc)) { printf("CD can be looked up. CDDB id = %lu.\n", cddbId); // TODO(bga): Implement and enable CDDB database lookup. } @@ -68,7 +68,7 @@ break; uint32 cddbId; - if (CanLookup(device, &cddbId, toc)) { + if (_CanLookup(device, &cddbId, toc)) { printf("CD can be looked up. CDDB id = %lu.\n", cddbId); // TODO(bga): Implement and enable CDDB @@ -86,7 +86,7 @@ bool -CDDBDaemon::CanLookup(const dev_t device, uint32* cddbId, +CDDBDaemon::_CanLookup(const dev_t device, uint32* cddbId, scsi_toc_toc* toc) const { if (cddbId == NULL || toc == NULL) Modified: haiku/trunk/src/servers/cddb_daemon/cddb_daemon.h =================================================================== --- haiku/trunk/src/servers/cddb_daemon/cddb_daemon.h 2009-01-18 15:26:11 UTC (rev 28935) +++ haiku/trunk/src/servers/cddb_daemon/cddb_daemon.h 2009-01-18 16:05:46 UTC (rev 28936) @@ -23,7 +23,7 @@ virtual void MessageReceived(BMessage* message); private: - bool CanLookup(const dev_t device, uint32* cddbId, + bool _CanLookup(const dev_t device, uint32* cddbId, scsi_toc_toc* toc) const; BVolumeRoster* fVolumeRoster; From axeld at mail.berlios.de Sun Jan 18 17:58:05 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Sun, 18 Jan 2009 17:58:05 +0100 Subject: [Haiku-commits] r28937 - haiku/trunk/src/add-ons/kernel/network/protocols/tcp Message-ID: <200901181658.n0IGw5Ai025398@sheep.berlios.de> Author: axeld Date: 2009-01-18 17:58:04 +0100 (Sun, 18 Jan 2009) New Revision: 28937 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28937&view=rev Modified: haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp Log: * The check to remove bytes at the beginning happened twice. * There was an off-by-one error that could well be responsible for bug #2594. Haven't tested it yet, though. * Added an extra assert to make sure that "next" is set correctly. Modified: haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp 2009-01-18 16:05:46 UTC (rev 28936) +++ haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp 2009-01-18 16:58:04 UTC (rev 28937) @@ -90,8 +90,7 @@ return; } if (sequence < fFirstSequence) { - // Remove the stuff we already have - + // this buffer contains data that is already long gone - trim it gBufferModule->remove_header(buffer, fFirstSequence - sequence); sequence = fFirstSequence; } @@ -121,12 +120,6 @@ if (fLastSequence < sequence + buffer->size) fLastSequence = sequence + buffer->size; - if (fFirstSequence > sequence) { - // this buffer contains data that is already long gone - trim it - gBufferModule->remove_header(buffer, fFirstSequence - sequence); - sequence = fFirstSequence; - } - // find the place where to insert the buffer into the queue SegmentList::ReverseIterator iterator = fList.GetReverseIterator(); @@ -156,7 +149,7 @@ gBufferModule->free(previous); } } else if (tcp_sequence(previous->sequence + previous->size) - > sequence + buffer->size) { + >= sequence + buffer->size) { // We already know this data gBufferModule->free(buffer); buffer = NULL; @@ -169,6 +162,9 @@ } } + // "next" always starts after the buffer sequence + ASSERT(next == NULL || buffer == NULL || next->sequence > sequence); + while (buffer != NULL && next != NULL && tcp_sequence(sequence + buffer->size) > next->sequence) { // we already have at least part of this data From axeld at mail.berlios.de Sun Jan 18 18:30:58 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Sun, 18 Jan 2009 18:30:58 +0100 Subject: [Haiku-commits] r28938 - haiku/trunk/src/servers/app Message-ID: <200901181730.n0IHUwnR030591@sheep.berlios.de> Author: axeld Date: 2009-01-18 18:30:57 +0100 (Sun, 18 Jan 2009) New Revision: 28938 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28938&view=rev Modified: haiku/trunk/src/servers/app/ServerWindow.cpp Log: * We should not ignore the minimize request completely when the window is hidden, but at least set it to minimized. * Also, we shouldn't show minimized windows, but keep them hidden. This prevents the app_server/BWindow to go out of sync wrt the show level. This also fixes bug #3258. Modified: haiku/trunk/src/servers/app/ServerWindow.cpp =================================================================== --- haiku/trunk/src/servers/app/ServerWindow.cpp 2009-01-18 16:58:04 UTC (rev 28937) +++ haiku/trunk/src/servers/app/ServerWindow.cpp 2009-01-18 17:30:57 UTC (rev 28938) @@ -373,7 +373,8 @@ // NOTE: if you do something else, other than sending a port message, PLEASE lock STRACE(("ServerWindow %s: _Show\n", Title())); - if (fQuitting || !fWindow->IsHidden() || fWindow->IsOffscreenWindow()) + if (fQuitting || fWindow->IsMinimized() || !fWindow->IsHidden() + || fWindow->IsOffscreenWindow()) return; // TODO: Maybe we need to dispatch a message to the desktop to show/hide us @@ -669,6 +670,7 @@ if (showLevel <= 0) { // window is currently hidden - ignore the minimize request + fWindow->SetMinimized(minimize); break; } From axeld at mail.berlios.de Sun Jan 18 21:27:13 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Sun, 18 Jan 2009 21:27:13 +0100 Subject: [Haiku-commits] r28939 - in haiku/trunk: headers/posix src/system/libroot/posix/string Message-ID: <200901182027.n0IKRDWr031366@sheep.berlios.de> Author: axeld Date: 2009-01-18 21:27:12 +0100 (Sun, 18 Jan 2009) New Revision: 28939 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28939&view=rev Added: haiku/trunk/src/system/libroot/posix/string/strndup.cpp Modified: haiku/trunk/headers/posix/string.h haiku/trunk/src/system/libroot/posix/string/Jamfile Log: * Added POSIX function strndup(), closing ticket #3309. Modified: haiku/trunk/headers/posix/string.h =================================================================== --- haiku/trunk/headers/posix/string.h 2009-01-18 17:30:57 UTC (rev 28938) +++ haiku/trunk/headers/posix/string.h 2009-01-18 20:27:12 UTC (rev 28939) @@ -1,5 +1,5 @@ /* - * Copyright 2004, Haiku Inc. All Rights Reserved. + * Copyright 2004-2009, Haiku Inc. All Rights Reserved. * Distributed under the terms of the MIT License. */ #ifndef _STRING_H_ @@ -58,6 +58,7 @@ extern char *strcasestr(const char *string, const char *searchString); extern char *strdup(const char *string); +extern char *strndup(const char* string, size_t size); extern char *stpcpy(char *dest, const char *source); extern size_t strlcat(char *dest, const char *source, size_t length); Modified: haiku/trunk/src/system/libroot/posix/string/Jamfile =================================================================== --- haiku/trunk/src/system/libroot/posix/string/Jamfile 2009-01-18 17:30:57 UTC (rev 28938) +++ haiku/trunk/src/system/libroot/posix/string/Jamfile 2009-01-18 20:27:12 UTC (rev 28939) @@ -27,6 +27,7 @@ strncat.c strncmp.c strncpy.c + strndup.cpp strnlen.c strpbrk.c strrchr.c Added: haiku/trunk/src/system/libroot/posix/string/strndup.cpp =================================================================== --- haiku/trunk/src/system/libroot/posix/string/strndup.cpp 2009-01-18 17:30:57 UTC (rev 28938) +++ haiku/trunk/src/system/libroot/posix/string/strndup.cpp 2009-01-18 20:27:12 UTC (rev 28939) @@ -0,0 +1,30 @@ +/* + * Copyright 2009, Axel D?rfler, axeld at pinc-software.de. + * Distributed under the terms of the MIT License. + */ + + +#include +#include + + +extern "C" char* +strndup(const char* string, size_t size) +{ + // While POSIX does not mention it, we handle NULL pointers gracefully + if (string == NULL) + return NULL; + + size_t length = strlen(string); + if (length > size) + length = size; + + char* copied = (char*)malloc(length + 1); + if (copied == NULL) + return NULL; + + memcpy(copied, string, length); + copied[length] = '\0'; + + return copied; +} From korli at mail.berlios.de Sun Jan 18 22:10:00 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Sun, 18 Jan 2009 22:10:00 +0100 Subject: [Haiku-commits] r28940 - in haiku/trunk/src/add-ons/kernel/drivers/audio/ac97: . geode Message-ID: <200901182110.n0ILA0FY001789@sheep.berlios.de> Author: korli Date: 2009-01-18 22:09:59 +0100 (Sun, 18 Jan 2009) New Revision: 28940 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28940&view=rev Added: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/Jamfile haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/ac97.c haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/ac97.h haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/device.cpp haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/driver.cpp haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/driver.h haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/gcscaudioreg.h haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/geode_controller.cpp haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/geode_multi.cpp Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/Jamfile Log: added an experimental geode audio driver Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/Jamfile =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/Jamfile 2009-01-18 20:27:12 UTC (rev 28939) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/Jamfile 2009-01-18 21:09:59 UTC (rev 28940) @@ -3,5 +3,6 @@ SubInclude HAIKU_TOP src add-ons kernel drivers audio ac97 auich ; SubInclude HAIKU_TOP src add-ons kernel drivers audio ac97 auvia ; SubInclude HAIKU_TOP src add-ons kernel drivers audio ac97 es1370 ; +SubInclude HAIKU_TOP src add-ons kernel drivers audio ac97 geode ; SubInclude HAIKU_TOP src add-ons kernel drivers audio ac97 ich ; # SubInclude HAIKU_TOP src add-ons kernel drivers audio ac97 ichaudio ; Added: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/Jamfile =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/Jamfile 2009-01-18 20:27:12 UTC (rev 28939) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/Jamfile 2009-01-18 21:09:59 UTC (rev 28940) @@ -0,0 +1,12 @@ +SubDir HAIKU_TOP src add-ons kernel drivers audio ac97 geode ; + +UsePrivateHeaders media ; + +KernelAddon geode : + ac97.c + driver.cpp + device.cpp + geode_multi.cpp + geode_controller.cpp +; + Added: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/ac97.c =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/ac97.c 2009-01-18 20:27:12 UTC (rev 28939) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/ac97.c 2009-01-18 21:09:59 UTC (rev 28940) @@ -0,0 +1,975 @@ +/* + * AC97 interface + * + * Copyright (c) 2002, Marcus Overhagen + * Copyright (c) 2008, J?r?me Duval + * + * All rights reserved. + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * - Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ +#include +#include +#include +#include +#include +#include "ac97.h" + +#define LOG(x) dprintf x + +#define B_UTF8_REGISTERED "\xC2\xAE" + +bool ac97_reg_is_valid(ac97_dev *dev, uint8 reg); +void ac97_amp_enable(ac97_dev *dev, bool onoff); +void ac97_dump_capabilities(ac97_dev *dev); +void ac97_detect_capabilities(ac97_dev *dev); +void ac97_detect_rates(ac97_dev *dev); +void ac97_update_register_cache(ac97_dev *dev); + +const char * stereo_enhancement_technique[] = +{ + "No 3D Stereo Enhancement", + "Analog Devices", + "Creative Technology", + "National Semiconductor", + "Yamaha", + "BBE Sound", + "Crystal Semiconductor", + "Qsound Labs", + "Spatializer Audio Laboratories", + "SRS Labs", + "Platform Tech", + "AKM Semiconductor", + "Aureal", + "Aztech Labs", + "Binaura", + "ESS Technology", + "Harman International", + "Nvidea", + "Philips", + "Texas Instruments", + "VLSI Technology", + "TriTech", + "Realtek", + "Samsung", + "Wolfson Microelectronics", + "Delta Integration", + "SigmaTel", + "KS Waves", + "Rockwell", + "Unknown (29)", + "Unknown (30)", + "Unknown (31)" +}; + +void default_init(ac97_dev *dev); +void ad1819_init(ac97_dev *dev); +void ad1881_init(ac97_dev *dev); +void ad1885_init(ac97_dev *dev); +void ad1886_init(ac97_dev *dev); +void ad1980_init(ac97_dev *dev); +void ad1981b_init(ac97_dev *dev); +void alc650_init(ac97_dev *dev); +void stac9708_init(ac97_dev *dev); +void stac9721_init(ac97_dev *dev); +void stac9744_init(ac97_dev *dev); +void stac9756_init(ac97_dev *dev); +void tr28028_init(ac97_dev *dev); +void wm9701_init(ac97_dev *dev); +void wm9703_init(ac97_dev *dev); +void wm9704_init(ac97_dev *dev); + +bool ad1819_set_rate(ac97_dev *dev, uint8 reg, uint32 rate); +bool ad1819_get_rate(ac97_dev *dev, uint8 reg, uint32 *rate); + +typedef struct +{ + uint32 id; + uint32 mask; + codec_init init; + const char *info; +} codec_table; + +codec_table codecs[] = +{ + { CODEC_ID_AD1819, 0xffffffff, ad1819_init, "Analog Devices AD1819A, AD1819B SoundPort"B_UTF8_REGISTERED }, + { CODEC_ID_AD1881, 0xffffffff, ad1881_init, "Analog Devices AD1881 SoundMAX"B_UTF8_REGISTERED }, + { CODEC_ID_AD1881A, 0xffffffff, ad1881_init, "Analog Devices AD1881A SoundMAX"B_UTF8_REGISTERED }, + { CODEC_ID_AD1885, 0xffffffff, ad1885_init, "Analog Devices AD1885 SoundMAX"B_UTF8_REGISTERED }, + { CODEC_ID_AD1886, 0xffffffff, ad1886_init, "Analog Devices AD1886 SoundMAX"B_UTF8_REGISTERED }, + { CODEC_ID_AD1886A, 0xffffffff, ad1881_init, "Analog Devices AD1886A SoundMAX"B_UTF8_REGISTERED }, + { CODEC_ID_AD1887, 0xffffffff, ad1881_init, "Analog Devices AD1887 SoundMAX"B_UTF8_REGISTERED }, + { CODEC_ID_AD1888, 0xffffffff, ad1881_init, "Analog Devices AD1888 SoundMAX"B_UTF8_REGISTERED }, + { CODEC_ID_AD1980, 0xffffffff, ad1980_init, "Analog Devices AD1980 SoundMAX"B_UTF8_REGISTERED }, + { 0x41445371, 0xffffffff, default_init, "Analog Devices 0x41445371 (???)" }, + { 0x41445372, 0xffffffff, default_init, "Analog Devices AD1981A SoundMAX"B_UTF8_REGISTERED }, + { CODEC_ID_AD1981B, 0xffffffff, ad1981b_init, "Analog Devices AD1981B SoundMAX"B_UTF8_REGISTERED }, + { CODEC_ID_AD1985, 0xffffffff, default_init, "Analog Devices AD1985 SoundMAX"B_UTF8_REGISTERED }, + { CODEC_ID_AD1986, 0xffffffff, default_init, "Analog Devices AD1986 SoundMAX"B_UTF8_REGISTERED }, + { CODEC_ID_AK4540, 0xffffffff, default_init, "Asahi Kasei AK4540" }, + { CODEC_ID_AK4542, 0xffffffff, default_init, "Asahi Kasei AK4542" }, + { CODEC_ID_AK4543, 0xffffffff, default_init, "Asahi Kasei AK4543" }, + { 0x414c4320, 0xfffffff0, default_init, "Avance Logic (Realtek) ALC100/ALC100P, RL5383/RL5522" }, + { 0x414c4730, 0xffffffff, default_init, "Avance Logic (Realtek) ALC101" }, + { CODEC_ID_ALC201A, 0xffffffff, default_init, "Avance Logic (Realtek) ALC200/ALC200A, ALC201/ALC201A" }, /* 0x4710 = ALC201A */ + { 0x414c4720, 0xffffffff, alc650_init, "Avance Logic (Realtek) ALC650" }, /* 0x4720 = ALC650 */ + { 0x414c4740, 0xffffffff, default_init, "Avance Logic (Realtek) ALC202/ALC202A" }, + { 0x434d4941, 0xffffffff, default_init, "C-Media CMI9738" }, + { 0x434d4961, 0xffffffff, default_init, "C-Media CMI9739" }, + { 0x43525900, 0xffffffff, default_init, "Cirrus Logic CS4297" }, + { 0x43525903, 0xffffffff, default_init, "Cirrus Logic CS4297" }, + { 0x43525913, 0xffffffff, default_init, "Cirrus Logic CS4297A" }, + { 0x43525914, 0xffffffff, default_init, "Cirrus Logic CS4297B" }, + { 0x43525923, 0xffffffff, default_init, "Cirrus Logic CS4294C" }, + { 0x4352592b, 0xffffffff, default_init, "Cirrus Logic CS4298C" }, + { CODEC_ID_CS4299A, 0xffffffff, default_init, "Cirrus Logic CS4299A" }, + { CODEC_ID_CS4299C, 0xffffffff, default_init, "Cirrus Logic CS4299C" }, + { CODEC_ID_CS4299D, 0xffffffff, default_init, "Cirrus Logic CS4299D" }, + { 0x43525941, 0xffffffff, default_init, "Cirrus Logic CS4201A" }, + { 0x43525951, 0xffffffff, default_init, "Cirrus Logic CS4205A" }, + { 0x43525961, 0xffffffff, default_init, "Cirrus Logic CS4291A" }, + { 0x45838308, 0xffffffff, default_init, "ESS Technology ES1921" }, + { 0x49434511, 0xffffffff, default_init, "ICEnsemble ICE1232" }, + { 0x4e534331, 0xffffffff, default_init, "National Semiconductor LM4549" }, + { CODEC_ID_STAC9700,0xffffffff, default_init, "SigmaTel STAC9700/9783/9784" }, + { CODEC_ID_STAC9704,0xffffffff, default_init, "SigmaTel STAC9701/03, STAC9704/07, STAC9705 (???)" }, + { CODEC_ID_STAC9705,0xffffffff, default_init, "SigmaTel STAC9704 (???)" }, + { CODEC_ID_STAC9708,0xffffffff, stac9708_init, "SigmaTel STAC9708/9711" }, + { CODEC_ID_STAC9721,0xffffffff, stac9721_init, "SigmaTel STAC9721/9723" }, + { CODEC_ID_STAC9744,0xffffffff, stac9744_init, "SigmaTel STAC9744" }, + { CODEC_ID_STAC9752,0xffffffff, default_init, "SigmaTel STAC9752/53" }, + { CODEC_ID_STAC9756,0xffffffff, stac9756_init, "SigmaTel STAC9756/9757" }, + { CODEC_ID_STAC9766,0xffffffff, default_init, "SigmaTel STAC9766/67" }, + { 0x53494c22, 0xffffffff, default_init, "Silicon Laboratory Si3036" }, + { 0x53494c23, 0xffffffff, default_init, "Silicon Laboratory Si3038" }, + { 0x54524103, 0xffffffff, default_init, "TriTech TR?????" }, + { 0x54524106, 0xffffffff, default_init, "TriTech TR28026" }, + { 0x54524108, 0xffffffff, tr28028_init, "TriTech TR28028" }, + { 0x54524123, 0xffffffff, default_init, "TriTech TR28602" }, + { 0x574d4c00, 0xffffffff, wm9701_init, "Wolfson WM9701A" }, + { 0x574d4c03, 0xffffffff, wm9703_init, "Wolfson WM9703/9704" }, + { 0x574d4c04, 0xffffffff, wm9704_init, "Wolfson WM9704 (quad)" }, + /* Vendors only: */ + { 0x41445300, 0xffffff00, default_init, "Analog Devices" }, + { 0x414b4d00, 0xffffff00, default_init, "Asahi Kasei" }, + { 0x414c4700, 0xffffff00, default_init, "Avance Logic (Realtek)" }, + { 0x434d4900, 0xffffff00, default_init, "C-Media" }, + { 0x43525900, 0xffffff00, default_init, "Cirrus Logic" }, + { 0x45838300, 0xffffff00, default_init, "ESS Technology" }, + { 0x49434500, 0xffffff00, default_init, "ICEnsemble" }, + { 0x4e534300, 0xffffff00, default_init, "National Semiconductor" }, + { 0x83847600, 0xffffff00, default_init, "SigmaTel" }, + { 0x53494c00, 0xffffff00, default_init, "Silicon Laboratory" }, + { 0x54524100, 0xffffff00, default_init, "TriTech" }, + { 0x574d4c00, 0xffffff00, default_init, "Wolfson" }, + { 0x00000000, 0x00000000, default_init, "Unknown" } /* must be last one, matches every codec */ +}; + +codec_table *find_codec_table(uint32 codecid); + +codec_table * +find_codec_table(uint32 codecid) +{ + codec_table *codec; + for (codec = codecs; codec->id; codec++) + if ((codec->id & codec->mask) == (codecid & codec->mask)) + break; + return codec; +} + +void +ac97_attach(ac97_dev **_dev, codec_reg_read reg_read, codec_reg_write reg_write, void *cookie, + ushort subvendor_id, ushort subsystem_id) +{ + ac97_dev *dev; + codec_table *codec; + int i; + + *_dev = dev = (ac97_dev *) malloc(sizeof(ac97_dev)); + dev->cookie = cookie; + dev->reg_read = reg_read; + dev->reg_write = reg_write; + dev->set_rate = 0; + dev->get_rate = 0; + dev->clock = 48000; /* default clock on non-broken motherboards */ + dev->min_vsr = 0x0001; + dev->max_vsr = 0xffff; + dev->reversed_eamp_polarity = false; + dev->capabilities = 0; + + dev->subsystem = (subvendor_id << 16) | subsystem_id; + + if (dev->subsystem == 0x161f202f + || dev->subsystem == 0x161f203a + || dev->subsystem == 0x161f204c + || dev->subsystem == 0x104d8144 + || dev->subsystem == 0x104d8197 + || dev->subsystem == 0x104d81c0 + || dev->subsystem == 0x104d81c5 + || dev->subsystem == 0x103c3089 + || dev->subsystem == 0x103c309a + || dev->subsystem == 0x10338213 + || dev->subsystem == 0x103382be) { + dev->reversed_eamp_polarity = true; + } + + /* reset the codec */ + LOG(("codec reset\n")); + ac97_reg_uncached_write(dev, AC97_RESET, 0x0000); + for (i = 0; i < 500; i++) { + if ((ac97_reg_uncached_read(dev, AC97_POWERDOWN) & 0xf) == 0xf) + break; + snooze(1000); + } + + dev->codec_id = ((uint32)reg_read(cookie, AC97_VENDOR_ID1) << 16) | reg_read(cookie, AC97_VENDOR_ID2); + codec = find_codec_table(dev->codec_id); + dev->codec_info = codec->info; + dev->init = codec->init; + + dev->codec_3d_stereo_enhancement = stereo_enhancement_technique[(ac97_reg_cached_read(dev, AC97_RESET) >> 10) & 31]; + + /* setup register cache */ + ac97_update_register_cache(dev); + + ac97_reg_update_bits(dev, AC97_EXTENDED_STAT_CTRL, 1, 1); // enable variable rate audio + + ac97_detect_capabilities(dev); + + dev->init(dev); + ac97_amp_enable(dev, true); + + /* set mixer defaults, enabled Line-out sources are PCM-out, CD-in, Line-in */ + ac97_reg_update(dev, AC97_CENTER_LFE_VOLUME, 0x0000); /* set LFE & center volume 0dB */ + ac97_reg_update(dev, AC97_SURR_VOLUME, 0x0000); /* set surround volume 0dB */ + ac97_reg_update(dev, AC97_MASTER_VOLUME, 0x0000); /* set master output 0dB */ + ac97_reg_update(dev, AC97_AUX_OUT_VOLUME, 0x0000); /* set aux output 0dB */ + ac97_reg_update(dev, AC97_MONO_VOLUME, 0x0000); /* set mono output 0dB */ + ac97_reg_update(dev, AC97_PCM_OUT_VOLUME, 0x0808); /* enable pcm-out */ + ac97_reg_update(dev, AC97_CD_VOLUME, 0x0808); /* enable cd-in */ + ac97_reg_update(dev, AC97_LINE_IN_VOLUME, 0x0808); /* enable line-in */ + + /* set record line in */ + ac97_reg_update(dev, AC97_RECORD_SELECT, 0x0404); + + ac97_dump_capabilities(dev); +} + +void +ac97_detach(ac97_dev *dev) +{ + /* Mute everything */ + ac97_reg_update_bits(dev, AC97_CENTER_LFE_VOLUME, 0x8000, 0x8000); + ac97_reg_update_bits(dev, AC97_SURR_VOLUME, 0x8000, 0x8000); + ac97_reg_update_bits(dev, AC97_MASTER_VOLUME, 0x8000, 0x8000); + ac97_reg_update_bits(dev, AC97_AUX_OUT_VOLUME, 0x8000, 0x8000); + ac97_reg_update_bits(dev, AC97_MONO_VOLUME, 0x8000, 0x8000); + ac97_reg_update_bits(dev, AC97_PCM_OUT_VOLUME, 0x8000, 0x8000); + ac97_reg_update_bits(dev, AC97_CD_VOLUME, 0x8000, 0x8000); + ac97_reg_update_bits(dev, AC97_LINE_IN_VOLUME, 0x8000, 0x8000); + + ac97_amp_enable(dev, false); + + free(dev); +} + +void +ac97_suspend(ac97_dev *dev) +{ + ac97_amp_enable(dev, false); +} + +void +ac97_resume(ac97_dev *dev) +{ + ac97_amp_enable(dev, true); +} + +void +ac97_reg_cached_write(ac97_dev *dev, uint8 reg, uint16 value) +{ + if (!ac97_reg_is_valid(dev, reg)) + return; + dev->reg_write(dev->cookie, reg, value); + dev->reg_cache[reg] = value; +} + +uint16 +ac97_reg_cached_read(ac97_dev *dev, uint8 reg) +{ + if (!ac97_reg_is_valid(dev, reg)) + return 0; + return dev->reg_cache[reg]; +} + +void +ac97_reg_uncached_write(ac97_dev *dev, uint8 reg, uint16 value) +{ + if (!ac97_reg_is_valid(dev, reg)) + return; + dev->reg_write(dev->cookie, reg, value); +} + +uint16 +ac97_reg_uncached_read(ac97_dev *dev, uint8 reg) +{ + if (!ac97_reg_is_valid(dev, reg)) + return 0; + return dev->reg_read(dev->cookie, reg); +} + +bool +ac97_reg_update(ac97_dev *dev, uint8 reg, uint16 value) +{ + if (!ac97_reg_is_valid(dev, reg)) + return false; + if (ac97_reg_cached_read(dev, reg) == value) + return false; + ac97_reg_cached_write(dev, reg, value); + return true; +} + +bool +ac97_reg_update_bits(ac97_dev *dev, uint8 reg, uint16 mask, uint16 value) +{ + uint16 old; + if (!ac97_reg_is_valid(dev, reg)) + return false; + old = ac97_reg_cached_read(dev, reg); + value &= mask; + value |= (old & ~mask); + if (old == value) + return false; + ac97_reg_cached_write(dev, reg, value); + return true; +} + +void +ac97_update_register_cache(ac97_dev *dev) +{ + int reg; + for (reg = 0; reg <= 0x7e; reg += 2) + dev->reg_cache[reg] = ac97_reg_uncached_read(dev, reg); +} + +bool +ac97_set_rate(ac97_dev *dev, uint8 reg, uint32 rate) +{ + uint32 value; + uint32 old; + + if (dev->set_rate) + return dev->set_rate(dev, reg, rate); + + value = (uint32)((rate * 48000ULL) / dev->clock); /* need 64 bit calculation for rates 96000 or higher */ + + LOG(("ac97_set_rate: clock = %ld, rate = %ld, value = %ld\n", dev->clock, rate, value)); + + /* if double rate audio is currently enabled, divide value by 2 */ + if (ac97_reg_cached_read(dev, AC97_EXTENDED_STAT_CTRL) & 0x0002) + value /= 2; + + if (value < dev->min_vsr || value > dev->max_vsr) + return false; + + old = ac97_reg_cached_read(dev, reg); + ac97_reg_cached_write(dev, reg, value); + if (value != ac97_reg_uncached_read(dev, reg)) { + LOG(("ac97_set_rate failed, new rate %d\n", ac97_reg_uncached_read(dev, reg))); + ac97_reg_cached_write(dev, reg, old); + return false; + } + LOG(("ac97_set_rate done\n")); + return true; +} + +bool +ac97_get_rate(ac97_dev *dev, uint8 reg, uint32 *rate) +{ + uint32 value; + + if (dev->get_rate) + return dev->get_rate(dev, reg, rate); + + value = ac97_reg_cached_read(dev, reg); + if (value == 0) + return false; + + /* if double rate audio is currently enabled, multiply value by 2 */ + if (ac97_reg_cached_read(dev, AC97_EXTENDED_STAT_CTRL) & 0x0002) + value *= 2; + + *rate = (uint32)((value * (uint64)dev->clock) / 48000); /* need 64 bit calculation to avoid overflow*/ + return true; +} + +void +ac97_set_clock(ac97_dev *dev, uint32 clock) +{ + LOG(("ac97_set_clock: clock = %ld\n", clock)); + dev->clock = clock; + ac97_detect_rates(dev); + ac97_dump_capabilities(dev); +} + +void +ac97_detect_capabilities(ac97_dev *dev) +{ + uint16 val; + + val = ac97_reg_cached_read(dev, AC97_RESET); + if (val & 0x0001) + dev->capabilities |= CAP_PCM_MIC; + if (val & 0x0004) + dev->capabilities |= CAP_BASS_TREBLE_CTRL; + if (val & 0x0008) + dev->capabilities |= CAP_SIMULATED_STEREO; + if (val & 0x0010) + dev->capabilities |= CAP_HEADPHONE_OUT; + if (val & 0x0020) + dev->capabilities |= CAP_LAUDNESS; + if (val & 0x0040) + dev->capabilities |= CAP_DAC_18BIT; + if (val & 0x0080) + dev->capabilities |= CAP_DAC_20BIT; + if (val & 0x0100) + dev->capabilities |= CAP_ADC_18BIT; + if (val & 0x0200) + dev->capabilities |= CAP_ADC_20BIT; + if (val & 0x7C00) + dev->capabilities |= CAP_3D_ENHANCEMENT; + + val = ac97_reg_cached_read(dev, AC97_EXTENDED_ID); + if (val & EXID_VRA) + dev->capabilities |= CAP_VARIABLE_PCM; + if (val & EXID_DRA) + dev->capabilities |= CAP_DOUBLE_PCM; + if (val & EXID_SPDIF) + dev->capabilities |= CAP_SPDIF; + if (val & EXID_VRM) + dev->capabilities |= CAP_VARIABLE_MIC; + if (val & EXID_CDAC) + dev->capabilities |= CAP_CENTER_DAC; + if (val & EXID_SDAC) + dev->capabilities |= CAP_SURR_DAC; + if (val & EXID_LDAC) + dev->capabilities |= CAP_LFE_DAC; + if (val & EXID_AMAP) + dev->capabilities |= CAP_AMAP; + if ((val & (EXID_REV0 | EXID_REV1)) == 0) + dev->capabilities |= CAP_REV21; + if ((val & (EXID_REV0 | EXID_REV1)) == EXID_REV0) + dev->capabilities |= CAP_REV22; + if ((val & (EXID_REV0 | EXID_REV1)) == EXID_REV1) + dev->capabilities |= CAP_REV23; + + ac97_detect_rates(dev); +} + +void +ac97_detect_rates(ac97_dev *dev) +{ + uint32 oldrate; + + dev->capabilities &= ~CAP_PCM_RATE_MASK; + + if (!ac97_get_rate(dev, AC97_PCM_FRONT_DAC_RATE, &oldrate)) + oldrate = 48000; + + if (ac97_set_rate(dev, AC97_PCM_FRONT_DAC_RATE, 20000)) + dev->capabilities |= CAP_PCM_RATE_CONTINUOUS; + if (ac97_set_rate(dev, AC97_PCM_FRONT_DAC_RATE, 8000)) + dev->capabilities |= CAP_PCM_RATE_8000; + if (ac97_set_rate(dev, AC97_PCM_FRONT_DAC_RATE, 11025)) + dev->capabilities |= CAP_PCM_RATE_11025; + if (ac97_set_rate(dev, AC97_PCM_FRONT_DAC_RATE, 12000)) + dev->capabilities |= CAP_PCM_RATE_12000; + if (ac97_set_rate(dev, AC97_PCM_FRONT_DAC_RATE, 16000)) + dev->capabilities |= CAP_PCM_RATE_16000; + if (ac97_set_rate(dev, AC97_PCM_FRONT_DAC_RATE, 22050)) + dev->capabilities |= CAP_PCM_RATE_22050; + if (ac97_set_rate(dev, AC97_PCM_FRONT_DAC_RATE, 24000)) + dev->capabilities |= CAP_PCM_RATE_24000; + if (ac97_set_rate(dev, AC97_PCM_FRONT_DAC_RATE, 32000)) + dev->capabilities |= CAP_PCM_RATE_32000; + if (ac97_set_rate(dev, AC97_PCM_FRONT_DAC_RATE, 44100)) + dev->capabilities |= CAP_PCM_RATE_44100; + if (ac97_set_rate(dev, AC97_PCM_FRONT_DAC_RATE, 48000)) + dev->capabilities |= CAP_PCM_RATE_48000; + + if (dev->capabilities & CAP_DOUBLE_PCM) { + // enable double rate mode + if (ac97_reg_update_bits(dev, AC97_EXTENDED_STAT_CTRL, 0x0002, 0x0002)) { + if (ac97_set_rate(dev, AC97_PCM_FRONT_DAC_RATE, 88200)) + dev->capabilities |= CAP_PCM_RATE_88200; + if (ac97_set_rate(dev, AC97_PCM_FRONT_DAC_RATE, 96000)) + dev->capabilities |= CAP_PCM_RATE_96000; + // disable double rate mode + ac97_reg_update_bits(dev, AC97_EXTENDED_STAT_CTRL, 0x0002, 0x0000); + } + } + + ac97_set_rate(dev, AC97_PCM_FRONT_DAC_RATE, oldrate); +} + +void +ac97_dump_capabilities(ac97_dev *dev) +{ + LOG(("AC97 capabilities:\n")); + if (ac97_has_capability(dev, CAP_PCM_MIC)) + LOG(("CAP_PCM_MIC\n")); + if (ac97_has_capability(dev, CAP_BASS_TREBLE_CTRL)) + LOG(("CAP_BASS_TREBLE_CTRL\n")); + if (ac97_has_capability(dev, CAP_SIMULATED_STEREO)) + LOG(("CAP_SIMULATED_STEREO\n")); + if (ac97_has_capability(dev, CAP_HEADPHONE_OUT)) + LOG(("CAP_HEADPHONE_OUT\n")); + if (ac97_has_capability(dev, CAP_LAUDNESS)) + LOG(("CAP_LAUDNESS\n")); + if (ac97_has_capability(dev, CAP_DAC_18BIT)) + LOG(("CAP_DAC_18BIT\n")); + if (ac97_has_capability(dev, CAP_DAC_20BIT)) + LOG(("CAP_DAC_20BIT\n")); + if (ac97_has_capability(dev, CAP_ADC_18BIT)) + LOG(("CAP_ADC_18BIT\n")); + if (ac97_has_capability(dev, CAP_ADC_20BIT)) + LOG(("CAP_ADC_20BIT\n")); + if (ac97_has_capability(dev, CAP_3D_ENHANCEMENT)) + LOG(("CAP_3D_ENHANCEMENT\n")); + if (ac97_has_capability(dev, CAP_VARIABLE_PCM)) + LOG(("CAP_VARIABLE_PCM\n")); + if (ac97_has_capability(dev, CAP_DOUBLE_PCM)) + LOG(("CAP_DOUBLE_PCM\n")); + if (ac97_has_capability(dev, CAP_VARIABLE_MIC)) + LOG(("CAP_VARIABLE_MIC\n")); + if (ac97_has_capability(dev, CAP_CENTER_DAC)) + LOG(("CAP_CENTER_DAC\n")); + if (ac97_has_capability(dev, CAP_SURR_DAC)) + LOG(("CAP_SURR_DAC\n")); + if (ac97_has_capability(dev, CAP_LFE_DAC)) + LOG(("CAP_LFE_DAC\n")); + if (ac97_has_capability(dev, CAP_AMAP)) + LOG(("CAP_AMAP\n")); + if (ac97_has_capability(dev, CAP_REV21)) + LOG(("CAP_REV21\n")); + if (ac97_has_capability(dev, CAP_REV22)) + LOG(("CAP_REV22\n")); + if (ac97_has_capability(dev, CAP_REV23)) + LOG(("CAP_REV23\n")); + if (ac97_has_capability(dev, CAP_PCM_RATE_CONTINUOUS)) + LOG(("CAP_PCM_RATE_CONTINUOUS\n")); + if (ac97_has_capability(dev, CAP_PCM_RATE_8000)) + LOG(("CAP_PCM_RATE_8000\n")); + if (ac97_has_capability(dev, CAP_PCM_RATE_11025)) + LOG(("CAP_PCM_RATE_11025\n")); + if (ac97_has_capability(dev, CAP_PCM_RATE_12000)) + LOG(("CAP_PCM_RATE_12000\n")); + if (ac97_has_capability(dev, CAP_PCM_RATE_16000)) + LOG(("CAP_PCM_RATE_16000\n")); + if (ac97_has_capability(dev, CAP_PCM_RATE_22050)) + LOG(("CAP_PCM_RATE_22050\n")); + if (ac97_has_capability(dev, CAP_PCM_RATE_24000)) + LOG(("CAP_PCM_RATE_24000\n")); + if (ac97_has_capability(dev, CAP_PCM_RATE_32000)) + LOG(("CAP_PCM_RATE_32000\n")); + if (ac97_has_capability(dev, CAP_PCM_RATE_44100)) + LOG(("CAP_PCM_RATE_44100\n")); + if (ac97_has_capability(dev, CAP_PCM_RATE_48000)) + LOG(("CAP_PCM_RATE_48000\n")); + if (ac97_has_capability(dev, CAP_PCM_RATE_88200)) + LOG(("CAP_PCM_RATE_88200\n")); + if (ac97_has_capability(dev, CAP_PCM_RATE_96000)) + LOG(("CAP_PCM_RATE_96000\n")); +} + +bool +ac97_has_capability(ac97_dev *dev, uint64 cap) +{ + // return (dev->capabilities & cap); // does not work because of 64 bit to integer trucation + return (dev->capabilities & cap) != 0; +} + +/************************************************* + * Codec specific initialization, etc. + */ + +bool +ac97_reg_is_valid(ac97_dev *dev, uint8 reg) +{ + if (reg & 1) + return false; + if (reg > 0x7e) + return false; + + switch (dev->codec_id) { + case CODEC_ID_AK4540: + case CODEC_ID_AK4542: + if (reg < 0x1e || reg == 0x20 || reg == 0x26 || reg > 0x7a) + return true; + return false; + + case CODEC_ID_AD1819: + case CODEC_ID_AD1881: + case CODEC_ID_AD1881A: + if (reg < 0x3a || reg > 0x6e) + return true; + return false; + + case CODEC_ID_AD1885: + case CODEC_ID_AD1886: + case CODEC_ID_AD1886A: + case CODEC_ID_AD1887: + if (reg < 0x3c || reg == 0x5a || reg > 0x6e) + return true; + return false; + + case CODEC_ID_STAC9700: + case CODEC_ID_STAC9704: + case CODEC_ID_STAC9705: + case CODEC_ID_STAC9708: + case CODEC_ID_STAC9721: + case CODEC_ID_STAC9744: + case CODEC_ID_STAC9756: + if (reg < 0x3c || reg > 0x58) + return true; + return false; + + default: + return true; + } +} + +void ac97_amp_enable(ac97_dev *dev, bool yesno) +{ + switch (dev->codec_id) { + case CODEC_ID_CS4299A: + case CODEC_ID_CS4299C: + case CODEC_ID_CS4299D: + LOG(("cs4299_amp_enable\n")); + if (yesno) + ac97_reg_cached_write(dev, 0x68, 0x8004); + else + ac97_reg_cached_write(dev, 0x68, 0); + break; + + default: + LOG(("ac97_amp_enable, reverse eamp = %d\n", dev->reversed_eamp_polarity)); + LOG(("powerdown register was = %#04x\n", ac97_reg_uncached_read(dev, AC97_POWERDOWN))); + if (dev->reversed_eamp_polarity) + yesno = !yesno; + if (yesno) + ac97_reg_cached_write(dev, AC97_POWERDOWN, ac97_reg_uncached_read(dev, AC97_POWERDOWN) & ~0x8000); /* switch on (low active) */ + else + ac97_reg_cached_write(dev, AC97_POWERDOWN, ac97_reg_uncached_read(dev, AC97_POWERDOWN) | 0x8000); /* switch off */ + LOG(("powerdown register is = %#04x\n", ac97_reg_uncached_read(dev, AC97_POWERDOWN))); + break; + } +} + +bool +ad1819_set_rate(ac97_dev *dev, uint8 reg, uint32 rate) +{ + uint32 value; + + value = (uint32)((rate * 48000ULL) / dev->clock); /* need 64 bit calculation for rates 96000 or higher */ + + LOG(("ad1819_set_rate: clock = %ld, rate = %ld, value = %ld\n", dev->clock, rate, value)); + + if (value < 0x1B58 || value > 0xBB80) + return false; + + switch (reg) { + case AC97_PCM_FRONT_DAC_RATE: + ac97_reg_cached_write(dev, AC97_AD_SAMPLE_RATE_0, value); + return true; + + case AC97_PCM_L_R_ADC_RATE: + ac97_reg_cached_write(dev, AC97_AD_SAMPLE_RATE_1, value); + return true; + + default: + return false; + } +} + +bool +ad1819_get_rate(ac97_dev *dev, uint8 reg, uint32 *rate) +{ + uint32 value; + + switch (reg) { + case AC97_PCM_FRONT_DAC_RATE: + value = ac97_reg_cached_read(dev, AC97_AD_SAMPLE_RATE_0); + break; + + case AC97_PCM_L_R_ADC_RATE: + value = ac97_reg_cached_read(dev, AC97_AD_SAMPLE_RATE_1); + break; + + default: + return false; + } + + *rate = (uint32)((value * (uint64)dev->clock) / 48000); /* need 64 bit calculation to avoid overflow*/ + return true; +} + + +void default_init(ac97_dev *dev) +{ + LOG(("default_init\n")); +} + +void ad1819_init(ac97_dev *dev) +{ + LOG(("ad1819_init\n")); + + /* Default config for system with single AD1819 codec */ + ac97_reg_cached_write(dev, AC97_AD_SERIAL_CONFIG, 0x7000); + ac97_update_register_cache(dev); + + /* The AD1819 chip has proprietary sample rate controls + * Setup sample rate 0 generator for DAC, + * Setup sample rate 1 generator for ADC, + * ARSR=1, DRSR=0, ALSR=1, DLSR=0 + */ + ac97_reg_cached_write(dev, AC97_AD_MISC_CONTROL, 0x0101); + /* connect special rate set/get functions */ + dev->set_rate = ad1819_set_rate; + dev->get_rate = ad1819_get_rate; + ac97_detect_rates(dev); + ac97_set_rate(dev, AC97_PCM_FRONT_DAC_RATE, 48000); + ac97_set_rate(dev, AC97_PCM_L_R_ADC_RATE, 48000); +} + +void ad1881_init(ac97_dev *dev) +{ + LOG(("ad1881_init\n")); + + /* Default config for system with single AD1819 codec, + * BROKEN on systems with master & slave codecs */ + ac97_reg_cached_write(dev, AC97_AD_SERIAL_CONFIG, 0x7000); + ac97_update_register_cache(dev); + + /* Setup DAC and ADC rate generator assignments compatible with AC97 */ + ac97_reg_cached_write(dev, AC97_AD_MISC_CONTROL, 0x0404); + + /* Setup variable frame rate limits */ + dev->min_vsr = 0x1B58; /* 7kHz */ + dev->max_vsr = 0xBB80; /* 48kHz */ +} + +void ad1885_init(ac97_dev *dev) +{ + LOG(("ad1885_init\n")); + ad1881_init(dev); + + /* disable jack sense 0 and 1 (JS0, JS1) to turn off automatic mute */ + ac97_reg_cached_write(dev, AC97_AD_JACK_SENSE, ac97_reg_cached_read(dev, AC97_AD_JACK_SENSE) | 0x0300); +} + +void ad1886_init(ac97_dev *dev) +{ + LOG(("ad1886_init\n")); + ad1881_init(dev); + + /* change jack sense to always activate outputs*/ + ac97_reg_cached_write(dev, AC97_AD_JACK_SENSE, 0x0010); + /* change SPDIF to a valid value */ + ac97_reg_cached_write(dev, AC97_SPDIF_CONTROL, 0x2a20); +} + +void ad1980_init(ac97_dev *dev) +{ + LOG(("ad1980_init\n")); + + /* Select only master codec, + * SPDIF and DAC are linked + */ + ac97_reg_cached_write(dev, AC97_AD_SERIAL_CONFIG, 0x1001); + ac97_update_register_cache(dev); + + /* Select Line-out driven with mixer data (not surround data) + * Select Headphone-out driven with mixer data (not surround data), + * LOSEL = 0, HPSEL = 1 + * XXX this one needs to be changed to support surround out + */ + ac97_reg_cached_write(dev, AC97_AD_MISC_CONTROL, 0x0400); +} + +void ad1981b_init(ac97_dev *dev) +{ + LOG(("ad1981b_init\n")); + if (dev->subsystem == 0x103c0934 + || dev->subsystem == 0x103c006d + || dev->subsystem == 0x103c088c + || dev->subsystem == 0x103c0890 + || dev->subsystem == 0x103c0934 + || dev->subsystem == 0x103c0938 + || dev->subsystem == 0x103c0944 + || dev->subsystem == 0x103c099c + || dev->subsystem == 0x101402d9) { + ac97_reg_cached_write(dev, AC97_AD_JACK_SENSE, + ac97_reg_cached_read(dev, AC97_AD_JACK_SENSE) | 0x0800); + } +} + +void alc650_init(ac97_dev *dev) +{ + LOG(("alc650_init\n")); + + /* Enable Surround, LFE and Center downmix into Line-out, + * Set Surround-out as duplicated Line-out. + */ + ac97_reg_cached_write(dev, AC97_ALC650_MULTI_CHAN_CTRL, 0x0007); + + /* Set Surround DAC Volume to 0dB + * Set Center/LFE DAC Volume to 0dB + * (but both should already be set, as these are hardware reset defaults) + */ + ac97_reg_cached_write(dev, AC97_ALC650_SURR_VOLUME, 0x0808); + ac97_reg_cached_write(dev, AC97_ALC650_CEN_LFE_VOLUME, 0x0808); +} + +void stac9708_init(ac97_dev *dev) +{ + LOG(("stac9708_init\n")); + /* ALSA initializes some registers that according to the + * documentation for this codec do not exist. If the + * following doesn't work, we may need to do that, too. + */ + /* The Analog Special reg is at 0x6C, other codecs have it at 0x6E */ + /* Set Analog Special to default (DAC/ADC -6dB disabled) */ + ac97_reg_cached_write(dev, 0x6C, 0x0000); + /* Set Multi Channel to default */ + ac97_reg_cached_write(dev, 0x74, 0x0000); +} + +void stac9721_init(ac97_dev *dev) +{ + LOG(("stac9721_init\n")); + /* Set Analog Special to default (DAC/ADC -6dB disabled) */ + ac97_reg_cached_write(dev, 0x6E, 0x0000); + /* Enable register 0x72 */ + ac97_reg_cached_write(dev, 0x70, 0xabba); + /* Set Analog Current to -50% */ + ac97_reg_cached_write(dev, 0x72, 0x0002); + /* Set Multi Channel to default */ + ac97_reg_cached_write(dev, 0x74, 0x0000); + /* Enable register 0x78 */ + ac97_reg_cached_write(dev, 0x76, 0xabba); + /* Set Clock Access to default */ + ac97_reg_cached_write(dev, 0x78, 0x0000); +} + +void stac9744_init(ac97_dev *dev) +{ + LOG(("stac9744_init\n")); + /* Set Analog Special to default (DAC/ADC -6dB disabled) */ + ac97_reg_cached_write(dev, 0x6E, 0x0000); + /* Enable register 0x72 */ + ac97_reg_cached_write(dev, 0x70, 0xabba); + /* Set Analog Current to -50% */ + ac97_reg_cached_write(dev, 0x72, 0x0002); + /* Set Multi Channel to default */ + ac97_reg_cached_write(dev, 0x74, 0x0000); + /* Enable register 0x78 */ + ac97_reg_cached_write(dev, 0x76, 0xabba); + /* Set Clock Access to default */ + ac97_reg_cached_write(dev, 0x78, 0x0000); +} + +void stac9756_init(ac97_dev *dev) +{ + LOG(("stac9756_init\n")); + /* Set Analog Special to default (AC97 all-mix, DAC/ADC -6dB disabled) */ + ac97_reg_cached_write(dev, 0x6E, 0x1000); + /* Enable register 0x72 */ + ac97_reg_cached_write(dev, 0x70, 0xabba); + /* Set Analog Current to -50% */ + ac97_reg_cached_write(dev, 0x72, 0x0002); + /* Set Multi Channel to default */ + ac97_reg_cached_write(dev, 0x74, 0x0000); + /* Enable register 0x78 */ + ac97_reg_cached_write(dev, 0x76, 0xabba); + /* Set Clock Access to default */ + ac97_reg_cached_write(dev, 0x78, 0x0000); +} + +void tr28028_init(ac97_dev *dev) +{ + LOG(("tr28028_init\n")); + ac97_reg_cached_write(dev, AC97_POWERDOWN, 0x0300); + ac97_reg_cached_write(dev, AC97_POWERDOWN, 0x0000); + ac97_reg_cached_write(dev, AC97_SURR_VOLUME, 0x0000); + ac97_reg_cached_write(dev, AC97_SPDIF_CONTROL, 0x0000); +} + +void wm9701_init(ac97_dev *dev) +{ + LOG(("wm9701_init\n")); + /* ALSA writes some of these registers, but the codec + * documentation states explicitly that 0x38 and 0x70 to 0x74 + * are not used in the WM9701A + */ + + /* DVD noise patch (?) */ + ac97_reg_cached_write(dev, 0x5a, 0x0200); +} + +void wm9703_init(ac97_dev *dev) +{ + LOG(("wm9703_init\n")); + /* Set front mixer value to unmuted */ + ac97_reg_cached_write(dev, 0x72, 0x0808); + /* Disable loopback, etc */ + ac97_reg_cached_write(dev, AC97_GENERAL_PURPOSE, 0x8000); +} + +void wm9704_init(ac97_dev *dev) +{ + LOG(("wm9704_init\n")); + /* Set read DAC value to unmuted */ + ac97_reg_cached_write(dev, 0x70, 0x0808); + /* Set front mixer value to unmuted */ + ac97_reg_cached_write(dev, 0x72, 0x0808); + /* Set rear mixer value to unmuted */ + ac97_reg_cached_write(dev, 0x74, 0x0808); + /* DVD noise patch (?) */ + ac97_reg_cached_write(dev, 0x5a, 0x0200); +} + +const ac97_source_info source_info[] = { + { "Recording", B_MIX_GAIN|B_MIX_MUTE|B_MIX_STEREO|B_MIX_RECORDMUX, 100, AC97_RECORD_GAIN, 0x8000, 4, 0, 1, 0, 0.0, 22.5, 1.5 }, + { "Master", B_MIX_GAIN|B_MIX_MUTE|B_MIX_STEREO, 101, AC97_MASTER_VOLUME, 0x8000, 5, 0, 1, 1,-46.5, 0.0, 1.5 }, + //{ "Bass/Treble", B_MIX_GAIN|B_MIX_STEREO, 102, AC97_MASTER_TONE, 0x0f0f, 4, 0, 1, 1,-12.0, 10.5, 1.5 }, + //{ "Aux Out", B_MIX_GAIN|B_MIX_MUTE|B_MIX_STEREO, 103, AC97_AUX_OUT_VOLUME, 0x8000, 5, 0, 1, 1,-46.5, 0.0, 1.5 }, + { "PCM Out", B_MIX_GAIN|B_MIX_MUTE|B_MIX_STEREO, 104, AC97_PCM_OUT_VOLUME, 0x8808, 5, 0, 1, 1,-34.5, 12.0, 1.5 }, [... truncated: 2325 lines follow ...] From axeld at mail.berlios.de Sun Jan 18 23:53:31 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Sun, 18 Jan 2009 23:53:31 +0100 Subject: [Haiku-commits] r28941 - haiku/trunk/src/apps/deskbar Message-ID: <200901182253.n0IMrVUI013326@sheep.berlios.de> Author: axeld Date: 2009-01-18 23:53:31 +0100 (Sun, 18 Jan 2009) New Revision: 28941 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28941&view=rev Modified: haiku/trunk/src/apps/deskbar/Switcher.cpp Log: * Fixed some obvious misbehaviour of the switcher. Modified: haiku/trunk/src/apps/deskbar/Switcher.cpp =================================================================== --- haiku/trunk/src/apps/deskbar/Switcher.cpp 2009-01-18 21:09:59 UTC (rev 28940) +++ haiku/trunk/src/apps/deskbar/Switcher.cpp 2009-01-18 22:53:31 UTC (rev 28941) @@ -614,7 +614,7 @@ { team_id* teams; int32 count; - if (BPrivate::get_application_order(B_CURRENT_WORKSPACE, &teams, &count) + if (BPrivate::get_application_order(current_workspace(), &teams, &count) != B_OK) return; @@ -651,7 +651,7 @@ { int32* ordered; int32 orderedCount; - status_t status = BPrivate::get_window_order(B_CURRENT_WORKSPACE, &ordered, + status_t status = BPrivate::get_window_order(current_workspace(), &ordered, &orderedCount); if (status != B_OK) return status; @@ -945,13 +945,14 @@ } int32 currentWorkspace = current_workspace(); - TTeamGroup *teamGroup = (TTeamGroup *)fGroupList.ItemAt(fCurrentIndex); + TTeamGroup* teamGroup = (TTeamGroup*)fGroupList.ItemAt(fCurrentIndex); // Let's handle the easy case first: There's only 1 team in the group if (teamGroup->TeamList()->CountItems() == 1) { bool result; - if (forceShow && (fCurrentWindow != 0 || windowInfo->is_mini)) + if (forceShow && (fCurrentWindow != 0 || windowInfo->is_mini)) { do_window_action(windowInfo->server_token, B_BRING_TO_FRONT, BRect(0, 0, 0, 0), false); + } if (!forceShow && windowInfo->is_mini) { // we aren't unhiding minimized windows, so we can't do @@ -999,8 +1000,13 @@ } int32 tokenCount; - int32 *tokens = get_token_list(-1, &tokenCount); - if (!tokens) { +#ifdef __HAIKU__ + int32* tokens = NULL; + _GetSortedWindowTokens(&tokens, &tokenCount); +#else + int32* tokens = get_token_list(-1, &tokenCount); +#endif + if (tokens == NULL) { ASSERT(windowInfo); free(windowInfo); return true; // weird error, so don't try to recover From axeld at mail.berlios.de Mon Jan 19 00:18:40 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Mon, 19 Jan 2009 00:18:40 +0100 Subject: [Haiku-commits] r28942 - haiku/trunk/src/apps/deskbar Message-ID: <200901182318.n0INIe3a015882@sheep.berlios.de> Author: axeld Date: 2009-01-19 00:18:40 +0100 (Mon, 19 Jan 2009) New Revision: 28942 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28942&view=rev Modified: haiku/trunk/src/apps/deskbar/Switcher.cpp Log: * Style cleanup. Modified: haiku/trunk/src/apps/deskbar/Switcher.cpp =================================================================== --- haiku/trunk/src/apps/deskbar/Switcher.cpp 2009-01-18 22:53:31 UTC (rev 28941) +++ haiku/trunk/src/apps/deskbar/Switcher.cpp 2009-01-18 23:18:40 UTC (rev 28942) @@ -66,148 +66,154 @@ class TTeamGroup { - public: - TTeamGroup(); - TTeamGroup(BList *teams, uint32 flags, char *name, const char *sig); - virtual ~TTeamGroup(); +public: + TTeamGroup(); + TTeamGroup(BList* teams, uint32 flags, char* name, + const char* signature); + virtual ~TTeamGroup(); - void Draw(BView *, BRect bounds, bool main); + void Draw(BView* view, BRect bounds, bool main); - BList *TeamList() const - { return fTeams; } - const char *Name() const - { return fName; } - const char *Signature() const - { return fSignature; } - uint32 Flags() const - { return fFlags; } - const BBitmap *SmallIcon() const - { return fSmallIcon; } - const BBitmap *LargeIcon() const - { return fLargeIcon; } + BList* TeamList() const + { return fTeams; } + const char* Name() const + { return fName; } + const char* Signature() const + { return fSignature; } + uint32 Flags() const + { return fFlags; } + const BBitmap* SmallIcon() const + { return fSmallIcon; } + const BBitmap* LargeIcon() const + { return fLargeIcon; } - private: - BList *fTeams; - uint32 fFlags; - char fSignature[B_MIME_TYPE_LENGTH]; - char *fName; - BBitmap *fSmallIcon; - BBitmap *fLargeIcon; +private: + BList* fTeams; + uint32 fFlags; + char fSignature[B_MIME_TYPE_LENGTH]; + char* fName; + BBitmap* fSmallIcon; + BBitmap* fLargeIcon; }; class TSwitcherWindow : public BWindow { - public: - TSwitcherWindow(BRect frame, TSwitchManager *mgr); - virtual ~TSwitcherWindow(); +public: + TSwitcherWindow(BRect frame, + TSwitchManager* manager); + virtual ~TSwitcherWindow(); - virtual bool QuitRequested(); - virtual void MessageReceived(BMessage *message); - virtual void Show(); - virtual void Hide(); - virtual void WindowActivated(bool state); + virtual bool QuitRequested(); + virtual void MessageReceived(BMessage* message); + virtual void Show(); + virtual void Hide(); + virtual void WindowActivated(bool state); - void DoKey(uint32 key, uint32 mods); - TIconView *IconView(); - TWindowView *WindowView(); - TBox *TopView(); - bool HairTrigger(); - void Update(int32 previous, int32 current, int32 prevSlot, - int32 currentSlot, bool forward); - int32 SlotOf(int32); - void Redraw(int32 index); + void DoKey(uint32 key, uint32 modifiers); + TIconView* IconView(); + TWindowView* WindowView(); + TBox* TopView(); + bool HairTrigger(); + void Update(int32 previous, int32 current, int32 prevSlot, + int32 currentSlot, bool forward); + int32 SlotOf(int32); + void Redraw(int32 index); - private: - TSwitchManager *fManager; - TIconView *fIconView; - TBox *fTopView; - TWindowView *fWindowView; - bool fHairTrigger; - bool fSkipKeyRepeats; +private: + TSwitchManager* fManager; + TIconView* fIconView; + TBox* fTopView; + TWindowView* fWindowView; + bool fHairTrigger; + bool fSkipKeyRepeats; }; class TWindowView : public BView { - public: - TWindowView(BRect frame, TSwitchManager *manager, TSwitcherWindow *switcher); +public: + TWindowView(BRect frame, TSwitchManager* manager, + TSwitcherWindow* switcher); - void UpdateGroup(int32 groupIndex, int32 windowIndex); + void UpdateGroup(int32 groupIndex, int32 windowIndex); - virtual void AttachedToWindow(); - virtual void Draw(BRect update); - virtual void Pulse(); - virtual void GetPreferredSize(float *w, float *h); - void ScrollTo(float x, float y) - { ScrollTo(BPoint(x,y)); } - virtual void ScrollTo(BPoint where); + virtual void AttachedToWindow(); + virtual void Draw(BRect update); + virtual void Pulse(); + virtual void GetPreferredSize(float* w, float* h); + void ScrollTo(float x, float y) + { ScrollTo(BPoint(x,y)); } + virtual void ScrollTo(BPoint where); - void ShowIndex(int32 windex); - BRect FrameOf(int32 index) const; + void ShowIndex(int32 windex); + BRect FrameOf(int32 index) const; - private: - int32 fCurrentToken; - float fItemHeight; - TSwitcherWindow *fSwitcher; - TSwitchManager *fManager; - bool fLocal; +private: + int32 fCurrentToken; + float fItemHeight; + TSwitcherWindow* fSwitcher; + TSwitchManager* fManager; + bool fLocal; }; class TIconView : public BView { - public: - TIconView(BRect frame, TSwitchManager *manager, TSwitcherWindow *switcher); - ~TIconView(); +public: + TIconView(BRect frame, TSwitchManager* manager, + TSwitcherWindow* switcher); + virtual ~TIconView(); - void Showing(); - void Hiding(); + void Showing(); + void Hiding(); - virtual void KeyDown(const char *bytes, int32 numBytes); - virtual void Pulse(); - virtual void MouseDown(BPoint ); - virtual void Draw(BRect ); + virtual void KeyDown(const char* bytes, int32 numBytes); + virtual void Pulse(); + virtual void MouseDown(BPoint point); + virtual void Draw(BRect updateRect); - void ScrollTo(float x, float y) - { ScrollTo(BPoint(x,y)); } - virtual void ScrollTo(BPoint where); - void Update(int32 previous, int32 current, int32 previousSlot, - int32 currentSlot, bool forward); - void DrawTeams(BRect update); - int32 SlotOf(int32) const; - BRect FrameOf(int32) const; - int32 ItemAtPoint(BPoint) const; - int32 IndexAt(int32 slot) const; - void CenterOn(int32 index); + void ScrollTo(float x, float y) + { ScrollTo(BPoint(x,y)); } + virtual void ScrollTo(BPoint where); + void Update(int32 previous, int32 current, + int32 previousSlot, int32 currentSlot, + bool forward); + void DrawTeams(BRect update); + int32 SlotOf(int32) const; + BRect FrameOf(int32) const; + int32 ItemAtPoint(BPoint) const; + int32 IndexAt(int32 slot) const; + void CenterOn(int32 index); - private: - void CacheIcons(TTeamGroup *); - void AnimateIcon(BBitmap *startIcon, BBitmap *endIcon); +private: + void CacheIcons(TTeamGroup* group); + void AnimateIcon(BBitmap* startIcon, BBitmap* endIcon); - bool fAutoScrolling; - bool fCapsState; - TSwitcherWindow *fSwitcher; - TSwitchManager *fManager; - BBitmap *fOffBitmap; - BView *fOffView; - BBitmap *fCurrentSmall; - BBitmap *fCurrentLarge; + bool fAutoScrolling; + bool fCapsState; + TSwitcherWindow* fSwitcher; + TSwitchManager* fManager; + BBitmap* fOffBitmap; + BView* fOffView; + BBitmap* fCurrentSmall; + BBitmap* fCurrentLarge; }; class TBox : public BBox { - public: - TBox(BRect bounds, TSwitchManager *manager, TSwitcherWindow *, TIconView *iconView); +public: + TBox(BRect bounds, TSwitchManager* manager, + TSwitcherWindow* window, TIconView* iconView); - virtual void Draw(BRect update); - virtual void AllAttached(); - virtual void DrawIconScrollers(bool force); - virtual void DrawWindowScrollers(bool force); - virtual void MouseDown(BPoint where); + virtual void Draw(BRect update); + virtual void AllAttached(); + virtual void DrawIconScrollers(bool force); + virtual void DrawWindowScrollers(bool force); + virtual void MouseDown(BPoint where); - private: - TSwitchManager *fManager; - TSwitcherWindow *fWindow; - TIconView *fIconView; - BRect fCenter; - bool fLeftScroller; - bool fRightScroller; - bool fUpScroller; - bool fDownScroller; +private: + TSwitchManager* fManager; + TSwitcherWindow* fWindow; + TIconView* fIconView; + BRect fCenter; + bool fLeftScroller; + bool fRightScroller; + bool fUpScroller; + bool fDownScroller; }; @@ -246,7 +252,7 @@ inline bool -IsVisibleInCurrentWorkspace(const window_info *windowInfo) +IsVisibleInCurrentWorkspace(const window_info* windowInfo) { /* The window list is always ordered from the top @@ -273,7 +279,7 @@ bool -IsWindowOK(const window_info *windowInfo) +IsWindowOK(const window_info* windowInfo) { // is_mini (true means that the window is minimized). // if not, then @@ -295,7 +301,7 @@ bool -OKToUse(const TTeamGroup *teamGroup) +OKToUse(const TTeamGroup* teamGroup) { if (!teamGroup) return false; @@ -313,7 +319,7 @@ int -SmartStrcmp(const char *s1, const char *s2) +SmartStrcmp(const char* s1, const char* s2) { if (strcasecmp(s1, s2) == 0) return 0; @@ -360,8 +366,8 @@ } -TTeamGroup::TTeamGroup(BList *teams, uint32 flags, char *name, - const char *signature) +TTeamGroup::TTeamGroup(BList* teams, uint32 flags, char* name, + const char* signature) : fTeams(teams), fFlags(flags), @@ -398,7 +404,7 @@ void -TTeamGroup::Draw(BView *view, BRect bounds, bool main) +TTeamGroup::Draw(BView* view, BRect bounds, bool main) { BRect rect; if (main) { @@ -446,8 +452,8 @@ if (!barTeamInfo) break; - TTeamGroup *tinfo = new TTeamGroup(barTeamInfo->teams, barTeamInfo->flags, - barTeamInfo->name, barTeamInfo->sig); + TTeamGroup* tinfo = new TTeamGroup(barTeamInfo->teams, + barTeamInfo->flags, barTeamInfo->name, barTeamInfo->sig); fGroupList.AddItem(tinfo); barTeamInfo->teams = NULL; @@ -462,14 +468,14 @@ TSwitchManager::~TSwitchManager() { for (int32 i = fGroupList.CountItems(); i-- > 0;) { - TTeamGroup *teamInfo = static_cast(fGroupList.ItemAt(i)); + TTeamGroup* teamInfo = static_cast(fGroupList.ItemAt(i)); delete teamInfo; } } void -TSwitchManager::MessageReceived(BMessage *message) +TSwitchManager::MessageReceived(BMessage* message) { switch (message->what) { case B_SOME_APP_QUIT: @@ -477,10 +483,10 @@ // This is only sent when last team of a matching set quits team_id teamID; int i = 0; - TTeamGroup *tinfo; + TTeamGroup* tinfo; message->FindInt32("team", &teamID); - while ((tinfo = (TTeamGroup *) fGroupList.ItemAt(i)) != NULL) { - if (tinfo->TeamList()->HasItem((void *)teamID)) { + while ((tinfo = (TTeamGroup*)fGroupList.ItemAt(i)) != NULL) { + if (tinfo->TeamList()->HasItem((void*)teamID)) { fGroupList.RemoveItem(i); if (OKToUse(tinfo)) { @@ -500,16 +506,16 @@ case B_SOME_APP_LAUNCHED: { - BList *teams; - const char *name; - BBitmap *smallIcon; + BList* teams; + const char* name; + BBitmap* smallIcon; uint32 flags; - const char *signature; + const char* signature; - if (message->FindPointer("teams", (void **)&teams) != B_OK) + if (message->FindPointer("teams", (void**)&teams) != B_OK) break; - if (message->FindPointer("icon", (void **)&smallIcon) != B_OK) { + if (message->FindPointer("icon", (void**)&smallIcon) != B_OK) { delete teams; break; } @@ -518,7 +524,7 @@ delete teams; break; } - if (message->FindInt32("flags", (int32 *)&flags) != B_OK) { + if (message->FindInt32("flags", (int32*)&flags) != B_OK) { delete teams; break; } @@ -527,7 +533,7 @@ break; } - TTeamGroup *tinfo = new TTeamGroup(teams, flags, strdup(name), + TTeamGroup* tinfo = new TTeamGroup(teams, flags, strdup(name), signature); fGroupList.AddItem(tinfo); @@ -539,15 +545,15 @@ case msg_AddTeam: { - const char *signature = message->FindString("sig"); + const char* signature = message->FindString("sig"); team_id team = message->FindInt32("team"); int32 numItems = fGroupList.CountItems(); for (int32 i = 0; i < numItems; i++) { - TTeamGroup *tinfo = (TTeamGroup *)fGroupList.ItemAt(i); + TTeamGroup* tinfo = (TTeamGroup*)fGroupList.ItemAt(i); if (strcasecmp(tinfo->Signature(), signature) == 0) { - if (!(tinfo->TeamList()->HasItem((void *)team))) - tinfo->TeamList()->AddItem((void *)team); + if (!(tinfo->TeamList()->HasItem((void*)team))) + tinfo->TeamList()->AddItem((void*)team); break; } } @@ -560,9 +566,9 @@ int32 numItems = fGroupList.CountItems(); for (int32 i = 0; i < numItems; i++) { - TTeamGroup *tinfo = (TTeamGroup *)fGroupList.ItemAt(i); - if (tinfo->TeamList()->HasItem((void *)team)) { - tinfo->TeamList()->RemoveItem((void *)team); + TTeamGroup* tinfo = (TTeamGroup*)fGroupList.ItemAt(i); + if (tinfo->TeamList()->HasItem((void*)team)) { + tinfo->TeamList()->RemoveItem((void*)team); break; } } @@ -574,7 +580,7 @@ // The first TASK message calls MainEntry. Subsequent ones // call Process(). bigtime_t time; - message->FindInt64("when", (int64 *)&time); + message->FindInt64("when", (int64*)&time); // The fSkipUntil stuff can be removed once the new input_server // starts differentiating initial key_downs from KeyDowns generated @@ -591,7 +597,7 @@ // was made visible. Better UI feel if we do this. if (time > fSkipUntil) { uint32 modifiers; - message->FindInt32("modifiers", (int32 *)&modifiers); + message->FindInt32("modifiers", (int32*)&modifiers); Process((modifiers & B_SHIFT_KEY) == 0, (modifiers & B_OPTION_KEY) != 0); } @@ -698,7 +704,7 @@ void -TSwitchManager::MainEntry(BMessage *message) +TSwitchManager::MainEntry(BMessage* message) { bigtime_t keyRepeatRate; get_key_repeat_delay(&keyRepeatRate); @@ -723,7 +729,7 @@ fCurrentIndex = FindTeam(appInfo.team, &index) != NULL ? index : 0; int32 key; - message->FindInt32("key", (int32 *)&key); + message->FindInt32("key", (int32*)&key); uint32 modifierKeys = 0; while (system_time() < timeout) { @@ -755,12 +761,12 @@ } -TTeamGroup * -TSwitchManager::FindTeam(team_id teamID, int32 *index) +TTeamGroup* +TSwitchManager::FindTeam(team_id teamID, int32* index) { int i = 0; TTeamGroup* info; - while ((info = (TTeamGroup *)fGroupList.ItemAt(i)) != NULL) { + while ((info = (TTeamGroup*)fGroupList.ItemAt(i)) != NULL) { if (info->TeamList()->HasItem((void*)teamID)) { *index = i; return info; @@ -817,14 +823,14 @@ void -TSwitchManager::QuickSwitch(BMessage *message) +TSwitchManager::QuickSwitch(BMessage* message) { uint32 modifiers = 0; - message->FindInt32("modifiers", (int32 *) &modifiers); + message->FindInt32("modifiers", (int32*)&modifiers); team_id team; if (message->FindInt32("team", &team) == B_OK) { - bool forward = ((modifiers & B_SHIFT_KEY) == 0); + bool forward = (modifiers & B_SHIFT_KEY) == 0; if ((modifiers & B_OPTION_KEY) != 0) SwitchWindow(team, forward, true); @@ -843,7 +849,7 @@ int32 count = fGroupList.CountItems(); for (int32 i = 0; i < count; i++) { - if (!OKToUse((TTeamGroup *) fGroupList.ItemAt(i))) + if (!OKToUse((TTeamGroup*)fGroupList.ItemAt(i))) continue; result++; @@ -902,7 +908,7 @@ // a good app. Oh well. return; - if (!OKToUse((TTeamGroup *)fGroupList.ItemAt(fCurrentIndex))) + if (!OKToUse((TTeamGroup*)fGroupList.ItemAt(fCurrentIndex))) continue; // if we're here then we found a good one @@ -1028,8 +1034,8 @@ break; } if (matchWindowInfo->server_token != windowInfo->server_token - && teamGroup->TeamList()->HasItem((void *)matchWindowInfo->team)) - windowsToActivate.AddItem((void *)matchWindowInfo->server_token); + && teamGroup->TeamList()->HasItem((void*)matchWindowInfo->team)) + windowsToActivate.AddItem((void*)matchWindowInfo->server_token); free(matchWindowInfo); } @@ -1048,6 +1054,7 @@ do_window_action(windowInfo->server_token, B_BRING_TO_FRONT, BRect(0, 0, 0, 0), false); + free(windowInfo); return true; } @@ -1058,10 +1065,10 @@ { // check if we're in the last slot already (the last usable team group) - TTeamGroup *teamGroup; + TTeamGroup* teamGroup; int32 count = 0; for (int32 i = fCurrentIndex + 1; i < fGroupList.CountItems(); i++) { - teamGroup = (TTeamGroup *)fGroupList.ItemAt(i); + teamGroup = (TTeamGroup*)fGroupList.ItemAt(i); if (!OKToUse(teamGroup)) continue; @@ -1069,7 +1076,7 @@ count++; } - teamGroup = (TTeamGroup *)fGroupList.ItemAt(fCurrentIndex); + teamGroup = (TTeamGroup*)fGroupList.ItemAt(fCurrentIndex); if (count == 0) { // switch to previous app in the list so that we don't jump to @@ -1101,7 +1108,7 @@ { // hide all teams in this group - TTeamGroup *teamGroup = (TTeamGroup *)fGroupList.ItemAt(fCurrentIndex); + TTeamGroup* teamGroup = (TTeamGroup*)fGroupList.ItemAt(fCurrentIndex); for (int32 i = teamGroup->TeamList()->CountItems(); i-- > 0;) { team_id team = (team_id)teamGroup->TeamList()->ItemAt(i); @@ -1166,7 +1173,7 @@ int32 TSwitchManager::CountWindows(int32 groupIndex, bool ) { - TTeamGroup *teamGroup = (TTeamGroup *)fGroupList.ItemAt(groupIndex); + TTeamGroup* teamGroup = (TTeamGroup*)fGroupList.ItemAt(groupIndex); if (!teamGroup) return 0; @@ -1178,7 +1185,7 @@ break; int32 count; - int32 *tokens = get_token_list(teamID, &count); + int32* tokens = get_token_list(teamID, &count); if (!tokens) continue; @@ -1272,7 +1279,7 @@ } -BList * +BList* TSwitchManager::GroupList() { return &fGroupList; @@ -1282,8 +1289,8 @@ // #pragma mark - -TBox::TBox(BRect bounds, TSwitchManager *manager, TSwitcherWindow *window, - TIconView *iview) +TBox::TBox(BRect bounds, TSwitchManager* manager, TSwitcherWindow* window, + TIconView* iview) : BBox(bounds, "top", B_FOLLOW_NONE, B_WILL_DRAW, B_NO_BORDER), fManager(manager), fWindow(window), @@ -1613,7 +1620,7 @@ // #pragma mark - -TSwitcherWindow::TSwitcherWindow(BRect frame, TSwitchManager *manager) +TSwitcherWindow::TSwitcherWindow(BRect frame, TSwitchManager* manager) : BWindow(frame, "Twitcher", B_MODAL_WINDOW_LOOK, B_MODAL_ALL_WINDOW_FEEL, B_NOT_MINIMIZABLE | B_NOT_ZOOMABLE | B_NOT_RESIZABLE, B_ALL_WORKSPACES), @@ -1649,7 +1656,7 @@ void -TSwitcherWindow::MessageReceived(BMessage *message) +TSwitcherWindow::MessageReceived(BMessage* message) { switch (message->what) { case B_KEY_DOWN: @@ -1664,8 +1671,8 @@ uint32 rawChar; uint32 modifiers; - message->FindInt32("raw_char", 0, (int32 *)&rawChar); - message->FindInt32("modifiers", 0, (int32 *)&modifiers); + message->FindInt32("raw_char", 0, (int32*)&rawChar); + message->FindInt32("modifiers", 0, (int32*)&modifiers); DoKey(rawChar, modifiers); break; } @@ -1751,7 +1758,7 @@ bool TSwitcherWindow::QuitRequested() { - ((TBarApp *) be_app)->Settings()->switcherLoc = Frame().LeftTop(); + ((TBarApp*)be_app)->Settings()->switcherLoc = Frame().LeftTop(); fManager->Stop(false, 0); return false; } @@ -1799,7 +1806,7 @@ } -TBox * +TBox* TSwitcherWindow::TopView() { return fTopView; @@ -1820,14 +1827,14 @@ } -inline TIconView * +inline TIconView* TSwitcherWindow::IconView() { return fIconView; } -inline TWindowView * +inline TWindowView* TSwitcherWindow::WindowView() { return fWindowView; @@ -1837,9 +1844,10 @@ // #pragma mark - -TIconView::TIconView(BRect frame, TSwitchManager *manager, TSwitcherWindow *switcherWindow) +TIconView::TIconView(BRect frame, TSwitchManager* manager, + TSwitcherWindow* switcherWindow) : BView(frame, "main_view", B_FOLLOW_NONE, - B_WILL_DRAW | B_PULSE_NEEDED), + B_WILL_DRAW | B_PULSE_NEEDED), fAutoScrolling(false), fSwitcher(switcherWindow), fManager(manager) @@ -1869,15 +1877,15 @@ void -TIconView::KeyDown(const char *, int32) +TIconView::KeyDown(const char* /*bytes*/, int32 /*numBytes*/) { } void -TIconView::CacheIcons(TTeamGroup *teamGroup) +TIconView::CacheIcons(TTeamGroup* teamGroup) { - const BBitmap *bitmap = teamGroup->SmallIcon(); + const BBitmap* bitmap = teamGroup->SmallIcon(); ASSERT(bitmap); fCurrentSmall->SetBits(bitmap->Bits(), bitmap->BitsLength(), 0, bitmap->ColorSpace()); @@ -1890,7 +1898,7 @@ void -TIconView::AnimateIcon(BBitmap *startIcon, BBitmap *endIcon) +TIconView::AnimateIcon(BBitmap* startIcon, BBitmap* endIcon) { BRect centerRect(kCenterSlot*kSlotSize, 0, (kCenterSlot + 1) * kSlotSize - 1, kSlotSize - 1); @@ -1972,7 +1980,7 @@ } fAutoScrolling = false; - TTeamGroup *teamGroup = (TTeamGroup *)fManager->GroupList()->ItemAt(current); + TTeamGroup* teamGroup = (TTeamGroup*)fManager->GroupList()->ItemAt(current); ASSERT(teamGroup); CacheIcons(teamGroup); @@ -2000,7 +2008,7 @@ for (int32 i = 0, verticalIndex = 0; ; i++) { - TTeamGroup *teamGroup = (TTeamGroup *)fManager->GroupList()->ItemAt(i); + TTeamGroup* teamGroup = (TTeamGroup*)fManager->GroupList()->ItemAt(i); if (teamGroup == NULL) break; @@ -2027,12 +2035,12 @@ int32 TIconView::IndexAt(int32 slot) const { - BList *list = fManager->GroupList(); + BList* list = fManager->GroupList(); int32 count = list->CountItems(); int32 slotIndex = 0; for (int32 i = 0; i < count; i++) { - TTeamGroup *teamGroup = (TTeamGroup *)list->ItemAt(i); + TTeamGroup* teamGroup = (TTeamGroup*)list->ItemAt(i); if (!OKToUse(teamGroup)) continue; @@ -2057,13 +2065,13 @@ BRect TIconView::FrameOf(int32 index) const { - BList *list = fManager->GroupList(); + BList* list = fManager->GroupList(); int32 visible = kCenterSlot - 1; // first few slots in view are empty - TTeamGroup *teamGroup; + TTeamGroup* teamGroup; for (int32 i = 0; i <= index; i++) { - teamGroup = (TTeamGroup *)list->ItemAt(i); + teamGroup = (TTeamGroup*)list->ItemAt(i); if (!OKToUse(teamGroup)) continue; @@ -2079,14 +2087,14 @@ TIconView::DrawTeams(BRect update) { int32 mainIndex = fManager->CurrentIndex(); - BList *list = fManager->GroupList(); + BList* list = fManager->GroupList(); int32 count = list->CountItems(); BRect rect(kCenterSlot * kSlotSize, 0, (kCenterSlot + 1) * kSlotSize - 1, kSlotSize - 1); for (int32 i = 0; i < count; i++) { - TTeamGroup *teamGroup = (TTeamGroup *) list->ItemAt(i); + TTeamGroup* teamGroup = (TTeamGroup*)list->ItemAt(i); if (!OKToUse(teamGroup)) continue; @@ -2206,7 +2214,7 @@ void -TWindowView::GetPreferredSize(float *_width, float *_height) +TWindowView::GetPreferredSize(float* _width, float* _height) { font_height fh; be_plain_font->GetHeight(&fh); @@ -2269,8 +2277,9 @@ TWindowView::Draw(BRect update) { int32 groupIndex = fManager->CurrentIndex(); - TTeamGroup *teamGroup = (TTeamGroup *) fManager->GroupList()->ItemAt(groupIndex); - if (!teamGroup) + TTeamGroup* teamGroup + = (TTeamGroup*)fManager->GroupList()->ItemAt(groupIndex); + if (teamGroup == NULL) return; BRect bounds = Bounds(); @@ -2278,7 +2287,7 @@ BRect windowRect = bounds; windowRect.top = windowIndex * fItemHeight; - windowRect.bottom = ((windowIndex+1) * fItemHeight) - 1; + windowRect.bottom = (windowIndex + 1) * fItemHeight - 1; for (int32 i = 0; i < 3; i++) { if (!update.Intersects(windowRect)) { @@ -2325,7 +2334,7 @@ BPoint point((bounds.Width() - (stringWidth + 14 + 5)) / 2, windowRect.bottom - 4); BPoint p(point.x, (windowRect.top + windowRect.bottom) / 2); SetDrawingMode(B_OP_OVER); - const BBitmap *bitmap = AppResSet()->FindBitmap(B_MESSAGE_TYPE, + const BBitmap* bitmap = AppResSet()->FindBitmap(B_MESSAGE_TYPE, minimized ? R_WindowHiddenIcon : R_WindowShownIcon); p.y -= (bitmap->Bounds().bottom - bitmap->Bounds().top) / 2; DrawBitmap(bitmap, p); From axeld at mail.berlios.de Mon Jan 19 00:27:39 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Mon, 19 Jan 2009 00:27:39 +0100 Subject: [Haiku-commits] r28943 - haiku/trunk/src/tests/kits/net/tcp_shell Message-ID: <200901182327.n0INRdYW016502@sheep.berlios.de> Author: axeld Date: 2009-01-19 00:27:39 +0100 (Mon, 19 Jan 2009) New Revision: 28943 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28943&view=rev Modified: haiku/trunk/src/tests/kits/net/tcp_shell/BufferQueueTest.cpp Log: * This test would have reproduced the "buffer > 0" ASSERT problem with the previous release of BufferQueue. IOW #2594 should be fixed now. Modified: haiku/trunk/src/tests/kits/net/tcp_shell/BufferQueueTest.cpp =================================================================== --- haiku/trunk/src/tests/kits/net/tcp_shell/BufferQueueTest.cpp 2009-01-18 23:18:40 UTC (rev 28942) +++ haiku/trunk/src/tests/kits/net/tcp_shell/BufferQueueTest.cpp 2009-01-18 23:27:39 UTC (rev 28943) @@ -128,6 +128,9 @@ add(3, 999); dump("add 3"); + add(60, 540); + dump("add at the end of previous data"); + put_module(NET_BUFFER_MODULE_NAME); return 0; } From mmlr at mail.berlios.de Mon Jan 19 00:56:15 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 19 Jan 2009 00:56:15 +0100 Subject: [Haiku-commits] r28944 - haiku/trunk/headers/libs/freetype2/freetype/config Message-ID: <200901182356.n0INuFKH013010@sheep.berlios.de> Author: mmlr Date: 2009-01-19 00:56:00 +0100 (Mon, 19 Jan 2009) New Revision: 28944 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28944&view=rev Modified: haiku/trunk/headers/libs/freetype2/freetype/config/ftconfig.h Log: Fix the build on Haiku/BeOS. Apparently our GCC doesn't like the "+d" constraint, so I replaced it with a "d" input and "=d" output constraint instead, which should be equivalent. Please yell if my logic is flawed. Modified: haiku/trunk/headers/libs/freetype2/freetype/config/ftconfig.h =================================================================== --- haiku/trunk/headers/libs/freetype2/freetype/config/ftconfig.h 2009-01-18 23:27:39 UTC (rev 28943) +++ haiku/trunk/headers/libs/freetype2/freetype/config/ftconfig.h 2009-01-18 23:56:00 UTC (rev 28944) @@ -357,8 +357,8 @@ "shrl $16, %%eax\n" "shll $16, %%edx\n" "addl %%edx, %%eax\n" - : "=a"(result), "+d"(b) - : "a"(a) + : "=a"(result), "=d"(b) + : "a"(a), "d"(b) : "%ecx" ); return result; } From revol at free.fr Mon Jan 19 01:06:29 2009 From: revol at free.fr (=?utf-8?q?Fran=C3=A7ois?= Revol) Date: Mon, 19 Jan 2009 01:06:29 +0100 CET Subject: [Haiku-commits] =?utf-8?q?r28944_-_haiku/trunk/headers/libs/freet?= =?utf-8?q?ype2/freetype/config?= In-Reply-To: <200901182356.n0INuFKH013010@sheep.berlios.de> Message-ID: <20484326059-BeMail@laptop> > haiku/trunk/headers/libs/freetype2/freetype/config/ftconfig.h > Log: > Fix the build on Haiku/BeOS. Apparently our GCC doesn't like the "+d" > constraint, so I replaced it with a "d" input and "=d" output > constraint > instead, which should be equivalent. Please yell if my logic is > flawed. Why on earth are there asm macros in a *config* file ?? Also, I'd highly suggest we put the stock FT in vendor branch... Fran?ois. From mmlr at mail.berlios.de Mon Jan 19 01:49:06 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 19 Jan 2009 01:49:06 +0100 Subject: [Haiku-commits] r28945 - haiku/trunk/headers/libs/freetype2/freetype/config Message-ID: <200901190049.n0J0n6Nk008958@sheep.berlios.de> Author: mmlr Date: 2009-01-19 01:48:59 +0100 (Mon, 19 Jan 2009) New Revision: 28945 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28945&view=rev Modified: haiku/trunk/headers/libs/freetype2/freetype/config/ftconfig.h Log: As Marcus pointed out, the imul instruction clobbers the conditional code register. Therefore "cc" should be added to the clobber list. Adding that here as it's part of a patch attached to the freetype bugtracker. Modified: haiku/trunk/headers/libs/freetype2/freetype/config/ftconfig.h =================================================================== --- haiku/trunk/headers/libs/freetype2/freetype/config/ftconfig.h 2009-01-18 23:56:00 UTC (rev 28944) +++ haiku/trunk/headers/libs/freetype2/freetype/config/ftconfig.h 2009-01-19 00:48:59 UTC (rev 28945) @@ -359,7 +359,7 @@ "addl %%edx, %%eax\n" : "=a"(result), "=d"(b) : "a"(a), "d"(b) - : "%ecx" ); + : "%ecx", "cc" ); return result; } From anevilyak at mail.berlios.de Mon Jan 19 02:38:31 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Mon, 19 Jan 2009 02:38:31 +0100 Subject: [Haiku-commits] r28946 - haiku/trunk/src/kits/media Message-ID: <200901190138.n0J1cV1q014867@sheep.berlios.de> Author: anevilyak Date: 2009-01-19 02:38:30 +0100 (Mon, 19 Jan 2009) New Revision: 28946 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28946&view=rev Modified: haiku/trunk/src/kits/media/ParameterWeb.cpp Log: Build fix: ParameterWeb had its own (static) version of strndup which broke the build on gcc4. Removed it so as to just use the library version added recently instead. Modified: haiku/trunk/src/kits/media/ParameterWeb.cpp =================================================================== --- haiku/trunk/src/kits/media/ParameterWeb.cpp 2009-01-19 00:48:59 UTC (rev 28945) +++ haiku/trunk/src/kits/media/ParameterWeb.cpp 2009-01-19 01:38:30 UTC (rev 28946) @@ -297,27 +297,6 @@ * The buffer returned is to be freed by the caller using free(). */ -static char * -strndup(const char *source, size_t maxBufferSize) -{ - if (source == NULL || source[0] == '\0') - return NULL; - - uint32 size = strlen(source) + 1; - if (size > maxBufferSize) - size = maxBufferSize; - - char *target = (char *)malloc(size); - if (target == NULL) - return NULL; - - memcpy(target, source, size - 1); - target[size - 1] = '\0'; - - return target; -} - - // #pragma mark - /************************************************************* From anevilyak at mail.berlios.de Mon Jan 19 02:42:25 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Mon, 19 Jan 2009 02:42:25 +0100 Subject: [Haiku-commits] r28947 - haiku/trunk/src/kits/network/dns Message-ID: <200901190142.n0J1gPiI015533@sheep.berlios.de> Author: anevilyak Date: 2009-01-19 02:42:24 +0100 (Mon, 19 Jan 2009) New Revision: 28947 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28947&view=rev Modified: haiku/trunk/src/kits/network/dns/port_after.h Log: Another GCC4-related strndup fix. Modified: haiku/trunk/src/kits/network/dns/port_after.h =================================================================== --- haiku/trunk/src/kits/network/dns/port_after.h 2009-01-19 01:38:30 UTC (rev 28946) +++ haiku/trunk/src/kits/network/dns/port_after.h 2009-01-19 01:42:24 UTC (rev 28947) @@ -37,7 +37,7 @@ #undef NEED_IN6ADDR_ANY #undef NEED_GETTIMEOFDAY -#undef HAVE_STRNDUP +#define HAVE_STRNDUP #undef USE_FIONBIO_IOCTL #undef USE_SYSERROR_LIST #undef INNETGR_ARGS From mmlr at mail.berlios.de Mon Jan 19 02:58:13 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 19 Jan 2009 02:58:13 +0100 Subject: [Haiku-commits] r28948 - haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk Message-ID: <200901190158.n0J1wDwd017451@sheep.berlios.de> Author: mmlr Date: 2009-01-19 02:58:05 +0100 (Mon, 19 Jan 2009) New Revision: 28948 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28948&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp Log: Add ioctl cases for B_GET_ICON, B_GET_ICON_NAME and B_GET_VECTOR_ICON. The first won't be implemented, the second currently isn't and the third is. This gets rid of the frequent "unhandled ioctl" messages when using USB drives and also adds the nice pendrive icon to the mount list when using USB storage devices. Modified: haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp 2009-01-19 01:42:24 UTC (rev 28947) +++ haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp 2009-01-19 01:58:05 UTC (rev 28948) @@ -39,7 +39,80 @@ static mutex gDeviceListLock; static char **gDeviceNames = NULL; +static uint8 kDeviceIcon[] = { + 0x6e, 0x63, 0x69, 0x66, 0x0a, 0x04, 0x01, 0x73, 0x05, 0x01, 0x02, 0x01, + 0x06, 0x02, 0xb1, 0xf8, 0x5d, 0x3a, 0x2f, 0xbf, 0xbe, 0xdb, 0x67, 0xb6, + 0x98, 0x06, 0x4b, 0x22, 0x15, 0x47, 0x13, 0x02, 0x00, 0xed, 0xed, 0xed, + 0xff, 0xab, 0xbc, 0xc6, 0x02, 0x01, 0x06, 0x02, 0xb9, 0x82, 0x56, 0x32, + 0x7d, 0xfb, 0xb8, 0x06, 0x39, 0xbe, 0xd9, 0xb5, 0x4b, 0x7d, 0x31, 0x4a, + 0xa4, 0xe7, 0x00, 0xd1, 0xde, 0xe4, 0xff, 0x7a, 0x9c, 0xae, 0x02, 0x00, + 0x16, 0x02, 0x38, 0xe9, 0xaa, 0x3b, 0x7b, 0x1d, 0xbf, 0xb0, 0xa6, 0x3d, + 0x16, 0x76, 0x4b, 0x84, 0x81, 0x48, 0x37, 0x36, 0x00, 0x99, 0xff, 0x53, + 0x02, 0x00, 0x16, 0x02, 0xba, 0x38, 0x9a, 0xb8, 0xef, 0x79, 0x3e, 0x34, + 0x8b, 0xbf, 0x56, 0x52, 0x48, 0x2c, 0x61, 0x4c, 0x4e, 0xec, 0x00, 0x40, + 0xff, 0x01, 0x05, 0xff, 0x05, 0x46, 0x02, 0x01, 0x16, 0x02, 0x35, 0xc2, + 0x71, 0x3a, 0xf6, 0x84, 0xb9, 0xf3, 0x5b, 0x34, 0x81, 0xa0, 0x49, 0xc0, + 0x57, 0x49, 0x6e, 0x51, 0xff, 0xf3, 0x00, 0x52, 0x02, 0x01, 0x06, 0x02, + 0x38, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x80, 0x00, + 0x49, 0xa0, 0x00, 0x49, 0x80, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x06, + 0xe3, 0x06, 0x0c, 0x06, 0x09, 0xab, 0xaa, 0x03, 0x3e, 0x5e, 0x3c, 0x5f, + 0x3e, 0x5e, 0x60, 0x4d, 0x5a, 0x4a, 0x60, 0x47, 0x56, 0x42, 0x50, 0x45, + 0x4c, 0x43, 0x2a, 0x54, 0x36, 0x5d, 0x36, 0x5d, 0x3a, 0x60, 0x06, 0x08, + 0xfb, 0xea, 0x27, 0x49, 0x26, 0x48, 0x27, 0x49, 0x32, 0x56, 0x37, 0x59, + 0x37, 0x59, 0x38, 0x5a, 0x3b, 0x59, 0x3a, 0x5a, 0x3b, 0x59, 0x58, 0x3c, + 0x52, 0x36, 0x43, 0x29, 0x27, 0x45, 0x27, 0x45, 0x26, 0x46, 0x06, 0x05, + 0xab, 0x03, 0x27, 0x49, 0x26, 0x48, 0x27, 0x49, 0x32, 0x56, 0x52, 0x36, + 0x43, 0x29, 0x27, 0x45, 0x27, 0x45, 0x26, 0x46, 0x0a, 0x05, 0xc2, 0x1c, + 0xb8, 0xf9, 0x4f, 0x25, 0xc9, 0x4c, 0xb7, 0xc4, 0x5a, 0x30, 0x51, 0x39, + 0x0a, 0x04, 0xc5, 0x50, 0xbb, 0xc0, 0xc2, 0x1c, 0xb8, 0xf9, 0x4f, 0x25, + 0xc9, 0x4c, 0xb7, 0xc4, 0x0a, 0x04, 0x51, 0x39, 0xc5, 0x50, 0xbb, 0xc0, + 0xc9, 0x4c, 0xb7, 0xc4, 0x5a, 0x30, 0x0a, 0x04, 0x4f, 0x2f, 0x51, 0x31, + 0x53, 0x2f, 0x51, 0x2d, 0x06, 0x04, 0xee, 0x4f, 0x35, 0x53, 0x30, 0x51, + 0x32, 0x55, 0x2e, 0x58, 0x2c, 0x54, 0x31, 0x56, 0x2f, 0x52, 0x33, 0x06, + 0x04, 0xee, 0x31, 0x58, 0x40, 0x47, 0x39, 0x4e, 0x47, 0x40, 0x50, 0x38, + 0x41, 0x48, 0x48, 0x41, 0x3a, 0x4f, 0x08, 0x02, 0x3a, 0x40, 0x3e, 0x3c, + 0x02, 0x04, 0x3e, 0x3a, 0xbe, 0x48, 0x3a, 0xbf, 0x9f, 0x3a, 0x41, 0x3d, + 0x41, 0xbd, 0xe2, 0x41, 0xbf, 0x39, 0x3e, 0x40, 0xbf, 0x9f, 0x40, 0xbe, + 0x48, 0x40, 0x3b, 0x3d, 0x3b, 0xbf, 0x39, 0x3b, 0xbd, 0xe2, 0x06, 0x05, + 0xbe, 0x02, 0x32, 0x56, 0x36, 0x5a, 0x36, 0x5a, 0x37, 0x5b, 0x3a, 0x5a, + 0x39, 0x5b, 0x3a, 0x5a, 0x58, 0x3c, 0x52, 0x36, 0x11, 0x0a, 0x00, 0x01, + 0x00, 0x00, 0x0a, 0x01, 0x01, 0x03, 0x12, 0x3f, 0xe9, 0x8e, 0xbb, 0x54, + 0xe2, 0x3b, 0x54, 0xe2, 0x3f, 0xe9, 0x8e, 0xc6, 0x4d, 0xd9, 0x45, 0xc0, + 0xc5, 0x01, 0x17, 0x84, 0x00, 0x04, 0x0a, 0x02, 0x01, 0x04, 0x02, 0x3f, + 0xe9, 0x8e, 0xbb, 0x54, 0xe2, 0x3b, 0x54, 0xe2, 0x3f, 0xe9, 0x8e, 0xc6, + 0x4d, 0xd9, 0x45, 0xc0, 0xc5, 0x0a, 0x03, 0x01, 0x05, 0x02, 0x3f, 0xe9, + 0x8e, 0xbb, 0x54, 0xe2, 0x3b, 0x54, 0xe2, 0x3f, 0xe9, 0x8e, 0xc6, 0x4d, + 0xd9, 0x45, 0xc0, 0xc5, 0x0a, 0x01, 0x01, 0x01, 0x12, 0x3f, 0xe9, 0x8e, + 0xbb, 0x54, 0xe2, 0x3b, 0x54, 0xe2, 0x3f, 0xe9, 0x8e, 0xc6, 0xb0, 0x64, + 0x46, 0x78, 0x3b, 0x01, 0x17, 0x84, 0x00, 0x04, 0x0a, 0x04, 0x01, 0x02, + 0x02, 0x3f, 0xe9, 0x8e, 0xbb, 0x54, 0xe2, 0x3b, 0x54, 0xe2, 0x3f, 0xe9, + 0x8e, 0xc6, 0xb0, 0x64, 0x46, 0x78, 0x3b, 0x0a, 0x05, 0x01, 0x0b, 0x02, + 0x3f, 0xe9, 0x8e, 0xbb, 0x54, 0xe2, 0x3b, 0x54, 0xe2, 0x3f, 0xe9, 0x8e, + 0xc6, 0xb0, 0x64, 0x46, 0x78, 0x3b, 0x0a, 0x01, 0x01, 0x06, 0x02, 0x3f, + 0xe9, 0x8e, 0xbb, 0x54, 0xe2, 0x3b, 0x54, 0xe2, 0x3f, 0xe9, 0x8e, 0xc6, + 0x5b, 0x2d, 0x45, 0x43, 0x93, 0x0a, 0x01, 0x01, 0x06, 0x02, 0x3f, 0xe9, + 0x8e, 0xbb, 0x54, 0xe2, 0x3b, 0x54, 0xe2, 0x3f, 0xe9, 0x8e, 0xc7, 0x7d, + 0x8b, 0x44, 0x36, 0x9a, 0x0a, 0x06, 0x02, 0x07, 0x08, 0x02, 0x3f, 0xe9, + 0x8e, 0xbb, 0x54, 0xe2, 0x3b, 0x54, 0xe2, 0x3f, 0xe9, 0x8e, 0xc6, 0x4d, + 0xd9, 0x45, 0xc0, 0xc5, 0x0a, 0x01, 0x01, 0x09, 0x12, 0x3f, 0x6c, 0x5c, + 0xba, 0xea, 0x46, 0x3a, 0xea, 0x46, 0x3f, 0x6c, 0x5c, 0xc5, 0x19, 0x6c, + 0x46, 0x6b, 0x36, 0x01, 0x17, 0x8c, 0x22, 0x04, 0x0a, 0x07, 0x01, 0x09, + 0x12, 0x3f, 0xe9, 0x8e, 0xbb, 0x54, 0xe2, 0x3b, 0x54, 0xe2, 0x3f, 0xe9, + 0x8e, 0xc6, 0x4d, 0xd9, 0x45, 0xc0, 0xc5, 0x01, 0x17, 0x88, 0x22, 0x04, + 0x0a, 0x08, 0x01, 0x09, 0x12, 0x3f, 0xe9, 0x8e, 0xbb, 0x54, 0xe2, 0x3b, + 0x54, 0xe2, 0x3f, 0xe9, 0x8e, 0xc6, 0x01, 0xed, 0x46, 0x11, 0xa8, 0x01, + 0x17, 0x85, 0x22, 0x04, 0x0a, 0x01, 0x01, 0x0a, 0x12, 0x3f, 0xe9, 0x8e, + 0xbb, 0x54, 0xe2, 0x3a, 0xaa, 0x52, 0x3f, 0x21, 0x43, 0xc6, 0x59, 0xd0, + 0x46, 0xdb, 0x8c, 0x01, 0x17, 0x84, 0x00, 0x04, 0x0a, 0x06, 0x01, 0x0a, + 0x02, 0x3f, 0xe9, 0x8e, 0xbb, 0x54, 0xe2, 0x3b, 0x54, 0xe2, 0x3f, 0xe9, + 0x8e, 0xc6, 0x99, 0xc6, 0x45, 0x5e, 0x3a, 0x0a, 0x01, 0x01, 0x0a, 0x12, + 0x3f, 0x21, 0x43, 0xba, 0xaa, 0x52, 0x3a, 0xaa, 0x52, 0x3f, 0x21, 0x43, + 0xc7, 0xd2, 0xa7, 0x49, 0x5f, 0xed, 0x01, 0x17, 0x84, 0x00, 0x04, 0x0a, + 0x09, 0x01, 0x0a, 0x02, 0x3f, 0xe9, 0x8e, 0xbb, 0x54, 0xe2, 0x3b, 0x54, + 0xe2, 0x3f, 0xe9, 0x8e, 0xc8, 0xa5, 0xc8, 0x48, 0xeb, 0x05 +}; + // //#pragma mark - Forward Declarations // @@ -904,6 +977,41 @@ NULL, NULL, false); break; + case B_GET_ICON: + // We don't support this legacy ioctl anymore, but the two other + // icon ioctls below instead. + break; + + case B_GET_ICON_NAME: + // TODO: implement when needed + break; + + case B_GET_VECTOR_ICON: + { + if (length != sizeof(device_icon)) { + result = B_BAD_VALUE; + break; + } + + device_icon iconData; + if (user_memcpy(&iconData, buffer, sizeof(device_icon)) != B_OK) { + result = B_BAD_ADDRESS; + break; + } + + if (iconData.icon_size >= (int32)sizeof(kDeviceIcon)) { + if (user_memcpy(iconData.icon_data, kDeviceIcon, + sizeof(kDeviceIcon)) != B_OK) { + result = B_BAD_ADDRESS; + break; + } + } + + iconData.icon_size = sizeof(kDeviceIcon); + result = user_memcpy(buffer, &iconData, sizeof(device_icon)); + break; + } + default: TRACE_ALWAYS("unhandled ioctl %ld\n", op); break; From mmu_man at mail.berlios.de Mon Jan 19 03:19:27 2009 From: mmu_man at mail.berlios.de (mmu_man at BerliOS) Date: Mon, 19 Jan 2009 03:19:27 +0100 Subject: [Haiku-commits] r28949 - haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk Message-ID: <200901190219.n0J2JR5b018716@sheep.berlios.de> Author: mmu_man Date: 2009-01-19 03:19:27 +0100 (Mon, 19 Jan 2009) New Revision: 28949 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28949&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp Log: Implement B_GET_ICON_NAME to return "devices/drive-removable-media-usb" as it seems correct as per the FreeDesktop.org Icon Naming Specification we agreed to use for now, cf. http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html Modified: haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp 2009-01-19 01:58:05 UTC (rev 28948) +++ haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp 2009-01-19 02:19:27 UTC (rev 28949) @@ -983,7 +983,7 @@ break; case B_GET_ICON_NAME: - // TODO: implement when needed + result = user_strlcpy((char*)buffer, "devices/drive-removable-media-usb", B_FILE_NAME_LENGTH); break; case B_GET_VECTOR_ICON: From stefano.ceccherini at gmail.com Mon Jan 19 08:13:01 2009 From: stefano.ceccherini at gmail.com (Stefano Ceccherini) Date: Mon, 19 Jan 2009 08:13:01 +0100 Subject: [Haiku-commits] r28929 - haiku/trunk/src/add-ons/kernel/bus_managers/usb In-Reply-To: <200901180113.n0I1DMjR000582@sheep.berlios.de> References: <200901180113.n0I1DMjR000582@sheep.berlios.de> Message-ID: <894b9700901182313tf1688f6g8adebef7c1a6789@mail.gmail.com> 2009/1/18 : > Fix pretty severe error in the convenience functions Pipe::SetFeature(), > Pipe::ClearFeature() and Pipe::GetStatus(). These requests take the endpoint > address in the logical form, including the direction bit. This caused all those > requests to fail for all input pipes, most prominently visible in mass storage > where a mass storage reset could never be done completely and would cause many > devices to be unable to recover from errors. Nice! Maybe this fixes the problem I'm having with that usb key. I'll test and close the bug if it's the case. Thanks! From bga at bug-br.org.br Mon Jan 19 09:58:49 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Mon, 19 Jan 2009 09:58:49 Subject: [Haiku-commits] =?utf-8?q?r28948_-_haiku/trunk/src/add-ons/kernel?= =?utf-8?q?/drivers/disk/usb/usb=5Fdisk?= In-Reply-To: <200901190158.n0J1wDwd017451@sheep.berlios.de> Message-ID: <1379271407-BeMail@Gaspode> On Mon, 19 Jan 2009 02:58:13 +0100, mmlr at mail.berlios.de said: > Add ioctl cases for B_GET_ICON, B_GET_ICON_NAME and B_GET_VECTOR_ICON > . The first > won't be implemented, the second currently isn't and the third is. > This gets > rid of the frequent "unhandled ioctl" messages when using USB drives > and also > adds the nice pendrive icon to the mount list when using USB storage > devices. Would it be posible to add icons for the most common mass storage device forms as Linux does, for example? I ask becauise it could get a boit confusing if you have an SD (in an internal card reader) and a pen- drive connected to your computer. It seems that both would show as a pen-drive icon right now. -Bruno From axeld at pinc-software.de Mon Jan 19 10:59:01 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Mon, 19 Jan 2009 10:59:01 +0100 CET Subject: [Haiku-commits] r28946 - haiku/trunk/src/kits/media In-Reply-To: <200901190138.n0J1cV1q014867@sheep.berlios.de> Message-ID: <1169883071-BeMail@zon> anevilyak at BerliOS wrote: > - if (source == NULL || source[0] == '\0') > - return NULL; Note that the POSIX behaviour will return an empty string in the latter case, instead of NULL. Bye, Axel. From bga at bug-br.org.br Mon Jan 19 11:00:16 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Mon, 19 Jan 2009 08:00:16 -0200 Subject: [Haiku-commits] =?utf-8?q?r28949_-_haiku/trunk/src/add-ons/kernel?= =?utf-8?q?/drivers/disk/usb/usb=5Fdisk?= In-Reply-To: <200901190219.n0J2JR5b018716@sheep.berlios.de> Message-ID: <1466150773-BeMail@Gaspode> On Mon, 19 Jan 2009 03:19:27 +0100, mmu_man at BerliOS said: > Implement B_GET_ICON_NAME to return "devices/drive-removable-media- > usb" as it seems correct as per the FreeDesktop.org Icon Naming Specification we agreed to use for now, cf. http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html Again, at least Linux seems to differentiate between the possible specific types (SD/MMC, Memory Stick, Pen Drive, etc). -Bruno From axeld at pinc-software.de Mon Jan 19 11:01:08 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Mon, 19 Jan 2009 11:01:08 +0100 CET Subject: [Haiku-commits] r28946 - haiku/trunk/src/kits/media In-Reply-To: <200901190138.n0J1cV1q014867@sheep.berlios.de> Message-ID: <1296718650-BeMail@zon> anevilyak at BerliOS wrote: > -static char * > -strndup(const char *source, size_t maxBufferSize) > -{ > - if (source == NULL || source[0] == '\0') > - return NULL; > - > - uint32 size = strlen(source) + 1; > - if (size > maxBufferSize) > - size = maxBufferSize; Oh, and also, that POSIX puts one *more* byte into the string as "maxBufferSize". I have a look and correct it where needed. Bye, Axel. From superstippi at gmx.de Mon Jan 19 11:02:25 2009 From: superstippi at gmx.de (=?ISO-8859-1?Q?Stephan_A=DFmus?=) Date: Mon, 19 Jan 2009 11:02:25 +0100 Subject: [Haiku-commits] r28948 - haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk In-Reply-To: <1379271407-BeMail@Gaspode> References: <1379271407-BeMail@Gaspode> Message-ID: <49744FB1.6090204@gmx.de> Bruno Albuquerque schrieb: > On Mon, 19 Jan 2009 02:58:13 +0100, mmlr at mail.berlios.de said: > >> Add ioctl cases for B_GET_ICON, B_GET_ICON_NAME and B_GET_VECTOR_ICON >> . The first >> won't be implemented, the second currently isn't and the third is. >> This gets >> rid of the frequent "unhandled ioctl" messages when using USB drives >> and also >> adds the nice pendrive icon to the mount list when using USB storage >> devices. > > Would it be posible to add icons for the most common mass storage device > forms as Linux does, for example? I ask becauise it could get a boit > confusing if you have an SD (in an internal card reader) and a pen- > drive connected to your computer. It seems that both would show as a > pen-drive icon right now. +1! That'd be great. It's one of the things I keep ranting about with regards to Vista and a thousand Microsoft engineers not being able to pull this off... Best regards, -Stephan From axeld at mail.berlios.de Mon Jan 19 11:08:07 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Mon, 19 Jan 2009 11:08:07 +0100 Subject: [Haiku-commits] r28950 - haiku/trunk/src/kits/media Message-ID: <200901191008.n0JA87Zm015559@sheep.berlios.de> Author: axeld Date: 2009-01-19 11:08:06 +0100 (Mon, 19 Jan 2009) New Revision: 28950 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28950&view=rev Modified: haiku/trunk/src/kits/media/ParameterWeb.cpp Log: * Shortened all strndup() buffers by one to have the same outcome as with the previous local strndup() implementation. * Automatic whitespace cleanup. Modified: haiku/trunk/src/kits/media/ParameterWeb.cpp =================================================================== --- haiku/trunk/src/kits/media/ParameterWeb.cpp 2009-01-19 02:19:27 UTC (rev 28949) +++ haiku/trunk/src/kits/media/ParameterWeb.cpp 2009-01-19 10:08:06 UTC (rev 28950) @@ -1,15 +1,17 @@ -/* ParameterWeb - implements the following classes: -** BParameterWeb, BParameterGroup, BParameter, BNullParameter, -** BContinuousParameter, BDiscreteParameter -** -** Author: Zousar Shaker -** Axel D?rfler, axeld at pinc-software.de -** Marcus Overhagen -** -** This file may be used under the terms of the OpenBeOS License. +/* + * Copyright 2002-2009, Haiku. All Rights Reserved. + * This file may be used under the terms of the MIT License. + * + * Author: Zousar Shaker + * Axel D?rfler, axeld at pinc-software.de + * Marcus Overhagen + */ + +/*! Implements the following classes: + BParameterWeb, BParameterGroup, BParameter, BNullParameter, + BContinuousParameter, BDiscreteParameter */ - #include #include #include @@ -23,7 +25,7 @@ /* The following is documentation on the flattened format of structures/classes in this module: - + //--------BEGIN-CORE-BPARAMETER-STRUCT--------------------- ?? (0x02040607): 4 bytes BParameter Struct Size (in bytes): 4 bytes @@ -58,7 +60,7 @@ Item Value: 4 bytes (as int) //for each item END //--------END-BDISCRETEPARAMETER-STRUCT------------------- - + //--------BEGIN-CORE-BPARAMETERGROUP-STRUCT----------- ?? (0x03040507 OR 0x03040509 depending if the flags field is included or not???): 4 bytes (possible) Flags: 4 bytes @@ -78,9 +80,9 @@ Flattened Group Size: 4 bytes Flattened Group: 'Flattened Group Size' bytes //for each SubGroup END - + //---------END-CORE-BPARAMETERGROUP-STRUCT-------------- - + //--------BEGIN-CORE-BPARAMETERWEB-STRUCT----------- ?? 0x01030506: 4 bytes ??: 4 bytes (is always 1) @@ -94,7 +96,7 @@ ??: 4 bytes (never get written to (holds uninitialized value)) //for each Group END //---------END-CORE-BPARAMETERWEB-STRUCT-------------- - + */ @@ -178,7 +180,7 @@ { if (size < 1) return B_BAD_VALUE; - + const uint8 *buffer = static_cast(*_buffer); uint8 length = *buffer++; if (length > size - 1) @@ -403,7 +405,7 @@ { CALLED(); ASSERT(mGroups != NULL); - + // Iterates over all groups (and sub-groups) in the web. // The "groups" list is used as iteration stack (breadth search style) // Maintains the same order as the Be implementation @@ -571,14 +573,14 @@ return B_BAD_DATA; // Note, it's not completely sure that this field is the version - // information - but it doesn't seem to have another purpose + // information - but it doesn't seem to have another purpose int32 version = read_from_buffer_swap32(&buffer, isSwapped); if (version != kCurrentParameterWebVersion) { ERROR("BParameterWeb::Unflatten(): wrong version %ld (%lx)?!\n", version, version); return B_ERROR; } -#if 0 +#if 0 if (mGroups != NULL) { for (int32 i = 0; i < mGroups->CountItems(); i++) { BParameterGroup *CurrentItem = static_cast(mGroups->ItemAt(i)); @@ -622,16 +624,16 @@ if ((mOldRefs != NULL) && (mNewRefs != NULL)) { BList groups(*mGroups); - + for (int32 i = 0; i < groups.CountItems(); i++) { BParameterGroup *group = static_cast(groups.ItemAt(i)); - + for (int32 index = group->CountParameters(); index-- > 0;) { BParameter *parameter = static_cast(group->ParameterAt(index)); parameter->FixRefs(*mOldRefs, *mNewRefs); } - + if (group->mGroups != NULL) groups.AddList(group->mGroups); } @@ -679,7 +681,7 @@ CALLED(); TRACE("BParameterGroup: web = %p, name = \"%s\"\n", web, name); - mName = strndup(name, 256); + mName = strndup(name, 255); mControls = new BList(); mGroups = new BList(); @@ -898,7 +900,7 @@ Flattened Group Size: 4 bytes Flattened Group: 'Flattened Group Size' bytes //for each SubGroup END - + //---------END-CORE-BPARAMETERGROUP-STRUCT-------------- */ //13 guaranteed bytes, variable after that. @@ -907,14 +909,14 @@ if (mFlags != 0) { size += 4; } - + if (mName != NULL) { size += min_c(strlen(mName),255); } - + int i; int limit; - + limit = mControls->CountItems(); for (i = 0; i < limit; i++) { BParameter *CurrentParameter = static_cast(mControls->ItemAt(i)); @@ -1086,7 +1088,7 @@ } else { mControls = new BList(); } - + if (mGroups != NULL) { for (i = 0; i < mGroups->CountItems(); i++) { BParameterGroup *CurrentItem = static_cast(mGroups->ItemAt(i)); @@ -1388,18 +1390,18 @@ return B_BAD_VALUE; if (size <= 0) return B_NO_MEMORY; - + if (mWeb == 0) { ERROR("BParameter::SetValue: no parent BParameterWeb\n"); return B_NO_INIT; } - + node = mWeb->Node(); if (IS_INVALID_NODE(node)) { ERROR("BParameter::SetValue: the parent BParameterWeb is not assigned to a BMediaNode\n"); return B_NO_INIT; } - + if (size > MAX_PARAMETER_DATA) { // create an area if large data needs to be transfered area = create_area("set parameter data", &data, B_ANY_ADDRESS, ROUND_UP_TO_PAGE(size), B_NO_LOCK, B_READ_AREA | B_WRITE_AREA); @@ -1424,7 +1426,7 @@ if (area != -1) delete_area(area); - + return rv; } @@ -1470,7 +1472,7 @@ BParameter::InputAt(int32 index) { ASSERT(mInputs != NULL); - + return static_cast(mInputs->ItemAt(index)); } @@ -1696,7 +1698,7 @@ //if the struct doesn't meet the minimum size for //a flattened BParameter, then return an error. - //MinFlattenedParamSize = + //MinFlattenedParamSize = //ID (4 bytes) //Name String Length (1 byte) //Kind String Length (1 byte) @@ -1716,8 +1718,8 @@ mID = read_from_buffer_swap32(&buffer, mSwapDetected); if (read_string_from_buffer(&buffer, &mName, size_left(size, bufferStart, buffer)) < B_OK - || read_string_from_buffer(&buffer, &mKind, size_left(size, bufferStart, buffer)) < B_OK - || read_string_from_buffer(&buffer, &mUnit, size_left(size, bufferStart, buffer)) < B_OK) + || read_string_from_buffer(&buffer, &mKind, size_left(size, bufferStart, buffer)) < B_OK + || read_string_from_buffer(&buffer, &mUnit, size_left(size, bufferStart, buffer)) < B_OK) return B_NO_MEMORY; // read the list of inputs @@ -1725,7 +1727,7 @@ // it will directly add the pointers in the flattened message to the list; // these will be fixed to point to the real inputs/outputs later in FixRefs() - int32 count = read_from_buffer_swap32(&buffer, mSwapDetected); + int32 count = read_from_buffer_swap32(&buffer, mSwapDetected); if (mInputs == NULL) mInputs = new BList(); @@ -1776,9 +1778,9 @@ { CALLED(); - mName = strndup(name, 256); - mKind = strndup(kind, 256); - mUnit = strndup(unit, 256); + mName = strndup(name, 255); + mKind = strndup(kind, 255); + mUnit = strndup(unit, 255); // create empty input/output lists mInputs = new BList(); @@ -1800,7 +1802,7 @@ delete mInputs; delete mOutputs; - + mName = NULL; mKind = NULL; mUnit = NULL; mInputs = NULL; mOutputs = NULL; } @@ -1856,7 +1858,7 @@ } // remove all NULL outputs (those which couldn't be mapped) - + for (int32 i = count; i-- > 0;) { if (items[i] == NULL) mOutputs->RemoveItem(i); @@ -2093,7 +2095,7 @@ ASSERT(mSelections != NULL); int32 *valueCopy = new int32(value); - char *nameCopy = strndup(name, 256); + char *nameCopy = strndup(name, 255); if (name != NULL && nameCopy == NULL) return B_NO_MEMORY; From stippi at mail.berlios.de Mon Jan 19 11:31:45 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Mon, 19 Jan 2009 11:31:45 +0100 Subject: [Haiku-commits] r28951 - in haiku/trunk/src/servers/app: . drawing Message-ID: <200901191031.n0JAVjtU017659@sheep.berlios.de> Author: stippi Date: 2009-01-19 11:31:43 +0100 (Mon, 19 Jan 2009) New Revision: 28951 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28951&view=rev Modified: haiku/trunk/src/servers/app/DefaultDecorator.cpp haiku/trunk/src/servers/app/ServerWindow.cpp haiku/trunk/src/servers/app/drawing/DrawingEngine.cpp haiku/trunk/src/servers/app/drawing/DrawingEngine.h Log: * Renamed the drawing functions in DrawingEngine to remove the *Gradient part. In general, there is a lot of code duplication now, also in Painter. I will need to find a way to elliminate this again. Also, all the stroking functions should be gradient enabled as well. * Improved the look of the DefaultDecorater, inspired by the patch from Dennis Washington. I did not adopt the changes which give backwards compatibility problems, though, like changing the window border width or the single border decorator color. But I reckon these changes are overall even a bit smoother. * Fixed a long standing decorator bug, where the resize area of the border was visually different than the click recognition. Modified: haiku/trunk/src/servers/app/DefaultDecorator.cpp =================================================================== --- haiku/trunk/src/servers/app/DefaultDecorator.cpp 2009-01-19 10:08:06 UTC (rev 28950) +++ haiku/trunk/src/servers/app/DefaultDecorator.cpp 2009-01-19 10:31:43 UTC (rev 28951) @@ -23,6 +23,7 @@ #include #include +#include #include #include @@ -94,15 +95,16 @@ // common colors to both focus and non focus state fFrameColors[0] = (rgb_color){ 152, 152, 152, 255 }; - fFrameColors[1] = (rgb_color){ 255, 255, 255, 255 }; + fFrameColors[1] = (rgb_color){ 240, 240, 240, 255 }; fFrameColors[4] = (rgb_color){ 152, 152, 152, 255 }; - fFrameColors[5] = (rgb_color){ 96, 96, 96, 255 }; + fFrameColors[5] = (rgb_color){ 124, 124, 124, 255 }; // state based colors - fFocusFrameColors[0] = (rgb_color){ 216, 216, 216, 255 }; - fFocusFrameColors[1] = (rgb_color){ 136, 136, 136, 255 }; + fFocusFrameColors[0] = (rgb_color){ 224, 224, 224, 255 }; + fFocusFrameColors[1] = (rgb_color){ 208, 208, 208, 255 }; fNonFocusFrameColors[0] = (rgb_color){ 232, 232, 232, 255 }; - fNonFocusFrameColors[1] = (rgb_color){ 148, 148, 148, 255 }; + fNonFocusFrameColors[1] = (rgb_color){ 216, 216, 216, 255 }; + fNonFocusFrameColors[1] = fNonFocusFrameColors[0]; fFocusTabColor = UIColor(B_WINDOW_TAB_COLOR); fFocusTextColor = UIColor(B_WINDOW_TEXT_COLOR); @@ -583,8 +585,8 @@ || fLook == B_FLOATING_WINDOW_LOOK || fLook == B_MODAL_WINDOW_LOOK || fLook == kLeftTitledWindowLook)) { - BRect temp(BPoint(fBottomBorder.right - 18, - fBottomBorder.bottom - 18), fBottomBorder.RightBottom()); + BRect temp(BPoint(fBottomBorder.right - 22, + fBottomBorder.bottom - 22), fBottomBorder.RightBottom()); if (temp.Contains(point)) return DEC_RESIZE; } @@ -896,8 +898,16 @@ float x = r.right - 3; float y = r.bottom - 3; - fDrawingEngine->FillRect(BRect(x - 13, y - 13, x, y), - fFrameColors[2]); + BRect bg(x - 13, y - 13, x, y); + + BGradientLinear gradient; + gradient.SetStart(bg.LeftTop()); + gradient.SetEnd(bg.RightBottom()); + gradient.AddColor(fFrameColors[1], 0); + gradient.AddColor(fFrameColors[2], 255); + + fDrawingEngine->FillRect(bg, gradient); + fDrawingEngine->StrokeLine(BPoint(x - 15, y - 15), BPoint(x - 15, y - 2), fFrameColors[0]); fDrawingEngine->StrokeLine(BPoint(x - 14, y - 14), @@ -910,12 +920,14 @@ if (!IsFocus()) break; + static const rgb_color kWhite + = (rgb_color){ 255, 255, 255, 255 }; for (int8 i = 1; i <= 4; i++) { for (int8 j = 1; j <= i; j++) { BPoint pt1(x - (3 * j) + 1, y - (3 * (5 - i)) + 1); BPoint pt2(x - (3 * j) + 2, y - (3 * (5 - i)) + 2); fDrawingEngine->StrokePoint(pt1, fFrameColors[0]); - fDrawingEngine->StrokePoint(pt2, fFrameColors[1]); + fDrawingEngine->StrokePoint(pt2, kWhite); } } break; @@ -993,12 +1005,19 @@ } // fill + BGradientLinear gradient; + gradient.SetStart(fTabRect.LeftTop()); + gradient.AddColor(fTabColorLight, 0); + gradient.AddColor(fTabColor, 255); + if (fLook != kLeftTitledWindowLook) { + gradient.SetEnd(fTabRect.LeftBottom()); fDrawingEngine->FillRect(BRect(fTabRect.left + 2, fTabRect.top + 2, - fTabRect.right - 2, fTabRect.bottom), fTabColor); + fTabRect.right - 2, fTabRect.bottom), gradient); } else { + gradient.SetEnd(fTabRect.RightTop()); fDrawingEngine->FillRect(BRect(fTabRect.left + 2, fTabRect.top + 2, - fTabRect.right, fTabRect.bottom - 2), fTabColor); + fTabRect.right, fTabRect.bottom - 2), gradient); } _DrawTitle(fTabRect); @@ -1034,8 +1053,8 @@ { STRACE(("_DrawTitle(%f,%f,%f,%f)\n", r.left, r.top, r.right, r.bottom)); + fDrawingEngine->SetDrawingMode(B_OP_OVER); fDrawingEngine->SetHighColor(fTextColor); - fDrawingEngine->SetLowColor(fTabColor); fDrawingEngine->SetFont(fDrawState.Font()); // figure out position of text @@ -1059,6 +1078,8 @@ fDrawingEngine->DrawString(fTruncatedTitle.String(), fTruncatedTitleLength, titlePos); + + fDrawingEngine->SetDrawingMode(B_OP_COPY); } @@ -1102,9 +1123,9 @@ fButtonFocus = false; } - fTabColorLight = tint_color(fTabColor, + fTabColorLight = tint_color(fTabColor, B_LIGHTEN_2_TINT); + fTabColorShadow = tint_color(fTabColor, (B_LIGHTEN_2_TINT + B_LIGHTEN_MAX_TINT) / 2); - fTabColorShadow = tint_color(fTabColor, B_DARKEN_2_TINT); } @@ -1138,12 +1159,12 @@ if (bitmap == NULL) return; - // TODO: find out why locking sometimes deadlocks here and re-add locking - // once the problem is fixed (or remove this comment if locking isn't - // necessary at all...) bool copyToFrontEnabled = fDrawingEngine->CopyToFrontEnabled(); fDrawingEngine->SetCopyToFrontEnabled(true); + drawing_mode oldMode; + fDrawingEngine->SetDrawingMode(B_OP_OVER, oldMode); fDrawingEngine->DrawBitmap(bitmap, rect.OffsetToCopy(0, 0), rect); + fDrawingEngine->SetDrawingMode(oldMode); fDrawingEngine->SetCopyToFrontEnabled(copyToFrontEnabled); } @@ -1156,46 +1177,30 @@ DefaultDecorator::_DrawBlendedRect(DrawingEngine* engine, BRect rect, bool down, bool focus) { - // Actually just draws a blended square - int32 width = rect.IntegerWidth(); - int32 height = rect.IntegerHeight(); - int32 steps = width < height ? width : height; - + // figure out which colors to use rgb_color startColor, endColor; rgb_color tabColor = focus ? fFocusTabColor : fNonFocusTabColor; if (down) { startColor = tint_color(tabColor, B_DARKEN_1_TINT); - endColor = tint_color(tabColor, B_LIGHTEN_2_TINT);; + endColor = tint_color(tabColor, B_LIGHTEN_2_TINT); } else { - startColor = tint_color(tabColor, B_LIGHTEN_2_TINT); - endColor = tint_color(tabColor, B_DARKEN_1_TINT); + startColor = tint_color(tabColor, B_LIGHTEN_MAX_TINT); + endColor = tabColor; } - rgb_color halfColor = make_blend_color(startColor, endColor, 0.5); + // fill + rect.InsetBy(1, 1); + BGradientLinear gradient; + gradient.SetStart(rect.LeftTop()); + gradient.SetEnd(rect.RightBottom()); + gradient.AddColor(startColor, 0); + gradient.AddColor(endColor, 255); - float rstep = float(startColor.red - halfColor.red) / steps; - float gstep = float(startColor.green - halfColor.green) / steps; - float bstep = float(startColor.blue - halfColor.blue) / steps; + engine->FillRect(rect, gradient); - rgb_color tempColor; - for (int32 i = 0; i <= steps; i++) { - tempColor.red = uint8(startColor.red - (i * rstep)); - tempColor.green = uint8(startColor.green - (i * gstep)); - tempColor.blue = uint8(startColor.blue - (i * bstep)); - - engine->StrokeLine(BPoint(rect.left, rect.top + i), - BPoint(rect.left + i, rect.top), tempColor); - - tempColor.red = uint8(halfColor.red - (i * rstep)); - tempColor.green = uint8(halfColor.green - (i * gstep)); - tempColor.blue = uint8(halfColor.blue - (i * bstep)); - - engine->StrokeLine(BPoint(rect.left + steps, rect.top + i), - BPoint(rect.left + i, rect.top + steps), tempColor); - } - - engine->StrokeRect(rect, - focus ? fFocusFrameColors[1] : fNonFocusFrameColors[1]); + // outline + rect.InsetBy(-1, -1); + engine->StrokeRect(rect, tint_color(tabColor, B_DARKEN_2_TINT)); } @@ -1311,8 +1316,6 @@ return NULL; BRect rect(0, 0, width - 1, height - 1); - sBitmapDrawingEngine->FillRect(rect, - focus ? object->fFocusTabColor : object->fNonFocusTabColor); STRACE(("DefaultDecorator creating bitmap for %s %sfocus %s at size %ldx%ld\n", item == DEC_CLOSE ? "close" : "zoom", focus ? "" : "non-", @@ -1324,6 +1327,9 @@ case DEC_ZOOM: { + // init the background + sBitmapDrawingEngine->FillRect(rect, B_TRANSPARENT_COLOR); + float inset = floorf(width / 4.0); BRect zoomRect(rect); zoomRect.left += inset; Modified: haiku/trunk/src/servers/app/ServerWindow.cpp =================================================================== --- haiku/trunk/src/servers/app/ServerWindow.cpp 2009-01-19 10:08:06 UTC (rev 28950) +++ haiku/trunk/src/servers/app/ServerWindow.cpp 2009-01-19 10:31:43 UTC (rev 28951) @@ -2363,7 +2363,7 @@ fCurrentView->ConvertToScreenForDrawing(&rect); fCurrentView->ConvertToScreenForDrawing(gradient); - drawingEngine->FillRectGradient(rect, *gradient); + drawingEngine->FillRect(rect, *gradient); break; } case AS_VIEW_DRAW_BITMAP: @@ -2437,7 +2437,7 @@ break; fCurrentView->ConvertToScreenForDrawing(&r); fCurrentView->ConvertToScreenForDrawing(gradient); - drawingEngine->FillArcGradient(r, angle, span, *gradient); + drawingEngine->FillArc(r, angle, span, *gradient); break; } case AS_STROKE_BEZIER: @@ -2472,7 +2472,7 @@ if (link.ReadGradient(&gradient) != B_OK) break; fCurrentView->ConvertToScreenForDrawing(gradient); - drawingEngine->FillBezierGradient(pts, *gradient); + drawingEngine->FillBezier(pts, *gradient); break; } case AS_STROKE_ELLIPSE: @@ -2501,7 +2501,7 @@ break; fCurrentView->ConvertToScreenForDrawing(&rect); fCurrentView->ConvertToScreenForDrawing(gradient); - drawingEngine->FillEllipseGradient(rect, *gradient); + drawingEngine->FillEllipse(rect, *gradient); break; } case AS_STROKE_ROUNDRECT: @@ -2537,7 +2537,7 @@ break; fCurrentView->ConvertToScreenForDrawing(&rect); fCurrentView->ConvertToScreenForDrawing(gradient); - drawingEngine->FillRoundRectGradient(rect, xrad, yrad, *gradient); + drawingEngine->FillRoundRect(rect, xrad, yrad, *gradient); break; } case AS_STROKE_TRIANGLE: @@ -2578,7 +2578,7 @@ break; fCurrentView->ConvertToScreenForDrawing(&rect); fCurrentView->ConvertToScreenForDrawing(gradient); - drawingEngine->FillTriangleGradient(pts, rect, *gradient); + drawingEngine->FillTriangle(pts, rect, *gradient); break; } case AS_STROKE_POLYGON: @@ -2628,7 +2628,7 @@ fCurrentView->ConvertToScreenForDrawing(&polyFrame); fCurrentView->ConvertToScreenForDrawing(gradient); - drawingEngine->FillPolygonGradient(pointList, pointCount, + drawingEngine->FillPolygon(pointList, pointCount, polyFrame, *gradient, isClosed && pointCount > 2); } delete[] pointList; @@ -2699,7 +2699,7 @@ fCurrentView->ConvertToScreenForDrawing(&ptList[i]); } fCurrentView->ConvertToScreenForDrawing(gradient); - drawingEngine->FillShapeGradient(shapeFrame, opCount, opList, + drawingEngine->FillShape(shapeFrame, opCount, opList, ptCount, ptList, *gradient); } @@ -2734,7 +2734,7 @@ fCurrentView->ConvertToScreenForDrawing(®ion); fCurrentView->ConvertToScreenForDrawing(gradient); - drawingEngine->FillRegionGradient(region, *gradient); + drawingEngine->FillRegion(region, *gradient); break; } case AS_STROKE_LINEARRAY: Modified: haiku/trunk/src/servers/app/drawing/DrawingEngine.cpp =================================================================== --- haiku/trunk/src/servers/app/drawing/DrawingEngine.cpp 2009-01-19 10:08:06 UTC (rev 28950) +++ haiku/trunk/src/servers/app/drawing/DrawingEngine.cpp 2009-01-19 10:31:43 UTC (rev 28951) @@ -270,6 +270,14 @@ void +DrawingEngine::SetDrawingMode(drawing_mode mode, drawing_mode& oldMode) +{ + oldMode = fPainter->DrawingMode(); + fPainter->SetDrawingMode(mode); +} + + +void DrawingEngine::SetFont(const ServerFont& font) { fPainter->SetFont(font); @@ -611,9 +619,8 @@ } } -// FillArcGradient void -DrawingEngine::FillArcGradient(BRect r, const float& angle, const float& span, +DrawingEngine::FillArc(BRect r, const float& angle, const float& span, const BGradient& gradient) { CRASH_IF_NOT_LOCKED @@ -639,7 +646,7 @@ } } -// DrawBezier + void DrawingEngine::DrawBezier(BPoint* pts, bool filled) { @@ -653,9 +660,9 @@ _CopyToFront(touched); } -// FillBezierGradient + void -DrawingEngine::FillBezierGradient(BPoint* pts, const BGradient& gradient) +DrawingEngine::FillBezier(BPoint* pts, const BGradient& gradient) { CRASH_IF_NOT_LOCKED @@ -667,7 +674,7 @@ _CopyToFront(touched); } -// DrawEllipse + void DrawingEngine::DrawEllipse(BRect r, bool filled) { @@ -696,9 +703,9 @@ } } -// FillEllipseGradient + void -DrawingEngine::FillEllipseGradient(BRect r, const BGradient& gradient) +DrawingEngine::FillEllipse(BRect r, const BGradient& gradient) { CRASH_IF_NOT_LOCKED @@ -722,7 +729,7 @@ } } -// DrawPolygon + void DrawingEngine::DrawPolygon(BPoint* ptlist, int32 numpts, BRect bounds, bool filled, bool closed) @@ -742,9 +749,9 @@ } } -// FillPolygonGradient + void -DrawingEngine::FillPolygonGradient(BPoint* ptlist, int32 numpts, BRect bounds, +DrawingEngine::FillPolygon(BPoint* ptlist, int32 numpts, BRect bounds, const BGradient& gradient, bool closed) { CRASH_IF_NOT_LOCKED @@ -760,8 +767,10 @@ } } + // #pragma mark - rgb_color + void DrawingEngine::StrokePoint(const BPoint& pt, const rgb_color& color) { @@ -959,7 +968,7 @@ void -DrawingEngine::FillRectGradient(BRect r, const BGradient& gradient) +DrawingEngine::FillRect(BRect r, const BGradient& gradient) { CRASH_IF_NOT_LOCKED @@ -1030,7 +1039,7 @@ void -DrawingEngine::FillRegionGradient(BRegion& r, const BGradient& gradient) +DrawingEngine::FillRegion(BRegion& r, const BGradient& gradient) { CRASH_IF_NOT_LOCKED @@ -1077,7 +1086,7 @@ void -DrawingEngine::FillRoundRectGradient(BRect r, float xrad, float yrad, +DrawingEngine::FillRoundRect(BRect r, float xrad, float yrad, const BGradient& gradient) { CRASH_IF_NOT_LOCKED @@ -1121,7 +1130,7 @@ void -DrawingEngine::FillShapeGradient(const BRect& bounds, int32 opCount, +DrawingEngine::FillShape(const BRect& bounds, int32 opCount, const uint32* opList, int32 ptCount, const BPoint* ptList, const BGradient& gradient) { @@ -1160,7 +1169,7 @@ } void -DrawingEngine::FillTriangleGradient(BPoint* pts, const BRect& bounds, +DrawingEngine::FillTriangle(BPoint* pts, const BRect& bounds, const BGradient& gradient) { CRASH_IF_NOT_LOCKED Modified: haiku/trunk/src/servers/app/drawing/DrawingEngine.h =================================================================== --- haiku/trunk/src/servers/app/drawing/DrawingEngine.h 2009-01-19 10:08:06 UTC (rev 28950) +++ haiku/trunk/src/servers/app/drawing/DrawingEngine.h 2009-01-19 10:31:43 UTC (rev 28951) @@ -79,6 +79,8 @@ float miterLimit); void SetPattern(const struct pattern& pattern); void SetDrawingMode(drawing_mode mode); + void SetDrawingMode(drawing_mode mode, + drawing_mode& oldMode); void SetBlendingMode(source_alpha srcAlpha, alpha_function alphaFunc); void SetFont(const ServerFont& font); @@ -100,20 +102,18 @@ void DrawArc(BRect r, const float& angle, const float& span, bool filled); - void FillArcGradient(BRect r, const float& angle, + void FillArc(BRect r, const float& angle, const float& span, const BGradient& gradient); void DrawBezier(BPoint* pts, bool filled); - void FillBezierGradient(BPoint* pts, - const BGradient& gradient); + void FillBezier(BPoint* pts, const BGradient& gradient); void DrawEllipse(BRect r, bool filled); - void FillEllipseGradient(BRect r, - const BGradient& gradient); + void FillEllipse(BRect r, const BGradient& gradient); void DrawPolygon(BPoint* ptlist, int32 numpts, BRect bounds, bool filled, bool closed); - void FillPolygonGradient(BPoint* ptlist, int32 numpts, + void FillPolygon(BPoint* ptlist, int32 numpts, BRect bounds, const BGradient& gradient, bool closed); @@ -126,29 +126,28 @@ void StrokeRect(BRect r); void FillRect(BRect r); - void FillRectGradient(BRect r, const BGradient& gradient); + void FillRect(BRect r, const BGradient& gradient); void FillRegion(BRegion& r); - void FillRegionGradient(BRegion& r, - const BGradient& gradient); + void FillRegion(BRegion& r, const BGradient& gradient); void DrawRoundRect(BRect r, float xrad, float yrad, bool filled); - void FillRoundRectGradient(BRect r, float xrad, + void FillRoundRect(BRect r, float xrad, float yrad, const BGradient& gradient); void DrawShape(const BRect& bounds, int32 opcount, const uint32* oplist, int32 ptcount, const BPoint* ptlist, bool filled); - void FillShapeGradient(const BRect& bounds, + void FillShape(const BRect& bounds, int32 opcount, const uint32* oplist, int32 ptcount, const BPoint* ptlist, const BGradient& gradient); void DrawTriangle(BPoint* pts, const BRect& bounds, bool filled); - void FillTriangleGradient(BPoint* pts, + void FillTriangle(BPoint* pts, const BRect& bounds, const BGradient& gradient); // this version used by Decorator From axeld at mail.berlios.de Mon Jan 19 12:46:55 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Mon, 19 Jan 2009 12:46:55 +0100 Subject: [Haiku-commits] r28952 - haiku/trunk/src/apps/deskbar Message-ID: <200901191146.n0JBkts5005341@sheep.berlios.de> Author: axeld Date: 2009-01-19 12:46:53 +0100 (Mon, 19 Jan 2009) New Revision: 28952 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28952&view=rev Modified: haiku/trunk/src/apps/deskbar/Switcher.cpp haiku/trunk/src/apps/deskbar/Switcher.h Log: * The Switcher now "remembers" the first app when doing a quick switch over more than one application, so that will be the next app to switch to for the next switch. * This solution is not entirely perfect, though, as it needs to visually bring the first app to front inbetween to work. Modified: haiku/trunk/src/apps/deskbar/Switcher.cpp =================================================================== --- haiku/trunk/src/apps/deskbar/Switcher.cpp 2009-01-19 10:31:43 UTC (rev 28951) +++ haiku/trunk/src/apps/deskbar/Switcher.cpp 2009-01-19 11:46:53 UTC (rev 28952) @@ -430,6 +430,8 @@ fBlock(false), fSkipUntil(0), fLastSwitch(0), + fQuickSwitchIndex(-1), + fQuickSwitchWindow(-1), fGroupList(10), fCurrentIndex(0), fCurrentSlot(0), @@ -718,9 +720,12 @@ app_info appInfo; be_roster->GetActiveAppInfo(&appInfo); + bool resetQuickSwitch = false; #ifdef __HAIKU__ - if (now > fLastSwitch + 400000) + if (now > fLastSwitch + 400000) { _SortApps(); + resetQuickSwitch = true; + } fLastSwitch = now; #endif @@ -728,6 +733,11 @@ int32 index; fCurrentIndex = FindTeam(appInfo.team, &index) != NULL ? index : 0; + if (resetQuickSwitch) { + fQuickSwitchIndex = fCurrentIndex; + fQuickSwitchWindow = fCurrentWindow; + } + int32 key; message->FindInt32("key", (int32*)&key); @@ -832,10 +842,22 @@ if (message->FindInt32("team", &team) == B_OK) { bool forward = (modifiers & B_SHIFT_KEY) == 0; - if ((modifiers & B_OPTION_KEY) != 0) + if ((modifiers & B_OPTION_KEY) != 0) { + // TODO: add the same switch logic we have for apps! SwitchWindow(team, forward, true); - else + } else { + if (fQuickSwitchIndex >= 0) { + // Switch to the first app inbetween to make it always the next + // app to switch to after the quick switch. + int32 current = fCurrentIndex; + SwitchToApp(current, fQuickSwitchIndex, false); + ActivateApp(false, false); + + fCurrentIndex = current; + } + CycleApp(forward, true); + } } release_sem(fMainMonitor); @@ -903,10 +925,11 @@ if (fCurrentIndex < 0) fCurrentIndex = max - 1; } - if ((fCurrentIndex == startIndex)) + if (fCurrentIndex == startIndex) { // we've gone completely through the list without finding // a good app. Oh well. return; + } if (!OKToUse((TTeamGroup*)fGroupList.ItemAt(fCurrentIndex))) continue; Modified: haiku/trunk/src/apps/deskbar/Switcher.h =================================================================== --- haiku/trunk/src/apps/deskbar/Switcher.h 2009-01-19 10:31:43 UTC (rev 28951) +++ haiku/trunk/src/apps/deskbar/Switcher.h 2009-01-19 11:46:53 UTC (rev 28952) @@ -49,52 +49,59 @@ struct client_window_info; class TSwitchManager : public BHandler { - public: - TSwitchManager(BPoint where); - virtual ~TSwitchManager(); +public: + TSwitchManager(BPoint where); + virtual ~TSwitchManager(); - virtual void MessageReceived(BMessage *message); + virtual void MessageReceived(BMessage* message); - void Stop(bool doAction, uint32 mods); - void Unblock(); - int32 CurrentIndex(); - int32 CurrentWindow(); - int32 CurrentSlot(); - BList *GroupList(); - int32 CountVisibleGroups(); + void Stop(bool doAction, uint32 modifiers); + void Unblock(); + int32 CurrentIndex(); + int32 CurrentWindow(); + int32 CurrentSlot(); + BList* GroupList(); + int32 CountVisibleGroups(); - void QuitApp(); - void HideApp(); - void CycleApp(bool forward, bool activate = false); - void CycleWindow(bool forward, bool wrap = true); - void SwitchToApp(int32 prevIndex, int32 newIndex, bool forward); + void QuitApp(); + void HideApp(); + void CycleApp(bool forward, bool activate = false); + void CycleWindow(bool forward, bool wrap = true); + void SwitchToApp(int32 prevIndex, int32 newIndex, + bool forward); - client_window_info* WindowInfo(int32 groupIndex, int32 windowIndex); - int32 CountWindows(int32 groupIndex, bool inCurrentWorkspace = false); - TTeamGroup *FindTeam(team_id, int32 *index); + client_window_info* WindowInfo(int32 groupIndex, int32 windowIndex); + int32 CountWindows(int32 groupIndex, + bool inCurrentWorkspace = false); + TTeamGroup* FindTeam(team_id, int32* index); - private: - void MainEntry(BMessage *message); - void Process(bool forward, bool byWindow = false); - void QuickSwitch(BMessage *message); - void SwitchWindow(team_id team, bool forward, bool activate); - bool ActivateApp(bool forceShow, bool allowWorkspaceSwitch); - void ActivateWindow(int32 windowID = -1); +private: + void MainEntry(BMessage* message); + void Process(bool forward, bool byWindow = false); + void QuickSwitch(BMessage* message); + void SwitchWindow(team_id team, bool forward, + bool activate); + bool ActivateApp(bool forceShow, + bool allowWorkspaceSwitch); + void ActivateWindow(int32 windowID = -1); #ifdef __HAIKU__ - void _SortApps(); - status_t _GetSortedWindowTokens(int32** _tokens, int32* _count); + void _SortApps(); + status_t _GetSortedWindowTokens(int32** _tokens, + int32* _count); #endif - TSwitcherWindow *fWindow; - sem_id fMainMonitor; - bool fBlock; - bigtime_t fSkipUntil; - bigtime_t fLastSwitch; - BList fGroupList; - int32 fCurrentIndex; - int32 fCurrentWindow; - int32 fCurrentSlot; - int32 fWindowID; + TSwitcherWindow* fWindow; + sem_id fMainMonitor; + bool fBlock; + bigtime_t fSkipUntil; + bigtime_t fLastSwitch; + int32 fQuickSwitchIndex; + int32 fQuickSwitchWindow; + BList fGroupList; + int32 fCurrentIndex; + int32 fCurrentWindow; + int32 fCurrentSlot; + int32 fWindowID; }; #endif /* SWITCHER_H */ From axeld at pinc-software.de Mon Jan 19 13:00:19 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Mon, 19 Jan 2009 13:00:19 +0100 CET Subject: [Haiku-commits] =?utf-8?q?r28948_-_haiku/trunk/src/add-ons/kernel?= =?utf-8?q?/drivers/disk/usb/usb=5Fdisk?= In-Reply-To: <49744FB1.6090204@gmx.de> Message-ID: <8447115708-BeMail@zon> Stephan A?mus wrote: > > Would it be posible to add icons for the most common mass storage > > device > > forms as Linux does, for example? I ask becauise it could get a > > boit > > confusing if you have an SD (in an internal card reader) and a pen- > > drive connected to your computer. It seems that both would show as > > a > > pen-drive icon right now. > +1! That'd be great. It's one of the things I keep ranting about with > regards to Vista and a thousand Microsoft engineers not being able to > pull this off... At least our volumes have proper names, and not just H: I: D: E: themselves behind some letter :-) Bye, Axel. From mmlr at mail.berlios.de Mon Jan 19 13:34:06 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 19 Jan 2009 13:34:06 +0100 Subject: [Haiku-commits] r28953 - haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk Message-ID: <200901191234.n0JCY66j019539@sheep.berlios.de> Author: mmlr Date: 2009-01-19 13:33:59 +0100 (Mon, 19 Jan 2009) New Revision: 28953 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28953&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp Log: Style cleanup. Please at least try to... Modified: haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp 2009-01-19 11:46:53 UTC (rev 28952) +++ haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp 2009-01-19 12:33:59 UTC (rev 28953) @@ -1,5 +1,5 @@ /* - * Copyright 2008, Haiku Inc. All rights reserved. + * Copyright 2008-2009, Haiku Inc. All rights reserved. * Distributed under the terms of the MIT License. * * Authors: @@ -983,7 +983,8 @@ break; case B_GET_ICON_NAME: - result = user_strlcpy((char*)buffer, "devices/drive-removable-media-usb", B_FILE_NAME_LENGTH); + result = user_strlcpy((char *)buffer, + "devices/drive-removable-media-usb", B_FILE_NAME_LENGTH); break; case B_GET_VECTOR_ICON: From mmlr at mlotz.ch Mon Jan 19 14:50:04 2009 From: mmlr at mlotz.ch (Michael Lotz) Date: Mon, 19 Jan 2009 14:50:04 +0100 Subject: [Haiku-commits] r28948 - haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk Message-ID: <20090119132709.M52819@mlotz.ch> Hi there >> Would it be posible to add icons for the most common mass storage device >> forms as Linux does, for example? I ask becauise it could get a boit >> confusing if you have an SD (in an internal card reader) and a pen- >> drive connected to your computer. It seems that both would show as a >> pen-drive icon right now. > > +1! That'd be great. It's one of the things I keep ranting about with > regards to Vista and a thousand Microsoft engineers not being able to > pull this off... It's not that I didn't want that feature, but sadly I don't know where I could possibly get the required information from. The SCSI inquiry data only provides very limited information that is usable for us (disk, tape, cd, worm, the types that are mapped in the device_type of device_geometry). Most devices simply have disk here, because it's the most appropriate for either real disks or flash based ones. If someone can point me to where I can get extended information about the media, I'd gladly incorporate that of course. Regards Michael From bga at bug-br.org.br Mon Jan 19 14:52:10 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Mon, 19 Jan 2009 11:52:10 -0200 Subject: [Haiku-commits] r28948 - haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk In-Reply-To: <20090119132709.M52819@mlotz.ch> References: <20090119132709.M52819@mlotz.ch> Message-ID: <4974858A.7000204@bug-br.org.br> Michael Lotz wrote: > It's not that I didn't want that feature, but sadly I don't know where I could > possibly get the required information from. The SCSI inquiry data only > provides very limited information that is usable for us (disk, tape, cd, worm, > the types that are mapped in the device_type of device_geometry). Most devices > simply have disk here, because it's the most appropriate for either real disks > or flash based ones. If someone can point me to where I can get extended > information about the media, I'd gladly incorporate that of course. I have this multicard reader and whenever I connect it, syslog (In Haiku) shows the name of each of the reader associated with each port on it. I would guess that's what Linux uses. -Bruno From axeld at pinc-software.de Mon Jan 19 15:17:11 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Mon, 19 Jan 2009 15:17:11 +0100 CET Subject: [Haiku-commits] r28951 - in haiku/trunk/src/servers/app: . drawing In-Reply-To: <200901191031.n0JAVjtU017659@sheep.berlios.de> Message-ID: <16659336764-BeMail@zon> stippi at BerliOS wrote: > * Improved the look of the DefaultDecorater, inspired > by the patch from Dennis Washington. I did not adopt > the changes which give backwards compatibility > problems, though, like changing the window border > width or the single border decorator color. But I > reckon these changes are overall even a bit smoother. I have a few problems with that change: first of all, there the tab has no darker edges, but only two bright ones. This looks very odd to me, any reason why you ignore the light that manages to cast a shadow at other right edges? The second gripe would be that the window border looks much too present; due to its flatter appearance, it looks actually larger than usually, and I can't say I like that either. The final one would be that the rest of the GUI doesn't fit it as well, but I guess that's just a temporary thing :-) Bye, Axel. From rossi at webpositive.org Mon Jan 19 15:59:31 2009 From: rossi at webpositive.org (Marcus Jacob) Date: Mon, 19 Jan 2009 15:59:31 +0100 Subject: [Haiku-commits] r28951 - in haiku/trunk/src/servers/app: . drawing In-Reply-To: <16659336764-BeMail@zon> References: <16659336764-BeMail@zon> Message-ID: On 19.01.2009, at 15:17, "Axel D?rfler" wrote: > stippi at BerliOS wrote: >> * Improved the look of the DefaultDecorater, inspired >> by the patch from Dennis Washington. I did not adopt >> the changes which give backwards compatibility >> problems, though, like changing the window border >> width or the single border decorator color. But I >> reckon these changes are overall even a bit smoother. > > I have a few problems with that change: first of all, there the tab > has > no darker edges, but only two bright ones. This looks very odd to me, > any reason why you ignore the light that manages to cast a shadow at > other right edges? > The second gripe would be that the window border looks much too > present; due to its flatter appearance, it looks actually larger than > usually, and I can't say I like that either. > The final one would be that the rest of the GUI doesn't fit it as > well, > but I guess that's just a temporary thing :-) > > Bye, > Axel I totally agree with Axel here, it looks a little bit to hard for my feeling. However I'm sure the mentioned issues will be fixed in due time. I actually like Denis' look a lot as from my personal point of view it was a refreshing upate towards the original look to fit more with 2009 than the old 1990's look but kept it close enough to still feel "true". And I especially liked his buttons. Didn't notice any backwards compatibility issues, where did they occur? Cheers, Rossi From superstippi at gmx.de Mon Jan 19 16:10:04 2009 From: superstippi at gmx.de (Stephan Assmus) Date: Mon, 19 Jan 2009 16:10:04 +0100 Subject: [Haiku-commits] r28951 - in haiku/trunk/src/servers/app: . drawing In-Reply-To: <16659336764-BeMail@zon> References: <16659336764-BeMail@zon> Message-ID: <20090119151004.5390@gmx.net> Von: "Axel D?rfler" > stippi at BerliOS wrote: > > * Improved the look of the DefaultDecorater, inspired > > by the patch from Dennis Washington. I did not adopt > > the changes which give backwards compatibility > > problems, though, like changing the window border > > width or the single border decorator color. But I > > reckon these changes are overall even a bit smoother. > > I have a few problems with that change: first of all, there the tab has > no darker edges, but only two bright ones. This looks very odd to me, > any reason why you ignore the light that manages to cast a shadow at > other right edges? I found that a bit odd at first too. But then I quickly got used to it and decided it looked slick. It's a quick change, though, if need be. > The second gripe would be that the window border looks much too > present; due to its flatter appearance, it looks actually larger than > usually, and I can't say I like that either. Well... and I don't like the much too rounded appearance of the previous border. And shrinking the border by one pixel is not really a good option, because we have a lot of places with hard coded window border width, no? > The final one would be that the rest of the GUI doesn't fit it as well, > but I guess that's just a temporary thing :-) Yeah, I would hope so. Don't really want to commit everything at once, because there are too many issues with the patch (where it breaks some existing app, or does not work correctly in itself). I would rather like to look at each problem in turn. And I figured, the new decorator look would not intrude too much on the existing GUI. Anyways. Just as you can name three things you don't like about the new look, I can certainly name you three things I don't like about the old look, and I could probably name you three different things from your list, which I think could still be improved, like the decorator button symbols. If you ask another person, maybe we end up with nine items in the list... I don't know what to do about this. Either I go ahead and do some changes on the look now, which seems to be sore spot with many users checking out Haiku, or we render ourselves immovable, because we cannot agree on the perfect new look. :-\ Best regards, -Stephan From anevilyak at gmail.com Mon Jan 19 16:10:16 2009 From: anevilyak at gmail.com (Rene Gollent) Date: Mon, 19 Jan 2009 09:10:16 -0600 Subject: [Haiku-commits] r28946 - haiku/trunk/src/kits/media In-Reply-To: <1296718650-BeMail@zon> References: <200901190138.n0J1cV1q014867@sheep.berlios.de> <1296718650-BeMail@zon> Message-ID: On Mon, Jan 19, 2009 at 4:01 AM, Axel D?rfler wrote: > Oh, and also, that POSIX puts one *more* byte into the string as > "maxBufferSize". > I have a look and correct it where needed. Thanks for fixing that! I (obviously) missed the fact that there were some subtle behavioral differences. Mea culpa. Regards, Rene From superstippi at gmx.de Mon Jan 19 16:16:54 2009 From: superstippi at gmx.de (Stephan Assmus) Date: Mon, 19 Jan 2009 16:16:54 +0100 Subject: [Haiku-commits] r28951 - in haiku/trunk/src/servers/app: . drawing In-Reply-To: References: <16659336764-BeMail@zon> Message-ID: <20090119151654.5380@gmx.net> Hi, Von: Marcus Jacob > On 19.01.2009, at 15:17, "Axel D?rfler" wrote: > > > stippi at BerliOS wrote: > >> * Improved the look of the DefaultDecorater, inspired > >> by the patch from Dennis Washington. I did not adopt > >> the changes which give backwards compatibility > >> problems, though, like changing the window border > >> width or the single border decorator color. But I > >> reckon these changes are overall even a bit smoother. > > > > I have a few problems with that change: first of all, there the tab > > has > > no darker edges, but only two bright ones. This looks very odd to me, > > any reason why you ignore the light that manages to cast a shadow at > > other right edges? > > The second gripe would be that the window border looks much too > > present; due to its flatter appearance, it looks actually larger than > > usually, and I can't say I like that either. > > The final one would be that the rest of the GUI doesn't fit it as > > well, > > but I guess that's just a temporary thing :-) > > > > Bye, > > Axel > > I totally agree with Axel here, it looks a little bit to hard for my > feeling. However I'm sure the mentioned issues will be fixed in due > time. > > I actually like Denis' look a lot as from my personal point of view it > was a refreshing upate towards the original look to fit more with 2009 > than the old 1990's look but kept it close enough to still feel > "true". And I especially liked his buttons. Puh. This *is* the look from Dennis Washington for the window border. Except I kept the border 5 pixels wide instead of 4, because that generates issues. I also didn't copy the problem with the zoom button background. > Didn't notice any backwards compatibility issues, where did they occur? Well. I like to look more closely than that. For example, every application which still hardcodes the 216 background gray will have a problem, like MediaPlayer or SoundRecorder which have it hardcoded in their button bitmaps. Then there are some text rendering issues with menus when they first show. Then I saw the menu selection color suddenly change from blue to purple. Best regards, -Stephan From jackburton at mail.berlios.de Mon Jan 19 16:31:43 2009 From: jackburton at mail.berlios.de (jackburton at mail.berlios.de) Date: Mon, 19 Jan 2009 16:31:43 +0100 Subject: [Haiku-commits] r28954 - haiku/trunk/src/kits/interface Message-ID: <200901191531.n0JFVh2g002674@sheep.berlios.de> Author: jackburton Date: 2009-01-19 16:31:31 +0100 (Mon, 19 Jan 2009) New Revision: 28954 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28954&view=rev Modified: haiku/trunk/src/kits/interface/Menu.cpp Log: Vertical menu scrolling was enabled also in case the menu was wider than the screen, but this is obviously wrong. The menu window was also resized to be the height of the screen in this case, and it was the cause of bug #3174. Note that horizontal scrolling is not yet implemented Modified: haiku/trunk/src/kits/interface/Menu.cpp =================================================================== --- haiku/trunk/src/kits/interface/Menu.cpp 2009-01-19 12:33:59 UTC (rev 28953) +++ haiku/trunk/src/kits/interface/Menu.cpp 2009-01-19 15:31:31 UTC (rev 28954) @@ -2148,12 +2148,7 @@ BMenu *superMenu = Supermenu(); BMenuItem *superItem = Superitem(); - if (scrollOn != NULL) { - // basically, if this returns false, it means - // that the menu frame won't fit completely inside the screen - *scrollOn = !screenFrame.Contains(bounds); - } - + bool scroll = false; // TODO: Horrible hack: // When added to a BMenuField, a BPopUpMenu is the child of // a _BMCMenuBar_ to "fake" the menu hierarchy @@ -2171,10 +2166,7 @@ else if (frame.left < screenFrame.left) frame.OffsetBy(-frame.left, 0); - return frame; - } - - if (superMenu->Layout() == B_ITEMS_IN_COLUMN) { + } else if (superMenu->Layout() == B_ITEMS_IN_COLUMN) { if (frame.right > screenFrame.right) frame.OffsetBy(-superItem->Frame().Width() - frame.Width() - 2, 0); @@ -2188,7 +2180,7 @@ if (scrollOn != NULL && superMenu != NULL && dynamic_cast(superMenu) != NULL && frame.top < (screenFrame.bottom - 80)) { - *scrollOn = true; + scroll = true; } else { frame.OffsetBy(0, -superItem->Frame().Height() - frame.Height() - 3); } @@ -2197,7 +2189,18 @@ if (frame.right > screenFrame.right) frame.OffsetBy(screenFrame.right - frame.right, 0); } - + + if (!scroll) { + // basically, if this returns false, it means + // that the menu frame won't fit completely inside the screen + // TODO: Scrolling, will currently only work up/down, + // not left/right + scroll = screenFrame.Height() < frame.Height(); + } + + if (scrollOn != NULL) + *scrollOn = scroll; + return frame; } @@ -2573,7 +2576,7 @@ if (!fResizeToFit) return; - bool scroll; + bool scroll = false; const BPoint screenLocation = updatePosition ? ScreenLocation() : window->Frame().LeftTop(); BRect frame = _CalcFrame(screenLocation, &scroll); From axeld at pinc-software.de Mon Jan 19 16:43:00 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Mon, 19 Jan 2009 16:43:00 +0100 CET Subject: [Haiku-commits] =?utf-8?q?r28951_-_in_haiku/trunk/src/servers/app?= =?utf-8?q?=3A_=2E_drawing?= In-Reply-To: <20090119151004.5390@gmx.net> Message-ID: <21808628562-BeMail@zon> "Stephan Assmus" wrote: > Von: "Axel D?rfler" > > I have a few problems with that change: first of all, there the tab > > has > > no darker edges, but only two bright ones. This looks very odd to > > me, > > any reason why you ignore the light that manages to cast a shadow > > at > > other right edges? > I found that a bit odd at first too. But then I quickly got used to > it and decided it > looked slick. It's a quick change, though, if need be. Well, I can try, I just don't find it logical, and I would assume that's something that could bother me a bit longer :-) > > The second gripe would be that the window border looks much too > > present; due to its flatter appearance, it looks actually larger > > than > > usually, and I can't say I like that either. > Well... and I don't like the much too rounded appearance of the > previous border. That's true, I guess I just got used to it. > And > shrinking the border by one pixel is not really a good option, > because we have a lot of > places with hard coded window border width, no? Have we really? I couldn't name one, and even then, we now have a possibility to retrieve the window border size using an API, so that shouldn't be problematic anymore. I would just try and see if it really brings any problems. [...] > Either I go ahead and do some changes on the look now, which seems to > be sore > spot with many users checking out Haiku, or we render ourselves > immovable, > because we cannot agree on the perfect new look. :-\ That's always the same problem with taste. IMO you should not be influenced by criticism too much before the look is complete, and even then I would wait and see if people can get used to it. Bye, Axel. From jackburton at mail.berlios.de Mon Jan 19 17:01:45 2009 From: jackburton at mail.berlios.de (jackburton at mail.berlios.de) Date: Mon, 19 Jan 2009 17:01:45 +0100 Subject: [Haiku-commits] r28955 - haiku/trunk/src/apps/terminal Message-ID: <200901191601.n0JG1jUm005665@sheep.berlios.de> Author: jackburton Date: 2009-01-19 17:01:43 +0100 (Mon, 19 Jan 2009) New Revision: 28955 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28955&view=rev Modified: haiku/trunk/src/apps/terminal/TermView.cpp Log: fCheckMouseTracking was never initialized to false, causing spurious selections when opening a new tab. Fixes bug #2910 Modified: haiku/trunk/src/apps/terminal/TermView.cpp =================================================================== --- haiku/trunk/src/apps/terminal/TermView.cpp 2009-01-19 15:31:31 UTC (rev 28954) +++ haiku/trunk/src/apps/terminal/TermView.cpp 2009-01-19 16:01:43 UTC (rev 28955) @@ -258,6 +258,7 @@ fSelEnd = TermPos(-1, -1); fMouseTracking = false; fIMflag = false; + fCheckMouseTracking = false; fTextBuffer = new(std::nothrow) TerminalBuffer; if (fTextBuffer == NULL) From superstippi at gmx.de Mon Jan 19 17:14:02 2009 From: superstippi at gmx.de (=?UTF-8?B?U3RlcGhhbiBBw59tdXM=?=) Date: Mon, 19 Jan 2009 17:14:02 +0100 Subject: [Haiku-commits] r28951 - in haiku/trunk/src/servers/app: . drawing In-Reply-To: <21808628562-BeMail@zon> References: <21808628562-BeMail@zon> Message-ID: <4974A6CA.2020607@gmx.de> Axel D?rfler schrieb: > "Stephan Assmus" wrote: >> Von: "Axel D?rfler" >>> I have a few problems with that change: first of all, there the tab >>> has >>> no darker edges, but only two bright ones. This looks very odd to >>> me, >>> any reason why you ignore the light that manages to cast a shadow >>> at >>> other right edges? >> I found that a bit odd at first too. But then I quickly got used to >> it and decided it >> looked slick. It's a quick change, though, if need be. > > Well, I can try, I just don't find it logical, and I would assume > that's something that could bother me a bit longer :-) Ok, I will have a look. :-) >> And >> shrinking the border by one pixel is not really a good option, >> because we have a lot of >> places with hard coded window border width, no? > > Have we really? I couldn't name one, and even then, we now have a > possibility to retrieve the window border size using an API, so that > shouldn't be problematic anymore. I would just try and see if it really > brings any problems. Maybe you are right about that. But I have another reason for keeping the current width: Since borders can also be used to drag windows, maybe we shouldn't make them smaller. That's a 20% shrink. >> Either I go ahead and do some changes on the look now, which seems to >> be sore >> spot with many users checking out Haiku, or we render ourselves >> immovable, >> because we cannot agree on the perfect new look. :-\ > > That's always the same problem with taste. IMO you should not be > influenced by criticism too much before the look is complete, and even > then I would wait and see if people can get used to it. That's good advice. :-) Best regards, -Stephan From bga at bug-br.org.br Mon Jan 19 17:17:22 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Mon, 19 Jan 2009 14:17:22 -0200 Subject: [Haiku-commits] r28951 - in haiku/trunk/src/servers/app: . drawing In-Reply-To: <16659336764-BeMail@zon> References: <16659336764-BeMail@zon> Message-ID: <4974A792.6030501@bug-br.org.br> Axel D?rfler wrote: > stippi at BerliOS wrote: >> * Improved the look of the DefaultDecorater, inspired >> by the patch from Dennis Washington. I did not adopt >> the changes which give backwards compatibility >> problems, though, like changing the window border >> width or the single border decorator color. But I >> reckon these changes are overall even a bit smoother. > > I have a few problems with that change: first of all, there the tab has > no darker edges, but only two bright ones. This looks very odd to me, > any reason why you ignore the light that manages to cast a shadow at > other right edges? > The second gripe would be that the window border looks much too > present; due to its flatter appearance, it looks actually larger than > usually, and I can't say I like that either. > The final one would be that the rest of the GUI doesn't fit it as well, > but I guess that's just a temporary thing :-) FWIW, I think the new look is *WAY* better than the previous one. Can it be improved? Definitely. But it is an improvement nevertheless. -Bruno From stippi at mail.berlios.de Mon Jan 19 17:54:16 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Mon, 19 Jan 2009 17:54:16 +0100 Subject: [Haiku-commits] r28956 - haiku/trunk/src/servers/app Message-ID: <200901191654.n0JGsGxd011453@sheep.berlios.de> Author: stippi Date: 2009-01-19 17:54:16 +0100 (Mon, 19 Jan 2009) New Revision: 28956 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28956&view=rev Modified: haiku/trunk/src/servers/app/DefaultDecorator.cpp haiku/trunk/src/servers/app/DefaultDecorator.h Log: Tweaking the look again, trying to take some of Axel's suggestions into account. I think the shadow bevel on the right is a spoiler though, and will change that back. But Axel can compare this way... Modified: haiku/trunk/src/servers/app/DefaultDecorator.cpp =================================================================== --- haiku/trunk/src/servers/app/DefaultDecorator.cpp 2009-01-19 16:01:43 UTC (rev 28955) +++ haiku/trunk/src/servers/app/DefaultDecorator.cpp 2009-01-19 16:54:16 UTC (rev 28956) @@ -52,32 +52,6 @@ } -/*! - \brief Function mostly for calculating gradient colors - \param col Start color - \param col2 End color - \param position A floating point number such that 0.0 <= position <= 1.0. 0.0 results in the - start color and 1.0 results in the end color. - \return The blended color. If an invalid position was given, {0,0,0,0} is returned. -*/ -static rgb_color -make_blend_color(rgb_color colorA, rgb_color colorB, float position) -{ - if (position < 0) - return colorA; - if (position > 1) - return colorB; - - rgb_color blendColor; - blendColor.red = blend_color_value(colorA.red, colorB.red, position); - blendColor.green = blend_color_value(colorA.green, colorB.green, position); - blendColor.blue = blend_color_value(colorA.blue, colorB.blue, position); - blendColor.alpha = blend_color_value(colorA.alpha, colorB.alpha, position); - - return blendColor; -} - - // #pragma mark - @@ -97,7 +71,7 @@ fFrameColors[0] = (rgb_color){ 152, 152, 152, 255 }; fFrameColors[1] = (rgb_color){ 240, 240, 240, 255 }; fFrameColors[4] = (rgb_color){ 152, 152, 152, 255 }; - fFrameColors[5] = (rgb_color){ 124, 124, 124, 255 }; + fFrameColors[5] = (rgb_color){ 108, 108, 108, 255 }; // state based colors fFocusFrameColors[0] = (rgb_color){ 224, 224, 224, 255 }; @@ -115,14 +89,15 @@ = fZoomBitmaps[0] = fZoomBitmaps[1] = fZoomBitmaps[2] = fZoomBitmaps[3] = NULL; - // Set appropriate colors based on the current focus value. In this case, each decorator - // defaults to not having the focus. + // Set appropriate colors based on the current focus value. In this case, + // each decorator defaults to not having the focus. _SetFocus(); // Do initial decorator setup _DoLayout(); - // ToDo: if the decorator was created with a frame too small, it should resize itself! + // TODO: If the decorator was created with a frame too small, it should + // resize itself! STRACE(("DefaultDecorator:\n")); STRACE(("\tFrame (%.1f,%.1f,%.1f,%.1f)\n", @@ -989,11 +964,11 @@ fDrawingEngine->StrokeLine(BPoint(fTabRect.left + 1, fTabRect.top + 1), BPoint(fTabRect.left + 1, fTabRect.bottom - (fLook == kLeftTitledWindowLook ? 1 : 0)), - fTabColorLight); + fTabColorBevel); fDrawingEngine->StrokeLine(BPoint(fTabRect.left + 1, fTabRect.top + 1), BPoint(fTabRect.right - (fLook == kLeftTitledWindowLook ? 0 : 1), fTabRect.top + 1), - fTabColorLight); + fTabColorBevel); if (fLook != kLeftTitledWindowLook) { fDrawingEngine->StrokeLine(BPoint(fTabRect.right - 1, fTabRect.top + 2), @@ -1123,9 +1098,11 @@ fButtonFocus = false; } + fTabColorBevel = tint_color(fTabColor, + (B_LIGHTEN_MAX_TINT + B_LIGHTEN_2_TINT) / 2); fTabColorLight = tint_color(fTabColor, B_LIGHTEN_2_TINT); fTabColorShadow = tint_color(fTabColor, - (B_LIGHTEN_2_TINT + B_LIGHTEN_MAX_TINT) / 2); + (B_DARKEN_1_TINT + B_NO_TINT) / 2); } @@ -1182,7 +1159,7 @@ rgb_color tabColor = focus ? fFocusTabColor : fNonFocusTabColor; if (down) { startColor = tint_color(tabColor, B_DARKEN_1_TINT); - endColor = tint_color(tabColor, B_LIGHTEN_2_TINT); + endColor = fTabColorLight; } else { startColor = tint_color(tabColor, B_LIGHTEN_MAX_TINT); endColor = tabColor; Modified: haiku/trunk/src/servers/app/DefaultDecorator.h =================================================================== --- haiku/trunk/src/servers/app/DefaultDecorator.h 2009-01-19 16:01:43 UTC (rev 28955) +++ haiku/trunk/src/servers/app/DefaultDecorator.h 2009-01-19 16:54:16 UTC (rev 28956) @@ -92,7 +92,9 @@ rgb_color fTextColor; rgb_color fFocusTextColor; rgb_color fNonFocusTextColor; + rgb_color fTabColorLight; + rgb_color fTabColorBevel; rgb_color fTabColorShadow; rgb_color fFrameColors[6]; From revol at free.fr Mon Jan 19 18:35:05 2009 From: revol at free.fr (=?utf-8?q?Fran=C3=A7ois?= Revol) Date: Mon, 19 Jan 2009 18:35:05 +0100 CET Subject: [Haiku-commits] r28949 - haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk In-Reply-To: <1466150773-BeMail@Gaspode> Message-ID: <2905041377-BeMail@laptop> > On Mon, 19 Jan 2009 03:19:27 +0100, mmu_man at BerliOS said: > > > Implement B_GET_ICON_NAME to return "devices/drive-removable-media- > > usb" as it seems correct as per the FreeDesktop.org Icon Naming > Specification we agreed to use for now, cf. http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html > > > > Again, at least Linux seems to differentiate between the possible > specific types (SD/MMC, Memory Stick, Pen Drive, etc). Yes, well the info isn't yet available... Btw, it might be possible per spec, but I don't recall Gnome displaying a specific icon... Actually it was a disk icon with an usb emblem, for a pen drive... Fran?ois. From mmlr at mail.berlios.de Mon Jan 19 18:36:08 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 19 Jan 2009 18:36:08 +0100 Subject: [Haiku-commits] r28957 - haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk Message-ID: <200901191736.n0JHa8k8021042@sheep.berlios.de> Author: mmlr Date: 2009-01-19 18:35:56 +0100 (Mon, 19 Jan 2009) New Revision: 28957 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28957&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp Log: Fix missing mutex_unlock() in case of opening an already removed device. Spotted by Mika Lindqvist, thanks! Modified: haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp 2009-01-19 16:54:16 UTC (rev 28956) +++ haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp 2009-01-19 17:35:56 UTC (rev 28957) @@ -867,8 +867,10 @@ device_lun *lun = device->luns[i]; if (strncmp(rawName, lun->name, 32) == 0) { // found the matching device/lun - if (device->removed) + if (device->removed) { + mutex_unlock(&gDeviceListLock); return B_ERROR; + } device->open_count++; *cookie = lun; From bga at bug-br.org.br Mon Jan 19 18:37:17 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Mon, 19 Jan 2009 15:37:17 -0200 Subject: [Haiku-commits] r28949 - haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk In-Reply-To: <2905041377-BeMail@laptop> References: <2905041377-BeMail@laptop> Message-ID: <4974BA4D.6070001@bug-br.org.br> Fran?ois Revol wrote: >> On Mon, 19 Jan 2009 03:19:27 +0100, mmu_man at BerliOS said: >> >>> Implement B_GET_ICON_NAME to return "devices/drive-removable-media- >>> usb" as it seems correct as per the FreeDesktop.org Icon Naming >> Specification we agreed to use for now, cf. http://standards.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html >> Again, at least Linux seems to differentiate between the possible >> specific types (SD/MMC, Memory Stick, Pen Drive, etc). > > Yes, well the info isn't yet available... > Btw, it might be possible per spec, but I don't recall Gnome displaying > a specific icon... > Actually it was a disk icon with an usb emblem, for a pen drive... Ubuntu with Gnome shows different icons for SD/MMC, Memory Stick, Pen Drive and USB HDs. -Bruno From revol at free.fr Mon Jan 19 18:39:53 2009 From: revol at free.fr (=?utf-8?q?Fran=C3=A7ois?= Revol) Date: Mon, 19 Jan 2009 18:39:53 +0100 CET Subject: [Haiku-commits] =?utf-8?q?r28953_-_haiku/trunk/src/add-ons/kernel?= =?utf-8?q?/drivers/disk/usb/usb=5Fdisk?= In-Reply-To: <200901191234.n0JCY66j019539@sheep.berlios.de> Message-ID: <3193459343-BeMail@laptop> > Author: mmlr > Date: 2009-01-19 13:33:59 +0100 (Mon, 19 Jan 2009) > New Revision: 28953 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28953&view=rev > > Modified: > haiku/trunk/src/add-ons/kernel/drivers/disk/usb/usb_disk/ > usb_disk.cpp > Log: > Style cleanup. Please at least try to... Copy-paste from a fullscreen terminal... sorry :p Fran?ois. From axeld at mail.berlios.de Mon Jan 19 18:40:21 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Mon, 19 Jan 2009 18:40:21 +0100 Subject: [Haiku-commits] r28958 - haiku/trunk/src/add-ons/kernel/network/protocols/tcp Message-ID: <200901191740.n0JHeLdh027287@sheep.berlios.de> Author: axeld Date: 2009-01-19 18:40:20 +0100 (Mon, 19 Jan 2009) New Revision: 28958 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28958&view=rev Modified: haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp Log: * Turns out the assert was wrong; since the previous buffer can be adjacent to the next buffer, it can also cause the new buffer to start at the same sequence as the next buffer. Modified: haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp 2009-01-19 17:35:56 UTC (rev 28957) +++ haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp 2009-01-19 17:40:20 UTC (rev 28958) @@ -162,8 +162,8 @@ } } - // "next" always starts after the buffer sequence - ASSERT(next == NULL || buffer == NULL || next->sequence > sequence); + // "next" always starts at or after the buffer sequence + ASSERT(next == NULL || buffer == NULL || next->sequence >= sequence); while (buffer != NULL && next != NULL && tcp_sequence(sequence + buffer->size) > next->sequence) { From axeld at pinc-software.de Mon Jan 19 18:54:20 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Mon, 19 Jan 2009 18:54:20 +0100 CET Subject: [Haiku-commits] =?utf-8?q?r28951_-_in_haiku/trunk/src/servers/app?= =?utf-8?q?=3A_=2E_drawing?= In-Reply-To: <4974A6CA.2020607@gmx.de> Message-ID: <29688890717-BeMail@zon> Stephan A?mus wrote: > > Well, I can try, I just don't find it logical, and I would assume > > that's something that could bother me a bit longer :-) > Ok, I will have a look. :-) Thanks, even if you don't like it as much, I like it now much better ;- ) Especially with darker backgrounds like the blue desktop color, the tab looked a bit as if there was something missing. > > Have we really? I couldn't name one, and even then, we now have a > > possibility to retrieve the window border size using an API, so > > that > > shouldn't be problematic anymore. I would just try and see if it > > really > > brings any problems. > Maybe you are right about that. But I have another reason for keeping > the current width: Since borders can also be used to drag windows, > maybe > we shouldn't make them smaller. That's a 20% shrink. That's a pretty good reason for keeping it the way it is. I don't think it looks too bad with normal windows, but the ones without a title, like modal windows (like the restart dialog), it seems to be a bit too thick. > > That's always the same problem with taste. IMO you should not be > > influenced by criticism too much before the look is complete, and > > even > > then I would wait and see if people can get used to it. > That's good advice. :-) Even if you didn't take it and changed something anyway ;-) Bye, Axel. From anevilyak at gmail.com Mon Jan 19 19:00:25 2009 From: anevilyak at gmail.com (Rene Gollent) Date: Mon, 19 Jan 2009 12:00:25 -0600 Subject: [Haiku-commits] r28951 - in haiku/trunk/src/servers/app: . drawing In-Reply-To: <29688890717-BeMail@zon> References: <4974A6CA.2020607@gmx.de> <29688890717-BeMail@zon> Message-ID: On Mon, Jan 19, 2009 at 11:54 AM, Axel D?rfler wrote: > Thanks, even if you don't like it as much, I like it now much better ;- > ) > Especially with darker backgrounds like the blue desktop color, the tab > looked a bit as if there was something missing. That was more or less my main gripe as well, the border I can get used to but the right side of the tab initially just looked like the decor just forgot to paint that edge to me. The work on updating the look is appreciated in any case :) Regards, Rene From axeld at pinc-software.de Mon Jan 19 19:35:14 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Mon, 19 Jan 2009 19:35:14 +0100 CET Subject: [Haiku-commits] r28946 - haiku/trunk/src/kits/media In-Reply-To: Message-ID: <32142060830-BeMail@zon> Rene Gollent wrote: > On Mon, Jan 19, 2009 at 4:01 AM, Axel D?rfler > wrote: > > Oh, and also, that POSIX puts one *more* byte into the string as > > "maxBufferSize". > > I have a look and correct it where needed. > Thanks for fixing that! I (obviously) missed the fact that there were > some subtle behavioral differences. Mea culpa. No problem, I don't think there was anything crucial. Bye, Axel. From axeld at mail.berlios.de Mon Jan 19 20:16:44 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Mon, 19 Jan 2009 20:16:44 +0100 Subject: [Haiku-commits] r28959 - in haiku/trunk/src: apps/deskbar servers/app Message-ID: <200901191916.n0JJGi4G012473@sheep.berlios.de> Author: axeld Date: 2009-01-19 20:16:43 +0100 (Mon, 19 Jan 2009) New Revision: 28959 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28959&view=rev Modified: haiku/trunk/src/apps/deskbar/Switcher.cpp haiku/trunk/src/apps/deskbar/Switcher.h haiku/trunk/src/servers/app/Desktop.cpp Log: * Made the get_token_list() function behave the same way as under BeOS. This simplifies the code in the Switcher, but has the drawback that the window list is not "static" anymore, ie. the items in the window list of the Deskbar will now jump around as in BeOS. * However, EasyMove now works under Haiku as well out of the box, if that is something we want :) * Maybe we should instead add another parameter to the window list to make it sorted or not; sorting the list as it's done now is much simpler and faster on the server. Modified: haiku/trunk/src/apps/deskbar/Switcher.cpp =================================================================== --- haiku/trunk/src/apps/deskbar/Switcher.cpp 2009-01-19 17:40:20 UTC (rev 28958) +++ haiku/trunk/src/apps/deskbar/Switcher.cpp 2009-01-19 19:16:43 UTC (rev 28959) @@ -652,56 +652,6 @@ // add the remaining entries free(teams); } - - -status_t -TSwitchManager::_GetSortedWindowTokens(int32** _tokens, int32* _count) -{ - int32* ordered; - int32 orderedCount; - status_t status = BPrivate::get_window_order(current_workspace(), &ordered, - &orderedCount); - if (status != B_OK) - return status; - - int32 tokenCount; - int32* unsorted = get_token_list(-1, &tokenCount); - if (unsorted == NULL) { - free(ordered); - return B_NO_MEMORY; - } - - int32* tokens = (int32*)malloc(tokenCount * sizeof(int32)); - if (tokens == NULL) { - free(unsorted); - free(ordered); - return B_NO_MEMORY; - } - - memcpy(tokens, ordered, orderedCount * sizeof(int32)); - free(ordered); - int32 count = orderedCount; - - for (int32 i = 0; i < tokenCount; i++) { - // find token in ordered list - bool found = false; - for (int32 j = 0; j < orderedCount; j++) { - if (tokens[j] == unsorted[i]) { - found = true; - break; - } - } - - if (!found) - tokens[count++] = unsorted[i]; - } - - free(unsorted); - - *_tokens = tokens; - *_count = count; - return B_OK; -} #endif // __HAIKU__ @@ -1029,12 +979,7 @@ } int32 tokenCount; -#ifdef __HAIKU__ - int32* tokens = NULL; - _GetSortedWindowTokens(&tokens, &tokenCount); -#else int32* tokens = get_token_list(-1, &tokenCount); -#endif if (tokens == NULL) { ASSERT(windowInfo); free(windowInfo); @@ -1150,15 +1095,9 @@ return NULL; int32 tokenCount; -#ifndef __HAIKU__ int32* tokens = get_token_list(-1, &tokenCount); if (tokens == NULL) return NULL; -#else - int32* tokens; - if (_GetSortedWindowTokens(&tokens, &tokenCount) != B_OK) - return NULL; -#endif int32 matches = 0; @@ -1248,13 +1187,9 @@ // cycle through the windows in the active application int32 count; -#ifndef __HAIKU__ int32* tokens = get_token_list(-1, &count); -#else - int32* tokens; - if (_GetSortedWindowTokens(&tokens, &count) != B_OK) + if (tokens == NULL) return; -#endif for (int32 i = count - 1; i >= 0; i--) { client_window_info* windowInfo = get_window_info(tokens[i]); Modified: haiku/trunk/src/apps/deskbar/Switcher.h =================================================================== --- haiku/trunk/src/apps/deskbar/Switcher.h 2009-01-19 17:40:20 UTC (rev 28958) +++ haiku/trunk/src/apps/deskbar/Switcher.h 2009-01-19 19:16:43 UTC (rev 28959) @@ -86,8 +86,6 @@ void ActivateWindow(int32 windowID = -1); #ifdef __HAIKU__ void _SortApps(); - status_t _GetSortedWindowTokens(int32** _tokens, - int32* _count); #endif TSwitcherWindow* fWindow; Modified: haiku/trunk/src/servers/app/Desktop.cpp =================================================================== --- haiku/trunk/src/servers/app/Desktop.cpp 2009-01-19 17:40:20 UTC (rev 28958) +++ haiku/trunk/src/servers/app/Desktop.cpp 2009-01-19 19:16:43 UTC (rev 28959) @@ -2513,6 +2513,7 @@ AutoWriteLocker locker(fWindowLock); // TODO: for now, just maximize all windows of that application + // TODO: have the ability to lock the current workspace for (Window *window = fAllWindows.FirstWindow(); window != NULL; window = window->NextWindow(kAllWindowList)) { @@ -2573,9 +2574,20 @@ sender.StartMessage(B_OK); sender.Attach(count); + // first write the windows of the current workspace correctly ordered + for (Window *window = _CurrentWindows().LastWindow(); window != NULL; + window = window->PreviousWindow(fCurrentWorkspace)) { + if (team >= B_OK && window->ServerWindow()->ClientTeam() != team) + continue; + + sender.Attach(window->ServerWindow()->ServerToken()); + } + + // then write all the other windows for (Window *window = fAllWindows.FirstWindow(); window != NULL; window = window->NextWindow(kAllWindowList)) { - if (team >= B_OK && window->ServerWindow()->ClientTeam() != team) + if ((team >= B_OK && window->ServerWindow()->ClientTeam() != team) + || window->InWorkspace(fCurrentWorkspace)) continue; sender.Attach(window->ServerWindow()->ServerToken()); From axeld at pinc-software.de Mon Jan 19 20:30:22 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Mon, 19 Jan 2009 20:30:22 +0100 CET Subject: [Haiku-commits] =?utf-8?q?r28959_-_in_haiku/trunk/src=3A_apps/des?= =?utf-8?q?kbar_servers/app?= In-Reply-To: <200901191916.n0JJGi4G012473@sheep.berlios.de> Message-ID: <675998617-BeMail@zon> axeld at BerliOS wrote: > * Maybe we should instead add another parameter to the window list to > make > it sorted or not; sorting the list as it's done now is much simpler > and > faster on the server. At least as I implemented it before; actually, the pretty much the same method could be used in client code, too. Bye, Axel. From korli at mail.berlios.de Mon Jan 19 20:46:33 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Mon, 19 Jan 2009 20:46:33 +0100 Subject: [Haiku-commits] r28960 - haiku/trunk/src/data/beos_mime/image Message-ID: <200901191946.n0JJkXn6024109@sheep.berlios.de> Author: korli Date: 2009-01-19 20:46:32 +0100 (Mon, 19 Jan 2009) New Revision: 28960 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28960&view=rev Modified: haiku/trunk/src/data/beos_mime/image/svg+xml Log: added svgz as an extension for SVG Modified: haiku/trunk/src/data/beos_mime/image/svg+xml =================================================================== --- haiku/trunk/src/data/beos_mime/image/svg+xml 2009-01-19 19:16:43 UTC (rev 28959) +++ haiku/trunk/src/data/beos_mime/image/svg+xml 2009-01-19 19:46:32 UTC (rev 28960) @@ -7,5 +7,6 @@ resource(3, "META:EXTENS") message(234) { "extensions" = "svg", + "extensions" = "svgz", "type" = "image/svg+xml" }; From axeld at mail.berlios.de Mon Jan 19 23:20:31 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Mon, 19 Jan 2009 23:20:31 +0100 Subject: [Haiku-commits] r28961 - haiku/trunk/headers/posix Message-ID: <200901192220.n0JMKVqh015082@sheep.berlios.de> Author: axeld Date: 2009-01-19 23:20:28 +0100 (Mon, 19 Jan 2009) New Revision: 28961 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28961&view=rev Modified: haiku/trunk/headers/posix/netdb.h Log: * Applied Scott's patch to remove the duplicate definitions, thus closing bug #2237. Thanks! * Cleaned up the file a bit (removed the _P() and fixed indentation). Modified: haiku/trunk/headers/posix/netdb.h =================================================================== --- haiku/trunk/headers/posix/netdb.h 2009-01-19 19:46:32 UTC (rev 28960) +++ haiku/trunk/headers/posix/netdb.h 2009-01-19 22:20:28 UTC (rev 28961) @@ -1,4 +1,9 @@ /* + * Copyright 2002-2009, Haiku, Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ + +/* * Copyright (c) 1980, 1983, 1988, 1993 * The Regents of the University of California. All rights reserved. * @@ -106,7 +111,7 @@ #endif __BEGIN_DECLS -extern int * __h_errno __P((void)); +extern int * __h_errno(void); __END_DECLS #define h_errno (*__h_errno()) @@ -115,12 +120,12 @@ * supplied in host order, and returned in network order (suitable for * use in system calls). */ -struct hostent { - char *h_name; /* official name of host */ - char **h_aliases; /* alias list */ - int h_addrtype; /* host address type */ - int h_length; /* length of address */ - char **h_addr_list; /* list of addresses from name server */ +struct hostent { + char *h_name; /* official name of host */ + char **h_aliases; /* alias list */ + int h_addrtype; /* host address type */ + int h_length; /* length of address */ + char **h_addr_list; /* list of addresses from name server */ #define h_addr h_addr_list[0] /* address, for backward compatiblity */ }; @@ -128,33 +133,33 @@ * Assumption here is that a network number * fits in an unsigned long -- probably a poor one. */ -struct netent { - char *n_name; /* official name of net */ - char **n_aliases; /* alias list */ - int n_addrtype; /* net address type */ - unsigned long n_net; /* network # */ +struct netent { + char *n_name; /* official name of net */ + char **n_aliases; /* alias list */ + int n_addrtype; /* net address type */ + unsigned long n_net; /* network # */ }; -struct servent { - char *s_name; /* official service name */ - char **s_aliases; /* alias list */ - int s_port; /* port # */ - char *s_proto; /* protocol to use */ +struct servent { + char *s_name; /* official service name */ + char **s_aliases; /* alias list */ + int s_port; /* port # */ + char *s_proto; /* protocol to use */ }; -struct protoent { - char *p_name; /* official protocol name */ - char **p_aliases; /* alias list */ - int p_proto; /* protocol # */ +struct protoent { + char *p_name; /* official protocol name */ + char **p_aliases; /* alias list */ + int p_proto; /* protocol # */ }; -struct addrinfo { - int ai_flags; /* AI_PASSIVE, AI_CANONNAME */ - int ai_family; /* PF_xxx */ - int ai_socktype; /* SOCK_xxx */ - int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ - size_t ai_addrlen; /* length of ai_addr */ - char *ai_canonname; /* canonical name for hostname */ +struct addrinfo { + int ai_flags; /* AI_PASSIVE, AI_CANONNAME */ + int ai_family; /* PF_xxx */ + int ai_socktype; /* SOCK_xxx */ + int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ + size_t ai_addrlen; /* length of ai_addr */ + char *ai_canonname; /* canonical name for hostname */ struct sockaddr *ai_addr; /* binary address */ struct addrinfo *ai_next; /* next structure in linked list */ }; @@ -163,63 +168,65 @@ * Error return codes from gethostbyname() and gethostbyaddr() * (left in extern int h_errno). */ +#define NETDB_INTERNAL -1 /* see errno */ +#define NETDB_SUCCESS 0 /* no problem */ +#define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */ +#define TRY_AGAIN 2 + /* Non-Authoritive Host not found, or SERVERFAIL */ +#define NO_RECOVERY 3 + /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */ +#define NO_DATA 4 + /* Valid name, no data record of requested type */ +#define NO_ADDRESS NO_DATA /* no address, look for MX record */ -#define NETDB_INTERNAL -1 /* see errno */ -#define NETDB_SUCCESS 0 /* no problem */ -#define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */ -#define TRY_AGAIN 2 /* Non-Authoritive Host not found, or SERVERFAIL */ -#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */ -#define NO_DATA 4 /* Valid name, no data record of requested type */ -#define NO_ADDRESS NO_DATA /* no address, look for MX record */ - /* * Error return codes from getaddrinfo() */ -#define EAI_ADDRFAMILY 1 /* address family for hostname not supported */ -#define EAI_AGAIN 2 /* temporary failure in name resolution */ -#define EAI_BADFLAGS 3 /* invalid value for ai_flags */ -#define EAI_FAIL 4 /* non-recoverable failure in name resolution */ -#define EAI_FAMILY 5 /* ai_family not supported */ -#define EAI_MEMORY 6 /* memory allocation failure */ -#define EAI_NODATA 7 /* no address associated with hostname */ -#define EAI_NONAME 8 /* hostname nor servname provided, or not known */ -#define EAI_SERVICE 9 /* servname not supported for ai_socktype */ +#define EAI_ADDRFAMILY 1 /* address family for hostname not supported */ +#define EAI_AGAIN 2 /* temporary failure in name resolution */ +#define EAI_BADFLAGS 3 /* invalid value for ai_flags */ +#define EAI_FAIL 4 /* non-recoverable failure in name resolution */ +#define EAI_FAMILY 5 /* ai_family not supported */ +#define EAI_MEMORY 6 /* memory allocation failure */ +#define EAI_NODATA 7 /* no address associated with hostname */ +#define EAI_NONAME 8 /* hostname nor servname provided, or not known */ +#define EAI_SERVICE 9 /* servname not supported for ai_socktype */ #define EAI_SOCKTYPE 10 /* ai_socktype not supported */ -#define EAI_SYSTEM 11 /* system error returned in errno */ +#define EAI_SYSTEM 11 /* system error returned in errno */ #define EAI_BADHINTS 12 #define EAI_PROTOCOL 13 -#define EAI_MAX 14 +#define EAI_MAX 14 /* * Flag values for getaddrinfo() */ -#define AI_PASSIVE 0x00000001 +#define AI_PASSIVE 0x00000001 #define AI_CANONNAME 0x00000002 #define AI_NUMERICHOST 0x00000004 -#define AI_MASK 0x00000007 +#define AI_MASK 0x00000007 /* * Flag values for getipnodebyname() */ -#define AI_V4MAPPED 0x00000008 -#define AI_ALL 0x00000010 +#define AI_V4MAPPED 0x00000008 +#define AI_ALL 0x00000010 #define AI_ADDRCONFIG 0x00000020 -#define AI_DEFAULT (AI_V4MAPPED|AI_ADDRCONFIG) +#define AI_DEFAULT (AI_V4MAPPED|AI_ADDRCONFIG) /* * Constants for getnameinfo() */ -#define NI_MAXHOST 1025 -#define NI_MAXSERV 32 +#define NI_MAXHOST 1025 +#define NI_MAXSERV 32 /* * Flag values for getnameinfo() */ -#define NI_NOFQDN 0x00000001 +#define NI_NOFQDN 0x00000001 #define NI_NUMERICHOST 0x00000002 -#define NI_NAMEREQD 0x00000004 +#define NI_NAMEREQD 0x00000004 #define NI_NUMERICSERV 0x00000008 -#define NI_DGRAM 0x00000010 +#define NI_DGRAM 0x00000010 #define NI_WITHSCOPEID 0x00000020 #define NI_NUMERICSCOPE 0x00000040 @@ -230,74 +237,71 @@ __BEGIN_DECLS -void endhostent __P((void)); -void endnetent __P((void)); -void endprotoent __P((void)); -void endservent __P((void)); -void freehostent __P((struct hostent *)); -struct hostent *gethostbyaddr __P((const char *, int, int)); -struct hostent *gethostbyname __P((const char *)); -struct hostent *gethostbyname2 __P((const char *, int)); -struct hostent *gethostent __P((void)); -struct hostent *getipnodebyaddr __P((const void *, size_t, int, int *)); -struct hostent *getipnodebyname __P((const char *, int, int, int *)); -struct netent *getnetbyaddr __P((unsigned long, int)); -struct netent *getnetbyname __P((const char *)); -struct netent *getnetent __P((void)); -struct protoent *getprotobyname __P((const char *)); -struct protoent *getprotobynumber __P((int)); -struct protoent *getprotoent __P((void)); -struct servent *getservbyname __P((const char *, const char *)); -struct servent *getservbyport __P((int, const char *)); -struct servent *getservent __P((void)); -void herror __P((const char *)); -const char *hstrerror __P((int)); -void sethostent __P((int)); -/* void sethostfile __P((const char *)); */ -void setnetent __P((int)); -void setprotoent __P((int)); -void setservent __P((int)); -int getaddrinfo __P((const char *, const char *, - const struct addrinfo *, struct addrinfo **)); -int getnameinfo __P((const struct sockaddr *, socklen_t, char *, - socklen_t, char *, socklen_t, int)); -void freeaddrinfo __P((struct addrinfo *)); -const char *gai_strerror __P((int)); -struct hostent *getipnodebyname __P((const char *, int, int, int *)); -struct hostent *getipnodebyaddr __P((const void *, size_t, int, int *)); -void freehostent __P((struct hostent *)); +void endhostent(void); +void endnetent(void); +void endprotoent(void); +void endservent(void); +void freehostent(struct hostent *host); +struct hostent *gethostbyaddr(const char *address, int length, int type); +struct hostent *gethostbyname(const char *name); +struct hostent *gethostbyname2(const char *name, int type); +struct hostent *gethostent(void); +struct hostent *getipnodebyaddr(const void *, size_t, int, int *); +struct hostent *getipnodebyname(const char *, int, int, int *); +struct netent *getnetbyaddr(unsigned long, int); +struct netent *getnetbyname(const char *); +struct netent *getnetent(void); +struct protoent *getprotobyname(const char *); +struct protoent *getprotobynumber(int); +struct protoent *getprotoent(void); +struct servent *getservbyname(const char *, const char *); +struct servent *getservbyport(int, const char *); +struct servent *getservent(void); +void herror(const char *); +const char *hstrerror(int); +void sethostent(int); +/* void sethostfile(const char *); */ +void setnetent(int); +void setprotoent(int); +void setservent(int); +int getaddrinfo(const char *, const char *, + const struct addrinfo *, struct addrinfo **); +int getnameinfo(const struct sockaddr *, socklen_t, char *, + socklen_t, char *, socklen_t, int); +void freeaddrinfo(struct addrinfo *); +const char *gai_strerror(int); -struct hostent *gethostbyaddr_r __P((const char *, int, int, struct hostent *, - char *, int, int *)); -struct hostent *gethostbyname_r __P((const char *, struct hostent *, - char *, int, int *)); -struct hostent *gethostent_r __P((struct hostent *, char *, int, int *)); -void sethostent_r __P((int)); -void endhostent_r __P((void)); +struct hostent *gethostbyaddr_r(const char *, int, int, struct hostent *, + char *, int, int *); +struct hostent *gethostbyname_r(const char *, struct hostent *, + char *, int, int *); +struct hostent *gethostent_r(struct hostent *, char *, int, int *); +void sethostent_r(int); +void endhostent_r(void); -struct netent *getnetbyname_r __P((const char *, struct netent *, - char *, int)); -struct netent *getnetbyaddr_r __P((long, int, struct netent *, - char *, int)); -struct netent *getnetent_r __P((struct netent *, char *, int)); -void setnetent_r __P((int)); -void endnetent_r __P((void)); +struct netent *getnetbyname_r(const char *, struct netent *, + char *, int); +struct netent *getnetbyaddr_r(long, int, struct netent *, + char *, int); +struct netent *getnetent_r(struct netent *, char *, int); +void setnetent_r(int); +void endnetent_r(void); -struct protoent *getprotobyname_r __P((const char *, - struct protoent *, char *, int)); -struct protoent *getprotobynumber_r __P((int, - struct protoent *, char *, int)); -struct protoent *getprotoent_r __P((struct protoent *, char *, int)); -void setprotoent_r __P((int)); -void endprotoent_r __P((void)); +struct protoent *getprotobyname_r(const char *, + struct protoent *, char *, int); +struct protoent *getprotobynumber_r(int, + struct protoent *, char *, int); +struct protoent *getprotoent_r(struct protoent *, char *, int); +void setprotoent_r(int); +void endprotoent_r(void); -struct servent *getservbyname_r __P((const char *name, const char *, - struct servent *, char *, int)); -struct servent *getservbyport_r __P((int port, const char *, - struct servent *, char *, int)); -struct servent *getservent_r __P((struct servent *, char *, int)); -void setservent_r __P((int)); -void endservent_r __P((void)); +struct servent *getservbyname_r(const char *name, const char *, + struct servent *, char *, int); +struct servent *getservbyport_r(int port, const char *, + struct servent *, char *, int); +struct servent *getservent_r(struct servent *, char *, int); +void setservent_r(int); +void endservent_r(void); __END_DECLS -#endif /* !_NETDB_H_ */ +#endif /* _NETDB_H_ */ From ingo_weinhold at gmx.de Mon Jan 19 23:33:17 2009 From: ingo_weinhold at gmx.de (Ingo Weinhold) Date: Mon, 19 Jan 2009 23:33:17 +0100 Subject: [Haiku-commits] r28960 - haiku/trunk/src/data/beos_mime/image In-Reply-To: <200901191946.n0JJkXn6024109@sheep.berlios.de> References: <200901191946.n0JJkXn6024109@sheep.berlios.de> Message-ID: <20090119233317.416.1@knochen-vm.localdomain> On 2009-01-19 at 20:46:33 [+0100], korli at BerliOS wrote: > Author: korli > Date: 2009-01-19 20:46:32 +0100 (Mon, 19 Jan 2009) > New Revision: 28960 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28960&view=rev > > Modified: > haiku/trunk/src/data/beos_mime/image/svg+xml > Log: > added svgz as an extension for SVG That would be zipped SVG, right? CU, Ingo From anevilyak at gmail.com Tue Jan 20 01:47:32 2009 From: anevilyak at gmail.com (Rene Gollent) Date: Mon, 19 Jan 2009 18:47:32 -0600 Subject: [Haiku-commits] r28956 - haiku/trunk/src/servers/app In-Reply-To: <200901191654.n0JGsGxd011453@sheep.berlios.de> References: <200901191654.n0JGsGxd011453@sheep.berlios.de> Message-ID: On Mon, Jan 19, 2009 at 10:54 AM, stippi at BerliOS wrote: > Author: stippi > Date: 2009-01-19 17:54:16 +0100 (Mon, 19 Jan 2009) > New Revision: 28956 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28956&view=rev > > Modified: > haiku/trunk/src/servers/app/DefaultDecorator.cpp > haiku/trunk/src/servers/app/DefaultDecorator.h > Log: > Tweaking the look again, trying to take some of Axel's suggestions > into account. I think the shadow bevel on the right is a spoiler > though, and will change that back. But Axel can compare this way... > > Just wanted to chime in and say, now that I've had a chance to compare, I definitely like this look a lot better myself. The previous way of drawing the right border to me made it look as if the app_server had forgotten to draw a line there, and just didn't feel right. The window border I think I can get used to though. Nice work! Regards, Rene From anevilyak at mail.berlios.de Tue Jan 20 02:07:43 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Tue, 20 Jan 2009 02:07:43 +0100 Subject: [Haiku-commits] r28962 - haiku/trunk/src/bin/desklink Message-ID: <200901200107.n0K17hFP016947@sheep.berlios.de> Author: anevilyak Date: 2009-01-20 02:07:42 +0100 (Tue, 20 Jan 2009) New Revision: 28962 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28962&view=rev Modified: haiku/trunk/src/bin/desklink/VolumeSlider.cpp Log: Slightly tweak the volume slider's tracking logic to keep attention on the mouse even if it exits the view. This allows click dragging without having to be quite as precise. Fixes ticket #3317. Modified: haiku/trunk/src/bin/desklink/VolumeSlider.cpp =================================================================== --- haiku/trunk/src/bin/desklink/VolumeSlider.cpp 2009-01-19 22:20:28 UTC (rev 28961) +++ haiku/trunk/src/bin/desklink/VolumeSlider.cpp 2009-01-20 01:07:42 UTC (rev 28962) @@ -324,6 +324,7 @@ SetTracking(true); SetValue(value); + SetEventMask(B_POINTER_EVENTS, B_NO_POINTER_HISTORY); } @@ -400,17 +401,16 @@ if (!IsTracking()) return; - uint32 mouseButtons; - BPoint where; - GetMouse(&where, &mouseButtons, true); + int32 mouseButtons; + Window()->CurrentMessage()->FindInt32("buttons", &mouseButtons); // button not pressed, exit - if (! (mouseButtons & B_PRIMARY_MOUSE_BUTTON)) { + if (!(mouseButtons & B_PRIMARY_MOUSE_BUTTON)) { Invoke(); SetTracking(false); } - if (Value() == -1 || !Bounds().InsetBySelf(2, 2).Contains(point)) + if (Value() == -1) return; float v = MIN(MAX(point.x, 11), 192); From anevilyak at mail.berlios.de Tue Jan 20 02:42:17 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Tue, 20 Jan 2009 02:42:17 +0100 Subject: [Haiku-commits] r28963 - haiku/trunk/src/apps/cdplayer Message-ID: <200901200142.n0K1gHX2021169@sheep.berlios.de> Author: anevilyak Date: 2009-01-20 02:42:15 +0100 (Tue, 20 Jan 2009) New Revision: 28963 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28963&view=rev Modified: haiku/trunk/src/apps/cdplayer/CDPlayer.cpp haiku/trunk/src/apps/cdplayer/CDPlayer.h Log: If we're going to fail because of a missing CD drive, never show the CD player window at all instead of flickering it briefly. This fixes ticket #2333. Modified: haiku/trunk/src/apps/cdplayer/CDPlayer.cpp =================================================================== --- haiku/trunk/src/apps/cdplayer/CDPlayer.cpp 2009-01-20 01:07:42 UTC (rev 28962) +++ haiku/trunk/src/apps/cdplayer/CDPlayer.cpp 2009-01-20 01:42:15 UTC (rev 28963) @@ -85,7 +85,6 @@ " drives on your computer or there is no system software to " "support one. Sorry.", "OK"); alert->Go(); - be_app->PostMessage(B_QUIT_REQUESTED); } fWindowState = fCDDrive.GetState(); @@ -104,6 +103,13 @@ } +bool +CDPlayer::InitCheck() +{ + return (fCDDrive.CountDrives() > 0); +} + + void CDPlayer::BuildGUI() { @@ -638,10 +644,14 @@ : BApplication("application/x-vnd.Haiku-CDPlayer") { BWindow *window = new CDPlayerWindow(); - BView *view = new CDPlayer(window->Bounds(), "CD"); - window->ResizeTo(view->Bounds().Width(), view->Bounds().Height()); - window->AddChild(view); - window->Show(); + CDPlayer *view = new CDPlayer(window->Bounds(), "CD"); + if (view->InitCheck()) { + window->ResizeTo(view->Bounds().Width(), view->Bounds().Height()); + window->AddChild(view); + window->Show(); + } + else + PostMessage(B_QUIT_REQUESTED); } Modified: haiku/trunk/src/apps/cdplayer/CDPlayer.h =================================================================== --- haiku/trunk/src/apps/cdplayer/CDPlayer.h 2009-01-20 01:07:42 UTC (rev 28962) +++ haiku/trunk/src/apps/cdplayer/CDPlayer.h 2009-01-20 01:42:15 UTC (rev 28963) @@ -33,7 +33,8 @@ virtual ~CDPlayer(); void BuildGUI(); - + bool InitCheck(); + virtual void AttachedToWindow(); virtual void Pulse(); virtual void MessageReceived(BMessage *); From mmu_man at mail.berlios.de Tue Jan 20 03:22:58 2009 From: mmu_man at mail.berlios.de (mmu_man at BerliOS) Date: Tue, 20 Jan 2009 03:22:58 +0100 Subject: [Haiku-commits] r28964 - haiku/trunk/src/add-ons/kernel/drivers/bluetooth/h2/h2generic Message-ID: <200901200222.n0K2Mwsq025459@sheep.berlios.de> Author: mmu_man Date: 2009-01-20 03:22:57 +0100 (Tue, 20 Jan 2009) New Revision: 28964 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28964&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/bluetooth/h2/h2generic/h2transactions.c Log: Fix error signedness, 10l for Oliver! Modified: haiku/trunk/src/add-ons/kernel/drivers/bluetooth/h2/h2generic/h2transactions.c =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/bluetooth/h2/h2generic/h2transactions.c 2009-01-20 01:42:15 UTC (rev 28963) +++ haiku/trunk/src/add-ons/kernel/drivers/bluetooth/h2/h2generic/h2transactions.c 2009-01-20 02:22:57 UTC (rev 28964) @@ -71,7 +71,7 @@ } else { flowf("EVENT frame corrupted\n"); - return -EILSEQ; + return EILSEQ; } break; @@ -95,7 +95,7 @@ } else { flowf("ACL frame corrupted\n"); - return -EILSEQ; + return EILSEQ; } break; From mmu_man at mail.berlios.de Tue Jan 20 05:41:00 2009 From: mmu_man at mail.berlios.de (mmu_man at BerliOS) Date: Tue, 20 Jan 2009 05:41:00 +0100 Subject: [Haiku-commits] r28965 - haiku/trunk/src/system/boot/loader/file_systems/tarfs Message-ID: <200901200441.n0K4f0A1009659@sheep.berlios.de> Author: mmu_man Date: 2009-01-20 05:40:57 +0100 (Tue, 20 Jan 2009) New Revision: 28965 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28965&view=rev Modified: haiku/trunk/src/system/boot/loader/file_systems/tarfs/tarfs.cpp Log: This should definitely fix CD booting, it was still looking for the tgz at 192k while zbeos is now almost 300k... Maybe we need something more failproof but it shoudl do for now. Modified: haiku/trunk/src/system/boot/loader/file_systems/tarfs/tarfs.cpp =================================================================== --- haiku/trunk/src/system/boot/loader/file_systems/tarfs/tarfs.cpp 2009-01-20 02:22:57 UTC (rev 28964) +++ haiku/trunk/src/system/boot/loader/file_systems/tarfs/tarfs.cpp 2009-01-20 04:40:57 UTC (rev 28965) @@ -33,7 +33,7 @@ #endif -static const uint32 kFloppyArchiveOffset = 192 * 1024; // at 192 kB +static const uint32 kFloppyArchiveOffset = BOOT_ARCHIVE_IMAGE_OFFSET * 1024; // initially at 192 kB, now defined at build time static const size_t kTarRegionSize = 16 * 1024 * 1024; // 16 MB namespace TarFS { From axeld at pinc-software.de Tue Jan 20 10:18:53 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Tue, 20 Jan 2009 10:18:53 +0100 CET Subject: [Haiku-commits] r28963 - haiku/trunk/src/apps/cdplayer In-Reply-To: <200901200142.n0K1gHX2021169@sheep.berlios.de> Message-ID: <1987414868-BeMail@zon> Hi Rene, anevilyak at BerliOS wrote: > +bool > +CDPlayer::InitCheck() > +{ > + return (fCDDrive.CountDrives() > 0); > +} Superfluous parenthesis. > + if (view->InitCheck()) { > + window->ResizeTo(view->Bounds().Width(), view-> > Bounds().Height()); > + window->AddChild(view); > + window->Show(); > + } > + else > + PostMessage(B_QUIT_REQUESTED); -> "} else" (on one line) In any case, I really think we should just remove CDPlayer instead, though :-) Bye, Axel. From stippi at mail.berlios.de Tue Jan 20 10:27:41 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Tue, 20 Jan 2009 10:27:41 +0100 Subject: [Haiku-commits] r28966 - in haiku/trunk/src/tests/kits/interface: . look Message-ID: <200901200927.n0K9RfNB022338@sheep.berlios.de> Author: stippi Date: 2009-01-20 10:27:41 +0100 (Tue, 20 Jan 2009) New Revision: 28966 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28966&view=rev Added: haiku/trunk/src/tests/kits/interface/look/ haiku/trunk/src/tests/kits/interface/look/Jamfile haiku/trunk/src/tests/kits/interface/look/Look.cpp Modified: haiku/trunk/src/tests/kits/interface/Jamfile Log: Beginnings of a test app that shows all Interface Kit controls in various configurations so that one can work better on the look. Modified: haiku/trunk/src/tests/kits/interface/Jamfile =================================================================== --- haiku/trunk/src/tests/kits/interface/Jamfile 2009-01-20 04:40:57 UTC (rev 28965) +++ haiku/trunk/src/tests/kits/interface/Jamfile 2009-01-20 09:27:41 UTC (rev 28966) @@ -150,6 +150,7 @@ SubInclude HAIKU_TOP src tests kits interface bshelf ; SubInclude HAIKU_TOP src tests kits interface flatten_picture ; SubInclude HAIKU_TOP src tests kits interface layout ; +SubInclude HAIKU_TOP src tests kits interface look ; SubInclude HAIKU_TOP src tests kits interface picture ; SubInclude HAIKU_TOP src tests kits interface pictureprint ; Added: haiku/trunk/src/tests/kits/interface/look/Jamfile =================================================================== --- haiku/trunk/src/tests/kits/interface/look/Jamfile 2009-01-20 04:40:57 UTC (rev 28965) +++ haiku/trunk/src/tests/kits/interface/look/Jamfile 2009-01-20 09:27:41 UTC (rev 28966) @@ -0,0 +1,6 @@ +SubDir HAIKU_TOP src tests kits interface look ; + +SimpleTest LookTest : + Look.cpp + : be + ; Added: haiku/trunk/src/tests/kits/interface/look/Look.cpp =================================================================== --- haiku/trunk/src/tests/kits/interface/look/Look.cpp 2009-01-20 04:40:57 UTC (rev 28965) +++ haiku/trunk/src/tests/kits/interface/look/Look.cpp 2009-01-20 09:27:41 UTC (rev 28966) @@ -0,0 +1,78 @@ +/* + * Copyright 2009, Stephan A?mus . All rights reserved. + * Distributed under the terms of the MIT License. + */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +template +void +add_controls(BGridLayout* layout, int32& row) +{ + ControlType* control1 = new ControlType("Enabled", NULL); + ControlType* control2 = new ControlType("Disabled", NULL); + control2->SetEnabled(false); + ControlType* control3 = new ControlType("On", NULL); + control3->SetValue(B_CONTROL_ON); + + layout->AddView(control1, 0, row); + layout->AddView(control2, 1, row); + layout->AddView(control3, 2, row); + + row++; +} + + +int +main(int argc, char** argv) +{ + BApplication app("application/x-vnd.haiku-look"); + + BWindow* window = new BWindow(BRect(50, 50, 100, 100), + "Look at these pretty controls!", B_TITLED_WINDOW, + B_ASYNCHRONOUS_CONTROLS | B_AUTO_UPDATE_SIZE_LIMITS + | B_QUIT_ON_WINDOW_CLOSE); + + window->SetLayout(new BGroupLayout(B_HORIZONTAL)); + + // create some controls + + BGridView* view = new BGridView(5.0f, 5.0f); + BGridLayout* layout = view->GridLayout(); + layout->SetInsets(5, 5, 5, 5); + view->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED)); + + int32 row = 0; + add_controls(layout, row); + add_controls(layout, row); + add_controls(layout, row); + + window->AddChild(view); + + window->Show(); + app.Run(); + return 0; +} + From korli at users.berlios.de Tue Jan 20 10:33:48 2009 From: korli at users.berlios.de (=?ISO-8859-1?B?Suly9G1lIER1dmFs?=) Date: Tue, 20 Jan 2009 10:33:48 +0100 Subject: [Haiku-commits] r28960 - haiku/trunk/src/data/beos_mime/image In-Reply-To: <20090119233317.416.1@knochen-vm.localdomain> References: <200901191946.n0JJkXn6024109@sheep.berlios.de> <20090119233317.416.1@knochen-vm.localdomain> Message-ID: 2009/1/19 Ingo Weinhold > That would be zipped SVG, right? > > Yes, it seems to get more common. Bye, J?r?me -------------- next part -------------- An HTML attachment was scrubbed... URL: From axeld at mail.berlios.de Tue Jan 20 11:38:05 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Tue, 20 Jan 2009 11:38:05 +0100 Subject: [Haiku-commits] r28967 - in haiku/trunk/src: add-ons/kernel/network/protocols/tcp tests/kits/net/tcp_shell Message-ID: <200901201038.n0KAc535030179@sheep.berlios.de> Author: axeld Date: 2009-01-20 11:38:05 +0100 (Tue, 20 Jan 2009) New Revision: 28967 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28967&view=rev Modified: haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp haiku/trunk/src/tests/kits/net/tcp_shell/BufferQueueTest.cpp Log: * Fixed one more case of a resulting 0 byte buffer. Also added a test case for it to the test app. This finally fixes ticket #2594. * Of course, I neither saw this one before, nor did I accidently reproduce it with a test :-) Modified: haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp 2009-01-20 09:27:41 UTC (rev 28966) +++ haiku/trunk/src/add-ons/kernel/network/protocols/tcp/BufferQueue.cpp 2009-01-20 10:38:05 UTC (rev 28967) @@ -176,9 +176,14 @@ fList.Remove(remove); fNumBytes -= remove->size; gBufferModule->free(remove); - } else { + } else if (tcp_sequence(next->sequence) > sequence) { + // We have the end of this buffer already gBufferModule->remove_trailer(buffer, sequence + buffer->size - next->sequence); + } else { + // We already have this data + gBufferModule->free(buffer); + buffer = NULL; } } Modified: haiku/trunk/src/tests/kits/net/tcp_shell/BufferQueueTest.cpp =================================================================== --- haiku/trunk/src/tests/kits/net/tcp_shell/BufferQueueTest.cpp 2009-01-20 09:27:41 UTC (rev 28966) +++ haiku/trunk/src/tests/kits/net/tcp_shell/BufferQueueTest.cpp 2009-01-20 10:38:05 UTC (rev 28967) @@ -1,3 +1,8 @@ +/* + * Copyright 2009, Axel D?rfler, axeld at pinc-software.de. + * Distributed under the terms of the MIT License. + */ + #define DEBUG_BUFFER_QUEUE 1 #include "BufferQueue.h" @@ -129,7 +134,11 @@ dump("add 3"); add(60, 540); - dump("add at the end of previous data"); + dump("added at the end of previous data"); + + add(998, 1002); + add(500, 1000); + dump("added data covered by next"); put_module(NET_BUFFER_MODULE_NAME); return 0; From axeld at mail.berlios.de Tue Jan 20 11:39:07 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Tue, 20 Jan 2009 11:39:07 +0100 Subject: [Haiku-commits] r28968 - haiku/trunk/src/tests/kits/interface/look Message-ID: <200901201039.n0KAd7tW030294@sheep.berlios.de> Author: axeld Date: 2009-01-20 11:39:07 +0100 (Tue, 20 Jan 2009) New Revision: 28968 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28968&view=rev Modified: haiku/trunk/src/tests/kits/interface/look/Look.cpp Log: * Fixed minor style issue :-) Modified: haiku/trunk/src/tests/kits/interface/look/Look.cpp =================================================================== --- haiku/trunk/src/tests/kits/interface/look/Look.cpp 2009-01-20 10:38:05 UTC (rev 28967) +++ haiku/trunk/src/tests/kits/interface/look/Look.cpp 2009-01-20 10:39:07 UTC (rev 28968) @@ -2,6 +2,7 @@ * Copyright 2009, Stephan A?mus . All rights reserved. * Distributed under the terms of the MIT License. */ + #include #include #include From superstippi at gmx.de Tue Jan 20 11:47:09 2009 From: superstippi at gmx.de (=?UTF-8?B?U3RlcGhhbiBBw59tdXM=?=) Date: Tue, 20 Jan 2009 11:47:09 +0100 Subject: [Haiku-commits] r28968 - haiku/trunk/src/tests/kits/interface/look In-Reply-To: <200901201039.n0KAd7tW030294@sheep.berlios.de> References: <200901201039.n0KAd7tW030294@sheep.berlios.de> Message-ID: <4975ABAD.4090809@gmx.de> axeld at BerliOS schrieb: > Author: axeld > Date: 2009-01-20 11:39:07 +0100 (Tue, 20 Jan 2009) > New Revision: 28968 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28968&view=rev > > Modified: > haiku/trunk/src/tests/kits/interface/look/Look.cpp > Log: > * Fixed minor style issue :-) > > > Modified: haiku/trunk/src/tests/kits/interface/look/Look.cpp > =================================================================== > --- haiku/trunk/src/tests/kits/interface/look/Look.cpp 2009-01-20 10:38:05 UTC (rev 28967) > +++ haiku/trunk/src/tests/kits/interface/look/Look.cpp 2009-01-20 10:39:07 UTC (rev 28968) > @@ -2,6 +2,7 @@ > * Copyright 2009, Stephan A?mus . All rights reserved. > * Distributed under the terms of the MIT License. > */ > + > #include > #include > #include Sorry for repeatedly doing this wrong. It seems I can never remember whether this applies to the header guard or the first includes... Best regards, -Stephan From superstippi at gmx.de Tue Jan 20 11:53:21 2009 From: superstippi at gmx.de (=?UTF-8?B?U3RlcGhhbiBBw59tdXM=?=) Date: Tue, 20 Jan 2009 11:53:21 +0100 Subject: [Haiku-commits] r28968 - haiku/trunk/src/tests/kits/interface/look In-Reply-To: <4975ABAD.4090809@gmx.de> References: <200901201039.n0KAd7tW030294@sheep.berlios.de> <4975ABAD.4090809@gmx.de> Message-ID: <4975AD21.3090308@gmx.de> Stephan A?mus schrieb: > axeld at BerliOS schrieb: >> Author: axeld >> Date: 2009-01-20 11:39:07 +0100 (Tue, 20 Jan 2009) >> New Revision: 28968 >> ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28968&view=rev >> >> Modified: >> haiku/trunk/src/tests/kits/interface/look/Look.cpp >> Log: >> * Fixed minor style issue :-) BTW, just when I was about to commit this last night, Haiku crashed into KDL with a page fault in the vnode code when I tried "svn stat" (I took a picture). Fortunately, I had no data loss whatsoever, even though I did "svn add" a split second before. Kudos to Luposian for being such a pest with regards to the quick writing back of cached file data... :-) Best regards, -Stephan From stippi at mail.berlios.de Tue Jan 20 13:17:21 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Tue, 20 Jan 2009 13:17:21 +0100 Subject: [Haiku-commits] r28969 - haiku/trunk/src/servers/app/drawing/Painter Message-ID: <200901201217.n0KCHL5g018855@sheep.berlios.de> Author: stippi Date: 2009-01-20 13:17:10 +0100 (Tue, 20 Jan 2009) New Revision: 28969 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28969&view=rev Modified: haiku/trunk/src/servers/app/drawing/Painter/AGGTextRenderer.h Log: Removed left over. Modified: haiku/trunk/src/servers/app/drawing/Painter/AGGTextRenderer.h =================================================================== --- haiku/trunk/src/servers/app/drawing/Painter/AGGTextRenderer.h 2009-01-20 10:39:07 UTC (rev 28968) +++ haiku/trunk/src/servers/app/drawing/Painter/AGGTextRenderer.h 2009-01-20 12:17:10 UTC (rev 28969) @@ -87,8 +87,6 @@ bool fAntialias; bool fKerning; Transformable fEmbeddedTransformation; // rotated or sheared font? - - static AGGTextRenderer sDefaultInstance; }; #endif // AGG_TEXT_RENDERER_H From jackburton at mail.berlios.de Tue Jan 20 17:10:05 2009 From: jackburton at mail.berlios.de (jackburton at mail.berlios.de) Date: Tue, 20 Jan 2009 17:10:05 +0100 Subject: [Haiku-commits] r28970 - in haiku/trunk/src/system/libroot/posix: glibc/stdlib glibc/wcsmbs locale Message-ID: <200901201610.n0KGA5Bh015505@sheep.berlios.de> Author: jackburton Date: 2009-01-20 17:09:58 +0100 (Tue, 20 Jan 2009) New Revision: 28970 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28970&view=rev Added: haiku/trunk/src/system/libroot/posix/locale/mb_defs.h haiku/trunk/src/system/libroot/posix/locale/mb_none.c haiku/trunk/src/system/libroot/posix/locale/mblen.c haiku/trunk/src/system/libroot/posix/locale/mbrlen.c haiku/trunk/src/system/libroot/posix/locale/mbrtowc.c haiku/trunk/src/system/libroot/posix/locale/mbsinit.c haiku/trunk/src/system/libroot/posix/locale/wcrtomb.c Modified: haiku/trunk/src/system/libroot/posix/glibc/stdlib/Jamfile haiku/trunk/src/system/libroot/posix/glibc/wcsmbs/Jamfile haiku/trunk/src/system/libroot/posix/locale/Jamfile Log: Imported some wide char functions from freebsd, adapted to the build, tried to integrate them with the glibc we are using. The mbtest supplied in ticket #2822 seems to work, without regressions. Please shout if there are issues. Modified: haiku/trunk/src/system/libroot/posix/glibc/stdlib/Jamfile =================================================================== --- haiku/trunk/src/system/libroot/posix/glibc/stdlib/Jamfile 2009-01-20 12:17:10 UTC (rev 28969) +++ haiku/trunk/src/system/libroot/posix/glibc/stdlib/Jamfile 2009-01-20 16:09:58 UTC (rev 28970) @@ -20,9 +20,9 @@ lcong48_r.c lrand48.c lrand48_r.c - mblen.c - mbstowcs.c - mbtowc.c + #mblen.c + #mbstowcs.c + #mbtowc.c mrand48.c mrand48_r.c nrand48.c @@ -32,6 +32,6 @@ seed48_r.c srand48.c srand48_r.c - wcstombs.c - wctomb.c + #wcstombs.c + #wctomb.c ; Modified: haiku/trunk/src/system/libroot/posix/glibc/wcsmbs/Jamfile =================================================================== --- haiku/trunk/src/system/libroot/posix/glibc/wcsmbs/Jamfile 2009-01-20 12:17:10 UTC (rev 28969) +++ haiku/trunk/src/system/libroot/posix/glibc/wcsmbs/Jamfile 2009-01-20 16:09:58 UTC (rev 28970) @@ -19,14 +19,14 @@ MergeObject posix_gnu_wcsmbs.o : btowc.c mbrlen.c - mbrtowc.c - mbsinit.c - mbsnrtowcs.c +# mbrtowc.c +# mbsinit.c +# mbsnrtowcs.c mbsrtowcs.c # mbsrtowcs_l.c wcpcpy.c wcpncpy.c - wcrtomb.c +# wcrtomb.c wcscasecmp.c # wcscasecmp_l.c wcscat.c Modified: haiku/trunk/src/system/libroot/posix/locale/Jamfile =================================================================== --- haiku/trunk/src/system/libroot/posix/locale/Jamfile 2009-01-20 12:17:10 UTC (rev 28969) +++ haiku/trunk/src/system/libroot/posix/locale/Jamfile 2009-01-20 16:09:58 UTC (rev 28970) @@ -4,4 +4,9 @@ #ctype.c localeconv.c setlocale.c + mb_none.c + mblen.c + mbrtowc.c + mbsinit.c + wcrtomb.c ; Added: haiku/trunk/src/system/libroot/posix/locale/mb_defs.h =================================================================== --- haiku/trunk/src/system/libroot/posix/locale/mb_defs.h 2009-01-20 12:17:10 UTC (rev 28969) +++ haiku/trunk/src/system/libroot/posix/locale/mb_defs.h 2009-01-20 16:09:58 UTC (rev 28970) @@ -0,0 +1,49 @@ +/*- + * Copyright (c) 2004 Tim J. Robbins. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD: src/lib/libc/locale/mblocal.h,v 1.5.18.1 2008/11/25 02:59:29 kensmith Exp $ + */ + +#ifndef _MB_DEFS_H_ +#define _MB_DEFS_H_ + +/* + * Conversion function pointers for current encoding. + */ +extern size_t (*__mbrtowc)(wchar_t *, const char *, + size_t, mbstate_t *); +extern int (*__mbsinit)(const mbstate_t *); +extern size_t (*__mbsnrtowcs)(wchar_t *, const char **, + size_t, size_t, mbstate_t *); +extern size_t (*__wcrtomb)(char *, wchar_t, mbstate_t *); +extern size_t (*__wcsnrtombs)(char *, const wchar_t **, + size_t, size_t, mbstate_t *); + +extern size_t __mbsnrtowcs_std(wchar_t * , const char **, + size_t, size_t, mbstate_t * ); +extern size_t __wcsnrtombs_std(char * , const wchar_t **, + size_t, size_t, mbstate_t * ); + +#endif /* _MB_DEFS_H_ */ Property changes on: haiku/trunk/src/system/libroot/posix/locale/mb_defs.h ___________________________________________________________________ Name: svn:executable + * Added: haiku/trunk/src/system/libroot/posix/locale/mb_none.c =================================================================== --- haiku/trunk/src/system/libroot/posix/locale/mb_none.c 2009-01-20 12:17:10 UTC (rev 28969) +++ haiku/trunk/src/system/libroot/posix/locale/mb_none.c 2009-01-20 16:09:58 UTC (rev 28970) @@ -0,0 +1,205 @@ +/* +** Copyright 2009, Stefano Ceccherini, stefano.ceccherini at gmail.com. All rights reserved. +** Distributed under the terms of the Haiku License. +*/ + +/*- + * Copyright (c) 2002-2004 Tim J. Robbins. All rights reserved. + * Copyright (c) 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Paul Borman at Krystal Technologies. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#if defined(LIBC_SCCS) && !defined(lint) +static char sccsid[] = "@(#)none.c 8.1 (Berkeley) 6/4/93"; +#endif /* LIBC_SCCS and not lint */ +#include + +/*__FBSDID("$FreeBSD: src/lib/libc/locale/none.c,v 1.14.2.1.4.1 2008/11/25 02:59:29 kensmith Exp $"); */ + +#include +#include +#include +#include +#include +#include +#include + +#include "mb_defs.h" + +static size_t _none_mbrtowc(wchar_t * , const char * , + size_t, mbstate_t * ); +static int _none_mbsinit(const mbstate_t *); +static size_t _none_mbsnrtowcs(wchar_t * dst, + const char ** src, size_t nms, size_t len, + mbstate_t * ps); +static size_t _none_wcrtomb(char * , wchar_t, + mbstate_t * ); +static size_t _none_wcsnrtombs(char * , const wchar_t ** , + size_t, size_t, mbstate_t * ); + +/* setup defaults */ + +int __mb_cur_max = 1; +int __mb_sb_limit = 256; + +int +_none_init() +{ + + __mbrtowc = _none_mbrtowc; + __mbsinit = _none_mbsinit; + __mbsnrtowcs = _none_mbsnrtowcs; + __wcrtomb = _none_wcrtomb; + __wcsnrtombs = _none_wcsnrtombs; + __mb_cur_max = 1; + __mb_sb_limit = 256; + return(0); +} + + +static int +_none_mbsinit(const mbstate_t *ps) +{ + + /* + * Encoding is not state dependent - we are always in the + * initial state. + */ + return (1); +} + + +static size_t +_none_mbrtowc(wchar_t * pwc, const char * s, size_t n, + mbstate_t * ps) +{ + + if (s == NULL) + /* Reset to initial shift state (no-op) */ + return (0); + if (n == 0) + /* Incomplete multibyte sequence */ + return ((size_t)-2); + if (pwc != NULL) + *pwc = (unsigned char)*s; + return (*s == '\0' ? 0 : 1); +} + + +static size_t +_none_wcrtomb(char * s, wchar_t wc, + mbstate_t * ps) +{ + + if (s == NULL) + /* Reset to initial shift state (no-op) */ + return (1); + if (wc < 0 || wc > UCHAR_MAX) { + errno = EILSEQ; + return ((size_t)-1); + } + *s = (unsigned char)wc; + return (1); +} + + +static size_t +_none_mbsnrtowcs(wchar_t * dst, const char ** src, + size_t nms, size_t len, mbstate_t * ps) +{ + const char *s; + size_t nchr; + + if (dst == NULL) { + s = memchr(*src, '\0', nms); + return (s != NULL ? s - *src : nms); + } + + s = *src; + nchr = 0; + while (len-- > 0 && nms-- > 0) { + if ((*dst++ = (unsigned char)*s++) == L'\0') { + *src = NULL; + return (nchr); + } + nchr++; + } + *src = s; + return (nchr); +} + + +static size_t +_none_wcsnrtombs(char * dst, const wchar_t ** src, + size_t nwc, size_t len, mbstate_t * ps) +{ + const wchar_t *s; + size_t nchr; + + if (dst == NULL) { + for (s = *src; nwc > 0 && *s != L'\0'; s++, nwc--) { + if (*s < 0 || *s > UCHAR_MAX) { + errno = EILSEQ; + return ((size_t)-1); + } + } + return (s - *src); + } + + s = *src; + nchr = 0; + while (len-- > 0 && nwc-- > 0) { + if (*s < 0 || *s > UCHAR_MAX) { + errno = EILSEQ; + return ((size_t)-1); + } + if ((*dst++ = *s++) == '\0') { + *src = NULL; + return (nchr); + } + nchr++; + } + *src = s; + return (nchr); +} + + +/* setup defaults */ + +size_t (*__mbrtowc)(wchar_t * , const char * , size_t, + mbstate_t * ) = _none_mbrtowc; +int (*__mbsinit)(const mbstate_t *) = _none_mbsinit; +size_t (*__mbsnrtowcs)(wchar_t * , const char ** , + size_t, size_t, mbstate_t * ) = _none_mbsnrtowcs; +size_t (*__wcrtomb)(char * , wchar_t, mbstate_t * ) = + _none_wcrtomb; +size_t (*__wcsnrtombs)(char * , const wchar_t ** , + size_t, size_t, mbstate_t * ) = _none_wcsnrtombs; + Property changes on: haiku/trunk/src/system/libroot/posix/locale/mb_none.c ___________________________________________________________________ Name: svn:executable + * Added: haiku/trunk/src/system/libroot/posix/locale/mblen.c =================================================================== --- haiku/trunk/src/system/libroot/posix/locale/mblen.c 2009-01-20 12:17:10 UTC (rev 28969) +++ haiku/trunk/src/system/libroot/posix/locale/mblen.c 2009-01-20 16:09:58 UTC (rev 28970) @@ -0,0 +1,50 @@ +/*- + * Copyright (c) 2002-2004 Tim J. Robbins. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +/*__FBSDID("$FreeBSD: src/lib/libc/locale/mblen.c,v 1.9.26.1 2008/11/25 02:59:29 kensmith Exp $"); */ + +#include +#include +#include "mb_defs.h" + +int +mblen(const char *s, size_t n) +{ + static const mbstate_t initial; + static mbstate_t mbs; + size_t rval; + + if (s == NULL) { + /* No support for state dependent encodings. */ + mbs = initial; + return (0); + } + rval = __mbrtowc(NULL, s, n, &mbs); + if (rval == (size_t)-1 || rval == (size_t)-2) + return (-1); + return ((int)rval); +} Property changes on: haiku/trunk/src/system/libroot/posix/locale/mblen.c ___________________________________________________________________ Name: svn:executable + * Added: haiku/trunk/src/system/libroot/posix/locale/mbrlen.c =================================================================== --- haiku/trunk/src/system/libroot/posix/locale/mbrlen.c 2009-01-20 12:17:10 UTC (rev 28969) +++ haiku/trunk/src/system/libroot/posix/locale/mbrlen.c 2009-01-20 16:09:58 UTC (rev 28970) @@ -0,0 +1,41 @@ +/*- + * Copyright (c) 2002-2004 Tim J. Robbins. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +/*__FBSDID("$FreeBSD: src/lib/libc/locale/mbrlen.c,v 1.4.26.1 2008/11/25 02:59:29 kensmith Exp $"); */ + +#include +#include "mb_defs.h" + +size_t +mbrlen(const char *s, size_t n, mbstate_t *ps) +{ + static mbstate_t mbs; + + if (ps == NULL) + ps = &mbs; + return (__mbrtowc(NULL, s, n, ps)); +} Property changes on: haiku/trunk/src/system/libroot/posix/locale/mbrlen.c ___________________________________________________________________ Name: svn:executable + * Added: haiku/trunk/src/system/libroot/posix/locale/mbrtowc.c =================================================================== --- haiku/trunk/src/system/libroot/posix/locale/mbrtowc.c 2009-01-20 12:17:10 UTC (rev 28969) +++ haiku/trunk/src/system/libroot/posix/locale/mbrtowc.c 2009-01-20 16:09:58 UTC (rev 28970) @@ -0,0 +1,42 @@ +/*- + * Copyright (c) 2002-2004 Tim J. Robbins. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +/*__FBSDID("$FreeBSD: src/lib/libc/locale/mbrtowc.c,v 1.7.26.1 2008/11/25 02:59:29 kensmith Exp $"); */ + +#include +#include "mb_defs.h" + +size_t +mbrtowc(wchar_t *pwc, const char *s, + size_t n, mbstate_t *ps) +{ + static mbstate_t mbs; + + if (ps == NULL) + ps = &mbs; + return (__mbrtowc(pwc, s, n, ps)); +} Property changes on: haiku/trunk/src/system/libroot/posix/locale/mbrtowc.c ___________________________________________________________________ Name: svn:executable + * Added: haiku/trunk/src/system/libroot/posix/locale/mbsinit.c =================================================================== --- haiku/trunk/src/system/libroot/posix/locale/mbsinit.c 2009-01-20 12:17:10 UTC (rev 28969) +++ haiku/trunk/src/system/libroot/posix/locale/mbsinit.c 2009-01-20 16:09:58 UTC (rev 28970) @@ -0,0 +1,38 @@ +/*- + * Copyright (c) 2002-2004 Tim J. Robbins. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +/*__FBSDID("$FreeBSD: src/lib/libc/locale/mbsinit.c,v 1.3.26.1 2008/11/25 02:59:29 kensmith Exp $"); */ + +#include +#include "mb_defs.h" + +int +mbsinit(const mbstate_t *ps) +{ + + return (__mbsinit(ps)); +} Property changes on: haiku/trunk/src/system/libroot/posix/locale/mbsinit.c ___________________________________________________________________ Name: svn:executable + * Added: haiku/trunk/src/system/libroot/posix/locale/wcrtomb.c =================================================================== --- haiku/trunk/src/system/libroot/posix/locale/wcrtomb.c 2009-01-20 12:17:10 UTC (rev 28969) +++ haiku/trunk/src/system/libroot/posix/locale/wcrtomb.c 2009-01-20 16:09:58 UTC (rev 28970) @@ -0,0 +1,41 @@ +/*- + * Copyright (c) 2002-2004 Tim J. Robbins. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include +/*__FBSDID("$FreeBSD: src/lib/libc/locale/wcrtomb.c,v 1.8.26.1 2008/11/25 02:59:29 kensmith Exp $"); */ + +#include +#include "mb_defs.h" + +size_t +wcrtomb(char *s, wchar_t wc, mbstate_t *ps) +{ + static mbstate_t mbs; + + if (ps == NULL) + ps = &mbs; + return (__wcrtomb(s, wc, ps)); +} Property changes on: haiku/trunk/src/system/libroot/posix/locale/wcrtomb.c ___________________________________________________________________ Name: svn:executable + * From jackburton at mail.berlios.de Tue Jan 20 17:10:41 2009 From: jackburton at mail.berlios.de (jackburton at mail.berlios.de) Date: Tue, 20 Jan 2009 17:10:41 +0100 Subject: [Haiku-commits] r28971 - haiku/trunk/src/tests/system/libroot/posix Message-ID: <200901201610.n0KGAfQv015631@sheep.berlios.de> Author: jackburton Date: 2009-01-20 17:10:39 +0100 (Tue, 20 Jan 2009) New Revision: 28971 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28971&view=rev Added: haiku/trunk/src/tests/system/libroot/posix/mbtest.c Modified: haiku/trunk/src/tests/system/libroot/posix/Jamfile Log: added mbtest to the build Modified: haiku/trunk/src/tests/system/libroot/posix/Jamfile =================================================================== --- haiku/trunk/src/tests/system/libroot/posix/Jamfile 2009-01-20 16:09:58 UTC (rev 28970) +++ haiku/trunk/src/tests/system/libroot/posix/Jamfile 2009-01-20 16:10:39 UTC (rev 28971) @@ -68,6 +68,10 @@ : xsi_sem_test1.cpp ; +SimpleTest mbtest + : mbtest.c +; + # Tell Jam where to find these sources SEARCH on [ FGristFiles syslog.cpp Added: haiku/trunk/src/tests/system/libroot/posix/mbtest.c =================================================================== --- haiku/trunk/src/tests/system/libroot/posix/mbtest.c 2009-01-20 16:09:58 UTC (rev 28970) +++ haiku/trunk/src/tests/system/libroot/posix/mbtest.c 2009-01-20 16:10:39 UTC (rev 28971) @@ -0,0 +1,12 @@ +#include +#include +#include + +int main(int argc, char** argv) { + + setlocale(LC_CTYPE, ""); + + printf("Len: %i\n", mblen(argv[1], SSIZE_MAX)); + + return 0; +} Property changes on: haiku/trunk/src/tests/system/libroot/posix/mbtest.c ___________________________________________________________________ Name: svn:executable + * From anevilyak at gmail.com Tue Jan 20 18:25:18 2009 From: anevilyak at gmail.com (Rene Gollent) Date: Tue, 20 Jan 2009 11:25:18 -0600 Subject: [Haiku-commits] r28963 - haiku/trunk/src/apps/cdplayer In-Reply-To: <1987414868-BeMail@zon> References: <200901200142.n0K1gHX2021169@sheep.berlios.de> <1987414868-BeMail@zon> Message-ID: On Tue, Jan 20, 2009 at 3:18 AM, Axel D?rfler wrote: > > Superfluous parenthesis. > > > -> "} else" (on one line) Will fix those when I get home from work, thanks for the heads up :) > In any case, I really think we should just remove CDPlayer instead, > though :-) > Yes and no. Can MediaPlayer currently handle CDs? If so, I'd agree, otherwise I'd say wait until the support for that is in place. Regards, Rene From axeld at pinc-software.de Tue Jan 20 18:34:56 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Tue, 20 Jan 2009 18:34:56 +0100 CET Subject: [Haiku-commits] r28963 - haiku/trunk/src/apps/cdplayer In-Reply-To: Message-ID: <31750524100-BeMail@zon> Rene Gollent wrote: > Yes and no. Can MediaPlayer currently handle CDs? If so, I'd agree, > otherwise I'd say wait until the support for that is in place. Yes and no ;-) Since we have the CDDA file system, every media player capable of playing WAVs can handle CDs. However, playing the CD directly, that is using a headphone on the CD player, won't work. CDPlayer itself should also only work correctly if you happen to have connected your CD player with your sound card. Bye, Axel. From anevilyak at gmail.com Tue Jan 20 18:53:54 2009 From: anevilyak at gmail.com (Rene Gollent) Date: Tue, 20 Jan 2009 11:53:54 -0600 Subject: [Haiku-commits] r28963 - haiku/trunk/src/apps/cdplayer In-Reply-To: <31750524100-BeMail@zon> References: <31750524100-BeMail@zon> Message-ID: On Tue, Jan 20, 2009 at 11:34 AM, Axel D?rfler wrote: > Yes and no ;-) > Since we have the CDDA file system, every media player capable of > playing WAVs can handle CDs. However, playing the CD directly, that is > using a headphone on the CD player, won't work. CDPlayer itself should > also only work correctly if you happen to have connected your CD player > with your sound card. True. If that's the case though, it would be nice if Media Player could somehow make it a bit more transparent to play a CD via cdda-fs though, I'm not sure it currently has a way other than manually browsing to the mounted cdda filesystem, does it? Otherwise, I guess it'd be safe to remove CDPlayer then. Regards, Rene From axeld at mail.berlios.de Tue Jan 20 21:38:44 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Tue, 20 Jan 2009 21:38:44 +0100 Subject: [Haiku-commits] r28972 - haiku/trunk/src/apps/diskprobe Message-ID: <200901202038.n0KKci1e025524@sheep.berlios.de> Author: axeld Date: 2009-01-20 21:38:44 +0100 (Tue, 20 Jan 2009) New Revision: 28972 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28972&view=rev Modified: haiku/trunk/src/apps/diskprobe/ProbeView.cpp Log: * Use the new get_device_icon() call under Haiku. This fixes bug #3325. * Whitespace cleanup. Modified: haiku/trunk/src/apps/diskprobe/ProbeView.cpp =================================================================== --- haiku/trunk/src/apps/diskprobe/ProbeView.cpp 2009-01-20 16:10:39 UTC (rev 28971) +++ haiku/trunk/src/apps/diskprobe/ProbeView.cpp 2009-01-20 20:38:44 UTC (rev 28972) @@ -1,5 +1,5 @@ /* - * Copyright 2004-2008, Axel D?rfler, axeld at pinc-software.de. All rights reserved. + * Copyright 2004-2009, Axel D?rfler, axeld at pinc-software.de. * Distributed under the terms of the MIT License. */ @@ -158,7 +158,7 @@ class TypeMenuItem : public BMenuItem { public: TypeMenuItem(const char *name, const char *type, BMessage *message); - + virtual void GetContentSize(float *_width, float *_height); virtual void DrawContent(); @@ -235,7 +235,7 @@ } -void +void IconView::AttachedToWindow() { if (Parent() != NULL) @@ -245,7 +245,7 @@ } -void +void IconView::Draw(BRect updateRect) { if (fBitmap == NULL) @@ -257,7 +257,7 @@ } -void +void IconView::UpdateIcon() { if (fBitmap == NULL) @@ -271,16 +271,12 @@ status_t status = B_ERROR; if (fIsDevice) { - BBitmap* icon = new BBitmap(BRect(0, 0, 31, 31), B_CMAP8); - // TODO: as long as we'll use get_device_icon() for this - BPath path(&fRef); - status = get_device_icon(path.Path(), icon->Bits(), B_LARGE_ICON); - if (status == B_OK) { - delete fBitmap; - fBitmap = icon; - } else - delete icon; +#ifdef __HAIKU__ + status = get_device_icon(path.Path(), fBitmap, B_LARGE_ICON); +#else + status = get_device_icon(path.Path(), fBitmap->Bits(), B_LARGE_ICON); +#endif } else status = BNodeInfo::GetTrackerIcon(&fRef, fBitmap); @@ -325,7 +321,7 @@ #ifdef DRAW_SLIDER_BAR -void +void PositionSlider::DrawBar() { BView *view = OffscreenView(); @@ -442,7 +438,7 @@ } -void +void PositionSlider::SetBlockSize(uint32 blockSize) { if (blockSize == fBlockSize) @@ -623,7 +619,7 @@ fStopButton->SetTarget(Parent()); fPositionControl->SetTarget(this); fPositionSlider->SetTarget(this); - + BMessage *message; Window()->AddShortcut(B_HOME, B_COMMAND_KEY, message = new BMessage(kMsgPositionUpdate), this); @@ -667,7 +663,7 @@ } -void +void HeaderView::GetPreferredSize(float *_width, float *_height) { if (_width) @@ -677,14 +673,14 @@ } -void +void HeaderView::UpdateIcon() { fIconView->UpdateIcon(); } -void +void HeaderView::FormatValue(char *buffer, size_t bufferSize, off_t value) { snprintf(buffer, bufferSize, fBase == kHexBase ? "0x%Lx" : "%Ld", value); @@ -705,7 +701,7 @@ } -void +void HeaderView::UpdateOffsetViews(bool all) { char buffer[64]; @@ -719,7 +715,7 @@ } -void +void HeaderView::UpdateFileSizeView() { char buffer[64]; @@ -730,7 +726,7 @@ } -void +void HeaderView::SetBase(base_type type) { if (fBase == type) @@ -744,7 +740,7 @@ } -void +void HeaderView::SetTo(off_t position, uint32 blockSize) { fPosition = position; @@ -925,7 +921,7 @@ } -void +void TypeMenuItem::GetContentSize(float *_width, float *_height) { BMenuItem::GetContentSize(_width, _height); @@ -935,7 +931,7 @@ } -void +void TypeMenuItem::DrawContent() { // draw the label @@ -1132,7 +1128,7 @@ } -void +void TypeView::FrameResized(float width, float height) { BRect rect = Bounds(); @@ -1193,7 +1189,7 @@ } -void +void ProbeView::UpdateSizeLimits() { if (Window() == NULL) @@ -1224,7 +1220,7 @@ } -void +void ProbeView::DetachedFromWindow() { fEditorLooper->QuitFind(); @@ -1294,7 +1290,7 @@ } -void +void ProbeView::AddSaveMenuItems(BMenu* menu, int32 index) { menu->AddItem(fSaveMenuItem = new BMenuItem("Save", @@ -1305,7 +1301,7 @@ } -void +void ProbeView::AddPrintMenuItems(BMenu* menu, int32 index) { BMenuItem *item; @@ -1318,7 +1314,7 @@ } -void +void ProbeView::AddViewAsMenuItems() { #if 0 @@ -1358,7 +1354,7 @@ } -void +void ProbeView::AttachedToWindow() { fEditorLooper = new EditorLooper(fEditor.Ref().name, fEditor, @@ -1656,7 +1652,7 @@ } -void +void ProbeView::_AddBookmark(off_t position) { int32 count = fBookmarkMenu->CountItems(); From mmlr at mail.berlios.de Tue Jan 20 21:59:42 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 20 Jan 2009 21:59:42 +0100 Subject: [Haiku-commits] r28973 - haiku/trunk/src/add-ons/kernel/bus_managers/usb Message-ID: <200901202059.n0KKxgOj026957@sheep.berlios.de> Author: mmlr Date: 2009-01-20 21:59:40 +0100 (Tue, 20 Jan 2009) New Revision: 28973 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28973&view=rev Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/Stack.cpp Log: Tiny cleanup. Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/Stack.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/usb/Stack.cpp 2009-01-20 20:38:44 UTC (rev 28972) +++ haiku/trunk/src/add-ons/kernel/bus_managers/usb/Stack.cpp 2009-01-20 20:59:40 UTC (rev 28973) @@ -111,7 +111,7 @@ mutex_lock(&fExploreLock); mutex_destroy(&fExploreLock); - //Release the bus modules + // Release the bus modules for (Vector::Iterator i = fBusManagers.Begin(); i != fBusManagers.End(); i++) { delete (*i); From anevilyak at mail.berlios.de Wed Jan 21 02:22:32 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Wed, 21 Jan 2009 02:22:32 +0100 Subject: [Haiku-commits] r28974 - haiku/trunk/src/apps/cdplayer Message-ID: <200901210122.n0L1MWEL007107@sheep.berlios.de> Author: anevilyak Date: 2009-01-21 02:22:30 +0100 (Wed, 21 Jan 2009) New Revision: 28974 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28974&view=rev Modified: haiku/trunk/src/apps/cdplayer/CDPlayer.cpp Log: Fix a few style violations from my previous commit. (thanks Axel!) Modified: haiku/trunk/src/apps/cdplayer/CDPlayer.cpp =================================================================== --- haiku/trunk/src/apps/cdplayer/CDPlayer.cpp 2009-01-20 20:59:40 UTC (rev 28973) +++ haiku/trunk/src/apps/cdplayer/CDPlayer.cpp 2009-01-21 01:22:30 UTC (rev 28974) @@ -106,7 +106,7 @@ bool CDPlayer::InitCheck() { - return (fCDDrive.CountDrives() > 0); + return fCDDrive.CountDrives() > 0; } @@ -649,8 +649,7 @@ window->ResizeTo(view->Bounds().Width(), view->Bounds().Height()); window->AddChild(view); window->Show(); - } - else + } else PostMessage(B_QUIT_REQUESTED); } From axeld at mail.berlios.de Wed Jan 21 09:30:25 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Wed, 21 Jan 2009 09:30:25 +0100 Subject: [Haiku-commits] r28975 - haiku/trunk/src/apps/diskprobe Message-ID: <200901210830.n0L8UP9q001300@sheep.berlios.de> Author: axeld Date: 2009-01-21 09:30:24 +0100 (Wed, 21 Jan 2009) New Revision: 28975 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28975&view=rev Modified: haiku/trunk/src/apps/diskprobe/DataView.cpp haiku/trunk/src/apps/diskprobe/DataView.h Log: * Resolved a TODO and implemented an is_valid_utf8() function that replaces the former is_valid_ascii(). This function is now also exported in the header. * Some cleanup. Modified: haiku/trunk/src/apps/diskprobe/DataView.cpp =================================================================== --- haiku/trunk/src/apps/diskprobe/DataView.cpp 2009-01-21 01:22:30 UTC (rev 28974) +++ haiku/trunk/src/apps/diskprobe/DataView.cpp 2009-01-21 08:30:24 UTC (rev 28975) @@ -1,5 +1,5 @@ /* - * Copyright 2004-2006, Axel D?rfler, axeld at pinc-software.de. All rights reserved. + * Copyright 2004-2009, Axel D?rfler, axeld at pinc-software.de. * Distributed under the terms of the MIT License. */ @@ -28,24 +28,58 @@ // these are determined by the implementation of DataView::ConvertLine() -/** This function checks if the buffer contains a valid ASCII - * string, following the convention from the DataView::ConvertLine() - * method: everything that's not replaced by a '.' there will be - * accepted. - */ - -// ToDo: a valid UTF-8 string would be nicer... - +/*! This function checks if the buffer contains a valid UTF-8 + string, following the convention from the DataView::ConvertLine() + method: everything that's not replaced by a '.' will be accepted. +*/ bool -is_valid_ascii(uint8 *data, size_t size) +is_valid_utf8(uint8 *data, size_t size) { for (size_t i = 0; i < size; i++) { // accept a terminating null byte if (i == size - 1 && data[0] == '\0') return true; - if (data[i] < ' ' || data[i] == 0x7f || data[i] & 0x80) + if ((data[i] & 0x80) == 0) { + // a single byte character + if (data[i] < ' ' || data[i] == 0x7f) + return false; + + continue; + } + + if ((data[i] & 0xc0) == 0x80) { + // not a proper multibyte start return false; + } + + // start of a multibyte character + uint8 mask = 0x80; + uint32 result = (uint32)(data[i++] & 0xff); + + while (result & mask) { + if (mask == 0x02) { + // seven byte char - invalid + return false; + } + + result &= ~mask; + mask >>= 1; + } + + while (i < size && (data[i] & 0xc0) == 0x80) { + result <<= 6; + result += data[i++] & 0x3f; + + mask <<= 1; + if (mask == 0x40) + break; + } + + if (mask != 0x40) { + // not enough bytes in multibyte char + return false; + } } return true; @@ -90,14 +124,14 @@ } -void +void DataView::DetachedFromWindow() { fEditor.StopWatching(this); } -void +void DataView::AttachedToWindow() { fEditor.StartWatching(this); @@ -107,7 +141,7 @@ } -void +void DataView::UpdateFromEditor(BMessage *message) { if (fData == NULL) @@ -258,7 +292,7 @@ } -void +void DataView::Copy() { if (!be_clipboard->Lock()) @@ -273,7 +307,7 @@ clip->AddData(B_FILE_MIME_TYPE, B_MIME_TYPE, data, length); - if (is_valid_ascii(data, length)) + if (is_valid_utf8(data, length)) clip->AddData("text/plain", B_MIME_TYPE, data, length); be_clipboard->Commit(); @@ -283,7 +317,7 @@ } -void +void DataView::Paste() { if (!be_clipboard->Lock()) @@ -347,7 +381,7 @@ } -void +void DataView::Draw(BRect updateRect) { if (fData == NULL || fFileSize == 0) @@ -369,7 +403,7 @@ } -BRect +BRect DataView::DataBounds(bool inView) const { return BRect(0, 0, @@ -379,7 +413,7 @@ } -int32 +int32 DataView::PositionAt(view_focus focus, BPoint point, view_focus *_newFocus) { // clip the point into our data bounds @@ -727,7 +761,7 @@ int32 startLine = start / kBlockSize; int32 endLine = end / kBlockSize; - + if (endLine > startLine) { start = startLine * kBlockSize; end = (endLine + 1) * kBlockSize - 1; @@ -747,7 +781,7 @@ } -void +void DataView::MakeVisible(int32 position) { if (position < 0 || position > int32(fDataSize) - 1) @@ -798,7 +832,7 @@ } -void +void DataView::SetBase(base_type type) { if (fBase == type) @@ -809,7 +843,7 @@ } -void +void DataView::SetFocus(view_focus which) { if (which == fFocus) @@ -821,7 +855,7 @@ } -void +void DataView::SetActive(bool active) { if (active == fIsActive) @@ -841,7 +875,7 @@ } -void +void DataView::WindowActivated(bool active) { BView::WindowActivated(active); @@ -849,7 +883,7 @@ } -void +void DataView::MakeFocus(bool focus) { bool previous = IsFocus(); @@ -865,7 +899,7 @@ } -void +void DataView::UpdateScroller() { float width, height; @@ -940,7 +974,7 @@ size_t length = fEnd + 1 - fStart; drag->AddData(B_FILE_MIME_TYPE, B_MIME_TYPE, data, length); - if (is_valid_ascii(data, length)) + if (is_valid_utf8(data, length)) drag->AddData("text/plain", B_MIME_TYPE, data, length); // get a frame that contains the whole selection - SelectionFrame() @@ -968,7 +1002,7 @@ } -void +void DataView::MouseDown(BPoint where) { MakeFocus(true); @@ -1013,7 +1047,7 @@ } -void +void DataView::MouseMoved(BPoint where, uint32 transit, const BMessage *dragMessage) { if (transit == B_EXITED_VIEW && fDragMessageSize > 0) { @@ -1056,14 +1090,14 @@ } -void +void DataView::MouseUp(BPoint where) { fMouseSelectionStart = fKeySelectionStart = -1; } -void +void DataView::KeyDown(const char *bytes, int32 numBytes) { int32 modifiers; @@ -1227,7 +1261,7 @@ case B_DELETE: SetSelection(fStart, fStart); // to make sure only the cursor is selected - + if (fFocus == kHexFocus) { const uint8 *data = DataAt(fStart); if (data == NULL) @@ -1290,7 +1324,7 @@ } -float +float DataView::FontSize() const { BFont font; @@ -1300,7 +1334,7 @@ } -void +void DataView::SetFontSize(float point) { bool fit = (point == 0.0f); @@ -1326,7 +1360,7 @@ } -void +void DataView::GetPreferredSize(float *_width, float *_height) { BRect bounds = DataBounds(); Modified: haiku/trunk/src/apps/diskprobe/DataView.h =================================================================== --- haiku/trunk/src/apps/diskprobe/DataView.h 2009-01-21 01:22:30 UTC (rev 28974) +++ haiku/trunk/src/apps/diskprobe/DataView.h 2009-01-21 08:30:24 UTC (rev 28975) @@ -1,14 +1,14 @@ /* - * Copyright 2004, Axel D?rfler, axeld at pinc-software.de. All rights reserved. + * Copyright 2004-2009, Axel D?rfler, axeld at pinc-software.de. * Distributed under the terms of the MIT License. */ #ifndef DATA_VIEW_H #define DATA_VIEW_H +#include +#include #include -#include -#include class DataEditor; @@ -25,83 +25,90 @@ }; class DataView : public BView { - public: - DataView(BRect rect, DataEditor &editor); - virtual ~DataView(); +public: + DataView(BRect rect, DataEditor& editor); + virtual ~DataView(); - virtual void DetachedFromWindow(); - virtual void AttachedToWindow(); - virtual void MessageReceived(BMessage *message); - virtual void Draw(BRect updateRect); + virtual void DetachedFromWindow(); + virtual void AttachedToWindow(); + virtual void MessageReceived(BMessage* message); + virtual void Draw(BRect updateRect); - virtual void MouseDown(BPoint where); - virtual void MouseMoved(BPoint where, uint32 transit, const BMessage *message); - virtual void MouseUp(BPoint where); + virtual void MouseDown(BPoint where); + virtual void MouseMoved(BPoint where, uint32 transit, + const BMessage* message); + virtual void MouseUp(BPoint where); - virtual void KeyDown(const char *bytes, int32 numBytes); + virtual void KeyDown(const char* bytes, int32 numBytes); - virtual void WindowActivated(bool active); - virtual void MakeFocus(bool focus); - virtual void FrameResized(float width, float height); - virtual void SetFont(const BFont *font, uint32 properties = B_FONT_ALL); - virtual void GetPreferredSize(float *_width, float *_height); + virtual void WindowActivated(bool active); + virtual void MakeFocus(bool focus); + virtual void FrameResized(float width, float height); + virtual void SetFont(const BFont* font, + uint32 properties = B_FONT_ALL); + virtual void GetPreferredSize(float* _width, float* _height); - bool FontSizeFitsBounds() const { return fFitFontSize; } - float FontSize() const; - void SetFontSize(float point); + bool FontSizeFitsBounds() const { return fFitFontSize; } + float FontSize() const; + void SetFontSize(float point); - void UpdateScroller(); + void UpdateScroller(); - void MakeVisible(int32 position); - void SetSelection(int32 start, int32 end, view_focus focus = kNoFocus); - void GetSelection(int32 &start, int32 &end); - void InvalidateRange(int32 start, int32 end); + void MakeVisible(int32 position); + void SetSelection(int32 start, int32 end, + view_focus focus = kNoFocus); + void GetSelection(int32& start, int32& end); + void InvalidateRange(int32 start, int32 end); - base_type Base() const { return fBase; } - void SetBase(base_type type); + base_type Base() const { return fBase; } + void SetBase(base_type type); - const uint8 *DataAt(int32 start); + const uint8* DataAt(int32 start); - private: - BRect DataBounds(bool inView = false) const; - BRect SelectionFrame(view_focus which, int32 start, int32 end); - int32 PositionAt(view_focus focus, BPoint point, view_focus *_newFocus = NULL); +private: + BRect DataBounds(bool inView = false) const; + BRect SelectionFrame(view_focus which, int32 start, + int32 end); + int32 PositionAt(view_focus focus, BPoint point, + view_focus* _newFocus = NULL); - void DrawSelectionFrame(view_focus which); - void DrawSelectionBlock(view_focus which, int32 start, int32 end); - void DrawSelectionBlock(view_focus which); - void DrawSelection(bool frameOnly = false); - void SetActive(bool active); - void SetFocus(view_focus which); + void DrawSelectionFrame(view_focus which); + void DrawSelectionBlock(view_focus which, int32 start, + int32 end); + void DrawSelectionBlock(view_focus which); + void DrawSelection(bool frameOnly = false); + void SetActive(bool active); + void SetFocus(view_focus which); - void UpdateFromEditor(BMessage *message = NULL); - void ConvertLine(char *line, off_t offset, const uint8 *buffer, size_t size); + void UpdateFromEditor(BMessage* message = NULL); + void ConvertLine(char* line, off_t offset, + const uint8* buffer, size_t size); - bool AcceptsDrop(const BMessage *message); - void InitiateDrag(view_focus focus); - void Copy(); - void Paste(); + bool AcceptsDrop(const BMessage* message); + void InitiateDrag(view_focus focus); + void Copy(); + void Paste(); - DataEditor &fEditor; - int32 fPositionLength; - uint8 *fData; - size_t fDataSize; - off_t fFileSize; - size_t fSizeInView; - off_t fOffset; - float fAscent; - int32 fFontHeight; - float fCharWidth; - view_focus fFocus; - base_type fBase; - bool fIsActive; - int32 fStart, fEnd; - int32 fMouseSelectionStart; - int32 fKeySelectionStart; - int32 fBitPosition; - bool fFitFontSize; - int32 fDragMessageSize; - int32 fStoredStart, fStoredEnd; + DataEditor& fEditor; + int32 fPositionLength; + uint8* fData; + size_t fDataSize; + off_t fFileSize; + size_t fSizeInView; + off_t fOffset; + float fAscent; + int32 fFontHeight; + float fCharWidth; + view_focus fFocus; + base_type fBase; + bool fIsActive; + int32 fStart, fEnd; + int32 fMouseSelectionStart; + int32 fKeySelectionStart; + int32 fBitPosition; + bool fFitFontSize; + int32 fDragMessageSize; + int32 fStoredStart, fStoredEnd; }; static const uint32 kMsgBaseType = 'base'; @@ -113,4 +120,6 @@ static const uint32 kDataViewSelection = 'dsel'; static const uint32 kDataViewPreferredSize = 'dvps'; +extern bool is_valid_utf8(uint8* data, size_t size); + #endif /* DATA_VIEW_H */ From axeld at mail.berlios.de Wed Jan 21 09:31:44 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Wed, 21 Jan 2009 09:31:44 +0100 Subject: [Haiku-commits] r28976 - haiku/trunk/src/apps/diskprobe Message-ID: <200901210831.n0L8ViLF001430@sheep.berlios.de> Author: axeld Date: 2009-01-21 09:31:44 +0100 (Wed, 21 Jan 2009) New Revision: 28976 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28976&view=rev Modified: haiku/trunk/src/apps/diskprobe/FindWindow.cpp Log: * Implemented Copy(), Cut(), and Paste() for the hex mode. Additionally, the text view will now accept raw data in text mode as well. * This closes bug #3327. Modified: haiku/trunk/src/apps/diskprobe/FindWindow.cpp =================================================================== --- haiku/trunk/src/apps/diskprobe/FindWindow.cpp 2009-01-21 08:30:24 UTC (rev 28975) +++ haiku/trunk/src/apps/diskprobe/FindWindow.cpp 2009-01-21 08:31:44 UTC (rev 28976) @@ -1,21 +1,28 @@ -/* -** Copyright 2004, Axel D?rfler, axeld at pinc-software.de. All rights reserved. -** Distributed under the terms of the Haiku License. -*/ +/* + * Copyright 2004-2009, Axel D?rfler, axeld at pinc-software.de. + * Distributed under the terms of the MIT License. + */ #include "FindWindow.h" + +#include "DataView.h" #include "DiskProbe.h" +#include + #include -#include +#include +#include +#include +#include +#include #include +#include +#include #include -#include -#include #include -#include -#include +#include #include #include @@ -27,39 +34,44 @@ class FindTextView : public BTextView { - public: - FindTextView(BRect frame, const char *name, BRect textRect, uint32 resizeMask); +public: + FindTextView(BRect frame, const char* name, + BRect textRect, uint32 resizeMask); - virtual void MakeFocus(bool state); - virtual void TargetedByScrollView(BScrollView *view); + virtual void MakeFocus(bool state); + virtual void TargetedByScrollView(BScrollView* view); - find_mode Mode() const { return fMode; } - status_t SetMode(find_mode mode); + find_mode Mode() const { return fMode; } + status_t SetMode(find_mode mode); - void SetData(BMessage &message); - void GetData(BMessage &message); + void SetData(BMessage& message); + void GetData(BMessage& message); - virtual void KeyDown(const char *bytes, int32 numBytes); + virtual void KeyDown(const char* bytes, int32 numBytes); - protected: - virtual void InsertText(const char *text, int32 length, - int32 offset, const text_run_array *runs); + virtual bool AcceptsPaste(BClipboard* clipboard); + virtual void Copy(BClipboard* clipboard); + virtual void Cut(BClipboard* clipboard); + virtual void Paste(BClipboard* clipboard); - private: - void HexReformat(int32 oldCursor, int32 &newCursor); - status_t GetHexFromData(const uint8 *in, size_t inSize, char **_hex, size_t *_hexSize); - status_t GetDataFromHex(const char *text, size_t textLength, uint8 **_data, size_t *_dataSize); +protected: + virtual void InsertText(const char* text, int32 length, + int32 offset, const text_run_array* runs); - BScrollView *fScrollView; - find_mode fMode; +private: + void _HexReformat(int32 oldCursor, int32& newCursor); + status_t _GetHexFromData(const uint8* in, size_t inSize, + char** _hex, size_t* _hexSize); + status_t _GetDataFromHex(const char* text, size_t textLength, + uint8** _data, size_t* _dataSize); + + BScrollView* fScrollView; + find_mode fMode; }; -//--------------- - - -FindTextView::FindTextView(BRect frame, const char *name, BRect textRect, - uint32 resizeMask) +FindTextView::FindTextView(BRect frame, const char* name, BRect textRect, + uint32 resizeMask) : BTextView(frame, name, textRect, resizeMask), fScrollView(NULL), fMode(kAsciiMode) @@ -77,8 +89,8 @@ } -void -FindTextView::TargetedByScrollView(BScrollView *view) +void +FindTextView::TargetedByScrollView(BScrollView* view) { BTextView::TargetedByScrollView(view); fScrollView = view; @@ -86,11 +98,11 @@ void -FindTextView::HexReformat(int32 oldCursor, int32 &newCursor) +FindTextView::_HexReformat(int32 oldCursor, int32& newCursor) { - const char *text = Text(); + const char* text = Text(); int32 textLength = TextLength(); - char *insert = (char *)malloc(textLength * 2); + char* insert = (char*)malloc(textLength * 2); if (insert == NULL) return; @@ -130,8 +142,8 @@ void -FindTextView::InsertText(const char *text, int32 length, int32 offset, - const text_run_array *runs) +FindTextView::InsertText(const char* text, int32 length, int32 offset, + const text_run_array* runs) { if (fMode == kHexMode) { if (offset > TextLength()) @@ -145,7 +157,7 @@ GetSelection(&start, &end); int32 cursor; - HexReformat(offset, cursor); + _HexReformat(offset, cursor); if (length == 1 && start == offset) Select(cursor + 1, cursor + 1); @@ -154,8 +166,8 @@ } -void -FindTextView::KeyDown(const char *bytes, int32 numBytes) +void +FindTextView::KeyDown(const char* bytes, int32 numBytes) { if (fMode == kHexMode) { // filter out invalid (for hex mode) characters @@ -193,7 +205,7 @@ if (bytes[0] == B_BACKSPACE) GetSelection(&start, &end); - HexReformat(start, start); + _HexReformat(start, start); Select(start, start); return; } @@ -217,29 +229,144 @@ } +bool +FindTextView::AcceptsPaste(BClipboard* clipboard) +{ + if (clipboard == NULL) + return false; + + AutoLocker _(clipboard); + + BMessage* clip = clipboard->Data(); + if (clip == NULL) + return false; + + if (clip->HasData(B_FILE_MIME_TYPE, B_MIME_TYPE) + || clip->HasData("text/plain", B_MIME_TYPE)) + return true; + + return BTextView::AcceptsPaste(clipboard); +} + + +void +FindTextView::Copy(BClipboard* clipboard) +{ + if (fMode != kHexMode) { + BTextView::Copy(clipboard); + return; + } + + int32 start, end; + GetSelection(&start, &end); + + if (clipboard == NULL || start == end) + return; + + AutoLocker _(clipboard); + + BMessage* clip = clipboard->Data(); + if (clip == NULL) + return; + + // convert hex-text to real data + uint8* data; + size_t dataSize; + if (_GetDataFromHex(Text() + start, end - start, &data, &dataSize) + != B_OK) + return; + + clip->AddData(B_FILE_MIME_TYPE, B_MIME_TYPE, data, dataSize); + + if (is_valid_utf8(data, dataSize)) + clip->AddData("text/plain", B_MIME_TYPE, data, dataSize); + + free(data); +} + + +void +FindTextView::Cut(BClipboard* clipboard) +{ + if (fMode != kHexMode) { + BTextView::Cut(clipboard); + return; + } + + int32 start, end; + GetSelection(&start, &end); + if (clipboard == NULL || start == end) + return; + + AutoLocker _(clipboard); + + BMessage* clip = clipboard->Data(); + if (clip == NULL) + return; + + Copy(clipboard); + Clear(); +} + + +void +FindTextView::Paste(BClipboard* clipboard) +{ + if (clipboard == NULL) + return; + + AutoLocker _(clipboard); + + BMessage* clip = clipboard->Data(); + if (clip == NULL) + return; + + const uint8* data; + ssize_t dataSize; + if (clip->FindData(B_FILE_MIME_TYPE, B_MIME_TYPE, (const void**)&data, + &dataSize) == B_OK) { + if (fMode == kHexMode) { + char* hex; + size_t hexSize; + if (_GetHexFromData(data, dataSize, &hex, &hexSize) < B_OK) + return; + + SetText(hex, hexSize); + free(hex); + } else + SetText((char*)data, dataSize); + return; + } + + BTextView::Paste(clipboard); +} + + status_t -FindTextView::GetHexFromData(const uint8 *in, size_t inSize, char **_hex, size_t *_hexSize) +FindTextView::_GetHexFromData(const uint8* in, size_t inSize, char** _hex, + size_t* _hexSize) { - char *hex = (char *)malloc(inSize * 3 + 1); + char* hex = (char*)malloc(inSize * 3 + 1); if (hex == NULL) return B_NO_MEMORY; - char *out = hex; + char* out = hex; for (uint32 i = 0; i < inSize; i++) { - out += sprintf(out, "%02x", *(unsigned char *)(in + i)); + out += sprintf(out, "%02x", *(unsigned char*)(in + i)); } out[0] = '\0'; - + *_hex = hex; *_hexSize = out + 1 - hex; return B_OK; } -status_t -FindTextView::GetDataFromHex(const char *text, size_t textLength, uint8 **_data, size_t *_dataSize) +status_t +FindTextView::_GetDataFromHex(const char* text, size_t textLength, uint8** _data, + size_t* _dataSize) { - uint8 *data = (uint8 *)malloc(textLength); + uint8* data = (uint8*)malloc(textLength); if (data == NULL) return B_NO_MEMORY; @@ -283,9 +410,10 @@ if (mode == kHexMode) { // convert text to hex mode - char *hex; + char* hex; size_t hexSize; - if (GetHexFromData((const uint8 *)Text(), TextLength(), &hex, &hexSize) < B_OK) + if (_GetHexFromData((const uint8*)Text(), TextLength(), &hex, &hexSize) + < B_OK) return B_NO_MEMORY; fMode = mode; @@ -294,56 +422,57 @@ free(hex); } else { // convert hex to ascii - - uint8 *data; + + uint8* data; size_t dataSize; - if (GetDataFromHex(Text(), TextLength(), &data, &dataSize) < B_OK) + if (_GetDataFromHex(Text(), TextLength(), &data, &dataSize) < B_OK) return B_NO_MEMORY; fMode = mode; - SetText((const char *)data, dataSize); + SetText((const char*)data, dataSize); free(data); } - return B_OK; + return B_OK; } void -FindTextView::SetData(BMessage &message) +FindTextView::SetData(BMessage& message) { - const uint8 *data; + const uint8* data; ssize_t dataSize; - if (message.FindData("data", B_RAW_TYPE, (const void **)&data, &dataSize) != B_OK) + if (message.FindData("data", B_RAW_TYPE, + (const void**)&data, &dataSize) != B_OK) return; if (fMode == kHexMode) { - char *hex; + char* hex; size_t hexSize; - if (GetHexFromData(data, dataSize, &hex, &hexSize) < B_OK) + if (_GetHexFromData(data, dataSize, &hex, &hexSize) < B_OK) return; SetText(hex, hexSize); free(hex); } else - SetText((char *)data, dataSize); + SetText((char*)data, dataSize); } void -FindTextView::GetData(BMessage &message) +FindTextView::GetData(BMessage& message) { if (fMode == kHexMode) { // convert hex-text to real data - uint8 *data; + uint8* data; size_t dataSize; - if (GetDataFromHex(Text(), TextLength(), &data, &dataSize) != B_OK) + if (_GetDataFromHex(Text(), TextLength(), &data, &dataSize) != B_OK) return; message.AddData("data", B_RAW_TYPE, data, dataSize); free(data); - } else + } else message.AddData("data", B_RAW_TYPE, Text(), TextLength()); } @@ -351,12 +480,12 @@ // #pragma mark - -FindWindow::FindWindow(BRect _rect, BMessage &previous, BMessenger &target, - const BMessage *settings) +FindWindow::FindWindow(BRect _rect, BMessage& previous, BMessenger& target, + const BMessage* settings) : BWindow(_rect, "Find", B_TITLED_WINDOW, B_ASYNCHRONOUS_CONTROLS), fTarget(target) { - BView *view = new BView(Bounds(), "main", B_FOLLOW_ALL, 0); + BView* view = new BView(Bounds(), "main", B_FOLLOW_ALL, 0); view->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); AddChild(view); @@ -367,41 +496,44 @@ // add the top widgets fMenu = new BPopUpMenu("mode"); - BMessage *message; - BMenuItem *item; - fMenu->AddItem(item = new BMenuItem("Text", message = new BMessage(kMsgFindMode))); + BMessage* message; + BMenuItem* item; + fMenu->AddItem(item = new BMenuItem("Text", + message = new BMessage(kMsgFindMode))); message->AddInt8("mode", kAsciiMode); if (mode == kAsciiMode) item->SetMarked(true); - fMenu->AddItem(item = new BMenuItem("Hexadecimal", message = new BMessage(kMsgFindMode))); + fMenu->AddItem(item = new BMenuItem("Hexadecimal", + message = new BMessage(kMsgFindMode))); message->AddInt8("mode", kHexMode); if (mode == kHexMode) item->SetMarked(true); BRect rect = Bounds().InsetByCopy(5, 5); - BMenuField *menuField = new BMenuField(rect, B_EMPTY_STRING, - "Mode:", fMenu, B_FOLLOW_LEFT | B_FOLLOW_TOP); + BMenuField* menuField = new BMenuField(rect, B_EMPTY_STRING, + "Mode:", fMenu, B_FOLLOW_LEFT | B_FOLLOW_TOP); menuField->SetDivider(menuField->StringWidth(menuField->Label()) + 8); menuField->ResizeToPreferred(); view->AddChild(menuField); // add the bottom widgets - BButton *button = new BButton(rect, B_EMPTY_STRING, "Find", new BMessage(kMsgStartFind), - B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM); + BButton* button = new BButton(rect, B_EMPTY_STRING, "Find", + new BMessage(kMsgStartFind), B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM); button->MakeDefault(true); button->ResizeToPreferred(); button->MoveTo(rect.right - button->Bounds().Width(), - rect.bottom - button->Bounds().Height()); + rect.bottom - button->Bounds().Height()); view->AddChild(button); fCaseCheckBox = new BCheckBox(rect, B_EMPTY_STRING, "Case sensitive", - NULL, B_FOLLOW_LEFT | B_FOLLOW_BOTTOM); + NULL, B_FOLLOW_LEFT | B_FOLLOW_BOTTOM); fCaseCheckBox->ResizeToPreferred(); fCaseCheckBox->MoveTo(5, button->Frame().top); bool caseSensitive; if (previous.FindBool("case_sensitive", &caseSensitive) != B_OK) { - if (settings == NULL || settings->FindBool("case_sensitive", &caseSensitive) != B_OK) + if (settings == NULL + || settings->FindBool("case_sensitive", &caseSensitive) != B_OK) caseSensitive = true; } fCaseCheckBox->SetValue(caseSensitive); @@ -413,19 +545,19 @@ rect.bottom = fCaseCheckBox->Frame().top - 8; rect.InsetBy(2, 2); fTextView = new FindTextView(rect, B_EMPTY_STRING, - rect.OffsetToCopy(B_ORIGIN).InsetByCopy(3, 3), - B_FOLLOW_ALL); + rect.OffsetToCopy(B_ORIGIN).InsetByCopy(3, 3), B_FOLLOW_ALL); fTextView->SetWordWrap(true); fTextView->SetMode((find_mode)mode); fTextView->SetData(previous); - BScrollView *scrollView = new BScrollView("scroller", fTextView, B_FOLLOW_ALL, B_WILL_DRAW, false, false); + BScrollView* scrollView = new BScrollView("scroller", fTextView, + B_FOLLOW_ALL, B_WILL_DRAW, false, false); view->AddChild(scrollView); ResizeTo(290, button->Frame().Height() * 3 + 30); - SetSizeLimits(fCaseCheckBox->Bounds().Width() + button->Bounds().Width() + 20, - 32768, button->Frame().Height() * 3 + 10, 32768); + SetSizeLimits(fCaseCheckBox->Bounds().Width() + button->Bounds().Width() + + 20, 32768, button->Frame().Height() * 3 + 10, 32768); } @@ -434,15 +566,15 @@ } -void +void FindWindow::WindowActivated(bool active) { fTextView->MakeFocus(active); } -void -FindWindow::MessageReceived(BMessage *message) +void +FindWindow::MessageReceived(BMessage* message) { switch (message->what) { case kMsgFindMode: @@ -471,14 +603,14 @@ PostMessage(B_QUIT_REQUESTED); break; } - + default: BWindow::MessageReceived(message); } } -bool +bool FindWindow::QuitRequested() { // update the application's settings @@ -492,8 +624,8 @@ } -void -FindWindow::SetTarget(BMessenger &target) +void +FindWindow::SetTarget(BMessenger& target) { fTarget = target; } From axeld at mail.berlios.de Wed Jan 21 12:28:51 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Wed, 21 Jan 2009 12:28:51 +0100 Subject: [Haiku-commits] r28977 - haiku/trunk/src/system/libroot/os/arch/ppc Message-ID: <200901211128.n0LBSpBd018314@sheep.berlios.de> Author: axeld Date: 2009-01-21 12:28:50 +0100 (Wed, 21 Jan 2009) New Revision: 28977 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28977&view=rev Modified: haiku/trunk/src/system/libroot/os/arch/ppc/atomic.S Log: * atomic_test_and_set() did actually not test if the lock was lost, and would therefore not always work correctly. * Minor cleanup, added return register for completeness. Modified: haiku/trunk/src/system/libroot/os/arch/ppc/atomic.S =================================================================== --- haiku/trunk/src/system/libroot/os/arch/ppc/atomic.S 2009-01-21 08:31:44 UTC (rev 28976) +++ haiku/trunk/src/system/libroot/os/arch/ppc/atomic.S 2009-01-21 11:28:50 UTC (rev 28977) @@ -1,14 +1,14 @@ /* -** Copyright 2003, Axel D?rfler, axeld at pinc-software.de. All rights reserved. -** Distributed under the terms of the OpenBeOS License. -*/ + * Copyright 2003-2009, Axel D?rfler, axeld at pinc-software.de. + * Distributed under the terms of the MIT License. + */ #define FUNCTION(x) .global x; .type x, at function; x .text /* int atomic_add(int *value, int increment) - * r3 r4 + * (r3) r3 r4 */ FUNCTION(atomic_add): lost1: lwarx %r5, 0, %r3 // reserve memory address located in "r3" @@ -19,7 +19,7 @@ blr /* int atomic_and(int *value, int andValue) - * r3 r4 + * (r3) r3 r4 */ FUNCTION(atomic_and): lost2: lwarx %r5, 0, %r3 @@ -30,7 +30,7 @@ blr /* int atomic_or(int *value, int orValue) - * r3 r4 + * (r3) r3 r4 */ FUNCTION(atomic_or): lost3: lwarx %r5, 0, %r3 @@ -41,7 +41,7 @@ blr /* int atomic_set(int *value, int setTo) - * r3 r4 + * (r3) r3 r4 */ FUNCTION(atomic_set): lost4: lwarx %r5, 0, %r3 @@ -50,19 +50,20 @@ mr %r3, %r5 blr -/* int atomic_test_and_set(int *value, int setTo, int testValue) - * r3 r4 r5 +/* int atomic_test_and_set(int *value, int setTo, int testValue) + * (r3) r3 r4 r5 */ FUNCTION(atomic_test_and_set): lost5: lwarx %r6, 0, %r3 cmpw %r6, %r5 bne out5 stwcx. %r4, 0, %r3 + bne- lost5 out5: mr %r3, %r6 blr -/* int atomic_get(int *value) - * r3 +/* int atomic_get(int *value) + * (r3) r3 */ FUNCTION(atomic_get): lost6: lwarx %r5, 0, %r3 From humdingerb at googlemail.com Wed Jan 21 16:42:16 2009 From: humdingerb at googlemail.com (Humdinger) Date: Wed, 21 Jan 2009 16:42:16 +0100 Subject: [Haiku-commits] r28952 - haiku/trunk/src/apps/deskbar In-Reply-To: <200901191146.n0JBkts5005341@sheep.berlios.de> References: <200901191146.n0JBkts5005341@sheep.berlios.de> Message-ID: <49774258.5030107@googlemail.com> axeld at BerliOS wrote: > Author: axeld > Date: 2009-01-19 12:46:53 +0100 (Mon, 19 Jan 2009) > New Revision: 28952 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28952&view=rev > > Modified: > haiku/trunk/src/apps/deskbar/Switcher.cpp > haiku/trunk/src/apps/deskbar/Switcher.h > Log: > * The Switcher now "remembers" the first app when doing a quick switch over > more than one application, so that will be the next app to switch to for the > next switch. > * This solution is not entirely perfect, though, as it needs to visually bring > the first app to front inbetween to work. Is the "Switcher" the same thing as the "Twitcher", as the task switcher is called everywhere else? :) Regards, Humdinger -- --=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=- Deutsche Haiku News @ http://www.haiku-gazette.de From anevilyak at gmail.com Wed Jan 21 16:53:26 2009 From: anevilyak at gmail.com (Rene Gollent) Date: Wed, 21 Jan 2009 09:53:26 -0600 Subject: [Haiku-commits] r28952 - haiku/trunk/src/apps/deskbar In-Reply-To: <49774258.5030107@googlemail.com> References: <200901191146.n0JBkts5005341@sheep.berlios.de> <49774258.5030107@googlemail.com> Message-ID: On Wed, Jan 21, 2009 at 9:42 AM, Humdinger wrote: > Is the "Switcher" the same thing as the "Twitcher", as the task switcher is called > everywhere else? :) Indeed it is. Regards, Rene From humdingerb at googlemail.com Wed Jan 21 17:02:38 2009 From: humdingerb at googlemail.com (Humdinger) Date: Wed, 21 Jan 2009 17:02:38 +0100 Subject: [Haiku-commits] r28952 - haiku/trunk/src/apps/deskbar In-Reply-To: References: <200901191146.n0JBkts5005341@sheep.berlios.de> <49774258.5030107@googlemail.com> Message-ID: <4977471E.8050102@googlemail.com> Rene Gollent wrote: > On Wed, Jan 21, 2009 at 9:42 AM, Humdinger wrote: >> Is the "Switcher" the same thing as the "Twitcher", as the task switcher is called >> everywhere else? :) > > Indeed it is. How... er... curious. Regards, Humdinger -- --=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=- Deutsche Haiku News @ http://www.haiku-gazette.de From anevilyak at gmail.com Wed Jan 21 17:07:17 2009 From: anevilyak at gmail.com (Rene Gollent) Date: Wed, 21 Jan 2009 10:07:17 -0600 Subject: [Haiku-commits] r28952 - haiku/trunk/src/apps/deskbar In-Reply-To: <4977471E.8050102@googlemail.com> References: <200901191146.n0JBkts5005341@sheep.berlios.de> <49774258.5030107@googlemail.com> <4977471E.8050102@googlemail.com> Message-ID: On Wed, Jan 21, 2009 at 10:02 AM, Humdinger wrote: > How... er... curious. I don't really have a good explanation for that one either, the source code has referred to it as Switcher pretty much since the release of OpenTracker, though yes in the context of end users that particular function was always referred to as Twitcher. Go figure. Regards, Rene From phoudoin at mail.berlios.de Wed Jan 21 21:22:32 2009 From: phoudoin at mail.berlios.de (phoudoin at mail.berlios.de) Date: Wed, 21 Jan 2009 21:22:32 +0100 Subject: [Haiku-commits] r28978 - haiku/trunk/src/add-ons/accelerants/intel_extreme Message-ID: <200901212022.n0LKMWU2002339@sheep.berlios.de> Author: phoudoin Date: 2009-01-21 21:22:29 +0100 (Wed, 21 Jan 2009) New Revision: 28978 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28978&view=rev Modified: haiku/trunk/src/add-ons/accelerants/intel_extreme/cursor.cpp Log: Specify both cursor width and height. BTW, changing cursor shape when he's invisible will show it immediatly right now. Sounds like wrong... Modified: haiku/trunk/src/add-ons/accelerants/intel_extreme/cursor.cpp =================================================================== --- haiku/trunk/src/add-ons/accelerants/intel_extreme/cursor.cpp 2009-01-21 11:28:50 UTC (rev 28977) +++ haiku/trunk/src/add-ons/accelerants/intel_extreme/cursor.cpp 2009-01-21 20:22:29 UTC (rev 28978) @@ -43,30 +43,19 @@ } } - // We can only change the width of the pixel, but apparently - // not the height (or at least I couldn't figure out how), - // so we need to make the rest transparent - for (uint32 y = height; y < 64; y++) { - for (int32 x = 0; x < byteWidth; x++) { - data[16 * y + x] = 0xff; - data[16 * y + x + 8] = 0; - } - } - // set palette entries to white/black write32(INTEL_CURSOR_PALETTE + 0, 0x00ffffff); write32(INTEL_CURSOR_PALETTE + 4, 0); gInfo->shared_info->cursor_format = CURSOR_FORMAT_2_COLORS; - write32(INTEL_CURSOR_CONTROL, CURSOR_ENABLED | gInfo->shared_info->cursor_format); - write32(INTEL_CURSOR_SIZE, width); - // TODO: I've no idea how to specify the height of the cursor - it seems to - // be always 64 pixels - + write32(INTEL_CURSOR_SIZE, height << 12 | width); write32(INTEL_CURSOR_BASE, (uint32)gInfo->shared_info->physical_graphics_memory + gInfo->shared_info->cursor_buffer_offset); + // cursor shape is now set: enable it again + write32(INTEL_CURSOR_CONTROL, CURSOR_ENABLED | gInfo->shared_info->cursor_format); + // changing the hot point changes the cursor position, too if (hotX != gInfo->shared_info->cursor_hot_x From korli at mail.berlios.de Wed Jan 21 22:02:16 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Wed, 21 Jan 2009 22:02:16 +0100 Subject: [Haiku-commits] r28979 - haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode Message-ID: <200901212102.n0LL2G5H008779@sheep.berlios.de> Author: korli Date: 2009-01-21 22:02:15 +0100 (Wed, 21 Jan 2009) New Revision: 28979 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28979&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/driver.cpp haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/driver.h Log: ok.. seems I mixed up NS device id and AMD vendor id. Both devices are now checked for. Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/driver.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/driver.cpp 2009-01-21 20:22:29 UTC (rev 28978) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/driver.cpp 2009-01-21 21:02:15 UTC (rev 28979) @@ -27,8 +27,10 @@ return ENODEV; for (i = 0; gPci->get_nth_pci_info(i, &info) == B_OK; i++) { - if (info.vendor_id == AMD_VENDOR_ID - && info.device_id == AMD_CS5536_AUDIO_DEVICE_ID) { + if ((info.vendor_id == AMD_VENDOR_ID + && info.device_id == AMD_CS5536_AUDIO_DEVICE_ID) + || (info.vendor_id == NS_VENDOR_ID + && info.device_id == NS_CS5535_AUDIO_DEVICE_ID)) { put_module(B_PCI_MODULE_NAME); return B_OK; } Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/driver.h =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/driver.h 2009-01-21 20:22:29 UTC (rev 28978) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/driver.h 2009-01-21 21:02:15 UTC (rev 28979) @@ -29,9 +29,12 @@ #define DEFAULT_FRAMES_PER_BUFFER 2048 -#define AMD_VENDOR_ID 0x1022 -#define AMD_CS5536_AUDIO_DEVICE_ID 0x002e +#define AMD_VENDOR_ID 0x1022 +#define AMD_CS5536_AUDIO_DEVICE_ID 0x2093 +#define NS_VENDOR_ID 0x100b +#define NS_CS5535_AUDIO_DEVICE_ID 0x002e + enum { STREAM_PLAYBACK, STREAM_RECORD From axeld at pinc-software.de Wed Jan 21 23:12:02 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Wed, 21 Jan 2009 23:12:02 +0100 CET Subject: [Haiku-commits] =?utf-8?q?r28978_-_haiku/trunk/src/add-ons/accele?= =?utf-8?q?rants/intel=5Fextreme?= In-Reply-To: <200901212022.n0LKMWU2002339@sheep.berlios.de> Message-ID: <57314482090-BeMail@zon> phoudoin at mail.berlios.de wrote: > Log: > Specify both cursor width and height. Thanks! > BTW, changing cursor shape when he's invisible will show it > immediatly > right now. Sounds like wrong... Indeed, maybe the CURSOR_ENABLED should not be altered in this function. I guess we should add hardware cursor support to Haiku one day... Bye, Axel. From phoudoin at mail.berlios.de Wed Jan 21 23:20:14 2009 From: phoudoin at mail.berlios.de (phoudoin at mail.berlios.de) Date: Wed, 21 Jan 2009 23:20:14 +0100 Subject: [Haiku-commits] r28980 - haiku/trunk/src/add-ons/accelerants/intel_extreme Message-ID: <200901212220.n0LMKEdV016324@sheep.berlios.de> Author: phoudoin Date: 2009-01-21 23:20:03 +0100 (Wed, 21 Jan 2009) New Revision: 28980 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28980&view=rev Modified: haiku/trunk/src/add-ons/accelerants/intel_extreme/cursor.cpp Log: Ooops, cursor base address register should be the last written, as it's the trigger register. Modified: haiku/trunk/src/add-ons/accelerants/intel_extreme/cursor.cpp =================================================================== --- haiku/trunk/src/add-ons/accelerants/intel_extreme/cursor.cpp 2009-01-21 21:02:15 UTC (rev 28979) +++ haiku/trunk/src/add-ons/accelerants/intel_extreme/cursor.cpp 2009-01-21 22:20:03 UTC (rev 28980) @@ -49,13 +49,12 @@ gInfo->shared_info->cursor_format = CURSOR_FORMAT_2_COLORS; + write32(INTEL_CURSOR_CONTROL, CURSOR_ENABLED | gInfo->shared_info->cursor_format); write32(INTEL_CURSOR_SIZE, height << 12 | width); + write32(INTEL_CURSOR_BASE, (uint32)gInfo->shared_info->physical_graphics_memory + gInfo->shared_info->cursor_buffer_offset); - // cursor shape is now set: enable it again - write32(INTEL_CURSOR_CONTROL, CURSOR_ENABLED | gInfo->shared_info->cursor_format); - // changing the hot point changes the cursor position, too if (hotX != gInfo->shared_info->cursor_hot_x From mmlr at mail.berlios.de Fri Jan 23 00:10:53 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 23 Jan 2009 00:10:53 +0100 Subject: [Haiku-commits] r28981 - haiku/trunk/src/system/kernel/posix Message-ID: <200901222310.n0MNArTd021887@sheep.berlios.de> Author: mmlr Date: 2009-01-23 00:10:50 +0100 (Fri, 23 Jan 2009) New Revision: 28981 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28981&view=rev Modified: haiku/trunk/src/system/kernel/posix/realtime_sem.cpp Log: Change function name to work with stricter name lookup in GCC 4.3. See http://gcc.gnu.org/gcc-4.3/porting_to.html for reference. Modified: haiku/trunk/src/system/kernel/posix/realtime_sem.cpp =================================================================== --- haiku/trunk/src/system/kernel/posix/realtime_sem.cpp 2009-01-21 22:20:03 UTC (rev 28980) +++ haiku/trunk/src/system/kernel/posix/realtime_sem.cpp 2009-01-22 23:10:50 UTC (rev 28981) @@ -134,7 +134,7 @@ ReleaseReference(); } - HashTableLink* HashTableLink() + HashTableLink* HashLink() { return &fHashLink; } @@ -238,7 +238,7 @@ delete this; } - HashTableLink* HashTableLink() + HashTableLink* HashLink() { return &fHashLink; } @@ -269,7 +269,7 @@ HashTableLink* GetLink(NamedSem* semaphore) const { - return semaphore->HashTableLink(); + return semaphore->HashLink(); } }; @@ -295,7 +295,7 @@ HashTableLink* GetLink(UnnamedSharedSem* semaphore) const { - return semaphore->HashTableLink(); + return semaphore->HashLink(); } }; @@ -502,7 +502,7 @@ return clone; } - HashTableLink* HashTableLink() + HashTableLink* HashLink() { return &fHashLink; } @@ -537,7 +537,7 @@ HashTableLink* GetLink(TeamSemInfo* semaphore) const { - return semaphore->HashTableLink(); + return semaphore->HashLink(); } }; From mmlr at mail.berlios.de Fri Jan 23 01:36:40 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 23 Jan 2009 01:36:40 +0100 Subject: [Haiku-commits] r28982 - in haiku/trunk/src/kits: app interface mail shared storage storage/mime storage/sniffer translation Message-ID: <200901230036.n0N0aeeh025882@sheep.berlios.de> Author: mmlr Date: 2009-01-23 01:36:25 +0100 (Fri, 23 Jan 2009) New Revision: 28982 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28982&view=rev Modified: haiku/trunk/src/kits/app/Looper.cpp haiku/trunk/src/kits/app/LooperList.cpp haiku/trunk/src/kits/app/MessageAdapter.cpp haiku/trunk/src/kits/interface/Bitmap.cpp haiku/trunk/src/kits/interface/GridLayout.cpp haiku/trunk/src/kits/interface/PictureDataWriter.cpp haiku/trunk/src/kits/interface/Window.cpp haiku/trunk/src/kits/mail/RemoteStorageProtocol.cpp haiku/trunk/src/kits/shared/HashString.cpp haiku/trunk/src/kits/storage/AppFileInfo.cpp haiku/trunk/src/kits/storage/Entry.cpp haiku/trunk/src/kits/storage/SymLink.cpp haiku/trunk/src/kits/storage/mime/database_support.cpp haiku/trunk/src/kits/storage/sniffer/Err.cpp haiku/trunk/src/kits/translation/TranslatorRoster.cpp Log: Add missing headers (malloc/free, string functions, memcpy, etc. undeclared). Modified: haiku/trunk/src/kits/app/Looper.cpp =================================================================== --- haiku/trunk/src/kits/app/Looper.cpp 2009-01-22 23:10:50 UTC (rev 28981) +++ haiku/trunk/src/kits/app/Looper.cpp 2009-01-23 00:36:25 UTC (rev 28982) @@ -28,6 +28,7 @@ #include #include +#include // debugging Modified: haiku/trunk/src/kits/app/LooperList.cpp =================================================================== --- haiku/trunk/src/kits/app/LooperList.cpp 2009-01-22 23:10:50 UTC (rev 28981) +++ haiku/trunk/src/kits/app/LooperList.cpp 2009-01-23 00:36:25 UTC (rev 28982) @@ -15,6 +15,7 @@ #include #include +#include using std::vector; Modified: haiku/trunk/src/kits/app/MessageAdapter.cpp =================================================================== --- haiku/trunk/src/kits/app/MessageAdapter.cpp 2009-01-22 23:10:50 UTC (rev 28981) +++ haiku/trunk/src/kits/app/MessageAdapter.cpp 2009-01-23 00:36:25 UTC (rev 28982) @@ -10,6 +10,8 @@ #include #include +#include + namespace BPrivate { #define R5_MESSAGE_FLAG_VALID 0x01 Modified: haiku/trunk/src/kits/interface/Bitmap.cpp =================================================================== --- haiku/trunk/src/kits/interface/Bitmap.cpp 2009-01-22 23:10:50 UTC (rev 28981) +++ haiku/trunk/src/kits/interface/Bitmap.cpp 2009-01-23 00:36:25 UTC (rev 28982) @@ -34,6 +34,7 @@ #include #include #include +#include // get_raw_bytes_per_row Modified: haiku/trunk/src/kits/interface/GridLayout.cpp =================================================================== --- haiku/trunk/src/kits/interface/GridLayout.cpp 2009-01-22 23:10:50 UTC (rev 28981) +++ haiku/trunk/src/kits/interface/GridLayout.cpp 2009-01-23 00:36:25 UTC (rev 28982) @@ -7,6 +7,7 @@ #include #include +#include #include #include Modified: haiku/trunk/src/kits/interface/PictureDataWriter.cpp =================================================================== --- haiku/trunk/src/kits/interface/PictureDataWriter.cpp 2009-01-22 23:10:50 UTC (rev 28981) +++ haiku/trunk/src/kits/interface/PictureDataWriter.cpp 2009-01-23 00:36:25 UTC (rev 28982) @@ -9,6 +9,7 @@ #include #include +#include #include #include Modified: haiku/trunk/src/kits/interface/Window.cpp =================================================================== --- haiku/trunk/src/kits/interface/Window.cpp 2009-01-22 23:10:50 UTC (rev 28981) +++ haiku/trunk/src/kits/interface/Window.cpp 2009-01-23 00:36:25 UTC (rev 28982) @@ -14,6 +14,7 @@ #include #include #include +#include #include #include Modified: haiku/trunk/src/kits/mail/RemoteStorageProtocol.cpp =================================================================== --- haiku/trunk/src/kits/mail/RemoteStorageProtocol.cpp 2009-01-22 23:10:50 UTC (rev 28981) +++ haiku/trunk/src/kits/mail/RemoteStorageProtocol.cpp 2009-01-23 00:36:25 UTC (rev 28982) @@ -7,6 +7,7 @@ #include #include +#include class _EXPORT BRemoteMailStorageProtocol; Modified: haiku/trunk/src/kits/shared/HashString.cpp =================================================================== --- haiku/trunk/src/kits/shared/HashString.cpp 2009-01-22 23:10:50 UTC (rev 28981) +++ haiku/trunk/src/kits/shared/HashString.cpp 2009-01-23 00:36:25 UTC (rev 28982) @@ -2,7 +2,7 @@ * Copyright 2004-2007, Ingo Weinhold, bonefish at users.sf.net. All rights reserved. * Distributed under the terms of the MIT License. */ -#include +#include #include #include "HashString.h" @@ -118,7 +118,7 @@ bool result = true; Unset(); if (string && length > 0) { - fString = new(nothrow) char[length + 1]; + fString = new(std::nothrow) char[length + 1]; if (fString) { memcpy(fString, string, length); fString[length] = '\0'; Modified: haiku/trunk/src/kits/storage/AppFileInfo.cpp =================================================================== --- haiku/trunk/src/kits/storage/AppFileInfo.cpp 2009-01-22 23:10:50 UTC (rev 28981) +++ haiku/trunk/src/kits/storage/AppFileInfo.cpp 2009-01-23 00:36:25 UTC (rev 28982) @@ -9,6 +9,7 @@ #include #include +#include #include #include Modified: haiku/trunk/src/kits/storage/Entry.cpp =================================================================== --- haiku/trunk/src/kits/storage/Entry.cpp 2009-01-22 23:10:50 UTC (rev 28981) +++ haiku/trunk/src/kits/storage/Entry.cpp 2009-01-23 00:36:25 UTC (rev 28982) @@ -24,6 +24,7 @@ #include #include #include +#include #include #include Modified: haiku/trunk/src/kits/storage/SymLink.cpp =================================================================== --- haiku/trunk/src/kits/storage/SymLink.cpp 2009-01-22 23:10:50 UTC (rev 28981) +++ haiku/trunk/src/kits/storage/SymLink.cpp 2009-01-23 00:36:25 UTC (rev 28982) @@ -8,6 +8,7 @@ */ #include +#include #include #include Modified: haiku/trunk/src/kits/storage/mime/database_support.cpp =================================================================== --- haiku/trunk/src/kits/storage/mime/database_support.cpp 2009-01-22 23:10:50 UTC (rev 28981) +++ haiku/trunk/src/kits/storage/mime/database_support.cpp 2009-01-23 00:36:25 UTC (rev 28982) @@ -25,7 +25,7 @@ #include // For struct attr_info #include // For new(nothrow) #include -#include +#include #include "mime/database_support.h" Modified: haiku/trunk/src/kits/storage/sniffer/Err.cpp =================================================================== --- haiku/trunk/src/kits/storage/sniffer/Err.cpp 2009-01-22 23:10:50 UTC (rev 28981) +++ haiku/trunk/src/kits/storage/sniffer/Err.cpp 2009-01-23 00:36:25 UTC (rev 28982) @@ -9,6 +9,7 @@ #include #include +#include using namespace BPrivate::Storage::Sniffer; Modified: haiku/trunk/src/kits/translation/TranslatorRoster.cpp =================================================================== --- haiku/trunk/src/kits/translation/TranslatorRoster.cpp 2009-01-22 23:10:50 UTC (rev 28981) +++ haiku/trunk/src/kits/translation/TranslatorRoster.cpp 2009-01-23 00:36:25 UTC (rev 28982) @@ -33,6 +33,7 @@ #include #include #include +#include #ifdef HAIKU_TARGET_PLATFORM_HAIKU extern "C" status_t _kern_get_safemode_option(const char *parameter, From mmlr at mail.berlios.de Fri Jan 23 01:40:53 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 23 Jan 2009 01:40:53 +0100 Subject: [Haiku-commits] r28983 - haiku/trunk/build/jam Message-ID: <200901230040.n0N0erK0000812@sheep.berlios.de> Author: mmlr Date: 2009-01-23 01:40:41 +0100 (Fri, 23 Jan 2009) New Revision: 28983 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28983&view=rev Modified: haiku/trunk/build/jam/BuildSetup Log: Add -ffreestanding to kernel C/C++ flags. This means that ISO conventions like the main() signature are not applied and do not generate errors when violated. Our bootloader has a non-standard main() signature for example, which is of course fine. Modified: haiku/trunk/build/jam/BuildSetup =================================================================== --- haiku/trunk/build/jam/BuildSetup 2009-01-23 00:36:25 UTC (rev 28982) +++ haiku/trunk/build/jam/BuildSetup 2009-01-23 00:40:41 UTC (rev 28983) @@ -273,6 +273,11 @@ if $(HAIKU_GCC_VERSION[1]) >= 4 { HAIKU_C++FLAGS += -Wno-deprecated ; + + if $(HAIKU_GCC_VERSION[2]) >= 3 { + HAIKU_KERNEL_CCFLAGS += -ffreestanding ; + HAIKU_KERNEL_C++FLAGS += -ffreestanding ; + } } HAIKU_KERNEL_PIC_CCFLAGS = -fno-pic ; From mmu_man at mail.berlios.de Fri Jan 23 02:02:04 2009 From: mmu_man at mail.berlios.de (mmu_man at BerliOS) Date: Fri, 23 Jan 2009 02:02:04 +0100 Subject: [Haiku-commits] r28984 - haiku/trunk/3rdparty/mmu_man/scripts Message-ID: <200901230102.n0N1242d018257@sheep.berlios.de> Author: mmu_man Date: 2009-01-23 02:02:04 +0100 (Fri, 23 Jan 2009) New Revision: 28984 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28984&view=rev Modified: haiku/trunk/3rdparty/mmu_man/scripts/dev-perso Log: - fix typo, it's "dumb" terminal type :) - move setting the terminal window title to COMMAND_PROMPT, it fixes issues like beeping when editting the command line. Modified: haiku/trunk/3rdparty/mmu_man/scripts/dev-perso =================================================================== --- haiku/trunk/3rdparty/mmu_man/scripts/dev-perso 2009-01-23 00:40:41 UTC (rev 28983) +++ haiku/trunk/3rdparty/mmu_man/scripts/dev-perso 2009-01-23 01:02:04 UTC (rev 28984) @@ -92,14 +92,16 @@ # set the prompt # cf. http://tldp.org/HOWTO/Bash-Prompt-HOWTO/ case "$TERM" in - dump|emacs) + dumb|emacs) # simpler prompt export PS1='[\u@\h \w]\$ ' ;; *) # prompt: set window title to [project:folder] also #export PS1='\[\033]0;['$1':\W]\a\]\[\033[1m\][\u@\h \w]\[\033[0m\]\$ ' - export PS1='\033]0;['$1':\W]\a\033[1m[\u@\h \w]\033[0m\$ ' + #export PS1='\033]0;['$1':\W]\a\033[1m[\u@\h \w]\033[0m\$ ' + export PS1='\[\033[1m\][\u@\h \w]\[\033[0m\]\$ ' + export PROMPT_COMMAND='echo -e "\033]0;['$1':${PWD##*/}]\a"' ;; esac # lower priority so background builds don't slow the GUI too much From mmlr at mail.berlios.de Fri Jan 23 02:21:29 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 23 Jan 2009 02:21:29 +0100 Subject: [Haiku-commits] r28985 - haiku/trunk/src/add-ons/kernel/file_systems/userlandfs/shared Message-ID: <200901230121.n0N1LT0k023385@sheep.berlios.de> Author: mmlr Date: 2009-01-23 02:21:27 +0100 (Fri, 23 Jan 2009) New Revision: 28985 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28985&view=rev Modified: haiku/trunk/src/add-ons/kernel/file_systems/userlandfs/shared/String.cpp Log: Fix header and add std namespace to nothrow. Modified: haiku/trunk/src/add-ons/kernel/file_systems/userlandfs/shared/String.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/userlandfs/shared/String.cpp 2009-01-23 01:02:04 UTC (rev 28984) +++ haiku/trunk/src/add-ons/kernel/file_systems/userlandfs/shared/String.cpp 2009-01-23 01:21:27 UTC (rev 28985) @@ -1,6 +1,6 @@ // String.cpp -#include +#include #include #include "String.h" @@ -132,7 +132,7 @@ bool result = true; Unset(); if (string && length > 0) { - fString = new(nothrow) char[length + 1]; + fString = new(std::nothrow) char[length + 1]; if (fString) { memcpy(fString, string, length); fString[length] = '\0'; From mmlr at mail.berlios.de Fri Jan 23 02:24:49 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 23 Jan 2009 02:24:49 +0100 Subject: [Haiku-commits] r28986 - haiku/trunk/src/system/kernel/arch/x86 Message-ID: <200901230124.n0N1OnPt023539@sheep.berlios.de> Author: mmlr Date: 2009-01-23 02:24:47 +0100 (Fri, 23 Jan 2009) New Revision: 28986 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28986&view=rev Modified: haiku/trunk/src/system/kernel/arch/x86/apm.cpp Log: Comment out problematic inline asm statement for GCC 4. The direct reference to sAPMBiosEntry generates undefined symbols and I'm not in a condition to fix this right now. Added a TODO. Modified: haiku/trunk/src/system/kernel/arch/x86/apm.cpp =================================================================== --- haiku/trunk/src/system/kernel/arch/x86/apm.cpp 2009-01-23 01:21:27 UTC (rev 28985) +++ haiku/trunk/src/system/kernel/arch/x86/apm.cpp 2009-01-23 01:24:47 UTC (rev 28986) @@ -91,6 +91,9 @@ static status_t call_apm_bios(bios_regs *regs) { +#if _GNUC_ >= 4 + // TODO: Fix this for GCC 4.3! The direct reference to sAPMBiosEntry + // in the ASM below causes undefined references. asm volatile( "pushfl; " "pushl %%ebp; " @@ -104,6 +107,7 @@ "=S" (regs->esi), "=m" (regs->flags) : "a" (regs->eax), "b" (regs->ebx), "c" (regs->ecx) : "memory", "edi", "cc"); +#endif if (regs->flags & CARRY_FLAG) return B_ERROR; From mmlr at mail.berlios.de Fri Jan 23 02:30:31 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 23 Jan 2009 02:30:31 +0100 Subject: [Haiku-commits] r28987 - haiku/trunk/src/system/kernel/arch/x86 Message-ID: <200901230130.n0N1UV9n023737@sheep.berlios.de> Author: mmlr Date: 2009-01-23 02:30:29 +0100 (Fri, 23 Jan 2009) New Revision: 28987 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28987&view=rev Modified: haiku/trunk/src/system/kernel/arch/x86/apm.cpp Log: Better return B_ERROR when not compiling the actual call in. Modified: haiku/trunk/src/system/kernel/arch/x86/apm.cpp =================================================================== --- haiku/trunk/src/system/kernel/arch/x86/apm.cpp 2009-01-23 01:24:47 UTC (rev 28986) +++ haiku/trunk/src/system/kernel/arch/x86/apm.cpp 2009-01-23 01:30:29 UTC (rev 28987) @@ -93,7 +93,7 @@ { #if _GNUC_ >= 4 // TODO: Fix this for GCC 4.3! The direct reference to sAPMBiosEntry - // in the ASM below causes undefined references. + // in the asm below causes undefined references. asm volatile( "pushfl; " "pushl %%ebp; " @@ -107,6 +107,8 @@ "=S" (regs->esi), "=m" (regs->flags) : "a" (regs->eax), "b" (regs->ebx), "c" (regs->ecx) : "memory", "edi", "cc"); +#else + return B_ERROR; #endif if (regs->flags & CARRY_FLAG) From mmlr at mail.berlios.de Fri Jan 23 02:49:34 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 23 Jan 2009 02:49:34 +0100 Subject: [Haiku-commits] r28988 - haiku/trunk/src/bin Message-ID: <200901230149.n0N1nYKf025693@sheep.berlios.de> Author: mmlr Date: 2009-01-23 02:49:32 +0100 (Fri, 23 Jan 2009) New Revision: 28988 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28988&view=rev Modified: haiku/trunk/src/bin/df.cpp Log: Having the first argument to main() non-int is an error in GCC 4.3. Modified: haiku/trunk/src/bin/df.cpp =================================================================== --- haiku/trunk/src/bin/df.cpp 2009-01-23 01:30:29 UTC (rev 28987) +++ haiku/trunk/src/bin/df.cpp 2009-01-23 01:49:32 UTC (rev 28988) @@ -182,7 +182,7 @@ int -main(int32 argc, char **argv) +main(int argc, char **argv) { char *programName = argv[0]; if (strrchr(programName, '/')) From mmlr at mail.berlios.de Fri Jan 23 02:55:47 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 23 Jan 2009 02:55:47 +0100 Subject: [Haiku-commits] r28989 - haiku/trunk/src/bin Message-ID: <200901230155.n0N1tlXw026677@sheep.berlios.de> Author: mmlr Date: 2009-01-23 02:55:40 +0100 (Fri, 23 Jan 2009) New Revision: 28989 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28989&view=rev Modified: haiku/trunk/src/bin/isvolume.cpp Log: Having the first argument to main() non-int is an error in GCC 4.3. Modified: haiku/trunk/src/bin/isvolume.cpp =================================================================== --- haiku/trunk/src/bin/isvolume.cpp 2009-01-23 01:49:32 UTC (rev 28988) +++ haiku/trunk/src/bin/isvolume.cpp 2009-01-23 01:55:40 UTC (rev 28989) @@ -34,7 +34,7 @@ int -main(int32 argc, char** argv) +main(int argc, char** argv) { dev_t volumeDevice = dev_for_path("."); uint32 isVolumeFlags = 0; From mmlr at mail.berlios.de Fri Jan 23 03:07:41 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 23 Jan 2009 03:07:41 +0100 Subject: [Haiku-commits] r28990 - haiku/trunk/src/bin Message-ID: <200901230207.n0N27flU028920@sheep.berlios.de> Author: mmlr Date: 2009-01-23 03:07:37 +0100 (Fri, 23 Jan 2009) New Revision: 28990 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28990&view=rev Modified: haiku/trunk/src/bin/lsindex.cpp haiku/trunk/src/bin/mkindex.cpp haiku/trunk/src/bin/query.cpp haiku/trunk/src/bin/rmattr.cpp haiku/trunk/src/bin/rmindex.cpp Log: Having the first argument to main() non-int is an error in GCC 4.3. Modified: haiku/trunk/src/bin/lsindex.cpp =================================================================== --- haiku/trunk/src/bin/lsindex.cpp 2009-01-23 01:55:40 UTC (rev 28989) +++ haiku/trunk/src/bin/lsindex.cpp 2009-01-23 02:07:37 UTC (rev 28990) @@ -148,7 +148,7 @@ int -main(int32 argc, char **argv) +main(int argc, char **argv) { dev_t device = dev_for_path("."); DIR *indices = NULL; Modified: haiku/trunk/src/bin/mkindex.cpp =================================================================== --- haiku/trunk/src/bin/mkindex.cpp 2009-01-23 01:55:40 UTC (rev 28989) +++ haiku/trunk/src/bin/mkindex.cpp 2009-01-23 02:07:37 UTC (rev 28990) @@ -94,7 +94,7 @@ int -main(int32 argc, char **argv) +main(int argc, char **argv) { char *indexTypeName = "string"; int indexType = B_STRING_TYPE; Modified: haiku/trunk/src/bin/query.cpp =================================================================== --- haiku/trunk/src/bin/query.cpp 2009-01-23 01:55:40 UTC (rev 28989) +++ haiku/trunk/src/bin/query.cpp 2009-01-23 02:07:37 UTC (rev 28990) @@ -92,7 +92,7 @@ int -main(int32 argc, char **argv) +main(int argc, char **argv) { // Make sure we have the minimum number of arguments. if (argc < 2) Modified: haiku/trunk/src/bin/rmattr.cpp =================================================================== --- haiku/trunk/src/bin/rmattr.cpp 2009-01-23 01:55:40 UTC (rev 28989) +++ haiku/trunk/src/bin/rmattr.cpp 2009-01-23 02:07:37 UTC (rev 28990) @@ -89,7 +89,7 @@ int -main(int32 argc, const char **argv) +main(int argc, const char **argv) { // Make sure we have the minimum number of arguments. if (argc < 3) Modified: haiku/trunk/src/bin/rmindex.cpp =================================================================== --- haiku/trunk/src/bin/rmindex.cpp 2009-01-23 01:55:40 UTC (rev 28989) +++ haiku/trunk/src/bin/rmindex.cpp 2009-01-23 02:07:37 UTC (rev 28990) @@ -169,7 +169,7 @@ int -main(int32 argc, char **argv) +main(int argc, char **argv) { bool isPattern = false; bool verbose = false; From mmlr at mail.berlios.de Fri Jan 23 03:37:30 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 23 Jan 2009 03:37:30 +0100 Subject: [Haiku-commits] r28991 - in haiku/trunk/src/apps: magnify workspaces Message-ID: <200901230237.n0N2bUVn030976@sheep.berlios.de> Author: mmlr Date: 2009-01-23 03:37:28 +0100 (Fri, 23 Jan 2009) New Revision: 28991 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28991&view=rev Modified: haiku/trunk/src/apps/magnify/Magnify.cpp haiku/trunk/src/apps/workspaces/Workspaces.cpp Log: Having the first argument to main() non-int is an error in GCC 4.3. Modified: haiku/trunk/src/apps/magnify/Magnify.cpp =================================================================== --- haiku/trunk/src/apps/magnify/Magnify.cpp 2009-01-23 02:07:37 UTC (rev 28990) +++ haiku/trunk/src/apps/magnify/Magnify.cpp 2009-01-23 02:37:28 UTC (rev 28991) @@ -2062,7 +2062,7 @@ int -main(long argc, char* argv[]) +main(int argc, char* argv[]) { int32 pixelCount = -1; Modified: haiku/trunk/src/apps/workspaces/Workspaces.cpp =================================================================== --- haiku/trunk/src/apps/workspaces/Workspaces.cpp 2009-01-23 02:07:37 UTC (rev 28990) +++ haiku/trunk/src/apps/workspaces/Workspaces.cpp 2009-01-23 02:37:28 UTC (rev 28991) @@ -738,7 +738,7 @@ int -main(int32 argc, char **argv) +main(int argc, char **argv) { WorkspacesApp app; app.Run(); From mmlr at mail.berlios.de Fri Jan 23 04:05:49 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 23 Jan 2009 04:05:49 +0100 Subject: [Haiku-commits] r28992 - in haiku/trunk: headers/private/shared src/add-ons/input_server/devices/wacom src/add-ons/kernel/network/protocols/ipv4 src/add-ons/kernel/network/protocols/udp src/add-ons/kernel/network/protocols/unix src/add-ons/mail_daemon/inbound_filters/match_header src/add-ons/media/plugins/ogg src/add-ons/print/transports/ipp src/add-ons/print/transports/lpr src/add-ons/print/transports/shared src/add-ons/translators/bmp src/add-ons/translators/stxt src/apps/codycam src/apps/cortex/Persistence src/apps/diskusage src/apps/icon-o-matic/generic/command src/apps/icon-o-matic/generic/gui/scrollview src/apps/icon-o-matic/generic/gui/stateview src/apps/icon-o-matic/gui src/apps/icon-o-matic/import_export src/apps/icon-o-matic/import_export/flat_icon src/apps/mediaplayer/interface src/apps/mediaplayer/media_node_framework src/apps/mediaplayer/media_node_framework/audio src/apps/mediaplayer/playlist src/apps/mediaplayer/supplier src/apps/mediaplayer/support src/apps/sudoku s! rc/bin/debug src/bin/debug/strace src/kits/storage src/libs/print/libprint src/servers/app/drawing src/servers/net src/servers/registrar src/servers/registrar/mime Message-ID: <200901230305.n0N35ntx032539@sheep.berlios.de> Author: mmlr Date: 2009-01-23 04:05:15 +0100 (Fri, 23 Jan 2009) New Revision: 28992 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28992&view=rev Modified: haiku/trunk/headers/private/shared/OpenHashTable.h haiku/trunk/src/add-ons/input_server/devices/wacom/MasterServerDevice.cpp haiku/trunk/src/add-ons/kernel/network/protocols/ipv4/multicast.h haiku/trunk/src/add-ons/kernel/network/protocols/udp/udp.cpp haiku/trunk/src/add-ons/kernel/network/protocols/unix/UnixEndpoint.h haiku/trunk/src/add-ons/mail_daemon/inbound_filters/match_header/StringMatcher.cpp haiku/trunk/src/add-ons/media/plugins/ogg/OggSeekable.cpp haiku/trunk/src/add-ons/media/plugins/ogg/OggStream.cpp haiku/trunk/src/add-ons/media/plugins/ogg/OggTrack.cpp haiku/trunk/src/add-ons/print/transports/ipp/IppSetupDlg.cpp haiku/trunk/src/add-ons/print/transports/ipp/IppTransport.cpp haiku/trunk/src/add-ons/print/transports/ipp/URL.cpp haiku/trunk/src/add-ons/print/transports/lpr/LprSetupDlg.cpp haiku/trunk/src/add-ons/print/transports/lpr/LprTransport.cpp haiku/trunk/src/add-ons/print/transports/lpr/LpsClient.cpp haiku/trunk/src/add-ons/print/transports/shared/Socket.cpp haiku/trunk/src/add-ons/translators/bmp/BMPTranslator.cpp haiku/trunk/src/add-ons/translators/stxt/STXTTranslator.cpp haiku/trunk/src/apps/codycam/FtpClient.cpp haiku/trunk/src/apps/cortex/Persistence/ExportContext.h haiku/trunk/src/apps/cortex/Persistence/IPersistent.h haiku/trunk/src/apps/diskusage/InfoWindow.cpp haiku/trunk/src/apps/diskusage/Scanner.cpp haiku/trunk/src/apps/diskusage/Snapshot.cpp haiku/trunk/src/apps/icon-o-matic/generic/command/CommandStack.h haiku/trunk/src/apps/icon-o-matic/generic/gui/scrollview/ScrollView.cpp haiku/trunk/src/apps/icon-o-matic/generic/gui/scrollview/Scrollable.cpp haiku/trunk/src/apps/icon-o-matic/generic/gui/stateview/StateView.cpp haiku/trunk/src/apps/icon-o-matic/gui/PathListView.cpp haiku/trunk/src/apps/icon-o-matic/gui/StyleListView.cpp haiku/trunk/src/apps/icon-o-matic/gui/StyleView.cpp haiku/trunk/src/apps/icon-o-matic/import_export/Exporter.cpp haiku/trunk/src/apps/icon-o-matic/import_export/flat_icon/RDefExporter.cpp haiku/trunk/src/apps/icon-o-matic/import_export/flat_icon/SourceExporter.cpp haiku/trunk/src/apps/mediaplayer/interface/TransportButton.cpp haiku/trunk/src/apps/mediaplayer/media_node_framework/PlaybackManager.cpp haiku/trunk/src/apps/mediaplayer/media_node_framework/audio/AudioAdapter.cpp haiku/trunk/src/apps/mediaplayer/media_node_framework/audio/AudioChannelConverter.cpp haiku/trunk/src/apps/mediaplayer/media_node_framework/audio/AudioFormatConverter.cpp haiku/trunk/src/apps/mediaplayer/media_node_framework/audio/AudioReader.cpp haiku/trunk/src/apps/mediaplayer/media_node_framework/audio/AudioResampler.cpp haiku/trunk/src/apps/mediaplayer/playlist/Playlist.cpp haiku/trunk/src/apps/mediaplayer/supplier/MediaTrackAudioSupplier.cpp haiku/trunk/src/apps/mediaplayer/supplier/ProxyAudioSupplier.cpp haiku/trunk/src/apps/mediaplayer/support/CommandStack.h haiku/trunk/src/apps/sudoku/Stack.h haiku/trunk/src/apps/sudoku/SudokuGenerator.cpp haiku/trunk/src/apps/sudoku/SudokuWindow.cpp haiku/trunk/src/bin/debug/debug_utils.cpp haiku/trunk/src/bin/debug/strace/TypeHandler.cpp haiku/trunk/src/kits/storage/AddOnMonitorHandler.cpp haiku/trunk/src/libs/print/libprint/Halftone.cpp haiku/trunk/src/servers/app/drawing/DrawingEngine.cpp haiku/trunk/src/servers/net/Services.cpp haiku/trunk/src/servers/registrar/MessageDeliverer.cpp haiku/trunk/src/servers/registrar/RecentApps.cpp haiku/trunk/src/servers/registrar/ShutdownProcess.cpp haiku/trunk/src/servers/registrar/TRoster.cpp haiku/trunk/src/servers/registrar/mime/CreateAppMetaMimeThread.cpp haiku/trunk/src/servers/registrar/mime/UpdateMimeInfoThread.cpp Log: Fixing all headers/namespaces/name lookup problems that hinder a GCC 4.3.2 build. I sure hope that this doesn't break the build for anyone else. Modified: haiku/trunk/headers/private/shared/OpenHashTable.h =================================================================== --- haiku/trunk/headers/private/shared/OpenHashTable.h 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/headers/private/shared/OpenHashTable.h 2009-01-23 03:05:15 UTC (rev 28992) @@ -46,7 +46,7 @@ #define __OPEN_HASH_TABLE__ #include -#include +#include // don't include #define ASSERT(E) (void)0 Modified: haiku/trunk/src/add-ons/input_server/devices/wacom/MasterServerDevice.cpp =================================================================== --- haiku/trunk/src/add-ons/input_server/devices/wacom/MasterServerDevice.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/input_server/devices/wacom/MasterServerDevice.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -4,7 +4,7 @@ */ #include "MasterServerDevice.h" -#include +#include #include #include #include Modified: haiku/trunk/src/add-ons/kernel/network/protocols/ipv4/multicast.h =================================================================== --- haiku/trunk/src/add-ons/kernel/network/protocols/ipv4/multicast.h 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/kernel/network/protocols/ipv4/multicast.h 2009-01-23 03:05:15 UTC (rev 28992) @@ -133,7 +133,7 @@ typedef HashTableLink HashLink; typedef typename Addressing::AddressType AddressType; typedef MulticastFilter Filter; - typedef AddressSet AddressSet; + typedef ::AddressSet AddressSet; enum FilterMode { kInclude, Modified: haiku/trunk/src/add-ons/kernel/network/protocols/udp/udp.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/network/protocols/udp/udp.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/kernel/network/protocols/udp/udp.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -96,7 +96,7 @@ bool IsActive() const { return fActive; } void SetActive(bool newValue) { fActive = newValue; } - HashTableLink *HashTableLink() { return &fLink; } + ::HashTableLink *HashTableLink() { return &fLink; } private: UdpDomainSupport *fManager; @@ -143,7 +143,7 @@ && endpoint->PeerAddress().EqualTo(key.second, true); } - HashTableLink *GetLink(UdpEndpoint *endpoint) const + ::HashTableLink *GetLink(UdpEndpoint *endpoint) const { return endpoint->HashTableLink(); } Modified: haiku/trunk/src/add-ons/kernel/network/protocols/unix/UnixEndpoint.h =================================================================== --- haiku/trunk/src/add-ons/kernel/network/protocols/unix/UnixEndpoint.h 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/kernel/network/protocols/unix/UnixEndpoint.h 2009-01-23 03:05:15 UTC (rev 28992) @@ -90,7 +90,7 @@ return fAddress; } - HashTableLink* HashTableLink() + ::HashTableLink* HashTableLink() { return &fAddressHashLink; } Modified: haiku/trunk/src/add-ons/mail_daemon/inbound_filters/match_header/StringMatcher.cpp =================================================================== --- haiku/trunk/src/add-ons/mail_daemon/inbound_filters/match_header/StringMatcher.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/mail_daemon/inbound_filters/match_header/StringMatcher.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -1,7 +1,7 @@ //--------This file shamelessly stolen from Jeremy Friesner's excellent MUSCLE--------- /* This file is Copyright 2000 Level Control Systems. See the included LICENSE.txt file for details. */ -#include +#include #include #include "StringMatcher.h" Modified: haiku/trunk/src/add-ons/media/plugins/ogg/OggSeekable.cpp =================================================================== --- haiku/trunk/src/add-ons/media/plugins/ogg/OggSeekable.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/media/plugins/ogg/OggSeekable.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -6,6 +6,7 @@ #include #include #include +#include #define TRACE_THIS 0 #if TRACE_THIS Modified: haiku/trunk/src/add-ons/media/plugins/ogg/OggStream.cpp =================================================================== --- haiku/trunk/src/add-ons/media/plugins/ogg/OggStream.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/media/plugins/ogg/OggStream.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -6,6 +6,7 @@ #include "OggFormats.h" #include #include +#include #define TRACE_THIS 0 #if TRACE_THIS Modified: haiku/trunk/src/add-ons/media/plugins/ogg/OggTrack.cpp =================================================================== --- haiku/trunk/src/add-ons/media/plugins/ogg/OggTrack.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/media/plugins/ogg/OggTrack.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -1,5 +1,6 @@ #include "OggTrack.h" #include +#include #define TRACE_THIS 0 #if TRACE_THIS Modified: haiku/trunk/src/add-ons/print/transports/ipp/IppSetupDlg.cpp =================================================================== --- haiku/trunk/src/add-ons/print/transports/ipp/IppSetupDlg.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/print/transports/ipp/IppSetupDlg.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -1,203 +1,205 @@ -// Sun, 18 Jun 2000 -// Y.Takagi - -#include -#include -#include -#include -#include -#include - -#include "URL.h" -#include "IppContent.h" -#include "IppURLConnection.h" -#include "IppSetupDlg.h" -#include "IppDefs.h" -#include "DbgMsg.h" - -#define DLG_WIDTH 350 -#define DLG_HEIGHT 80 - -#define BUTTON_WIDTH 70 -#define BUTTON_HEIGHT 20 - -#define URL_H 10 -#define URL_V 10 -#define URL_WIDTH (DLG_WIDTH - URL_H - URL_H) -#define URL_HEIGHT 20 -#define URL_TEXT "URL" - -#define OK_H (DLG_WIDTH - BUTTON_WIDTH - 11) -#define OK_V (DLG_HEIGHT - BUTTON_HEIGHT - 11) -#define OK_TEXT "OK" - -#define CANCEL_H (OK_H - BUTTON_WIDTH - 12) -#define CANCEL_V OK_V -#define CANCEL_TEXT "Cancel" - - -const BRect URL_RECT( - URL_H, - URL_V, - URL_H + URL_WIDTH, - URL_V + URL_HEIGHT); - -const BRect OK_RECT( - OK_H, - OK_V, - OK_H + BUTTON_WIDTH, - OK_V + BUTTON_HEIGHT); - -const BRect CANCEL_RECT( - CANCEL_H, - CANCEL_V, - CANCEL_H + BUTTON_WIDTH, - CANCEL_V + BUTTON_HEIGHT); - -enum MSGS { - M_CANCEL = 1, - M_OK -}; - - -class IppSetupView : public BView { -public: - IppSetupView(BRect, BDirectory *); - ~IppSetupView() {} - virtual void AttachedToWindow(); - bool UpdateViewData(); - -private: - BTextControl *url; - BDirectory *dir; -}; - -IppSetupView::IppSetupView(BRect frame, BDirectory *d) - : BView(frame, "", B_FOLLOW_ALL, B_WILL_DRAW), dir(d) -{ - SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); -} - -void IppSetupView::AttachedToWindow() -{ - /* url box */ - - url = new BTextControl(URL_RECT, "", URL_TEXT, "", NULL); - AddChild(url); - url->SetDivider(StringWidth(URL_TEXT) + 10); - - /* cancel */ - - BButton *button = new BButton(CANCEL_RECT, "", CANCEL_TEXT, new BMessage(M_CANCEL)); - AddChild(button); - - /* ok */ - - button = new BButton(OK_RECT, "", OK_TEXT, new BMessage(M_OK)); - AddChild(button); - button->MakeDefault(true); -} - -bool IppSetupView::UpdateViewData() -{ - string error_msg; - - if (*url->Text()) { - IppContent *request = new IppContent; - request->setOperationId(IPP_GET_PRINTER_ATTRIBUTES); - request->setDelimiter(IPP_OPERATION_ATTRIBUTES_TAG); - request->setCharset("attributes-charset", "utf-8"); - request->setNaturalLanguage("attributes-natural-language", "en-us"); - request->setURI("printer-uri", url->Text()); - request->setDelimiter(IPP_END_OF_ATTRIBUTES_TAG); - - IppURLConnection conn(URL(url->Text())); - conn.setIppRequest(request); - conn.setRequestProperty("Connection", "close"); - - HTTP_RESPONSECODE response_code = conn.getResponseCode(); - if (response_code == HTTP_OK) { - const char *content_type = conn.getContentType(); - if (content_type && !strncasecmp(content_type, "application/ipp", 15)) { - const IppContent *ipp_response = conn.getIppResponse(); - if (ipp_response->good()) { - dir->WriteAttr(IPP_URL, B_STRING_TYPE, 0, url->Text(), strlen(url->Text()) + 1); - return true; - } else { - error_msg = ipp_response->getStatusMessage(); - } - } else { - error_msg = "cannot get a IPP response."; - } - } else if (response_code != HTTP_UNKNOWN) { - error_msg = conn.getResponseMessage(); - } else { - error_msg = "cannot connect to the IPP server."; - } - } else { - error_msg = "please input the printer URL."; - } - - BAlert *alert = new BAlert("", error_msg.c_str(), "OK"); - alert->Go(); - return false; -} - -IppSetupDlg::IppSetupDlg(BDirectory *dir) - : BWindow(BRect(100, 100, 100 + DLG_WIDTH, 100 + DLG_HEIGHT), - "IPP Setup", B_TITLED_WINDOW_LOOK, B_MODAL_APP_WINDOW_FEEL, - B_NOT_RESIZABLE | B_NOT_MINIMIZABLE | B_NOT_ZOOMABLE) -{ - result = 0; - - Lock(); - IppSetupView *view = new IppSetupView(Bounds(), dir); - AddChild(view); - Unlock(); - - semaphore = create_sem(0, "IppSetupSem"); -} - -bool IppSetupDlg::QuitRequested() -{ - result = B_ERROR; - release_sem(semaphore); - return true; -} - -void IppSetupDlg::MessageReceived(BMessage *msg) -{ - bool success; - - switch (msg->what) { - case M_OK: - Lock(); - success = ((IppSetupView *)ChildAt(0))->UpdateViewData(); - Unlock(); - if (success) { - result = B_NO_ERROR; - release_sem(semaphore); - } - break; - - case M_CANCEL: - result = B_ERROR; - release_sem(semaphore); - break; - - default: - BWindow::MessageReceived(msg); - break; - } -} - -int IppSetupDlg::Go() -{ - Show(); - acquire_sem(semaphore); - delete_sem(semaphore); - int value = result; - Lock(); - Quit(); - return value; -} +// Sun, 18 Jun 2000 +// Y.Takagi + +#include + +#include +#include +#include +#include +#include +#include + +#include "URL.h" +#include "IppContent.h" +#include "IppURLConnection.h" +#include "IppSetupDlg.h" +#include "IppDefs.h" +#include "DbgMsg.h" + +#define DLG_WIDTH 350 +#define DLG_HEIGHT 80 + +#define BUTTON_WIDTH 70 +#define BUTTON_HEIGHT 20 + +#define URL_H 10 +#define URL_V 10 +#define URL_WIDTH (DLG_WIDTH - URL_H - URL_H) +#define URL_HEIGHT 20 +#define URL_TEXT "URL" + +#define OK_H (DLG_WIDTH - BUTTON_WIDTH - 11) +#define OK_V (DLG_HEIGHT - BUTTON_HEIGHT - 11) +#define OK_TEXT "OK" + +#define CANCEL_H (OK_H - BUTTON_WIDTH - 12) +#define CANCEL_V OK_V +#define CANCEL_TEXT "Cancel" + + +const BRect URL_RECT( + URL_H, + URL_V, + URL_H + URL_WIDTH, + URL_V + URL_HEIGHT); + +const BRect OK_RECT( + OK_H, + OK_V, + OK_H + BUTTON_WIDTH, + OK_V + BUTTON_HEIGHT); + +const BRect CANCEL_RECT( + CANCEL_H, + CANCEL_V, + CANCEL_H + BUTTON_WIDTH, + CANCEL_V + BUTTON_HEIGHT); + +enum MSGS { + M_CANCEL = 1, + M_OK +}; + + +class IppSetupView : public BView { +public: + IppSetupView(BRect, BDirectory *); + ~IppSetupView() {} + virtual void AttachedToWindow(); + bool UpdateViewData(); + +private: + BTextControl *url; + BDirectory *dir; +}; + +IppSetupView::IppSetupView(BRect frame, BDirectory *d) + : BView(frame, "", B_FOLLOW_ALL, B_WILL_DRAW), dir(d) +{ + SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); +} + +void IppSetupView::AttachedToWindow() +{ + /* url box */ + + url = new BTextControl(URL_RECT, "", URL_TEXT, "", NULL); + AddChild(url); + url->SetDivider(StringWidth(URL_TEXT) + 10); + + /* cancel */ + + BButton *button = new BButton(CANCEL_RECT, "", CANCEL_TEXT, new BMessage(M_CANCEL)); + AddChild(button); + + /* ok */ + + button = new BButton(OK_RECT, "", OK_TEXT, new BMessage(M_OK)); + AddChild(button); + button->MakeDefault(true); +} + +bool IppSetupView::UpdateViewData() +{ + string error_msg; + + if (*url->Text()) { + IppContent *request = new IppContent; + request->setOperationId(IPP_GET_PRINTER_ATTRIBUTES); + request->setDelimiter(IPP_OPERATION_ATTRIBUTES_TAG); + request->setCharset("attributes-charset", "utf-8"); + request->setNaturalLanguage("attributes-natural-language", "en-us"); + request->setURI("printer-uri", url->Text()); + request->setDelimiter(IPP_END_OF_ATTRIBUTES_TAG); + + IppURLConnection conn(URL(url->Text())); + conn.setIppRequest(request); + conn.setRequestProperty("Connection", "close"); + + HTTP_RESPONSECODE response_code = conn.getResponseCode(); + if (response_code == HTTP_OK) { + const char *content_type = conn.getContentType(); + if (content_type && !strncasecmp(content_type, "application/ipp", 15)) { + const IppContent *ipp_response = conn.getIppResponse(); + if (ipp_response->good()) { + dir->WriteAttr(IPP_URL, B_STRING_TYPE, 0, url->Text(), strlen(url->Text()) + 1); + return true; + } else { + error_msg = ipp_response->getStatusMessage(); + } + } else { + error_msg = "cannot get a IPP response."; + } + } else if (response_code != HTTP_UNKNOWN) { + error_msg = conn.getResponseMessage(); + } else { + error_msg = "cannot connect to the IPP server."; + } + } else { + error_msg = "please input the printer URL."; + } + + BAlert *alert = new BAlert("", error_msg.c_str(), "OK"); + alert->Go(); + return false; +} + +IppSetupDlg::IppSetupDlg(BDirectory *dir) + : BWindow(BRect(100, 100, 100 + DLG_WIDTH, 100 + DLG_HEIGHT), + "IPP Setup", B_TITLED_WINDOW_LOOK, B_MODAL_APP_WINDOW_FEEL, + B_NOT_RESIZABLE | B_NOT_MINIMIZABLE | B_NOT_ZOOMABLE) +{ + result = 0; + + Lock(); + IppSetupView *view = new IppSetupView(Bounds(), dir); + AddChild(view); + Unlock(); + + semaphore = create_sem(0, "IppSetupSem"); +} + +bool IppSetupDlg::QuitRequested() +{ + result = B_ERROR; + release_sem(semaphore); + return true; +} + +void IppSetupDlg::MessageReceived(BMessage *msg) +{ + bool success; + + switch (msg->what) { + case M_OK: + Lock(); + success = ((IppSetupView *)ChildAt(0))->UpdateViewData(); + Unlock(); + if (success) { + result = B_NO_ERROR; + release_sem(semaphore); + } + break; + + case M_CANCEL: + result = B_ERROR; + release_sem(semaphore); + break; + + default: + BWindow::MessageReceived(msg); + break; + } +} + +int IppSetupDlg::Go() +{ + Show(); + acquire_sem(semaphore); + delete_sem(semaphore); + int value = result; + Lock(); + Quit(); + return value; +} Modified: haiku/trunk/src/add-ons/print/transports/ipp/IppTransport.cpp =================================================================== --- haiku/trunk/src/add-ons/print/transports/ipp/IppTransport.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/print/transports/ipp/IppTransport.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -8,6 +8,7 @@ #include #include +#include #include #include "URL.h" Modified: haiku/trunk/src/add-ons/print/transports/ipp/URL.cpp =================================================================== --- haiku/trunk/src/add-ons/print/transports/ipp/URL.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/print/transports/ipp/URL.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -1,102 +1,103 @@ -// Sun, 18 Jun 2000 -// Y.Takagi - -#include -#include "URL.h" - -URL::URL(const char *spec) -{ -// __protocol = "http"; -// __host = "localhost"; -// __file = "/"; - __port = -1; - - if (spec) { - char *temp_spec = new char[strlen(spec) + 1]; - strcpy(temp_spec, spec); - - char *p1; - char *p2; - char *p3; - char *p4; - - p1 = strstr(temp_spec, "//"); - if (p1) { - *p1 = '\0'; - p1 += 2; - __protocol = temp_spec; - } else { - p1 = temp_spec; - } - - p3 = strstr(p1, "/"); - if (p3) { - p4 = strstr(p3, "#"); - if (p4) { - __ref = p4 + 1; - *p4 = '\0'; - } - __file = p3; - *p3 = '\0'; - } else { - __file = "/"; - } - - p2 = strstr(p1, ":"); - if (p2) { - __port = atoi(p2 + 1); - *p2 = '\0'; - } - - __host = p1; - delete [] temp_spec; - } - -// if (__port == -1) { -// if (__protocol == "http") { -// __port = 80; -// } else if (__protocol == "ipp") { -// __port = 631; -// } -// } -} - -URL::URL(const char *protocol, const char *host, int port, const char *file) -{ - __protocol = protocol; - __host = host; - __file = file; - __port = port; -} - -URL::URL(const char *protocol, const char *host, const char *file) -{ - __protocol = protocol; - __host = host; - __file = file; -} - -URL::URL(const URL &url) -{ - __protocol = url.__protocol; - __host = url.__host; - __file = url.__file; - __ref = url.__ref; - __port = url.__port; -} - -URL &URL::operator = (const URL &url) -{ - __protocol = url.__protocol; - __host = url.__host; - __file = url.__file; - __ref = url.__ref; - __port = url.__port; - return *this; -} - -bool URL::operator == (const URL &url) -{ - return (__protocol == url.__protocol) && (__host == url.__host) && (__file == url.__file) && - (__ref == url.__ref) && (__port == url.__port); -} +// Sun, 18 Jun 2000 +// Y.Takagi + +#include +#include +#include "URL.h" + +URL::URL(const char *spec) +{ +// __protocol = "http"; +// __host = "localhost"; +// __file = "/"; + __port = -1; + + if (spec) { + char *temp_spec = new char[strlen(spec) + 1]; + strcpy(temp_spec, spec); + + char *p1; + char *p2; + char *p3; + char *p4; + + p1 = strstr(temp_spec, "//"); + if (p1) { + *p1 = '\0'; + p1 += 2; + __protocol = temp_spec; + } else { + p1 = temp_spec; + } + + p3 = strstr(p1, "/"); + if (p3) { + p4 = strstr(p3, "#"); + if (p4) { + __ref = p4 + 1; + *p4 = '\0'; + } + __file = p3; + *p3 = '\0'; + } else { + __file = "/"; + } + + p2 = strstr(p1, ":"); + if (p2) { + __port = atoi(p2 + 1); + *p2 = '\0'; + } + + __host = p1; + delete [] temp_spec; + } + +// if (__port == -1) { +// if (__protocol == "http") { +// __port = 80; +// } else if (__protocol == "ipp") { +// __port = 631; +// } +// } +} + +URL::URL(const char *protocol, const char *host, int port, const char *file) +{ + __protocol = protocol; + __host = host; + __file = file; + __port = port; +} + +URL::URL(const char *protocol, const char *host, const char *file) +{ + __protocol = protocol; + __host = host; + __file = file; +} + +URL::URL(const URL &url) +{ + __protocol = url.__protocol; + __host = url.__host; + __file = url.__file; + __ref = url.__ref; + __port = url.__port; +} + +URL &URL::operator = (const URL &url) +{ + __protocol = url.__protocol; + __host = url.__host; + __file = url.__file; + __ref = url.__ref; + __port = url.__port; + return *this; +} + +bool URL::operator == (const URL &url) +{ + return (__protocol == url.__protocol) && (__host == url.__host) && (__file == url.__file) && + (__ref == url.__ref) && (__port == url.__port); +} Modified: haiku/trunk/src/add-ons/print/transports/lpr/LprSetupDlg.cpp =================================================================== --- haiku/trunk/src/add-ons/print/transports/lpr/LprSetupDlg.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/print/transports/lpr/LprSetupDlg.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -9,6 +9,7 @@ #include #include +#include #include "LpsClient.h" #include "LprSetupDlg.h" Modified: haiku/trunk/src/add-ons/print/transports/lpr/LprTransport.cpp =================================================================== --- haiku/trunk/src/add-ons/print/transports/lpr/LprTransport.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/print/transports/lpr/LprTransport.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -9,9 +9,10 @@ #include #include #include +#include #include #include -#include +#include #include "LpsClient.h" #include "LprSetupDlg.h" Modified: haiku/trunk/src/add-ons/print/transports/lpr/LpsClient.cpp =================================================================== --- haiku/trunk/src/add-ons/print/transports/lpr/LpsClient.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/print/transports/lpr/LpsClient.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -8,7 +8,9 @@ # include # include #endif + #include +#include #include #include Modified: haiku/trunk/src/add-ons/print/transports/shared/Socket.cpp =================================================================== --- haiku/trunk/src/add-ons/print/transports/shared/Socket.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/print/transports/shared/Socket.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -10,6 +10,7 @@ #include #include +#include #include #include "Socket.h" Modified: haiku/trunk/src/add-ons/translators/bmp/BMPTranslator.cpp =================================================================== --- haiku/trunk/src/add-ons/translators/bmp/BMPTranslator.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/translators/bmp/BMPTranslator.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -9,6 +9,7 @@ #include "BMPTranslator.h" #include "BMPView.h" +#include #include #include #include @@ -16,6 +17,7 @@ using std::nothrow; +using std::min; //#define INFO(x) printf(x); #define INFO(x) @@ -1706,12 +1708,12 @@ if (!frommsformat && os2skip) inSource->Seek(os2skip, SEEK_CUR); - rd = min(1024, fileHeader.fileSize - rdtotal); + rd = min((size_t)1024, fileHeader.fileSize - rdtotal); rd = inSource->Read(buf, rd); while (rd > 0) { outDestination->Write(buf, rd); rdtotal += rd; - rd = min(1024, fileHeader.fileSize - rdtotal); + rd = min((size_t)1024, fileHeader.fileSize - rdtotal); rd = inSource->Read(buf, rd); } if (rd == 0) Modified: haiku/trunk/src/add-ons/translators/stxt/STXTTranslator.cpp =================================================================== --- haiku/trunk/src/add-ons/translators/stxt/STXTTranslator.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/add-ons/translators/stxt/STXTTranslator.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -17,6 +17,7 @@ #include #include +#include #include #include #include @@ -24,6 +25,7 @@ using namespace BPrivate; +using namespace std; #define READ_BUFFER_SIZE 32768 @@ -970,7 +972,7 @@ // When outputting B_STYLED_TEXT_FORMAT, the loop stops when all // of the data from inSource has been read and written. if (btoplain) - nreed = min(READ_BUFFER_SIZE, + nreed = min((size_t)READ_BUFFER_SIZE, txtheader.header.data_size - ntotalread); else nreed = READ_BUFFER_SIZE; @@ -982,7 +984,7 @@ if (btoplain) { ntotalread += nread; - nreed = min(READ_BUFFER_SIZE, + nreed = min((size_t)READ_BUFFER_SIZE, txtheader.header.data_size - ntotalread); } else nreed = READ_BUFFER_SIZE; Modified: haiku/trunk/src/apps/codycam/FtpClient.cpp =================================================================== --- haiku/trunk/src/apps/codycam/FtpClient.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/apps/codycam/FtpClient.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -1,5 +1,8 @@ #include "FtpClient.h" +#include +#include + FtpClient::FtpClient() : FileUploadClient(), fState(0), Modified: haiku/trunk/src/apps/cortex/Persistence/ExportContext.h =================================================================== --- haiku/trunk/src/apps/cortex/Persistence/ExportContext.h 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/apps/cortex/Persistence/ExportContext.h 2009-01-23 03:05:15 UTC (rev 28992) @@ -12,7 +12,7 @@ #include #include -#include +#include #include #include Modified: haiku/trunk/src/apps/cortex/Persistence/IPersistent.h =================================================================== --- haiku/trunk/src/apps/cortex/Persistence/IPersistent.h 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/apps/cortex/Persistence/IPersistent.h 2009-01-23 03:05:15 UTC (rev 28992) @@ -22,7 +22,7 @@ #include "ImportContext.h" #include "ExportContext.h" -#include +#include #include "cortex_defs.h" __BEGIN_CORTEX_NAMESPACE Modified: haiku/trunk/src/apps/diskusage/InfoWindow.cpp =================================================================== --- haiku/trunk/src/apps/diskusage/InfoWindow.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/apps/diskusage/InfoWindow.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -8,9 +8,10 @@ */ #include "InfoWindow.h" -#include #include +#include #include +#include #include #include @@ -22,6 +23,7 @@ using std::string; using std::vector; +using std::pair; LeftView::LeftView(BRect frame, BBitmap* icon) : BView(frame, NULL, B_FOLLOW_NONE, B_WILL_DRAW), Modified: haiku/trunk/src/apps/diskusage/Scanner.cpp =================================================================== --- haiku/trunk/src/apps/diskusage/Scanner.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/apps/diskusage/Scanner.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -8,6 +8,9 @@ */ #include "Scanner.h" +#include +#include + #include #include "Common.h" Modified: haiku/trunk/src/apps/diskusage/Snapshot.cpp =================================================================== --- haiku/trunk/src/apps/diskusage/Snapshot.cpp 2009-01-23 02:37:28 UTC (rev 28991) +++ haiku/trunk/src/apps/diskusage/Snapshot.cpp 2009-01-23 03:05:15 UTC (rev 28992) @@ -9,6 +9,7 @@ #include "Snapshot.h" #include +#include #include #include Modified: haiku/trunk/src/apps/icon-o-matic/generic/command/CommandStack.h =================================================================== --- haiku/trunk/src/apps/icon-o-matic/generic/command/CommandStack.h 2009-01-23 02:37:28 UTC (rev 28991) [... truncated: 562 lines follow ...] From mmlr at mail.berlios.de Fri Jan 23 04:10:19 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 23 Jan 2009 04:10:19 +0100 Subject: [Haiku-commits] r28993 - haiku/trunk/src/apps/cortex/Persistence Message-ID: <200901230310.n0N3AJxC032742@sheep.berlios.de> Author: mmlr Date: 2009-01-23 04:10:17 +0100 (Fri, 23 Jan 2009) New Revision: 28993 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28993&view=rev Modified: haiku/trunk/src/apps/cortex/Persistence/ExportContext.h haiku/trunk/src/apps/cortex/Persistence/IPersistent.h Log: Fix GCC2 build. Modified: haiku/trunk/src/apps/cortex/Persistence/ExportContext.h =================================================================== --- haiku/trunk/src/apps/cortex/Persistence/ExportContext.h 2009-01-23 03:05:15 UTC (rev 28992) +++ haiku/trunk/src/apps/cortex/Persistence/ExportContext.h 2009-01-23 03:10:17 UTC (rev 28993) @@ -12,7 +12,7 @@ #include #include -#include +#include #include #include Modified: haiku/trunk/src/apps/cortex/Persistence/IPersistent.h =================================================================== --- haiku/trunk/src/apps/cortex/Persistence/IPersistent.h 2009-01-23 03:05:15 UTC (rev 28992) +++ haiku/trunk/src/apps/cortex/Persistence/IPersistent.h 2009-01-23 03:10:17 UTC (rev 28993) @@ -22,7 +22,7 @@ #include "ImportContext.h" #include "ExportContext.h" -#include +#include #include "cortex_defs.h" __BEGIN_CORTEX_NAMESPACE From mmlr at mail.berlios.de Fri Jan 23 04:15:39 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 23 Jan 2009 04:15:39 +0100 Subject: [Haiku-commits] r28994 - haiku/trunk/src/add-ons/kernel/bus_managers/scsi Message-ID: <200901230315.n0N3Fdi5000445@sheep.berlios.de> Author: mmlr Date: 2009-01-23 04:15:35 +0100 (Fri, 23 Jan 2009) New Revision: 28994 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28994&view=rev Modified: haiku/trunk/src/add-ons/kernel/bus_managers/scsi/dma_buffer.c Log: Remove this panic. This one is triggered when booting my GCC 4.3.2 built image but I don't see why. If someone still knows why this was put there, please check. Modified: haiku/trunk/src/add-ons/kernel/bus_managers/scsi/dma_buffer.c =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/scsi/dma_buffer.c 2009-01-23 03:10:17 UTC (rev 28993) +++ haiku/trunk/src/add-ons/kernel/bus_managers/scsi/dma_buffer.c 2009-01-23 03:15:35 UTC (rev 28994) @@ -73,7 +73,6 @@ if (((addr_t)sg_list->address & alignment) != 0) { SHOW_FLOW(0, "S/G-entry has bad alignment @0x%x", (int)sg_list->address); -panic("XXX"); return false; } From mmlr at mail.berlios.de Fri Jan 23 04:23:22 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 23 Jan 2009 04:23:22 +0100 Subject: [Haiku-commits] r28995 - haiku/trunk/build/jam Message-ID: <200901230323.n0N3NMWQ000931@sheep.berlios.de> Author: mmlr Date: 2009-01-23 04:23:21 +0100 (Fri, 23 Jan 2009) New Revision: 28995 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28995&view=rev Modified: haiku/trunk/build/jam/HeadersRules Log: Move include directories for C++ headers to the beginning. This makes include_next work properly with newer headers. GCC 4.3.2 has a in its C++ headers for example that does an include_next of . The latter is located in the C headers. For this to work, the include directory for the C headers needs to be specified later than the one of the C++ headers. With that Haiku is now completely buildable with GCC 4.3.2. Modified: haiku/trunk/build/jam/HeadersRules =================================================================== --- haiku/trunk/build/jam/HeadersRules 2009-01-23 03:15:35 UTC (rev 28994) +++ haiku/trunk/build/jam/HeadersRules 2009-01-23 03:23:21 UTC (rev 28995) @@ -370,8 +370,18 @@ kernel media mail midi midi2 net opengl storage support translation ; + local headers = ; + + # The C++ headers. If specified, we use the compiler headers, otherwise + # the ones that come with our libstdc++. + if $(HAIKU_C++_HEADERS_DIR) { + headers += $(HAIKU_C++_HEADERS_DIR) ; + } else { + headers += [ FDirName $(HAIKU_TOP) headers cpp ] ; + } + # GCC headers - local headers = $(HAIKU_GCC_HEADERS_DIR) ; + headers += $(HAIKU_GCC_HEADERS_DIR) ; # Use headers directory, to allow to do things like include headers += [ FDirName $(HAIKU_TOP) headers ] ; @@ -392,14 +402,6 @@ # Use the root of the private headers -- not so nice, but simplifies things. headers += [ PrivateHeaders $(DOT) ] ; - # The C++ headers. If specified, we use the compiler headers, otherwise - # the ones that come with our libstdc++. - if $(HAIKU_C++_HEADERS_DIR) { - headers += $(HAIKU_C++_HEADERS_DIR) ; - } else { - headers += [ FDirName $(HAIKU_TOP) headers cpp ] ; - } - return $(headers) ; } From superstippi at gmx.de Fri Jan 23 11:11:13 2009 From: superstippi at gmx.de (=?ISO-8859-1?Q?Stephan_A=DFmus?=) Date: Fri, 23 Jan 2009 11:11:13 +0100 Subject: [Haiku-commits] r28986 - haiku/trunk/src/system/kernel/arch/x86 In-Reply-To: <200901230124.n0N1OnPt023539@sheep.berlios.de> References: <200901230124.n0N1OnPt023539@sheep.berlios.de> Message-ID: <497997C1.80401@gmx.de> mmlr at mail.berlios.de schrieb: > Author: mmlr > Date: 2009-01-23 02:24:47 +0100 (Fri, 23 Jan 2009) > New Revision: 28986 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28986&view=rev > > Modified: > haiku/trunk/src/system/kernel/arch/x86/apm.cpp > Log: > Comment out problematic inline asm statement for GCC 4. The direct reference > to sAPMBiosEntry generates undefined symbols and I'm not in a condition to fix > this right now. Added a TODO. But it looks like you have not commented the statement out, but enabled it only for GCC versions >= 4. Am I missing something? > Modified: haiku/trunk/src/system/kernel/arch/x86/apm.cpp > =================================================================== > --- haiku/trunk/src/system/kernel/arch/x86/apm.cpp 2009-01-23 01:21:27 UTC (rev 28985) > +++ haiku/trunk/src/system/kernel/arch/x86/apm.cpp 2009-01-23 01:24:47 UTC (rev 28986) > @@ -91,6 +91,9 @@ > static status_t > call_apm_bios(bios_regs *regs) > { > +#if _GNUC_ >= 4 > + // TODO: Fix this for GCC 4.3! The direct reference to sAPMBiosEntry > + // in the ASM below causes undefined references. > asm volatile( > "pushfl; " > "pushl %%ebp; " > @@ -104,6 +107,7 @@ > "=S" (regs->esi), "=m" (regs->flags) > : "a" (regs->eax), "b" (regs->ebx), "c" (regs->ecx) > : "memory", "edi", "cc"); > +#endif > > if (regs->flags & CARRY_FLAG) > return B_ERROR; Nice work, BTW! I am looking forward to what's hopefully coming! :-D Best regards, -Stephan From mmlr at mlotz.ch Fri Jan 23 12:35:05 2009 From: mmlr at mlotz.ch (Michael Lotz) Date: Fri, 23 Jan 2009 12:35:05 +0100 Subject: [Haiku-commits] r28986 - haiku/trunk/src/system/kernel/arch/x86 In-Reply-To: <497997C1.80401@gmx.de> References: <200901230124.n0N1OnPt023539@sheep.berlios.de> <497997C1.80401@gmx.de> Message-ID: <20090123112057.M73015@mlotz.ch> On Fri, 23 Jan 2009 11:11:13 +0100, Stephan A?mus wrote > mmlr at mail.berlios.de schrieb: >> Author: mmlr >> Date: 2009-01-23 02:24:47 +0100 (Fri, 23 Jan 2009) >> New Revision: 28986 >> ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28986&view=rev >> >> Modified: >> haiku/trunk/src/system/kernel/arch/x86/apm.cpp >> Log: >> Comment out problematic inline asm statement for GCC 4. The direct reference >> to sAPMBiosEntry generates undefined symbols and I'm not in a condition to fix >> this right now. Added a TODO. > > But it looks like you have not commented the statement out, but > enabled it only for GCC versions >= 4. Am I missing something? D'oh. Even worse, I completely disabled it. The check should be "#if __GNUC__ < 4" (with double underscores on both sides). Anyone please feel free to fix/commit that (or even better fix the underlying problem and remove the check). That's what you get for late night hacking I guess :-/ > Nice work, BTW! I am looking forward to what's hopefully coming! :-D To explain my current state: I built a native GCC 4.3.2 under a GCC2 Haiku. This means I now have GCC2 compiled GCC4 binaries. I took the binutils directly from GCC2 instead of rebuilding them too, as they should be up to date (2.17). Then I used that GCC4 as a cross-compiler to build a GCC4 Haiku. The next steps are now making that GCC4 Haiku a hybrid build (to be able to use the GCC2 compiled toolchain) and then build a GCC4 compiled GCC4/toolchain on that. With that a complete native GCC4 toolchain should be available. But that will still take some time :-). I will however make the GCC4 package available sometime this weekend. When you build a GCC2 based Haiku and make it a hybrid using this GCC4 package you should then be able to use a native GCC4 in Haiku. That could get some ports going. I personally find it pretty impressive that such a monster as GCC can be built completely within Haiku. I have now spent the last three nights (instead of sleeping - so tired right now) in Haiku. Yesterday building GCC, fixing Haiku sources for GCC 4.3, commiting, compiling multiple Haiku images while browsing, chatting and listening to music, all in a session of more than 8 hours. Regards Michael From stippi at mail.berlios.de Fri Jan 23 13:36:37 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Fri, 23 Jan 2009 13:36:37 +0100 Subject: [Haiku-commits] r28996 - haiku/trunk/src/system/kernel/arch/x86 Message-ID: <200901231236.n0NCab3a032269@sheep.berlios.de> Author: stippi Date: 2009-01-23 13:36:36 +0100 (Fri, 23 Jan 2009) New Revision: 28996 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28996&view=rev Modified: haiku/trunk/src/system/kernel/arch/x86/apm.cpp Log: Fixed GCC version check according to Michael. Modified: haiku/trunk/src/system/kernel/arch/x86/apm.cpp =================================================================== --- haiku/trunk/src/system/kernel/arch/x86/apm.cpp 2009-01-23 03:23:21 UTC (rev 28995) +++ haiku/trunk/src/system/kernel/arch/x86/apm.cpp 2009-01-23 12:36:36 UTC (rev 28996) @@ -91,7 +91,7 @@ static status_t call_apm_bios(bios_regs *regs) { -#if _GNUC_ >= 4 +#if __GNUC__ < 4 // TODO: Fix this for GCC 4.3! The direct reference to sAPMBiosEntry // in the asm below causes undefined references. asm volatile( From superstippi at gmx.de Fri Jan 23 13:44:25 2009 From: superstippi at gmx.de (=?ISO-8859-1?Q?Stephan_A=DFmus?=) Date: Fri, 23 Jan 2009 13:44:25 +0100 Subject: [Haiku-commits] r28986 - haiku/trunk/src/system/kernel/arch/x86 In-Reply-To: <20090123112057.M73015@mlotz.ch> References: <200901230124.n0N1OnPt023539@sheep.berlios.de> <497997C1.80401@gmx.de> <20090123112057.M73015@mlotz.ch> Message-ID: <4979BBA9.2070704@gmx.de> Michael Lotz schrieb: > On Fri, 23 Jan 2009 11:11:13 +0100, Stephan A?mus wrote >> mmlr at mail.berlios.de schrieb: >>> Author: mmlr >>> Date: 2009-01-23 02:24:47 +0100 (Fri, 23 Jan 2009) >>> New Revision: 28986 >>> ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28986&view=rev >>> >>> Modified: >>> haiku/trunk/src/system/kernel/arch/x86/apm.cpp >>> Log: >>> Comment out problematic inline asm statement for GCC 4. The direct reference >>> to sAPMBiosEntry generates undefined symbols and I'm not in a condition to fix >>> this right now. Added a TODO. >> But it looks like you have not commented the statement out, but >> enabled it only for GCC versions >= 4. Am I missing something? > > D'oh. Even worse, I completely disabled it. The check should be "#if __GNUC__ > < 4" (with double underscores on both sides). Anyone please feel free to > fix/commit that (or even better fix the underlying problem and remove the > check). That's what you get for late night hacking I guess :-/ Ok, fixed. >> Nice work, BTW! I am looking forward to what's hopefully coming! :-D > > To explain my current state: I built a native GCC 4.3.2 under a GCC2 Haiku. > This means I now have GCC2 compiled GCC4 binaries. I took the binutils > directly from GCC2 instead of rebuilding them too, as they should be up to > date (2.17). Then I used that GCC4 as a cross-compiler to build a GCC4 Haiku. > The next steps are now making that GCC4 Haiku a hybrid build (to be able to > use the GCC2 compiled toolchain) and then build a GCC4 compiled GCC4/toolchain > on that. With that a complete native GCC4 toolchain should be available. But > that will still take some time :-). Very exciting! That will take some work off of Ingo. > I will however make the GCC4 package available sometime this weekend. When you > build a GCC2 based Haiku and make it a hybrid using this GCC4 package you > should then be able to use a native GCC4 in Haiku. That could get some ports > going. Pretty cool. I also wanted to play around with some stuff, like what effect the "restrict" keyword has on some bitmap processing... :-) > I personally find it pretty impressive that such a monster as GCC can be built > completely within Haiku. I have now spent the last three nights (instead of > sleeping - so tired right now) in Haiku. Yesterday building GCC, fixing Haiku > sources for GCC 4.3, commiting, compiling multiple Haiku images while > browsing, chatting and listening to music, all in a session of more than 8 hours. Yes, it's going pretty well when you have the right hardware. It runs very fine on my notebook. On my desktop machines, I still have the problem with the USB HID devices, or rather the hub in the KVM locking up. That was unfortunately not fixed by your recent work on USB. BTW, the ASUS P5Q (plain version, which seems to be _very_ popular) seems to be a very fine board for running Haiku on. It also still has two PS/2 ports. SATA and networking (Atheros) both work. I've ordered such a board now, since one of my desktop machines is acting flaky in both Windows and Linux since some weeks. That should get me some quad core action and I can use Haiku on my screen... Best regards, -Stephan From host.haiku at gmx.de Fri Jan 23 13:28:58 2009 From: host.haiku at gmx.de (julun) Date: Fri, 23 Jan 2009 13:28:58 +0100 Subject: [Haiku-commits] r28986 - haiku/trunk/src/system/kernel/arch/x86 In-Reply-To: <20090123112057.M73015@mlotz.ch> References: <200901230124.n0N1OnPt023539@sheep.berlios.de> <497997C1.80401@gmx.de> <20090123112057.M73015@mlotz.ch> Message-ID: <4979B80A.4050301@gmx.de> Hi Michael, Michael Lotz wrote: > On Fri, 23 Jan 2009 11:11:13 +0100, Stephan A?mus wrote >> mmlr at mail.berlios.de schrieb: >>> Author: mmlr >>> Date: 2009-01-23 02:24:47 +0100 (Fri, 23 Jan 2009) >>> New Revision: 28986 >>> ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28986&view=rev >>> >>> Modified: >>> haiku/trunk/src/system/kernel/arch/x86/apm.cpp >>> Log: >>> Comment out problematic inline asm statement for GCC 4. The direct reference >>> to sAPMBiosEntry generates undefined symbols and I'm not in a condition to fix >>> this right now. Added a TODO. >> But it looks like you have not commented the statement out, but >> enabled it only for GCC versions >= 4. Am I missing something? > > D'oh. Even worse, I completely disabled it. The check should be "#if __GNUC__ > < 4" (with double underscores on both sides). Anyone please feel free to > fix/commit that (or even better fix the underlying problem and remove the > check). That's what you get for late night hacking I guess :-/ > >> Nice work, BTW! I am looking forward to what's hopefully coming! :-D > > To explain my current state: I built a native GCC 4.3.2 under a GCC2 Haiku. > This means I now have GCC2 compiled GCC4 binaries. I took the binutils > directly from GCC2 instead of rebuilding them too, as they should be up to > date (2.17). Then I used that GCC4 as a cross-compiler to build a GCC4 Haiku. > The next steps are now making that GCC4 Haiku a hybrid build (to be able to > use the GCC2 compiled toolchain) and then build a GCC4 compiled GCC4/toolchain > on that. With that a complete native GCC4 toolchain should be available. But > that will still take some time :-). Hrmm, I did exactly the same the last two nights. I read about your work last night in the Haiku echolog thing. So at least i can provide you my gcc4/gcc2 hybrid build if needed. Regards, Karsten From ingo_weinhold at gmx.de Fri Jan 23 14:19:53 2009 From: ingo_weinhold at gmx.de (Ingo Weinhold) Date: Fri, 23 Jan 2009 14:19:53 +0100 Subject: [Haiku-commits] r28986 - haiku/trunk/src/system/kernel/arch/x86 In-Reply-To: <20090123112057.M73015@mlotz.ch> References: <200901230124.n0N1OnPt023539@sheep.berlios.de> <497997C1.80401@gmx.de> <20090123112057.M73015@mlotz.ch> Message-ID: <20090123141953.544.2@knochen-vm.localdomain> On 2009-01-23 at 12:35:05 [+0100], Michael Lotz wrote: [...] > To explain my current state: I built a native GCC 4.3.2 under a GCC2 Haiku. > This means I now have GCC2 compiled GCC4 binaries. I took the binutils > directly from GCC2 instead of rebuilding them too, as they should be up to > date (2.17). The current binutils version is in fact 2.19. Also Oliver has hacked the version that we use with gcc2 quite a bit (best cf. the commit logs) to make it play nicely with gcc2 (which apparently didn't fully succeed -- cf. #1768). So it might not be the best idea to use this binutils version with gcc4. > I will however make the GCC4 package available sometime this weekend. When > you > build a GCC2 based Haiku and make it a hybrid using this GCC4 package you > should then be able to use a native GCC4 in Haiku. That could get some ports > going. Great! Please don't forget to update the sources in the buildtools repository. :-) CU, Ingo From jackburton at mail.berlios.de Fri Jan 23 15:05:15 2009 From: jackburton at mail.berlios.de (jackburton at mail.berlios.de) Date: Fri, 23 Jan 2009 15:05:15 +0100 Subject: [Haiku-commits] r28997 - in haiku/trunk/src/system/libroot/posix: glibc/stdlib glibc/wcsmbs locale Message-ID: <200901231405.n0NE5FJH017010@sheep.berlios.de> Author: jackburton Date: 2009-01-23 15:05:12 +0100 (Fri, 23 Jan 2009) New Revision: 28997 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28997&view=rev Modified: haiku/trunk/src/system/libroot/posix/glibc/stdlib/Jamfile haiku/trunk/src/system/libroot/posix/glibc/wcsmbs/Jamfile haiku/trunk/src/system/libroot/posix/locale/Jamfile Log: revert r28970, since they cause crashes. Still looking into it Modified: haiku/trunk/src/system/libroot/posix/glibc/stdlib/Jamfile =================================================================== --- haiku/trunk/src/system/libroot/posix/glibc/stdlib/Jamfile 2009-01-23 12:36:36 UTC (rev 28996) +++ haiku/trunk/src/system/libroot/posix/glibc/stdlib/Jamfile 2009-01-23 14:05:12 UTC (rev 28997) @@ -20,9 +20,9 @@ lcong48_r.c lrand48.c lrand48_r.c - #mblen.c - #mbstowcs.c - #mbtowc.c + mblen.c + mbstowcs.c + mbtowc.c mrand48.c mrand48_r.c nrand48.c @@ -32,6 +32,6 @@ seed48_r.c srand48.c srand48_r.c - #wcstombs.c - #wctomb.c + wcstombs.c + wctomb.c ; Modified: haiku/trunk/src/system/libroot/posix/glibc/wcsmbs/Jamfile =================================================================== --- haiku/trunk/src/system/libroot/posix/glibc/wcsmbs/Jamfile 2009-01-23 12:36:36 UTC (rev 28996) +++ haiku/trunk/src/system/libroot/posix/glibc/wcsmbs/Jamfile 2009-01-23 14:05:12 UTC (rev 28997) @@ -19,14 +19,14 @@ MergeObject posix_gnu_wcsmbs.o : btowc.c mbrlen.c -# mbrtowc.c -# mbsinit.c -# mbsnrtowcs.c + mbrtowc.c + mbsinit.c + mbsnrtowcs.c mbsrtowcs.c # mbsrtowcs_l.c wcpcpy.c wcpncpy.c -# wcrtomb.c + wcrtomb.c wcscasecmp.c # wcscasecmp_l.c wcscat.c @@ -46,7 +46,7 @@ wcsnlen.c wcspbrk.c wcsrchr.c - wcsrtombs.c +# wcsrtombs.c wcsspn.c wcsstr.c wcstod.c Modified: haiku/trunk/src/system/libroot/posix/locale/Jamfile =================================================================== --- haiku/trunk/src/system/libroot/posix/locale/Jamfile 2009-01-23 12:36:36 UTC (rev 28996) +++ haiku/trunk/src/system/libroot/posix/locale/Jamfile 2009-01-23 14:05:12 UTC (rev 28997) @@ -4,9 +4,9 @@ #ctype.c localeconv.c setlocale.c - mb_none.c - mblen.c - mbrtowc.c - mbsinit.c - wcrtomb.c + #mb_none.c + #mblen.c + #mbrtowc.c + #mbsinit.c + #wcrtomb.c ; From oruizdorantes at mail.berlios.de Fri Jan 23 18:59:57 2009 From: oruizdorantes at mail.berlios.de (oruizdorantes at BerliOS) Date: Fri, 23 Jan 2009 18:59:57 +0100 Subject: [Haiku-commits] r28998 - haiku/trunk/src/kits/bluetooth Message-ID: <200901231759.n0NHxvou003186@sheep.berlios.de> Author: oruizdorantes Date: 2009-01-23 18:59:49 +0100 (Fri, 23 Jan 2009) New Revision: 28998 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28998&view=rev Modified: haiku/trunk/src/kits/bluetooth/DeviceClass.cpp Log: Do dot dump for the particular (major minor service) any header in the string output Modified: haiku/trunk/src/kits/bluetooth/DeviceClass.cpp =================================================================== --- haiku/trunk/src/kits/bluetooth/DeviceClass.cpp 2009-01-23 14:05:12 UTC (rev 28997) +++ haiku/trunk/src/kits/bluetooth/DeviceClass.cpp 2009-01-23 17:59:49 UTC (rev 28998) @@ -29,8 +29,6 @@ "Rendering", "Capturing", "Object Transfer", "Audio", "Telephony", "Information" }; - serviceClass = "Service Classes: "; - if (GetServiceClass() != 0) { for (uint s = 0; s < (sizeof(services) / sizeof(*services)); s++) { @@ -53,8 +51,6 @@ static const char *major_devices[] = { "Miscellaneous", "Computer", "Phone", "LAN Access", "Audio/Video", "Peripheral", "Imaging", "Uncategorized" }; - majorClass << "Major Class: "; - if (GetMajorDeviceClass() >= sizeof(major_devices) / sizeof(*major_devices)) majorClass << "Invalid Device Class!\n"; else @@ -69,8 +65,6 @@ uint major = GetMajorDeviceClass(); uint minor = GetMinorDeviceClass(); - minorClass << "Minor Class: "; - switch (major) { case 0: /* misc */ minorClass << " -"; @@ -320,14 +314,15 @@ void DeviceClass::DumpDeviceClass(BString& string) { - + string << "Service Classes: "; GetServiceClass(string); string << " | "; + string << "Major Class: "; GetMajorDeviceClass(string); string << " | "; + string << "Minor Class: "; GetMinorDeviceClass(string); - string << "."; - + string << "."; } } From rossi at webpositive.org Fri Jan 23 22:05:45 2009 From: rossi at webpositive.org (rossi at webpositive.org) Date: Fri, 23 Jan 2009 16:05:45 -0500 (EST) Subject: [Haiku-commits] r28997 - in haiku/trunk/src/system/libroot/posix: glibc/stdlib glibc/wcsmbs locale In-Reply-To: <200901231405.n0NE5FJH017010@sheep.berlios.de> References: <200901231405.n0NE5FJH017010@sheep.berlios.de> Message-ID: <11299.77.1.252.211.1232744745.squirrel@webmail1.pair.com> > Author: jackburton > Date: 2009-01-23 15:05:12 +0100 (Fri, 23 Jan 2009) > New Revision: 28997 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28997&view=rev > > Modified: > haiku/trunk/src/system/libroot/posix/glibc/stdlib/Jamfile > haiku/trunk/src/system/libroot/posix/glibc/wcsmbs/Jamfile > haiku/trunk/src/system/libroot/posix/locale/Jamfile > Log: > revert r28970, since they cause crashes. Still looking into it It looks like this change broke the build, at least for me ;-( The build fails while trying to build libroot with a bunch of undefined references "undefined reference to `__wcsrtombs'". I tried a clean build from a fresh checkout. You can find the log files of the build attempt here: http://www.streetpainter.net/haiku/downloads/images/build-r28997.log http://www.streetpainter.net/haiku/downloads/images/error-r28997.log The first file contains the stdout output, the other the stderr output. Cheers, Rossi From jackburton at mail.berlios.de Fri Jan 23 22:54:36 2009 From: jackburton at mail.berlios.de (jackburton at mail.berlios.de) Date: Fri, 23 Jan 2009 22:54:36 +0100 Subject: [Haiku-commits] r28999 - haiku/trunk/src/system/libroot/posix/glibc/wcsmbs Message-ID: <200901232154.n0NLsa77015468@sheep.berlios.de> Author: jackburton Date: 2009-01-23 22:54:34 +0100 (Fri, 23 Jan 2009) New Revision: 28999 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=28999&view=rev Modified: haiku/trunk/src/system/libroot/posix/glibc/wcsmbs/Jamfile Log: fix the build. Sorry for the trouble Modified: haiku/trunk/src/system/libroot/posix/glibc/wcsmbs/Jamfile =================================================================== --- haiku/trunk/src/system/libroot/posix/glibc/wcsmbs/Jamfile 2009-01-23 17:59:49 UTC (rev 28998) +++ haiku/trunk/src/system/libroot/posix/glibc/wcsmbs/Jamfile 2009-01-23 21:54:34 UTC (rev 28999) @@ -46,7 +46,7 @@ wcsnlen.c wcspbrk.c wcsrchr.c -# wcsrtombs.c + wcsrtombs.c wcsspn.c wcsstr.c wcstod.c From mmlr at mail.berlios.de Sat Jan 24 00:23:31 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 24 Jan 2009 00:23:31 +0100 Subject: [Haiku-commits] r29000 - haiku/trunk/src/add-ons/kernel/drivers/input/usb_hid Message-ID: <200901232323.n0NNNV23022382@sheep.berlios.de> Author: mmlr Date: 2009-01-24 00:23:30 +0100 (Sat, 24 Jan 2009) New Revision: 29000 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29000&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp Log: Disable KDL enter key in usb_hid. It's not usable yet and hitting it by accident without a way back kinda sucks... Modified: haiku/trunk/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp 2009-01-23 21:54:34 UTC (rev 28999) +++ haiku/trunk/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp 2009-01-23 23:23:30 UTC (rev 29000) @@ -345,7 +345,7 @@ key = KEY_Break; else if (key == 0xe && (current[0] & 1)) key = KEY_SysRq; -#if HAIKU_TARGET_PLATFORM_HAIKU +#if 0 else if (keyDown && key == 0x0d) // ToDo: remove again panic("keyboard requested halt.\n"); #endif From korli at mail.berlios.de Sat Jan 24 01:31:17 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Sat, 24 Jan 2009 01:31:17 +0100 Subject: [Haiku-commits] r29001 - haiku/trunk/src/add-ons/kernel/file_systems/bfs Message-ID: <200901240031.n0O0VHue029995@sheep.berlios.de> Author: korli Date: 2009-01-24 01:31:16 +0100 (Sat, 24 Jan 2009) New Revision: 29001 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29001&view=rev Modified: haiku/trunk/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp Log: when renaming, check first with the newDirectory instead of starting at its parent. this should fix #3355 Modified: haiku/trunk/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp 2009-01-23 23:23:30 UTC (rev 29000) +++ haiku/trunk/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp 2009-01-24 00:31:16 UTC (rev 29001) @@ -1034,7 +1034,7 @@ // If we meet our inode on that way, we have to bail out. if (oldDirectory != newDirectory) { - ino_t parent = volume->ToVnode(newDirectory->Parent()); + ino_t parent = newDirectory->ID(); ino_t root = volume->RootNode()->ID(); while (true) { From mmlr at mail.berlios.de Sat Jan 24 02:28:42 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 24 Jan 2009 02:28:42 +0100 Subject: [Haiku-commits] r29002 - in haiku/trunk/src/add-ons/kernel: bus_managers/usb busses/usb Message-ID: <200901240128.n0O1SgZx025990@sheep.berlios.de> Author: mmlr Date: 2009-01-24 02:28:31 +0100 (Sat, 24 Jan 2009) New Revision: 29002 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29002&view=rev Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/BusManager.cpp haiku/trunk/src/add-ons/kernel/bus_managers/usb/Device.cpp haiku/trunk/src/add-ons/kernel/bus_managers/usb/Hub.cpp haiku/trunk/src/add-ons/kernel/bus_managers/usb/Interface.cpp haiku/trunk/src/add-ons/kernel/bus_managers/usb/Object.cpp haiku/trunk/src/add-ons/kernel/bus_managers/usb/Pipe.cpp haiku/trunk/src/add-ons/kernel/bus_managers/usb/Stack.cpp haiku/trunk/src/add-ons/kernel/bus_managers/usb/Transfer.cpp haiku/trunk/src/add-ons/kernel/bus_managers/usb/usb.cpp haiku/trunk/src/add-ons/kernel/bus_managers/usb/usb_p.h haiku/trunk/src/add-ons/kernel/busses/usb/ehci.cpp haiku/trunk/src/add-ons/kernel/busses/usb/ehci.h haiku/trunk/src/add-ons/kernel/busses/usb/ehci.rdef haiku/trunk/src/add-ons/kernel/busses/usb/ehci_rh.cpp haiku/trunk/src/add-ons/kernel/busses/usb/ohci.cpp haiku/trunk/src/add-ons/kernel/busses/usb/ohci.h haiku/trunk/src/add-ons/kernel/busses/usb/ohci.rdef haiku/trunk/src/add-ons/kernel/busses/usb/ohci_rh.cpp haiku/trunk/src/add-ons/kernel/busses/usb/uhci.cpp haiku/trunk/src/add-ons/kernel/busses/usb/uhci.h haiku/trunk/src/add-ons/kernel/busses/usb/uhci.rdef haiku/trunk/src/add-ons/kernel/busses/usb/uhci_rh.cpp Log: * Rework the USB tracing mechanism. Cleaned it up and make it more convenient to use. It will now print out the usb_ids of the objects that generate the trace messages. These IDs are unique compared to the device address used previously, because device addresses are per bus while usb_ids are global. This makes trace output from devices across multiple controllers distinguishable. * Some cleanup. Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/BusManager.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/usb/BusManager.cpp 2009-01-24 00:31:16 UTC (rev 29001) +++ haiku/trunk/src/add-ons/kernel/bus_managers/usb/BusManager.cpp 2009-01-24 01:28:31 UTC (rev 29002) @@ -12,6 +12,7 @@ BusManager::BusManager(Stack *stack) : fInitOK(false), + fStack(stack), fRootHub(NULL) { mutex_init(&fLock, "usb busmanager lock"); @@ -86,7 +87,7 @@ address = (address + 1) % 127; } - TRACE_ERROR(("USB BusManager: the busmanager has run out of device addresses\n")); + TRACE_ERROR("the busmanager has run out of device addresses\n"); Unlock(); return -1; } @@ -103,7 +104,7 @@ return; if (!fDeviceMap[address]) { - TRACE_ERROR(("USB BusManager: freeing address %d which was not allocated\n", address)); + TRACE_ERROR("freeing address %d which was not allocated\n", address); } fDeviceMap[address] = false; @@ -118,15 +119,15 @@ // Check if there is a free entry in the device map (for the device number) int8 deviceAddress = AllocateAddress(); if (deviceAddress < 0) { - TRACE_ERROR(("USB BusManager: could not allocate an address\n")); + TRACE_ERROR("could not allocate an address\n"); return NULL; } - TRACE(("USB BusManager: setting device address to %d\n", deviceAddress)); + TRACE("setting device address to %d\n", deviceAddress); ControlPipe *defaultPipe = _GetDefaultPipe(speed); if (!defaultPipe) { - TRACE_ERROR(("USB BusManager: error getting the default pipe for speed %d\n", (int)speed)); + TRACE_ERROR("error getting the default pipe for speed %d\n", speed); FreeAddress(deviceAddress); return NULL; } @@ -153,7 +154,7 @@ } if (result < B_OK) { - TRACE_ERROR(("USB BusManager: error while setting device address\n")); + TRACE_ERROR("error while setting device address\n"); FreeAddress(deviceAddress); return NULL; } @@ -173,7 +174,7 @@ size_t actualLength = 0; usb_device_descriptor deviceDescriptor; - TRACE(("USB BusManager: getting the device descriptor\n")); + TRACE("getting the device descriptor\n"); pipe.SendRequest( USB_REQTYPE_DEVICE_IN | USB_REQTYPE_STANDARD, // type USB_REQUEST_GET_DESCRIPTOR, // request @@ -185,33 +186,33 @@ &actualLength); // actual length if (actualLength != 8) { - TRACE_ERROR(("USB BusManager: error while getting the device descriptor\n")); + TRACE_ERROR("error while getting the device descriptor\n"); FreeAddress(deviceAddress); return NULL; } - TRACE(("short device descriptor for device %d:\n", deviceAddress)); - TRACE(("\tlength:..............%d\n", deviceDescriptor.length)); - TRACE(("\tdescriptor_type:.....0x%04x\n", deviceDescriptor.descriptor_type)); - TRACE(("\tusb_version:.........0x%04x\n", deviceDescriptor.usb_version)); - TRACE(("\tdevice_class:........0x%02x\n", deviceDescriptor.device_class)); - TRACE(("\tdevice_subclass:.....0x%02x\n", deviceDescriptor.device_subclass)); - TRACE(("\tdevice_protocol:.....0x%02x\n", deviceDescriptor.device_protocol)); - TRACE(("\tmax_packet_size_0:...%d\n", deviceDescriptor.max_packet_size_0)); + TRACE("short device descriptor for device %d:\n", deviceAddress); + TRACE("\tlength:..............%d\n", deviceDescriptor.length); + TRACE("\tdescriptor_type:.....0x%04x\n", deviceDescriptor.descriptor_type); + TRACE("\tusb_version:.........0x%04x\n", deviceDescriptor.usb_version); + TRACE("\tdevice_class:........0x%02x\n", deviceDescriptor.device_class); + TRACE("\tdevice_subclass:.....0x%02x\n", deviceDescriptor.device_subclass); + TRACE("\tdevice_protocol:.....0x%02x\n", deviceDescriptor.device_protocol); + TRACE("\tmax_packet_size_0:...%d\n", deviceDescriptor.max_packet_size_0); // Create a new instance based on the type (Hub or Device) if (deviceDescriptor.device_class == 0x09) { - TRACE(("USB BusManager: creating new hub\n")); + TRACE("creating new hub\n"); Hub *hub = new(std::nothrow) Hub(parent, hubAddress, hubPort, deviceDescriptor, deviceAddress, speed, false); if (!hub) { - TRACE_ERROR(("USB BusManager: no memory to allocate hub\n")); + TRACE_ERROR("no memory to allocate hub\n"); FreeAddress(deviceAddress); return NULL; } if (hub->InitCheck() < B_OK) { - TRACE_ERROR(("USB BusManager: hub failed init check\n")); + TRACE_ERROR("hub failed init check\n"); FreeAddress(deviceAddress); delete hub; return NULL; @@ -220,17 +221,17 @@ return (Device *)hub; } - TRACE(("USB BusManager: creating new device\n")); + TRACE("creating new device\n"); Device *device = new(std::nothrow) Device(parent, hubAddress, hubPort, deviceDescriptor, deviceAddress, speed, false); if (!device) { - TRACE_ERROR(("USB BusManager: no memory to allocate device\n")); + TRACE_ERROR("no memory to allocate device\n"); FreeAddress(deviceAddress); return NULL; } if (device->InitCheck() < B_OK) { - TRACE_ERROR(("USB BusManager: device failed init check\n")); + TRACE_ERROR("device failed init check\n"); FreeAddress(deviceAddress); delete device; return NULL; @@ -298,7 +299,7 @@ } if (!fDefaultPipes[speed]) { - TRACE_ERROR(("USB BusManager: failed to allocate default pipe for speed %d\n", speed)); + TRACE_ERROR("failed to allocate default pipe for speed %d\n", speed); } Unlock(); Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/Device.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/usb/Device.cpp 2009-01-24 00:31:16 UTC (rev 29001) +++ haiku/trunk/src/add-ons/kernel/bus_managers/usb/Device.cpp 2009-01-24 01:28:31 UTC (rev 29002) @@ -25,11 +25,11 @@ fHubAddress(hubAddress), fHubPort(hubPort) { - TRACE(("USB Device %d: creating device\n", fDeviceAddress)); + TRACE("creating device\n"); fDefaultPipe = new(std::nothrow) ControlPipe(this); if (!fDefaultPipe) { - TRACE_ERROR(("USB Device %d: could not allocate default pipe\n", fDeviceAddress)); + TRACE_ERROR("could not allocate default pipe\n"); return; } @@ -43,32 +43,31 @@ (void *)&fDeviceDescriptor, sizeof(fDeviceDescriptor), &actualLength); if (status < B_OK || actualLength != sizeof(fDeviceDescriptor)) { - TRACE_ERROR(("USB Device %d: error while getting the device descriptor\n", fDeviceAddress)); + TRACE_ERROR("error while getting the device descriptor\n"); return; } - TRACE(("full device descriptor for device %d:\n", fDeviceAddress)); - TRACE(("\tlength:..............%d\n", fDeviceDescriptor.length)); - TRACE(("\tdescriptor_type:.....0x%04x\n", fDeviceDescriptor.descriptor_type)); - TRACE(("\tusb_version:.........0x%04x\n", fDeviceDescriptor.usb_version)); - TRACE(("\tdevice_class:........0x%02x\n", fDeviceDescriptor.device_class)); - TRACE(("\tdevice_subclass:.....0x%02x\n", fDeviceDescriptor.device_subclass)); - TRACE(("\tdevice_protocol:.....0x%02x\n", fDeviceDescriptor.device_protocol)); - TRACE(("\tmax_packet_size_0:...%d\n", fDeviceDescriptor.max_packet_size_0)); - TRACE(("\tvendor_id:...........0x%04x\n", fDeviceDescriptor.vendor_id)); - TRACE(("\tproduct_id:..........0x%04x\n", fDeviceDescriptor.product_id)); - TRACE(("\tdevice_version:......0x%04x\n", fDeviceDescriptor.device_version)); - TRACE(("\tmanufacturer:........0x%02x\n", fDeviceDescriptor.manufacturer)); - TRACE(("\tproduct:.............0x%02x\n", fDeviceDescriptor.product)); - TRACE(("\tserial_number:.......0x%02x\n", fDeviceDescriptor.serial_number)); - TRACE(("\tnum_configurations:..%d\n", fDeviceDescriptor.num_configurations)); + TRACE("full device descriptor for device %d:\n", fDeviceAddress); + TRACE("\tlength:..............%d\n", fDeviceDescriptor.length); + TRACE("\tdescriptor_type:.....0x%04x\n", fDeviceDescriptor.descriptor_type); + TRACE("\tusb_version:.........0x%04x\n", fDeviceDescriptor.usb_version); + TRACE("\tdevice_class:........0x%02x\n", fDeviceDescriptor.device_class); + TRACE("\tdevice_subclass:.....0x%02x\n", fDeviceDescriptor.device_subclass); + TRACE("\tdevice_protocol:.....0x%02x\n", fDeviceDescriptor.device_protocol); + TRACE("\tmax_packet_size_0:...%d\n", fDeviceDescriptor.max_packet_size_0); + TRACE("\tvendor_id:...........0x%04x\n", fDeviceDescriptor.vendor_id); + TRACE("\tproduct_id:..........0x%04x\n", fDeviceDescriptor.product_id); + TRACE("\tdevice_version:......0x%04x\n", fDeviceDescriptor.device_version); + TRACE("\tmanufacturer:........0x%02x\n", fDeviceDescriptor.manufacturer); + TRACE("\tproduct:.............0x%02x\n", fDeviceDescriptor.product); + TRACE("\tserial_number:.......0x%02x\n", fDeviceDescriptor.serial_number); + TRACE("\tnum_configurations:..%d\n", fDeviceDescriptor.num_configurations); // Get the configurations fConfigurations = (usb_configuration_info *)malloc( fDeviceDescriptor.num_configurations * sizeof(usb_configuration_info)); if (fConfigurations == NULL) { - TRACE_ERROR(("USB Device %d: out of memory during config creations!\n", - fDeviceAddress)); + TRACE_ERROR("out of memory during config creations!\n"); return; } @@ -81,25 +80,23 @@ &actualLength); if (status < B_OK || actualLength != sizeof(usb_configuration_descriptor)) { - TRACE_ERROR(("USB Device %d: error fetching configuration %ld\n", - fDeviceAddress, i)); + TRACE_ERROR("error fetching configuration %ld\n", i); return; } - TRACE(("USB Device %d: configuration %ld\n", fDeviceAddress, i)); - TRACE(("\tlength:..............%d\n", configDescriptor.length)); - TRACE(("\tdescriptor_type:.....0x%02x\n", configDescriptor.descriptor_type)); - TRACE(("\ttotal_length:........%d\n", configDescriptor.total_length)); - TRACE(("\tnumber_interfaces:...%d\n", configDescriptor.number_interfaces)); - TRACE(("\tconfiguration_value:.0x%02x\n", configDescriptor.configuration_value)); - TRACE(("\tconfiguration:.......0x%02x\n", configDescriptor.configuration)); - TRACE(("\tattributes:..........0x%02x\n", configDescriptor.attributes)); - TRACE(("\tmax_power:...........%d\n", configDescriptor.max_power)); + TRACE("configuration %ld\n", i); + TRACE("\tlength:..............%d\n", configDescriptor.length); + TRACE("\tdescriptor_type:.....0x%02x\n", configDescriptor.descriptor_type); + TRACE("\ttotal_length:........%d\n", configDescriptor.total_length); + TRACE("\tnumber_interfaces:...%d\n", configDescriptor.number_interfaces); + TRACE("\tconfiguration_value:.0x%02x\n", configDescriptor.configuration_value); + TRACE("\tconfiguration:.......0x%02x\n", configDescriptor.configuration); + TRACE("\tattributes:..........0x%02x\n", configDescriptor.attributes); + TRACE("\tmax_power:...........%d\n", configDescriptor.max_power); uint8 *configData = (uint8 *)malloc(configDescriptor.total_length); if (configData == NULL) { - TRACE_ERROR(("USB Device %d: out of memory when reading config\n", - fDeviceAddress)); + TRACE_ERROR("out of memory when reading config\n"); return; } @@ -107,9 +104,9 @@ (void *)configData, configDescriptor.total_length, &actualLength); if (status < B_OK || actualLength != configDescriptor.total_length) { - TRACE_ERROR(("USB Device %d: error fetching full configuration" - " descriptor %ld got %lu expected %u\n", fDeviceAddress, i, - actualLength, configDescriptor.total_length)); + TRACE_ERROR("error fetching full configuration" + " descriptor %ld got %lu expected %u\n", i, + actualLength, configDescriptor.total_length); free(configData); return; } @@ -121,8 +118,7 @@ fConfigurations[i].interface = (usb_interface_list *)malloc( configuration->number_interfaces * sizeof(usb_interface_list)); if (fConfigurations[i].interface == NULL) { - TRACE_ERROR(("USB Device %d: out of memory when creating interfaces\n", - fDeviceAddress)); + TRACE_ERROR("out of memory when creating interfaces\n"); return; } @@ -134,18 +130,18 @@ while (descriptorStart < actualLength) { switch (configData[descriptorStart + 1]) { case USB_DESCRIPTOR_INTERFACE: { - TRACE(("USB Device %d: got interface descriptor\n", fDeviceAddress)); + TRACE("got interface descriptor\n"); usb_interface_descriptor *interfaceDescriptor = (usb_interface_descriptor *)&configData[descriptorStart]; - TRACE(("\tlength:.............%d\n", interfaceDescriptor->length)); - TRACE(("\tdescriptor_type:....0x%02x\n", interfaceDescriptor->descriptor_type)); - TRACE(("\tinterface_number:...%d\n", interfaceDescriptor->interface_number)); - TRACE(("\talternate_setting:..%d\n", interfaceDescriptor->alternate_setting)); - TRACE(("\tnum_endpoints:......%d\n", interfaceDescriptor->num_endpoints)); - TRACE(("\tinterface_class:....0x%02x\n", interfaceDescriptor->interface_class)); - TRACE(("\tinterface_subclass:.0x%02x\n", interfaceDescriptor->interface_subclass)); - TRACE(("\tinterface_protocol:.0x%02x\n", interfaceDescriptor->interface_protocol)); - TRACE(("\tinterface:..........%d\n", interfaceDescriptor->interface)); + TRACE("\tlength:.............%d\n", interfaceDescriptor->length); + TRACE("\tdescriptor_type:....0x%02x\n", interfaceDescriptor->descriptor_type); + TRACE("\tinterface_number:...%d\n", interfaceDescriptor->interface_number); + TRACE("\talternate_setting:..%d\n", interfaceDescriptor->alternate_setting); + TRACE("\tnum_endpoints:......%d\n", interfaceDescriptor->num_endpoints); + TRACE("\tinterface_class:....0x%02x\n", interfaceDescriptor->interface_class); + TRACE("\tinterface_subclass:.0x%02x\n", interfaceDescriptor->interface_subclass); + TRACE("\tinterface_protocol:.0x%02x\n", interfaceDescriptor->interface_protocol); + TRACE("\tinterface:..........%d\n", interfaceDescriptor->interface); usb_interface_list *interfaceList = &fConfigurations[i].interface[interfaceDescriptor->interface_number]; @@ -156,8 +152,8 @@ = (usb_interface_info *)realloc(interfaceList->alt, interfaceList->alt_count * sizeof(usb_interface_info)); if (newAlternates == NULL) { - TRACE_ERROR(("USB Device %d: out of memory allocating" - " alternate interface\n", fDeviceAddress)); + TRACE_ERROR("out of memory allocating" + " alternate interface\n"); interfaceList->alt_count--; return; } @@ -179,8 +175,8 @@ Interface *interface = new(std::nothrow) Interface(this, interfaceDescriptor->interface_number); if (interface == NULL) { - TRACE_ERROR(("USB Device %d: failed to allocate" - " interface object\n", fDeviceAddress)); + TRACE_ERROR("failed to allocate" + " interface object\n"); return; } @@ -190,15 +186,15 @@ } case USB_DESCRIPTOR_ENDPOINT: { - TRACE(("USB Device %d: got endpoint descriptor\n", fDeviceAddress)); + TRACE("got endpoint descriptor\n"); usb_endpoint_descriptor *endpointDescriptor = (usb_endpoint_descriptor *)&configData[descriptorStart]; - TRACE(("\tlength:.............%d\n", endpointDescriptor->length)); - TRACE(("\tdescriptor_type:....0x%02x\n", endpointDescriptor->descriptor_type)); - TRACE(("\tendpoint_address:...0x%02x\n", endpointDescriptor->endpoint_address)); - TRACE(("\tattributes:.........0x%02x\n", endpointDescriptor->attributes)); - TRACE(("\tmax_packet_size:....%d\n", endpointDescriptor->max_packet_size)); - TRACE(("\tinterval:...........%d\n", endpointDescriptor->interval)); + TRACE("\tlength:.............%d\n", endpointDescriptor->length); + TRACE("\tdescriptor_type:....0x%02x\n", endpointDescriptor->descriptor_type); + TRACE("\tendpoint_address:...0x%02x\n", endpointDescriptor->endpoint_address); + TRACE("\tattributes:.........0x%02x\n", endpointDescriptor->attributes); + TRACE("\tmax_packet_size:....%d\n", endpointDescriptor->max_packet_size); + TRACE("\tinterval:...........%d\n", endpointDescriptor->interval); if (!currentInterface) break; @@ -211,8 +207,8 @@ currentInterface->endpoint_count * sizeof(usb_endpoint_info)); if (newEndpoints == NULL) { - TRACE_ERROR(("USB Device %d: out of memory allocating" - " new endpoint\n", fDeviceAddress)); + TRACE_ERROR("out of memory allocating" + " new endpoint\n"); currentInterface->endpoint_count--; return; } @@ -228,11 +224,11 @@ } default: - TRACE(("USB Device %d: got generic descriptor\n", fDeviceAddress)); + TRACE("got generic descriptor\n"); usb_generic_descriptor *genericDescriptor = (usb_generic_descriptor *)&configData[descriptorStart]; - TRACE(("\tlength:.............%d\n", genericDescriptor->length)); - TRACE(("\tdescriptor_type:....0x%02x\n", genericDescriptor->descriptor_type)); + TRACE("\tlength:.............%d\n", genericDescriptor->length); + TRACE("\tdescriptor_type:....0x%02x\n", genericDescriptor->descriptor_type); if (!currentInterface) break; @@ -244,8 +240,8 @@ currentInterface->generic_count * sizeof(usb_descriptor *)); if (newGenerics == NULL) { - TRACE_ERROR(("USB Device %d: out of memory allocating" - " generic descriptor\n", fDeviceAddress)); + TRACE_ERROR("out of memory allocating" + " generic descriptor\n"); currentInterface->generic_count--; return; } @@ -263,10 +259,9 @@ } // Set default configuration - TRACE(("USB Device %d: setting default configuration\n", fDeviceAddress)); + TRACE("setting default configuration\n"); if (SetConfigurationAt(0) < B_OK) { - TRACE_ERROR(("USB Device %d: failed to set default configuration\n", - fDeviceAddress)); + TRACE_ERROR("failed to set default configuration\n"); return; } @@ -468,8 +463,7 @@ } if (pipe == NULL) { - TRACE_ERROR(("USB Device %d: failed to allocate pipe\n", - fDeviceAddress)); + TRACE_ERROR("failed to allocate pipe\n"); endpoint->handle = 0; continue; } @@ -584,7 +578,7 @@ uint32 supportDescriptorCount, const usb_notify_hooks *hooks, usb_driver_cookie **cookies, bool added, bool recursive) { - TRACE(("USB Device %d: reporting device\n", fDeviceAddress)); + TRACE("reporting device\n"); bool supported = false; if (supportDescriptorCount == 0 || supportDescriptors == NULL) supported = true; @@ -685,6 +679,7 @@ if (!fAvailable) return B_ERROR; + TRACE("set feature %u\n", selector); return fDefaultPipe->SendRequest( USB_REQTYPE_STANDARD | USB_REQTYPE_DEVICE_OUT, USB_REQUEST_SET_FEATURE, @@ -703,6 +698,7 @@ if (!fAvailable) return B_ERROR; + TRACE("clear feature %u\n", selector); return fDefaultPipe->SendRequest( USB_REQTYPE_STANDARD | USB_REQTYPE_DEVICE_OUT, USB_REQUEST_CLEAR_FEATURE, @@ -721,6 +717,7 @@ if (!fAvailable) return B_ERROR; + TRACE("get status\n"); return fDefaultPipe->SendRequest( USB_REQTYPE_STANDARD | USB_REQTYPE_DEVICE_IN, USB_REQUEST_GET_STATUS, Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/Hub.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/usb/Hub.cpp 2009-01-24 00:31:16 UTC (rev 29001) +++ haiku/trunk/src/add-ons/kernel/bus_managers/usb/Hub.cpp 2009-01-24 01:28:31 UTC (rev 29002) @@ -18,14 +18,14 @@ isRootHub), fInterruptPipe(NULL) { - TRACE(("USB Hub %d: creating hub\n", DeviceAddress())); + TRACE("creating hub\n"); memset(&fHubDescriptor, 0, sizeof(fHubDescriptor)); for (int32 i = 0; i < USB_MAX_PORT_COUNT; i++) fChildren[i] = NULL; if (!fInitOK) { - TRACE_ERROR(("USB Hub %d: device failed to initialize\n", DeviceAddress())); + TRACE_ERROR("device failed to initialize\n"); return; } @@ -33,33 +33,33 @@ fInitOK = false; if (fDeviceDescriptor.device_class != 9) { - TRACE_ERROR(("USB Hub %d: wrong class! bailing out\n", DeviceAddress())); + TRACE_ERROR("wrong class! bailing out\n"); return; } - TRACE(("USB Hub %d: Getting hub descriptor...\n", DeviceAddress())); + TRACE("getting hub descriptor...\n"); size_t actualLength; status_t status = GetDescriptor(USB_DESCRIPTOR_HUB, 0, 0, (void *)&fHubDescriptor, sizeof(usb_hub_descriptor), &actualLength); // we need at least 8 bytes if (status < B_OK || actualLength < 8) { - TRACE_ERROR(("USB Hub %d: Error getting hub descriptor\n", DeviceAddress())); + TRACE_ERROR("error getting hub descriptor\n"); return; } - TRACE(("USB Hub %d: hub descriptor (%ld bytes):\n", DeviceAddress(), actualLength)); - TRACE(("\tlength:..............%d\n", fHubDescriptor.length)); - TRACE(("\tdescriptor_type:.....0x%02x\n", fHubDescriptor.descriptor_type)); - TRACE(("\tnum_ports:...........%d\n", fHubDescriptor.num_ports)); - TRACE(("\tcharacteristics:.....0x%04x\n", fHubDescriptor.characteristics)); - TRACE(("\tpower_on_to_power_g:.%d\n", fHubDescriptor.power_on_to_power_good)); - TRACE(("\tdevice_removeable:...0x%02x\n", fHubDescriptor.device_removeable)); - TRACE(("\tpower_control_mask:..0x%02x\n", fHubDescriptor.power_control_mask)); + TRACE("hub descriptor (%ld bytes):\n", actualLength); + TRACE("\tlength:..............%d\n", fHubDescriptor.length); + TRACE("\tdescriptor_type:.....0x%02x\n", fHubDescriptor.descriptor_type); + TRACE("\tnum_ports:...........%d\n", fHubDescriptor.num_ports); + TRACE("\tcharacteristics:.....0x%04x\n", fHubDescriptor.characteristics); + TRACE("\tpower_on_to_power_g:.%d\n", fHubDescriptor.power_on_to_power_good); + TRACE("\tdevice_removeable:...0x%02x\n", fHubDescriptor.device_removeable); + TRACE("\tpower_control_mask:..0x%02x\n", fHubDescriptor.power_control_mask); if (fHubDescriptor.num_ports > USB_MAX_PORT_COUNT) { - TRACE_ERROR(("USB Hub %d: hub supports more ports than we do (%d vs. %d)\n", - DeviceAddress(), fHubDescriptor.num_ports, USB_MAX_PORT_COUNT)); + TRACE_ALWAYS("hub supports more ports than we do (%d vs. %d)\n", + fHubDescriptor.num_ports, USB_MAX_PORT_COUNT); fHubDescriptor.num_ports = USB_MAX_PORT_COUNT; } @@ -70,7 +70,7 @@ fInterruptPipe->QueueInterrupt(fInterruptStatus, sizeof(fInterruptStatus), InterruptCallback, this); } else { - TRACE_ERROR(("USB Hub %d: no interrupt pipe found\n", DeviceAddress())); + TRACE_ALWAYS("no interrupt pipe found\n"); } // Wait some time before powering up the ports @@ -83,14 +83,14 @@ USB_REQUEST_SET_FEATURE, PORT_POWER, i + 1, 0, NULL, 0, NULL); if (status < B_OK) - TRACE_ERROR(("USB Hub %d: power up failed on port %ld\n", DeviceAddress(), i)); + TRACE_ERROR("power up failed on port %ld\n", i); } // Wait for power to stabilize snooze(fHubDescriptor.power_on_to_power_good * 2000); fInitOK = true; - TRACE(("USB Hub %d: initialised ok\n", DeviceAddress())); + TRACE("initialised ok\n"); } @@ -129,7 +129,7 @@ 4, &actualLength); if (result < B_OK || actualLength < 4) { - TRACE_ERROR(("USB Hub %d: error updating port status\n", DeviceAddress())); + TRACE_ERROR("error updating port status\n"); return B_ERROR; } @@ -160,7 +160,7 @@ } if ((fPortStatus[index].change & C_PORT_RESET) == 0) { - TRACE_ERROR(("USB Hub %d: port %d won't reset\n", DeviceAddress(), index)); + TRACE_ERROR("port %d won't reset\n", index); return B_ERROR; } @@ -172,7 +172,7 @@ // wait for reset recovery snooze(USB_DELAY_PORT_RESET_RECOVERY); - TRACE(("USB Hub %d: port %d was reset successfully\n", DeviceAddress(), index)); + TRACE("port %d was reset successfully\n", index); return B_OK; } @@ -197,8 +197,10 @@ #ifdef TRACE_USB if (fPortStatus[i].change) { - TRACE(("USB Hub %d: port %ld: status: 0x%04x; change: 0x%04x\n", DeviceAddress(), i, fPortStatus[i].status, fPortStatus[i].change)); - TRACE(("USB Hub %d: device at port %ld: 0x%08lx\n", DeviceAddress(), i, fChildren[i])); + TRACE("port %ld: status: 0x%04x; change: 0x%04x\n", i, + fPortStatus[i].status, fPortStatus[i].change); + TRACE("device at port %ld: %p (%ld)\n", i, fChildren[i], + fChildren[i] != NULL ? fChildren[i]->USBID() : 0); } #endif @@ -210,7 +212,7 @@ if (fPortStatus[i].status & PORT_STATUS_CONNECTION) { // new device attached! - TRACE(("USB Hub %d: new device connected\n", DeviceAddress())); + TRACE_ALWAYS("port %ld: new device connected\n", i); // wait some time for the device to power up snooze(USB_DELAY_DEVICE_POWER_UP); @@ -218,7 +220,7 @@ // reset the port, this will also enable it result = ResetPort(i); if (result < B_OK) { - TRACE_ERROR(("USB Hub %d: resetting port %ld failed\n", DeviceAddress(), i)); + TRACE_ERROR("resetting port %ld failed\n", i); continue; } @@ -228,12 +230,12 @@ if ((fPortStatus[i].status & PORT_STATUS_CONNECTION) == 0) { // device has vanished after reset, ignore - TRACE(("USB Hub %d: device disappeared on reset\n", DeviceAddress())); + TRACE("device disappeared on reset\n"); continue; } - if (fChildren[i]) { - TRACE_ERROR(("USB Hub %d: new device on a port that is already in use\n", DeviceAddress())); + if (fChildren[i] != NULL) { + TRACE_ERROR("new device on a port that is already in use\n"); fChildren[i]->Changed(changeList, false); fChildren[i] = NULL; } @@ -251,7 +253,7 @@ int8 hubAddress = HubAddress(); uint8 hubPort = HubPort(); if (Speed() == USB_SPEED_HIGHSPEED) { - hubAddress = DeviceAddress(); + hubAddress = USBID(); hubPort = i + 1; } @@ -269,9 +271,9 @@ } } else { // Device removed... - TRACE(("USB Hub %d: device removed\n", DeviceAddress())); - if (fChildren[i]) { - TRACE(("USB Hub %d: removing device 0x%08lx\n", DeviceAddress(), fChildren[i])); + TRACE_ALWAYS("port %ld: device removed\n", i); + if (fChildren[i] != NULL) { + TRACE("removing device %p\n", fChildren[i]); fChildren[i]->Changed(changeList, false); fChildren[i] = NULL; } @@ -280,28 +282,28 @@ // other port changes we do not really handle, report and clear them if (fPortStatus[i].change & PORT_STATUS_ENABLE) { - TRACE_ERROR(("USB Hub %d: port %ld %sabled\n", DeviceAddress(), i, (fPortStatus[i].status & PORT_STATUS_ENABLE) ? "en" : "dis")); + TRACE_ALWAYS("port %ld %sabled\n", i, (fPortStatus[i].status & PORT_STATUS_ENABLE) ? "en" : "dis"); DefaultPipe()->SendRequest(USB_REQTYPE_CLASS | USB_REQTYPE_OTHER_OUT, USB_REQUEST_CLEAR_FEATURE, C_PORT_ENABLE, i + 1, 0, NULL, 0, NULL); } if (fPortStatus[i].change & PORT_STATUS_SUSPEND) { - TRACE_ERROR(("USB Hub %d: port %ld is %ssuspended\n", DeviceAddress(), i, (fPortStatus[i].status & PORT_STATUS_SUSPEND) ? "" : "not ")); + TRACE_ALWAYS("port %ld is %ssuspended\n", i, (fPortStatus[i].status & PORT_STATUS_SUSPEND) ? "" : "not "); DefaultPipe()->SendRequest(USB_REQTYPE_CLASS | USB_REQTYPE_OTHER_OUT, USB_REQUEST_CLEAR_FEATURE, C_PORT_SUSPEND, i + 1, 0, NULL, 0, NULL); } if (fPortStatus[i].change & PORT_STATUS_OVER_CURRENT) { - TRACE_ERROR(("USB Hub %d: port %ld is %sin an over current state\n", DeviceAddress(), i, (fPortStatus[i].status & PORT_STATUS_OVER_CURRENT) ? "" : "not ")); + TRACE_ALWAYS("port %ld is %sin an over current state\n", i, (fPortStatus[i].status & PORT_STATUS_OVER_CURRENT) ? "" : "not "); DefaultPipe()->SendRequest(USB_REQTYPE_CLASS | USB_REQTYPE_OTHER_OUT, USB_REQUEST_CLEAR_FEATURE, C_PORT_OVER_CURRENT, i + 1, 0, NULL, 0, NULL); } if (fPortStatus[i].change & PORT_RESET) { - TRACE_ERROR(("USB Hub %d: port %ld was reset\n", DeviceAddress(), i)); + TRACE_ALWAYS("port %ld was reset\n", i); DefaultPipe()->SendRequest(USB_REQTYPE_CLASS | USB_REQTYPE_OTHER_OUT, USB_REQUEST_CLEAR_FEATURE, C_PORT_RESET, i + 1, 0, NULL, 0, NULL); @@ -322,7 +324,7 @@ Hub::InterruptCallback(void *cookie, status_t status, void *data, size_t actualLength) { - TRACE(("USB Hub %d: interrupt callback!\n", ((Hub *)data)->DeviceAddress())); + TRACE_STATIC((Hub *)cookie, "interrupt callback!\n"); } @@ -347,7 +349,7 @@ uint32 supportDescriptorCount, const usb_notify_hooks *hooks, usb_driver_cookie **cookies, bool added, bool recursive) { - TRACE(("USB Hub %d: reporting hub\n", DeviceAddress())); + TRACE("reporting hub\n"); // Report ourselfs first status_t result = Device::ReportDevice(supportDescriptors, Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/Interface.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/usb/Interface.cpp 2009-01-24 00:31:16 UTC (rev 29001) +++ haiku/trunk/src/add-ons/kernel/bus_managers/usb/Interface.cpp 2009-01-24 01:28:31 UTC (rev 29002) @@ -13,12 +13,14 @@ : Object(parent), fInterfaceIndex(interfaceIndex) { + TRACE("creating interface\n"); } status_t Interface::SetFeature(uint16 selector) { + TRACE("set feature %u\n", selector); return ((Device *)Parent())->DefaultPipe()->SendRequest( USB_REQTYPE_STANDARD | USB_REQTYPE_INTERFACE_OUT, USB_REQUEST_SET_FEATURE, @@ -34,6 +36,7 @@ status_t Interface::ClearFeature(uint16 selector) { + TRACE("clear feature %u\n", selector); return ((Device *)Parent())->DefaultPipe()->SendRequest( USB_REQTYPE_STANDARD | USB_REQTYPE_INTERFACE_OUT, USB_REQUEST_CLEAR_FEATURE, @@ -49,6 +52,7 @@ status_t Interface::GetStatus(uint16 *status) { + TRACE("get status\n"); return ((Device *)Parent())->DefaultPipe()->SendRequest( USB_REQTYPE_STANDARD | USB_REQTYPE_INTERFACE_IN, USB_REQUEST_GET_STATUS, Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/Object.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/usb/Object.cpp 2009-01-24 00:31:16 UTC (rev 29001) +++ haiku/trunk/src/add-ons/kernel/bus_managers/usb/Object.cpp 2009-01-24 01:28:31 UTC (rev 29002) @@ -37,7 +37,7 @@ Object::SetFeature(uint16 selector) { // to be implemented in subclasses - TRACE_ERROR(("USB Object: set feature called\n")); + TRACE_ERROR("set feature called\n"); return B_ERROR; } @@ -46,7 +46,7 @@ Object::ClearFeature(uint16 selector) { // to be implemented in subclasses - TRACE_ERROR(("USB Object: clear feature called\n")); + TRACE_ERROR("clear feature called\n"); return B_ERROR; } @@ -55,6 +55,6 @@ Object::GetStatus(uint16 *status) { // to be implemented in subclasses - TRACE_ERROR(("USB Object: get status called\n")); + TRACE_ERROR("get status called\n"); return B_ERROR; } Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/Pipe.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/usb/Pipe.cpp 2009-01-24 00:31:16 UTC (rev 29001) +++ haiku/trunk/src/add-ons/kernel/bus_managers/usb/Pipe.cpp 2009-01-24 01:28:31 UTC (rev 29002) @@ -69,6 +69,7 @@ status_t Pipe::SetFeature(uint16 selector) { + TRACE("set feature %u\n", selector); return ((Device *)Parent())->DefaultPipe()->SendRequest( USB_REQTYPE_STANDARD | USB_REQTYPE_ENDPOINT_OUT, USB_REQUEST_SET_FEATURE, @@ -89,6 +90,7 @@ if (selector == USB_FEATURE_ENDPOINT_HALT) SetDataToggle(false); + TRACE("clear feature %u\n", selector); return ((Device *)Parent())->DefaultPipe()->SendRequest( USB_REQTYPE_STANDARD | USB_REQTYPE_ENDPOINT_OUT, USB_REQUEST_CLEAR_FEATURE, @@ -105,6 +107,7 @@ status_t Pipe::GetStatus(uint16 *status) { + TRACE("get status\n"); return ((Device *)Parent())->DefaultPipe()->SendRequest( USB_REQTYPE_STANDARD | USB_REQTYPE_ENDPOINT_IN, USB_REQUEST_GET_STATUS, @@ -336,7 +339,7 @@ // The sem will be released unconditionally in the callback after the // result data was filled in. Use a 1 second timeout for control transfers. if (acquire_sem_etc(fNotifySem, 1, B_RELATIVE_TIMEOUT, 1000000) < B_OK) { - TRACE_ERROR(("USB ControlPipe: timeout waiting for queued request to complete\n")); + TRACE_ERROR("timeout waiting for queued request to complete\n"); CancelQueuedTransfers(false); Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/Stack.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/usb/Stack.cpp 2009-01-24 00:31:16 UTC (rev 29001) +++ haiku/trunk/src/add-ons/kernel/bus_managers/usb/Stack.cpp 2009-01-24 01:28:31 UTC (rev 29002) @@ -26,7 +26,7 @@ fObjectArray(NULL), fDriverList(NULL) { - TRACE(("USB Stack: stack init\n")); + TRACE("stack init\n"); mutex_init(&fStackLock, "usb stack lock"); mutex_init(&fExploreLock, "usb explore lock"); @@ -34,7 +34,7 @@ size_t objectArraySize = fObjectMaxCount * sizeof(Object *); fObjectArray = (Object **)malloc(objectArraySize); if (fObjectArray == NULL) { - TRACE_ERROR(("USB Stack: failed to allocate object array\n")); + TRACE_ERROR("failed to allocate object array\n"); return; } @@ -43,7 +43,7 @@ fAllocator = new(std::nothrow) PhysicalMemoryAllocator("USB Stack Allocator", 8, B_PAGE_SIZE * 4, 64); if (!fAllocator || fAllocator->InitCheck() < B_OK) { - TRACE_ERROR(("USB Stack: failed to allocate the allocator\n")); + TRACE_ERROR("failed to allocate the allocator\n"); delete fAllocator; fAllocator = NULL; return; @@ -66,25 +66,25 @@ NULL }; - TRACE(("USB Stack: looking for host controller modules\n")); + TRACE("looking for host controller modules\n"); for (uint32 i = 0; moduleNames[i]; i++) { - TRACE(("USB Stack: looking for module %s\n", moduleNames[i])); + TRACE("looking for module %s\n", moduleNames[i]); usb_host_controller_info *module = NULL; if (get_module(moduleNames[i], (module_info **)&module) != B_OK) continue; - TRACE(("USB Stack: adding module %s\n", moduleNames[i])); + TRACE("adding module %s\n", moduleNames[i]); if (module->add_to(this) < B_OK) { put_module(moduleNames[i]); continue; } - TRACE(("USB Stack: module %s successfully loaded\n", moduleNames[i])); + TRACE("module %s successfully loaded\n", moduleNames[i]); } if (fBusManagers.Count() == 0) { - TRACE_ERROR(("USB Stack: no bus managers available\n")); + TRACE_ERROR("no bus managers available\n"); return; } @@ -164,7 +164,7 @@ id = (id + 1) % fObjectMaxCount; } - TRACE_ERROR(("USB Stack: the stack did run out of usb_ids\n")); + TRACE_ERROR("the stack did run out of usb_ids\n"); Unlock(); return 0; } @@ -177,7 +177,7 @@ return; if (id >= fObjectMaxCount) { - TRACE_ERROR(("USB Stack: tried to put an invalid usb_id\n")); + TRACE_ERROR("tried to put an invalid usb_id\n"); Unlock(); return; } @@ -194,7 +194,7 @@ return NULL; if (id >= fObjectMaxCount) { - TRACE_ERROR(("USB Stack: tried to get object with invalid usb_id\n")); + TRACE_ERROR("tried to get object with invalid usb_id\n"); Unlock(); return NULL; } @@ -285,7 +285,7 @@ Stack::AllocateArea(void **logicalAddress, void **physicalAddress, size_t size, const char *name) { - TRACE(("USB Stack: allocating %ld bytes for %s\n", size, name)); + TRACE("allocating %ld bytes for %s\n", size, name); void *logAddress; size = (size + B_PAGE_SIZE - 1) & ~(B_PAGE_SIZE - 1); @@ -293,7 +293,7 @@ B_CONTIGUOUS, 0); if (area < B_OK) { - TRACE_ERROR(("USB Stack: couldn't allocate area %s\n", name)); + TRACE_ERROR("couldn't allocate area %s\n", name); return B_ERROR; } @@ -301,7 +301,7 @@ status_t result = get_memory_map(logAddress, size, &physicalEntry, 1); if (result < B_OK) { delete_area(area); - TRACE_ERROR(("USB Stack: couldn't map area %s\n", name)); + TRACE_ERROR("couldn't map area %s\n", name); return B_ERROR; } @@ -312,8 +312,8 @@ if (physicalAddress) *physicalAddress = physicalEntry.address; - TRACE(("USB Stack: area = 0x%08lx, size = %ld, log = 0x%08lx, phy = 0x%08lx\n", - area, size, logAddress, physicalEntry.address)); + TRACE("area = %ld, size = %ld, log = %p, phy = %p\n", + area, size, logAddress, physicalEntry.address); return area; } @@ -321,7 +321,7 @@ void Stack::NotifyDeviceChange(Device *device, rescan_item **rescanList, bool added) { - TRACE(("USB Stack: device %s\n", added ? "added" : "removed")); + TRACE("device %s\n", added ? "added" : "removed"); usb_driver_info *element = fDriverList; while (element) { @@ -393,7 +393,7 @@ const usb_support_descriptor *descriptors, size_t descriptorCount, const char *republishDriverName) { - TRACE(("USB Stack: register driver \"%s\"\n", driverName)); + TRACE("register driver \"%s\"\n", driverName); if (!driverName) return B_BAD_VALUE; @@ -457,7 +457,7 @@ status_t Stack::InstallNotify(const char *driverName, const usb_notify_hooks *hooks) { - TRACE(("USB Stack: installing notify hooks for driver \"%s\"\n", driverName)); + TRACE("installing notify hooks for driver \"%s\"\n", driverName); usb_driver_info *element = fDriverList; while (element) { @@ -492,7 +492,7 @@ status_t Stack::UninstallNotify(const char *driverName) { - TRACE(("USB Stack: uninstalling notify hooks for driver \"%s\"\n", driverName)); + TRACE("uninstalling notify hooks for driver \"%s\"\n", driverName); usb_driver_info *element = fDriverList; while (element) { Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/Transfer.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/usb/Transfer.cpp 2009-01-24 00:31:16 UTC (rev 29001) +++ haiku/trunk/src/add-ons/kernel/bus_managers/usb/Transfer.cpp 2009-01-24 01:28:31 UTC (rev 29002) @@ -71,7 +71,7 @@ // Calculate the bandwidth (only if it is not a bulk transfer) if (!(fPipe->Type() & USB_OBJECT_BULK_PIPE)) { if (_CalculateBandwidth() < B_OK) - TRACE_ERROR(("USB Transfer: can't calculate bandwidth\n")); + TRACE_ERROR("can't calculate bandwidth\n"); } } @@ -135,8 +135,7 @@ if (IS_USER_ADDRESS(vector[i].iov_base)) { fUserArea = area_for(vector[i].iov_base); if (fUserArea < B_OK) { - TRACE_ERROR(("USB Transfer: failed to find area for user" - " space buffer!\n")); + TRACE_ERROR("failed to find area for user space buffer!\n"); return B_BAD_ADDRESS; } break; @@ -149,7 +148,7 @@ area_info areaInfo; if (fUserArea < B_OK || get_area_info(fUserArea, &areaInfo) < B_OK) { - TRACE_ERROR(("USB Transfer: couldn't get user area info\n")); + TRACE_ERROR("couldn't get user area info\n"); return B_BAD_ADDRESS; } @@ -158,7 +157,7 @@ if ((size_t)vector[i].iov_base > areaInfo.size || (size_t)vector[i].iov_base + vector[i].iov_len > areaInfo.size) { - TRACE_ERROR(("USB Transfer: data buffer spans across multiple areas!\n")); + TRACE_ERROR("data buffer spans across multiple areas!\n"); return B_BAD_ADDRESS; } } @@ -264,7 +263,7 @@ default: // We should never get here - TRACE(("USB Transfer: speed unknown")); + TRACE("speed unknown"); return B_ERROR; } [... truncated: 2744 lines follow ...] From korli at mail.berlios.de Sat Jan 24 11:32:27 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Sat, 24 Jan 2009 11:32:27 +0100 Subject: [Haiku-commits] r29003 - haiku/trunk/src/data/etc/keymaps Message-ID: <200901241032.n0OAWRuC027521@sheep.berlios.de> Author: korli Date: 2009-01-24 11:32:27 +0100 (Sat, 24 Jan 2009) New Revision: 29003 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29003&view=rev Added: haiku/trunk/src/data/etc/keymaps/Spanish(Dvorak).keymap Log: Francisco Castro provided a Dvorak version of the Spanish keymap. Thanks! Added: haiku/trunk/src/data/etc/keymaps/Spanish(Dvorak).keymap =================================================================== --- haiku/trunk/src/data/etc/keymaps/Spanish(Dvorak).keymap 2009-01-24 01:28:31 UTC (rev 29002) +++ haiku/trunk/src/data/etc/keymaps/Spanish(Dvorak).keymap 2009-01-24 10:32:27 UTC (rev 29003) @@ -0,0 +1,274 @@ +#!/bin/keymap -l +# +# Raw key numbering for 101 keyboard... +# [sys] [brk] +# 0x7e 0x7f +# [esc] [ f1] [ f2] [ f3] [ f4] [ f5] [ f6] [ f7] [ f8] [ f9] [f10] [f11] [f12] [prn] [scr] [pau] +# 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10 K E Y P A D K E Y S +# +# [ ` ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 0 ] [ - ] [ = ] [bck] [ins] [hme] [pup] [num] [ / ] [ * ] [ - ] +# 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f 0x20 0x21 0x22 0x23 0x24 0x25 +# +# [tab] [ . ] [ , ] [enie][ p ] [ y ] [ f ] [ g ] [ c ] [ h ] [ l ] [gra] [ + ] [ \ ] [del] [end] [pdn] [ 7 ] [ 8 ] [ 9 ] [ + ] +# 0x26 0x27 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3a +# +# [cap] [ a ] [ o ] [ e ] [ u ] [ i ] [ f ] [ r ] [ t ] [ n ] [ s ] [ ' ] [ enter ] [ 4 ] [ 5 ] [ 6 ] +# 0x3b 0x3c 0x3d 0x3e 0x3f 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4a +# +# [shift] [ - ] [ q ] [ j ] [ k ] [ x ] [ b ] [ m ] [ w ] [ v ] [ z ] [shift] [ up] [ 1 ] [ 2 ] [ 3 ] [ent] +# 0x4b 0x4c 0x4d 0x4e 0x4f 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5a 0x5b +# +# [ctr] [cmd] [ space ] [cmd] [ctr] [lft] [dwn] [rgt] [ 0 ] [ . ] +# 0x5c 0x5d 0x5e 0x5f 0x60 0x61 0x62 0x63 0x64 0x65 +# +# NOTE: On a Microsoft Natural Keyboard: +# left option = 0x66 +# right option = 0x67 +# menu key = 0x68 +# NOTE: On an Apple Extended Keyboard: +# left option = 0x66 +# right option = 0x67 +# keypad '=' = 0x6a +# power key = 0x6b +Version = 3 +CapsLock = 0x3b +ScrollLock = 0x0f +NumLock = 0x22 +LShift = 0x4b +RShift = 0x56 +LCommand = 0x5d +RCommand = 0x60 +LControl = 0x5c +RControl = 0x00 +LOption = 0x66 +ROption = 0x5f +Menu = 0x68 +# +# Lock settings +# To set NumLock, do the following: +# LockSettings = NumLock +# +# To set everything, do the following: +# LockSettings = CapsLock NumLock ScrollLock +# +LockSettings = +# Legend: +# n = Normal +# s = Shift +# c = Control +# C = CapsLock +# o = Option +# Key n s c o os C Cs Co Cos +Key 0x00 = '' '' '' '' '' '' '' '' '' +Key 0x01 = 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b +Key 0x02 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x03 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x04 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x05 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x06 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x07 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x08 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x09 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0a = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0b = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0c = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0d = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0e = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0f = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x10 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x11 = 0xc2ba 0xc2aa '' '\\' '' 0xc2ba 0xc2aa '\\' '' +Key 0x12 = '1' '!' '' '|' '' '1' '!' '|' '' +Key 0x13 = '2' '"' '' '@' '' '2' '"' '@' '' +Key 0x14 = '3' 0xc2b7 '' '#' '' '3' 0xc2b7 '#' '' +Key 0x15 = '4' '$' '' '~' '' '4' '$' '~' '' +Key 0x16 = '5' '%' '' 0xe282ac '' '5' '%' 0xe282ac '' +Key 0x17 = '6' '&' '' 0xc2ac '' '6' '&' 0xc2ac '' +Key 0x18 = '7' '/' '' ' ' '' '7' '/' ' ' '' +Key 0x19 = '8' '(' '' ' ' '' '8' '(' ' ' '' +Key 0x1a = '9' ')' '' ' ' '' '9' ')' ' ' '' +Key 0x1b = '0' '=' '' ' ' '' '0' '=' ' ' '' +Key 0x1c = '\'' '?' '' ' ' '' '\'' '?' ' ' '' +Key 0x1d = 0xc2a1 0xc2bf '' ' ' '' 0xc2a1 0xc2bf ' ' '' +Key 0x1e = 0x08 0x08 0x1f 0x08 0x08 0x08 0x08 0x08 0x08 +Key 0x1f = 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 +Key 0x20 = 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 +Key 0x21 = 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b +Key 0x22 = '' '' '' '' '' '' '' '' '' +Key 0x23 = '/' '/' '/' '/' '/' '/' '/' '/' '/' +Key 0x24 = '*' '*' '*' '*' '*' '*' '*' '*' '*' +Key 0x25 = '-' '-' '-' '-' '-' '-' '-' '-' '-' +Key 0x26 = 0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09 +Key 0x27 = '.' ':' '' ' ' '' '.' ':' ' ' '' +Key 0x28 = ',' ';' '' ' ' '' ',' ';' ' ' '' +Key 0x29 = 0xc3b1 0xc391 '' ' ' '' 0xc391 0xc3b1 ' ' '' +Key 0x2a = 'p' 'P' 0x10 ' ' '' 'P' 'p' ' ' '' +Key 0x2b = 'y' 'Y' 0x19 ' ' '' 'Y' 'y' ' ' '' +Key 0x2c = 'f' 'F' 0x06 ' ' '' 'F' 'f' ' ' '' +Key 0x2d = 'g' 'G' 0x07 ' ' '' 'G' 'g' ' ' '' +Key 0x2e = 'c' 'C' 0x03 ' ' '' 'C' 'c' ' ' '' +Key 0x2f = 'h' 'H' 0x08 ' ' '' 'H' 'h' ' ' '' +Key 0x30 = 'l' 'L' 0x0c ' ' '' 'L' 'l' ' ' '' +Key 0x31 = '`' '^' 0x1b '[' '' '`' '^' '[' '' +Key 0x32 = '+' '*' 0x1d ']' '' '+' '*' ']' '' +Key 0x33 = 0xc3a7 0xc387 0x1c '}' '' 0xc3a7 0xc387 '}' '' +Key 0x34 = 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f +Key 0x35 = 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 +Key 0x36 = 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c +Key 0x37 = 0x01 '7' 0x01 0x01 '7' 0x01 '7' 0x01 '7' +Key 0x38 = 0x1e '8' 0x1e 0x1e '8' 0x1e '8' 0x1e '8' +Key 0x39 = 0x0b '9' 0x0b 0x0b '9' 0x0b '9' 0x0b '9' +Key 0x3a = '+' '+' '+' '+' '+' '+' '+' '+' '+' +Key 0x3b = '' '' '' '' '' '' '' '' '' +Key 0x3c = 'a' 'A' 0x01 ' ' '' 'A' 'a' ' ' '' +Key 0x3d = 'o' 'O' 0x0f ' ' '' 'O' 'o' ' ' '' +Key 0x3e = 'e' 'E' 0x05 0xe282ac '' 'E' 'e' 0xe282ac '' +Key 0x3f = 'u' 'U' 0x15 ' ' '' 'U' 'u' ' ' '' +Key 0x40 = 'i' 'I' 0x09 ' ' '' 'I' 'i' ' ' '' +Key 0x41 = 'd' 'D' 0x04 ' ' '' 'D' 'd' ' ' '' +Key 0x42 = 'r' 'R' 0x12 ' ' '' 'R' 'r' ' ' '' +Key 0x43 = 't' 'T' 0x14 ' ' '' 'T' 't' ' ' '' +Key 0x44 = 'n' 'N' 0x0e ' ' '' 'N' 'n' ' ' '' +Key 0x45 = 's' 'S' 0x13 ' ' '' 'S' 's' ' ' '' +Key 0x46 = 0xc2b4 0xc2a8 '' '{' '' 0xc2b4 0xc2a8 '{' '' +Key 0x47 = 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a +Key 0x48 = 0x1c '4' 0x1c 0x1c '4' 0x1c '4' 0x1c '4' +Key 0x49 = '' '5' '' '' '5' '' '5' '' '5' +Key 0x4a = 0x1d '6' 0x1d 0x1d '6' 0x1d '6' 0x1d '6' +Key 0x4b = '' '' '' '' '' '' '' '' '' +Key 0x4c = '-' '_' 0x1f ' ' '' '-' '_' ' ' '' +Key 0x4d = 'q' 'Q' 0x11 ' ' '' 'Q' 'q' ' ' '' +Key 0x4e = 'j' 'J' 0x0a ' ' '' 'J' 'j' ' ' '' +Key 0x4f = 'k' 'K' 0x0b ' ' '' 'K' 'k' ' ' '' +Key 0x50 = 'x' 'X' 0x18 ' ' '' 'X' 'x' ' ' '' +Key 0x51 = 'b' 'B' 0x02 ' ' '' 'B' 'b' ' ' '' +Key 0x52 = 'm' 'M' 0x0d ' ' '' 'M' 'm' ' ' '' +Key 0x53 = 'w' 'W' 0x17 ' ' '' 'W' 'w' ' ' '' +Key 0x54 = 'v' 'V' 0x16 ' ' '' 'V' 'v' ' ' '' +Key 0x55 = 'z' 'Z' 0x1a ' ' '' 'Z' 'z' ' ' '' +Key 0x56 = '' '' '' '' '' '' '' '' '' +Key 0x57 = 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e +Key 0x58 = 0x04 '1' 0x04 0x04 '1' 0x04 '1' 0x04 '1' +Key 0x59 = 0x1f '2' 0x1f 0x1f '2' 0x1f '2' 0x1f '2' +Key 0x5a = 0x0c '3' 0x0c 0x0c '3' 0x0c '3' 0x0c '3' +Key 0x5b = 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a +Key 0x5c = '' '' '' '' '' '' '' '' '' +Key 0x5d = '' '' '' '' '' '' '' '' '' +Key 0x5e = ' ' ' ' 0x00 ' ' ' ' ' ' ' ' ' ' ' ' +Key 0x5f = '' '' '' '' '' '' '' '' '' +Key 0x60 = '' '' '' '' '' '' '' '' '' +Key 0x61 = 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c +Key 0x62 = 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f +Key 0x63 = 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d +Key 0x64 = 0x05 '0' 0x05 0x05 '0' 0x05 '0' 0x05 '0' +Key 0x65 = 0x7f '.' 0x7f 0x7f '.' 0x7f '.' 0x7f '.' +Key 0x66 = '' '' '' '' '' '' '' '' '' +Key 0x67 = '' '' '' '' '' '' '' '' '' +Key 0x68 = '' '' '' '' '' '' '' '' '' +Key 0x69 = '<' '>' 0x1c ' ' '' '<' '>' ' ' '' +Key 0x6a = '' '' '' '' '' '' '' '' '' +Key 0x6b = '' '' '' '' '' '' '' '' '' +Key 0x6c = '' '' '' '' '' '' '' '' '' +Key 0x6d = '' '' '' '' '' '' '' '' '' +Key 0x6e = '' '' '' '' '' '' '' '' '' +Key 0x6f = '' '' '' '' '' '' '' '' '' +Key 0x70 = '' '' '' '' '' '' '' '' '' +Key 0x71 = '' '' '' '' '' '' '' '' '' +Key 0x72 = '' '' '' '' '' '' '' '' '' +Key 0x73 = '' '' '' '' '' '' '' '' '' +Key 0x74 = '' '' '' '' '' '' '' '' '' +Key 0x75 = '' '' '' '' '' '' '' '' '' +Key 0x76 = '' '' '' '' '' '' '' '' '' +Key 0x77 = '' '' '' '' '' '' '' '' '' +Key 0x78 = '' '' '' '' '' '' '' '' '' +Key 0x79 = '' '' '' '' '' '' '' '' '' +Key 0x7a = '' '' '' '' '' '' '' '' '' +Key 0x7b = '' '' '' '' '' '' '' '' '' +Key 0x7c = '' '' '' '' '' '' '' '' '' +Key 0x7d = '' '' '' '' '' '' '' '' '' +Key 0x7e = '' '' '' '' '' '' '' '' '' +Key 0x7f = '' '' '' '' '' '' '' '' '' +Acute ' ' = 0xc2b4 +Acute 'A' = 0xc381 +Acute 'E' = 0xc389 +Acute 'I' = 0xc38d +Acute 'O' = 0xc393 +Acute 'U' = 0xc39a +Acute 'Y' = 0xc39d +Acute 'a' = 0xc3a1 +Acute 'e' = 0xc3a9 +Acute 'i' = 0xc3ad +Acute 'o' = 0xc3b3 +Acute 'u' = 0xc3ba +Acute 'y' = 0xc3bd +Acute '' = '' +Acute '' = '' +Acute '' = '' +AcuteTab = Normal Shift CapsLock CapsLock-Shift +Grave ' ' = '`' +Grave 'A' = 0xc380 +Grave 'E' = 0xc388 +Grave 'I' = 0xc38c +Grave 'O' = 0xc392 +Grave 'U' = 0xc399 +Grave 'a' = 0xc3a0 +Grave 'e' = 0xc3a8 +Grave 'i' = 0xc3ac +Grave 'o' = 0xc3b2 +Grave 'u' = 0xc3b9 +Grave '' = '' +Grave '' = '' +Grave '' = '' +Grave '' = '' +Grave '' = '' +GraveTab = Normal Shift CapsLock CapsLock-Shift +Circumflex ' ' = '^' +Circumflex 'A' = 0xc382 +Circumflex 'E' = 0xc38a +Circumflex 'I' = 0xc38e +Circumflex 'O' = 0xc394 +Circumflex 'U' = 0xc39b +Circumflex 'a' = 0xc3a2 +Circumflex 'e' = 0xc3aa +Circumflex 'i' = 0xc3ae +Circumflex 'o' = 0xc3b4 +Circumflex 'u' = 0xc3bb +Circumflex '' = '' +Circumflex '' = '' +Circumflex '' = '' +Circumflex '' = '' +Circumflex '' = '' +CircumflexTab = Normal Shift CapsLock CapsLock-Shift +Diaeresis ' ' = 0xc2a8 +Diaeresis 'A' = 0xc384 +Diaeresis 'E' = 0xc38b +Diaeresis 'I' = 0xc38f +Diaeresis 'O' = 0xc396 +Diaeresis 'U' = 0xc39c +Diaeresis 'Y' = 0xc5b8 +Diaeresis 'a' = 0xc3a4 +Diaeresis 'e' = 0xc3ab +Diaeresis 'i' = 0xc3af +Diaeresis 'o' = 0xc3b6 +Diaeresis 'u' = 0xc3bc +Diaeresis 'y' = 0xc3bf +Diaeresis '' = '' +Diaeresis '' = '' +Diaeresis '' = '' +DiaeresisTab = Normal Shift CapsLock CapsLock-Shift +Tilde ' ' = '~' +Tilde 'A' = 0xc383 +Tilde 'O' = 0xc395 +Tilde 'N' = 0xc391 +Tilde 'a' = 0xc3a3 +Tilde 'o' = 0xc3b5 +Tilde 'n' = 0xc3b1 +Tilde '' = '' +Tilde '' = '' +Tilde '' = '' +Tilde '' = '' +Tilde '' = '' +Tilde '' = '' +Tilde '' = '' +Tilde '' = '' +Tilde '' = '' +TildeTab = Option Option-Shift CapsLock-Option CapsLock-Option-Shift From axeld at pinc-software.de Sat Jan 24 12:21:04 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Sat, 24 Jan 2009 12:21:04 +0100 CET Subject: [Haiku-commits] =?utf-8?q?r29001_-_haiku/trunk/src/add-ons/kernel?= =?utf-8?q?/file=5Fsystems/bfs?= In-Reply-To: <200901240031.n0O0VHue029995@sheep.berlios.de> Message-ID: <5836966877-BeMail@zon> korli at BerliOS wrote: > Log: > when renaming, check first with the newDirectory instead of starting > at its parent. > this should fix #3355 Isn't that something that could already be prevented in the VFS layer without much effort? (not that I've really thought about it much) Bye, Axel. From mmlr at mail.berlios.de Sat Jan 24 12:25:44 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 24 Jan 2009 12:25:44 +0100 Subject: [Haiku-commits] r29004 - haiku/trunk/src/bin/rc Message-ID: <200901241125.n0OBPiGW012922@sheep.berlios.de> Author: mmlr Date: 2009-01-24 12:25:43 +0100 (Sat, 24 Jan 2009) New Revision: 29004 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29004&view=rev Modified: haiku/trunk/src/bin/rc/Jamfile Log: Explicit linking against libsupc++ doesn't seem to be necessary here (works with GCC2) and produces multiple definitions with GCC4. Please yell if this breaks cross-compiling. Modified: haiku/trunk/src/bin/rc/Jamfile =================================================================== --- haiku/trunk/src/bin/rc/Jamfile 2009-01-24 10:32:27 UTC (rev 29003) +++ haiku/trunk/src/bin/rc/Jamfile 2009-01-24 11:25:43 UTC (rev 29004) @@ -25,7 +25,7 @@ # these two are needed for R5 only $(strlSources) - : librdef.a $(TARGET_LIBSTDC++) be $(TARGET_LIBSUPC++) + : librdef.a $(TARGET_LIBSTDC++) be ; SEARCH on [ FGristFiles $(strlSources) ] From korli at mail.berlios.de Sat Jan 24 12:29:18 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Sat, 24 Jan 2009 12:29:18 +0100 Subject: [Haiku-commits] r29005 - haiku/trunk/src/apps/installer Message-ID: <200901241129.n0OBTIse013135@sheep.berlios.de> Author: korli Date: 2009-01-24 12:29:18 +0100 (Sat, 24 Jan 2009) New Revision: 29005 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29005&view=rev Modified: haiku/trunk/src/apps/installer/InstallerApp.cpp Log: Improves the EULA alert look (bug #3321) Modified: haiku/trunk/src/apps/installer/InstallerApp.cpp =================================================================== --- haiku/trunk/src/apps/installer/InstallerApp.cpp 2009-01-24 11:25:43 UTC (rev 29004) +++ haiku/trunk/src/apps/installer/InstallerApp.cpp 2009-01-24 11:29:18 UTC (rev 29005) @@ -38,11 +38,14 @@ BView *parent = alertView->Parent(); alertView->RemoveSelf(); alertView->MoveBy(3, 7); - alertView->ResizeTo(460, 283); - alertView->SetResizingMode(B_FOLLOW_ALL_SIDES); - alert->ResizeTo(500, 350); - BScrollView *scroll = new BScrollView("", alertView, B_FOLLOW_ALL_SIDES, B_FRAME_EVENTS, false, true, B_FANCY_BORDER); - parent->AddChild(scroll); + alertView->ResizeTo(500, 288); + alertView->SetText(EULA_TEXT); + alertView->SetTextRect(alertView->Bounds().InsetBySelf(2, 2)); + alert->ResizeTo(525, 350); + BBox *box = new BBox(alertView->Frame().InsetBySelf(-2,-2)); + alertView->MoveTo(2, 2); + box->AddChild(alertView); + parent->AddChild(box); BRect alertFrame = alert->Frame(); alertFrame.OffsetTo((frame.Width() - alertFrame.Width()) / 2, (frame.Height() - alertFrame.Height()) / 2); From axeld at pinc-software.de Sat Jan 24 12:43:47 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Sat, 24 Jan 2009 12:43:47 +0100 CET Subject: [Haiku-commits] r29005 - haiku/trunk/src/apps/installer In-Reply-To: <200901241129.n0OBTIse013135@sheep.berlios.de> Message-ID: <7199358520-BeMail@zon> korli at BerliOS wrote: > Log: > Improves the EULA alert look (bug #3321) That reminds me: do we actually need an EULA at all? IIRC at least OpenSUSE and Ubuntu don't show one when installing them. Bye, Axel. From korli at users.berlios.de Sat Jan 24 13:45:02 2009 From: korli at users.berlios.de (=?ISO-8859-1?B?Suly9G1lIER1dmFs?=) Date: Sat, 24 Jan 2009 13:45:02 +0100 Subject: [Haiku-commits] r29001 - haiku/trunk/src/add-ons/kernel/file_systems/bfs In-Reply-To: <5836966877-BeMail@zon> References: <200901240031.n0O0VHue029995@sheep.berlios.de> <5836966877-BeMail@zon> Message-ID: 2009/1/24 Axel D?rfler > korli at BerliOS wrote: > > Log: > > when renaming, check first with the newDirectory instead of starting > > at its parent. > > this should fix #3355 > > Isn't that something that could already be prevented in the VFS layer > without much effort? > (not that I've really thought about it much) > I wondered this also, but couldn't find how to do this easily: even if it worked for the first case, it would have to check recursively with parents. At least Linux seems to do it at the VFS layer. Bye, J?r?me -------------- next part -------------- An HTML attachment was scrubbed... URL: From korli at users.berlios.de Sat Jan 24 13:48:41 2009 From: korli at users.berlios.de (=?ISO-8859-1?B?Suly9G1lIER1dmFs?=) Date: Sat, 24 Jan 2009 13:48:41 +0100 Subject: [Haiku-commits] r29005 - haiku/trunk/src/apps/installer In-Reply-To: <7199358520-BeMail@zon> References: <200901241129.n0OBTIse013135@sheep.berlios.de> <7199358520-BeMail@zon> Message-ID: 2009/1/24 Axel D?rfler > korli at BerliOS wrote: > > Log: > > Improves the EULA alert look (bug #3321) > > That reminds me: do we actually need an EULA at all? > IIRC at least OpenSUSE and Ubuntu don't show one when installing them. > It actually crossed my mind too. It might be good to display the Haiku status though (ie alpha quality). Bye, J?r?me -------------- next part -------------- An HTML attachment was scrubbed... URL: From superstippi at gmx.de Sat Jan 24 15:16:30 2009 From: superstippi at gmx.de (superstippi at gmx.de) Date: Sat, 24 Jan 2009 15:16:30 +0100 Subject: [Haiku-commits] r29005 - haiku/trunk/src/apps/installer Message-ID: <20090124151630.5016.7@bepc.1232795234.fake> On 2009-01-24 at 15:06:39 [+0100], J?r?me Duval wrote: > 2009/1/24 Axel D?rfler > > > korli at BerliOS wrote: > > > Log: > > > Improves the EULA alert look (bug #3321) > > > > That reminds me: do we actually need an EULA at all? IIRC at least > > OpenSUSE and Ubuntu don't show one when installing them. > > > > It actually crossed my mind too. It might be good to display the Haiku > status though (ie alpha quality). True. I'd vote for exchanging the EULA for that. Best regards, -Stephan From axeld at pinc-software.de Sat Jan 24 16:51:55 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Sat, 24 Jan 2009 16:51:55 +0100 CET Subject: [Haiku-commits] =?utf-8?q?r29001_-_haiku/trunk/src/add-ons/kernel?= =?utf-8?q?/file=5Fsystems/bfs?= In-Reply-To: Message-ID: <22087388114-BeMail@zon> J?r?me Duval wrote: > 2009/1/24 Axel D?rfler > > korli at BerliOS wrote: > > > Log: > > > when renaming, check first with the newDirectory instead of > > > starting > > > at its parent. this should fix #3355 > > Isn't that something that could already be prevented in the VFS > > layer > > without much effort? > > (not that I've really thought about it much) > I wondered this also, but couldn't find how to do this easily: even > if it > worked for the first case, it would have to check recursively with > parents. > > At least Linux seems to do it at the VFS layer. Okay, since it's working now, I just opened a ticket (#3358) so that we don't forget about it. Bye, Axel. From bga at mail.berlios.de Sun Jan 25 00:42:45 2009 From: bga at mail.berlios.de (bga at BerliOS) Date: Sun, 25 Jan 2009 00:42:45 +0100 Subject: [Haiku-commits] r29006 - in haiku/trunk: headers/private/net src/kits/network/libnetapi Message-ID: <200901242342.n0ONgjIa024088@sheep.berlios.de> Author: bga Date: 2009-01-25 00:42:43 +0100 (Sun, 25 Jan 2009) New Revision: 29006 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29006&view=rev Modified: haiku/trunk/headers/private/net/DynamicBuffer.h haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp Log: - Now NetBuffer and DynamicBuffer agree and the smallest buffer size posible. - This means that buffers with a initial size of 0 work now. Modified: haiku/trunk/headers/private/net/DynamicBuffer.h =================================================================== --- haiku/trunk/headers/private/net/DynamicBuffer.h 2009-01-24 11:29:18 UTC (rev 29005) +++ haiku/trunk/headers/private/net/DynamicBuffer.h 2009-01-24 23:42:43 UTC (rev 29006) @@ -14,7 +14,7 @@ class DynamicBuffer { public: - DynamicBuffer(size_t initialSize = 1); + DynamicBuffer(size_t initialSize = 0); ~DynamicBuffer(); DynamicBuffer(const DynamicBuffer& buffer); Modified: haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp =================================================================== --- haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp 2009-01-24 11:29:18 UTC (rev 29005) +++ haiku/trunk/src/kits/network/libnetapi/DynamicBuffer.cpp 2009-01-24 23:42:43 UTC (rev 29006) @@ -23,12 +23,12 @@ fDataEnd(0), fInit(B_NO_INIT) { - if (initialSize > 0) { + if (initialSize >= 0) { fBuffer = new (std::nothrow) unsigned char[initialSize]; if (fBuffer != NULL) { fBufferSize = initialSize; fInit = B_OK; - } + } } } @@ -73,7 +73,7 @@ DynamicBuffer::Insert(const void* data, size_t size) { if (fInit != B_OK) - return fInit; + return fInit; status_t result = _GrowToFit(size); if (result != B_OK) From grzegorz.dabrowski at gmail.com Sun Jan 25 12:13:38 2009 From: grzegorz.dabrowski at gmail.com (Grzegorz =?UTF-8?B?RMSFYnJvd3NraQ==?=) Date: Sun, 25 Jan 2009 12:13:38 +0100 Subject: [Haiku-commits] r28970 - in haiku/trunk/src/system/libroot/posix: glibc/stdlib glibc/wcsmbs locale In-Reply-To: <200901201610.n0KGA5Bh015505@sheep.berlios.de> References: <200901201610.n0KGA5Bh015505@sheep.berlios.de> Message-ID: <20090125121338.238d0725@kaliber> On Tue, 20 Jan 2009 17:10:05 +0100 jackburton at mail.berlios.de wrote: > Log: > Imported some wide char functions from freebsd, adapted to the build, > tried to integrate them with the glibc we are using. The mbtest > supplied in ticket #2822 seems to work, without regressions. Please > shout if there are issues. Thank you Jack for trying to fix this annoying wide char bugs. Following backtrace could be useful to create a test case: ~> gdb AboutSystem GNU gdb 6.3 Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i586-pc-haiku"...(no debugging symbols found) (gdb) run Starting program: /boot/beos/apps/AboutSystem Thread 161 caused an exception: Bounds check exception Program received signal SIGTRAP, Trace/breakpoint trap. 0x0057189d in __mbsinit () from /boot/beos/system/lib/libroot.so (gdb) bt #0 0x0057189d in __mbsinit () from /boot/beos/system/lib/libroot.so #1 0x0051ae51 in __mbrlen (s=0x20ef6a "? 2001-%ld The Haiku project. ", n=1, ps=0x7ffede70) at src/system/libroot/posix/glibc/wcsmbs/mbrlen.c:33 #2 0x0050aa89 in find_spec ( format=0x20ef6a "? 2001-%ld The Haiku project. ", ps=0x7ffede70) at src/system/libroot/posix/glibc/stdio-common/printf-parse.h:109 #3 0x00503cce in _IO_vfprintf (s=0x7ffee2ac, format=0x20ef60 "Copyright ? 2001-%ld The Haiku project. ", ap=0x7ffee3d4 "a") at src/system/libroot/posix/glibc/stdio-common/vfprintf.c:1305 #4 0x004ead21 in _IO_vsnprintf (string=0x7ffee6d4 "", maxlen=1024, format=0x20ef60 "Copyright ? 2001-%ld The Haiku project. ", args=0x7ffee3d4 "a") at src/system/libroot/posix/glibc/libio/vsnprintf.c:130 #5 0x0050304a in __snprintf (s=0x7ffee6d4 "", maxlen=1024, format=0x20ef60 "Copyright ? 2001-%ld The Haiku project. ") at src/system/libroot/posix/glibc/stdio-common/snprintf.c:39 #6 0x0020a7f4 in AboutView::AboutView () #7 0x00208ddf in AboutWindow::AboutWindow () #8 0x00208c9b in AboutApp::AboutApp () #9 0x0020d41e in main () -- Grzegorz D?browski (kaliber) http://tiltos.com http://home.gna.org/pingwinek/ From stippi at mail.berlios.de Sun Jan 25 12:29:40 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Sun, 25 Jan 2009 12:29:40 +0100 Subject: [Haiku-commits] r29007 - haiku/trunk/src/apps/terminal Message-ID: <200901251129.n0PBTeGJ018646@sheep.berlios.de> Author: stippi Date: 2009-01-25 12:29:39 +0100 (Sun, 25 Jan 2009) New Revision: 29007 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29007&view=rev Modified: haiku/trunk/src/apps/terminal/TermView.cpp haiku/trunk/src/apps/terminal/TermView.h Log: Applied patch by Clemens Zeidler which gives the Terminal a nice context menu with additional options when dropping files from Tracker into the Terminal. Thanks a lot, Clemens! Modified: haiku/trunk/src/apps/terminal/TermView.cpp =================================================================== --- haiku/trunk/src/apps/terminal/TermView.cpp 2009-01-24 23:42:43 UTC (rev 29006) +++ haiku/trunk/src/apps/terminal/TermView.cpp 2009-01-25 11:29:39 UTC (rev 29007) @@ -9,6 +9,7 @@ * Kian Duffy, myob at users.sourceforge.net * Y.Hayakawa, hida at sawada.riec.tohoku.ac.jp * Ingo Weinhold + * Clemens Zeidler */ @@ -24,13 +25,16 @@ #include #include +#include #include #include #include #include #include +#include #include #include +#include #include #include #include @@ -106,8 +110,20 @@ static const rgb_color kWhiteColor = { 255, 255, 255, 255 }; static const char* kDefaultSpecialWordChars = ":@-./_~"; +static const char* kEscapeCharacters = " ~`#$&*()\\|[]{};'\"<>?!"; +// secondary mouse button drop +const int32 kSecondaryMouseDropAction = 'SMDA'; +enum { + kInsert, + kChangeDirectory, + kLinkFiles, + kMoveFiles, + kCopyFiles +}; + + template static inline Type restrict_value(const Type& value, const Type& min, const Type& max) @@ -1306,8 +1322,18 @@ //rgb_color *color; int32 i = 0; - + if (msg->FindRef("refs", i++, &ref) == B_OK) { + // first check if secondary mouse button is pressed + int32 buttons = 0; + msg->FindInt32("buttons", &buttons); + + if (buttons == B_SECONDARY_MOUSE_BUTTON) { + // start popup menu + _SecondaryMouseButtonDropped(msg); + return; + } + _DoFileDrop(ref); while (msg->FindRef("refs", i++, &ref) == B_OK) { @@ -1441,6 +1467,9 @@ case kAutoScroll: _AutoScrollUpdate(); break; + case kSecondaryMouseDropAction: + _DoSecondaryMouseDropAction(msg); + break; case MSG_TERMINAL_BUFFER_CHANGED: { BAutolock _(fTextBuffer); @@ -1556,6 +1585,154 @@ } +void +TermView::_SecondaryMouseButtonDropped(BMessage* msg) +{ + // Launch menu to choose what is to do with the msg data + BPoint point; + if (msg->FindPoint("_drop_point_", &point) < B_OK) + return; + + BMessage* insertMessage = new BMessage(*msg); + insertMessage->what = kSecondaryMouseDropAction; + insertMessage->AddInt8("action", kInsert); + + BMessage* cdMessage = new BMessage(*msg); + cdMessage->what = kSecondaryMouseDropAction; + cdMessage->AddInt8("action", kChangeDirectory); + + BMessage* lnMessage = new BMessage(*msg); + lnMessage->what = kSecondaryMouseDropAction; + lnMessage->AddInt8("action", kLinkFiles); + + BMessage* mvMessage = new BMessage(*msg); + mvMessage->what = kSecondaryMouseDropAction; + mvMessage->AddInt8("action", kMoveFiles); + + BMessage* cpMessage = new BMessage(*msg); + cpMessage->what = kSecondaryMouseDropAction; + cpMessage->AddInt8("action", kCopyFiles); + + BMenuItem* insertItem = new BMenuItem("Insert Path", insertMessage); + BMenuItem* cdItem = new BMenuItem("Change Directory", cdMessage); + BMenuItem* lnItem = new BMenuItem("Create Link Here", lnMessage); + BMenuItem* mvItem = new BMenuItem("Move Here", mvMessage); + BMenuItem* cpItem = new BMenuItem("Copy Here", cpMessage); + BMenuItem* chItem = new BMenuItem("Cancel", NULL); + + // if the refs point to different directorys disable the cd menu item + bool differentDirs = false; + BDirectory firstDir; + entry_ref ref; + int i = 0; + while (msg->FindRef("refs", i++, &ref) == B_OK) { + BNode node(&ref); + BEntry entry(&ref); + BDirectory dir; + if (node.IsDirectory()) + dir.SetTo(&ref); + else + entry.GetParent(&dir); + + if (i == 1) { + node_ref nodeRef; + dir.GetNodeRef(&nodeRef); + firstDir.SetTo(&nodeRef); + } else if (firstDir != dir) { + differentDirs = true; + break; + } + } + if (differentDirs) + cdItem->SetEnabled(false); + + BPopUpMenu *menu = new BPopUpMenu("Secondary Mouse Button Drop Menu"); + menu->SetAsyncAutoDestruct(true); + menu->AddItem(insertItem); + menu->AddSeparatorItem(); + menu->AddItem(cdItem); + menu->AddItem(lnItem); + menu->AddItem(mvItem); + menu->AddItem(cpItem); + menu->AddSeparatorItem(); + menu->AddItem(chItem); + menu->SetTargetForItems(this); + menu->Go(point, true, true, true); +} + + +void +TermView::_DoSecondaryMouseDropAction(BMessage* msg) +{ + int8 action = -1; + msg->FindInt8("action", &action); + + BString outString = ""; + BString itemString = ""; + + switch (action) { + case kInsert: + break; + case kChangeDirectory: + outString = "cd "; + break; + case kLinkFiles: + outString = "ln -s "; + break; + case kMoveFiles: + outString = "mv "; + break; + case kCopyFiles: + outString = "cp "; + break; + + default: + return; + } + + bool listContainsDirectory = false; + entry_ref ref; + int32 i = 0; + while (msg->FindRef("refs", i++, &ref) == B_OK) { + BEntry ent(&ref); + BNode node(&ref); + BPath path(&ent); + BString string(path.Path()); + + if (node.IsDirectory()) + listContainsDirectory = true; + + if (i > 1) + itemString += " "; + + if (action == kChangeDirectory) { + if (!node.IsDirectory()) { + int32 slash = string.FindLast("/"); + string.Truncate(slash); + } + string.CharacterEscape(kEscapeCharacters, '\\'); + itemString += string; + break; + } + string.CharacterEscape(kEscapeCharacters, '\\'); + itemString += string; + } + + if (listContainsDirectory && action == kCopyFiles) + outString += " -R"; + + outString += itemString; + + if (action == kLinkFiles || action == kMoveFiles || action == kCopyFiles) + outString += " ."; + + if (action != kInsert) + outString += "\n"; + + _WritePTY(outString.String(), outString.Length()); +} + + //! Gets dropped file full path and display it at cursor position. void TermView::_DoFileDrop(entry_ref& ref) @@ -1564,7 +1741,7 @@ BPath path(&ent); BString string(path.Path()); - string.CharacterEscape(" ~`#$&*()\\|[]{};'\"<>?!",'\\'); + string.CharacterEscape(kEscapeCharacters, '\\'); _WritePTY(string.String(), string.Length()); } Modified: haiku/trunk/src/apps/terminal/TermView.h =================================================================== --- haiku/trunk/src/apps/terminal/TermView.h 2009-01-24 23:42:43 UTC (rev 29006) +++ haiku/trunk/src/apps/terminal/TermView.h 2009-01-25 11:29:39 UTC (rev 29007) @@ -134,6 +134,8 @@ void _DoPrint(BRect updateRect); void _UpdateScrollBarRange(); + void _SecondaryMouseButtonDropped(BMessage* msg); + void _DoSecondaryMouseDropAction(BMessage* msg); void _DoFileDrop(entry_ref &ref); void _SynchronizeWithTextBuffer(int32 visibleDirtyTop, From korli at users.berlios.de Sun Jan 25 12:39:41 2009 From: korli at users.berlios.de (=?ISO-8859-1?B?Suly9G1lIER1dmFs?=) Date: Sun, 25 Jan 2009 12:39:41 +0100 Subject: [Haiku-commits] r29007 - haiku/trunk/src/apps/terminal In-Reply-To: <200901251129.n0PBTeGJ018646@sheep.berlios.de> References: <200901251129.n0PBTeGJ018646@sheep.berlios.de> Message-ID: Hi Stippi, 2009/1/25 stippi at BerliOS > > #include > +#include > #include This is misplaced. > > > +void > +TermView::_SecondaryMouseButtonDropped(BMessage* msg) > +{ > + // Launch menu to choose what is to do with the msg data > + BPoint point; > + if (msg->FindPoint("_drop_point_", &point) < B_OK) > + return; This could simply be != B_OK. Bye, J?r?me -------------- next part -------------- An HTML attachment was scrubbed... URL: From korli at mail.berlios.de Sun Jan 25 12:57:48 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Sun, 25 Jan 2009 12:57:48 +0100 Subject: [Haiku-commits] r29008 - haiku/trunk/src/data/etc/keymaps Message-ID: <200901251157.n0PBvmI1016248@sheep.berlios.de> Author: korli Date: 2009-01-25 12:57:47 +0100 (Sun, 25 Jan 2009) New Revision: 29008 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29008&view=rev Added: haiku/trunk/src/data/etc/keymaps/French(Mac).keymap Log: added French Apple keymap, as posted by Vincent Duvert. Added: haiku/trunk/src/data/etc/keymaps/French(Mac).keymap =================================================================== --- haiku/trunk/src/data/etc/keymaps/French(Mac).keymap 2009-01-25 11:29:39 UTC (rev 29007) +++ haiku/trunk/src/data/etc/keymaps/French(Mac).keymap 2009-01-25 11:57:47 UTC (rev 29008) @@ -0,0 +1,257 @@ +#!/bin/keymap -l +# +# Raw key numbering for Apple Extended French keyboard... +# K E Y P A D K E Y S +# +# [ esc ] [ f1] [ f2] [ f3] [ f4] [ f5] [ f6] [ f7] [ f8] [ f9] [f10] [f11] [f12] [f13] [f14] [f15] [f16] [sd-] [sd+] [sdm] [eje] +# 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d ???? ???? ???? ???? ???? ???? ???? ???? +# +# [ @ ] [ & ] [ ? ] [ " ] [ ' ] [ ( ] [ ? ] [ ? ] [ ! ] [ ? ] [ ? ] [ ) ] [ - ] [ bck ] [ins] [hme] [pup] [num] [ = ] [ / ] [ * ] +# 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f 0x20 0x21 0x22 0x6a 0x23 0x24 +# +# [tab] [ a ] [ z ] [ e ] [ r ] [ t ] [ y ] [ u ] [ i ] [ o ] [ p ] [ ^ ] [ $ ] [ ret ] [del] [end] [pdn] [ 7 ] [ 8 ] [ 9 ] [ - ] +# 0x26 0x27 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f 0x30 0x31 0x32 [ ] 0x34 0x35 0x36 0x37 0x38 0x39 0x25 +# [ ] +# [cap] [ q ] [ s ] [ d ] [ f ] [ g ] [ h ] [ j ] [ k ] [ l ] [ m ] [ ? ] [ ` ] [____] [ 4 ] [ 5 ] [ 6 ] [ + ] +# 0x3b 0x3c 0x3d 0x3e 0x3f 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x33 0x47 0x48 0x49 0x4a 0x3a +# +# [shf] [ < ] [ w ] [ x ] [ c ] [ v ] [ b ] [ n ] [ , ] [ ; ] [ : ] [ = ] [ shift ] [ up] [ 1 ] [ 2 ] [ 3 ] [ent] +# 0x4b 0x69 0x4c 0x4d 0x4e 0x4f 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5a [ ] +# [ ] +# [ ctr ] [ opt ] [ cmd ] [ space ] [ cmd ] [ opt ] [ ctr ] [lft] [dwn] [rgt] [ 0 ] [ , ] [___] +# 0x5c 0x5d 0x66 0x5e 0x67 0x5f 0x60 0x61 0x62 0x63 0x64 0x65 0x5b +# + +# Some keys of this keyboard have unmapped keycodes (see src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp) : +# F13 : 0x68 (should probably be mapped to Print Screen) +# F14 : 0x69 +# F15 : 0x6a +# F16 : 0x6b +# The sound volume and disc eject keys (at the top of the keypad) are not recognized at all. + +# Some virtual machines (like VMWare Fusion) map some keys to others : +# Keypad "=" => 0x1d ("=" on standard PC keyboards, but "-" on Apple keyboard) +# F13 => 0x0e (Print Screen) +# F14 => 0x0f (Scroll Lock) +# F15 => 0x22 (Num Lock) +# F16 => 0x67 (Right command ?) + + +Version = 3 +CapsLock = 0x3b +ScrollLock = 0x0f +NumLock = 0x22 +LShift = 0x4b +RShift = 0x56 +LCommand = 0x66 +RCommand = 0x67 +LControl = 0x5c +RControl = 0x60 +LOption = 0x5d +ROption = 0x5f +Menu = 0x68 + +# +# Lock settings +# To set NumLock, do the following: +# LockSettings = NumLock +# +# To set everything, do the following: +# LockSettings = CapsLock NumLock ScrollLock +# +LockSettings = +# Legend: +# n = Normal +# s = Shift +# c = Control +# C = CapsLock +# o = Option +# Key n s c o os C Cs Co Cos +Key 0x00 = '' '' '' '' '' '' '' '' '' +Key 0x01 = 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b +Key 0x02 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x03 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x04 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x05 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x06 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x07 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x08 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x09 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0a = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0b = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0c = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0d = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0e = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0f = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x10 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x11 = '@' '#' '0' 0xe280a2 0xc5b8 '@' '#' 0xe280a2 0xc592 +Key 0x12 = '&' '1' '1' ' ' 0xc2b4 '&' '1' ' ' 0xc2b4 +Key 0x13 = 0xc3a9 '2' '2' 0xc3ab 0xe289e 0xc389 '2' 0xc38b 0xe289e +Key 0x14 = '"' '3' '3' 0xe2809c 0xe2809d '"' '3' 0xe2809c 0xe2809d +Key 0x15 = '\'' '4' '4' 0xe28098 0xe28099 '\'' '4' 0xe28098 0xe28099 +Key 0x16 = '(' '5' '5' '{' '[' '(' '5' '{' '[' +Key 0x17 = 0xc2a7 '6' '6' 0xcdb6 0xc3a0 0xc2a7 '6' 0xcdb6 0c3a5 +Key 0x18 = 0xc3a8 '7' '7' 0xc2ab 0xc2bb 0xc388 '7' 0xc2ab 0xc2bb +Key 0x19 = '!' '8' '8' 0xc2a1 0xc39b '!' '8' 0xc2a1 0xc39b +Key 0x1a = 0xc3a7 '9' 0x1e 0xc387 0xc381 0xc387 '9' 0xc387 0xc381 +Key 0x1b = 0xc3a0 '0' '' 0xc3b8 0xc398 0xc380 '0' 0xc3b8 0xc398 +Key 0x1c = ')' 0xc2b0 '' '}' ']' ')' 0xc2b0 '}' ']' +Key 0x1d = '-' '_' '' 0xe28094 0xe28093 '-' '_' 0xe28094 0xe28093 +Key 0x1e = 0x08 0x08 0x08 0x08 0x08 0x08 0x08 0x08 0x08 +Key 0x1f = 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 +Key 0x20 = 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 +Key 0x21 = 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b +Key 0x22 = '' '' '' '' '' '' '' '' '' +Key 0x23 = '/' '/' '/' '/' '/' '/' '/' '/' '/' +Key 0x24 = '*' '*' '*' '*' '*' '*' '*' '*' '*' +Key 0x25 = '-' '-' '-' '-' '-' '-' '-' '-' '-' +Key 0x26 = 0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09 +Key 0x27 = 'a' 'A' 0x01 0xc3a6 0xc386 'A' 'A' 0xc3a6 0xc386 +Key 0x28 = 'z' 'Z' 0x1a 0xc382 0xc385 'Z' 'Z' 0xc385 0xc385 +Key 0x29 = 'e' 'E' 0x05 0xc3aa 0xc38a 'E' 'E' 0xc3aa 0xc38a +Key 0x2a = 'r' 'R' 0x12 0xc2a2 0xe2809a 'R' 'R' 0xc2a2 0xe2809a +Key 0x2b = 't' 'T' 0x14 0xe280a0 0xe284a2 'T' 'T' 0xe284a2 0xe284a2 +Key 0x2c = 'y' 'Y' 0x19 0xc39a 0xc5b8 'Y' 'Y' 0xc5b8 0xc5b8 +Key 0x2d = 'u' 'U' 0x15 0xc2ba 0xc2aa 'U' 'U' 0xc2aa 0xc2aa +Key 0x2e = 'i' 'I' 0x09 0xc3ae 0xc3af 'I' 'I' 0xc3af 0xc3af +Key 0x2f = 'o' 'O' 0x0f 0xc593 0xc592 'O' 'O' 0xc592 0xc592 +Key 0x30 = 'p' 'P' 0x10 0xcf80 0xe2888f 'P' 'P' 0xe2888f 0xe2888f +Key 0x31 = '^' 0xc2a8 0x1b 0xc3b4 0xc394 '^' 0xc2a8 0xc3b4 0xc394 +Key 0x32 = '$' '*' 0x1d 0xe282ac 0xc2a5 '$' '*' 0xe282ac 0xc2a5 +Key 0x33 = '`' 0xc2a3 0x1c '`' '#' '`' 0xc2a3 '`' '#' +Key 0x34 = 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f +Key 0x35 = 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 +Key 0x36 = 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c +Key 0x37 = '7' '7' '7' '7' '7' '7' '7' '7' '7' +Key 0x38 = '8' '8' '8' '8' '8' '8' '8' '8' '8' +Key 0x39 = '9' '9' '9' '9' '9' '9' '9' '9' '9' +Key 0x3a = '+' '+' '+' '+' '+' '+' '+' '+' '+' +Key 0x3b = '' '' '' '' '' '' '' '' '' +Key 0x3c = 'q' 'Q' 0x11 0xe280a1 0xcea9 'Q' 'Q' 0xcea9 0xcea9 +Key 0x3d = 's' 'S' 0x13 0xc392 0xe28891 'S' 'S' 0xe28891 0xe28891 +Key 0x3e = 'd' 'D' 0x04 0xe28882 0xe28886 'D' 'D' 0xe28886 0xe28886 +Key 0x3f = 'f' 'F' 0x06 0xc692 0xc2b7 'F' 'F' 0xc2b7 0xc2b7 +Key 0x40 = 'g' 'G' 0x07 0xefac81 0xefac82 'G' 'G' 0xefac82 0xefac82 +Key 0x41 = 'h' 'H' 0x08 0xc38c 0xc38e 'H' 'H' 0xc38e 0xc38e +Key 0x42 = 'j' 'J' 0x0a 0xc38f 0xc38d 'J' 'J' 0xc38d 0xc38d +Key 0x43 = 'k' 'K' 0x0b 0xc388 0xc38b 'K' 'K' 0xc38b 0xc38b +Key 0x44 = 'l' 'L' 0x0c 0xc2ac '|' 'L' 'L' '|' '|' +Key 0x45 = 'm' 'M' 0x0d 0xc2b5 0xc393 'M' 'M' 0xc393 0xc393 +Key 0x46 = 0xc3b9 '%' '' 0xc399 0xe280b0 0xc399 '%' 0xc399 0xe280b0 +Key 0x47 = 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a +Key 0x48 = '4' '4' '4' '4' '4' '4' '4' '4' '4' +Key 0x49 = '5' '5' '5' '5' '5' '5' '5' '5' '5' +Key 0x4a = '6' '6' '6' '6' '6' '6' '6' '6' '6' +Key 0x4b = '' '' '' '' '' '' '' '' '' +Key 0x4c = 'w' 'W' 0x17 0xe280b9 0xe280ba 'W' 'W' 0xe280ba 0xe280ba +Key 0x4d = 'x' 'X' 0x18 0xe28988 0xe28184 'X' 'X' 0xe28184 0xe28184 +Key 0x4e = 'c' 'C' 0x03 0xc2a9 0xc2a2 'C' 'C' 0xc2a2 0xc2a2 +Key 0x4f = 'v' 'V' 0x16 0xe2978a 0xe2889a 'V' 'V' 0xe2889a 0xe2889a +Key 0x50 = 'b' 'B' 0x02 0xc39f 0xe288ab 'B' 'B' 0xe288ab 0xe288ab +Key 0x51 = 'n' 'N' 0x0e '~' 0xc4b1 'N' 'N' 0xc4b1 0xc4b1 +Key 0x52 = ',' '?' '' 0xe2889e 0xc2bf ',' '?' 0xe2889e 0xc2bf +Key 0x53 = ';' '.' '' 0xe280a6 0xe280a2 ';' '.' 0xe280a6 0xe280a2 +Key 0x54 = ':' '/' '' 0xc3b7 '\\' ':' '/' 0xc3b7 '\\' +Key 0x55 = '=' '+' '' 0xe289a0 0xc2b1 '=' '+' 0xe289a0 0xc2b1 +Key 0x56 = '' '' '' '' '' '' '' '' '' +Key 0x57 = 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e +Key 0x58 = '1' '1' '1' '1' '1' '1' '1' '1' '1' +Key 0x59 = '2' '2' '2' '2' '2' '2' '2' '2' '2' +Key 0x5a = '3' '3' '3' '3' '3' '3' '3' '3' '3' +Key 0x5b = 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a +Key 0x5c = '' '' '' '' '' '' '' '' '' +Key 0x5d = '' '' '' '' '' '' '' '' '' +Key 0x5e = ' ' ' ' 0x00 ' ' ' ' ' ' ' ' ' ' ' ' +Key 0x5f = '' '' '' '' '' '' '' '' '' +Key 0x60 = '' '' '' '' '' '' '' '' '' +Key 0x61 = 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c +Key 0x62 = 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f +Key 0x63 = 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d +Key 0x64 = '0' '0' '0' '0' '0' '0' '0' '0' '0' +Key 0x65 = ',' ',' ',' ',' ',' ',' ',' ',' ',' +Key 0x66 = '' '' '' '' '' '' '' '' '' +Key 0x67 = '' '' '' '' '' '' '' '' '' +Key 0x68 = '' '' '' '' '' '' '' '' '' +Key 0x69 = '<' '>' 0x1c 0xe289a4 0xe289a5 '<' '>' 0xe289a4 0xe289a5 +Key 0x6a = '=' '=' '=' '=' '=' '=' '=' '=' '=' +Key 0x6b = '' '' '' '' '' '' '' '' '' +Key 0x6c = '' '' '' '' '' '' '' '' '' +Key 0x6d = '' '' '' '' '' '' '' '' '' +Key 0x6e = '' '' '' '' '' '' '' '' '' +Key 0x6f = '' '' '' '' '' '' '' '' '' +Key 0x70 = '' '' '' '' '' '' '' '' '' +Key 0x71 = '' '' '' '' '' '' '' '' '' +Key 0x72 = '' '' '' '' '' '' '' '' '' +Key 0x73 = '' '' '' '' '' '' '' '' '' +Key 0x74 = '' '' '' '' '' '' '' '' '' +Key 0x75 = '' '' '' '' '' '' '' '' '' +Key 0x76 = '' '' '' '' '' '' '' '' '' +Key 0x77 = '' '' '' '' '' '' '' '' '' +Key 0x78 = '' '' '' '' '' '' '' '' '' +Key 0x79 = '' '' '' '' '' '' '' '' '' +Key 0x7a = '' '' '' '' '' '' '' '' '' +Key 0x7b = '' '' '' '' '' '' '' '' '' +Key 0x7c = '' '' '' '' '' '' '' '' '' +Key 0x7d = '' '' '' '' '' '' '' '' '' +Key 0x7e = '' '' '' '' '' '' '' '' '' +Key 0x7f = '' '' '' '' '' '' '' '' '' +Acute ' ' = 0xc2b4 +Acute 'A' = 0xc381 +Acute 'E' = 0xc389 +Acute 'I' = 0xc38d +Acute 'O' = 0xc393 +Acute 'U' = 0xc39a +Acute 'Y' = 0xc39d +Acute 'a' = 0xc3a1 +Acute 'e' = 0xc3a9 +Acute 'i' = 0xc3ad +Acute 'o' = 0xc3b3 +Acute 'u' = 0xc3ba +Acute 'y' = 0xc3bd +AcuteTab = Option Option-Shift CapsLock-Option CapsLock-Option-Shift +Grave ' ' = '`' +Grave 'A' = 0xc380 +Grave 'E' = 0xc388 +Grave 'I' = 0xc38c +Grave 'O' = 0xc392 +Grave 'U' = 0xc399 +Grave 'a' = 0xc3a0 +Grave 'e' = 0xc3a8 +Grave 'i' = 0xc3ac +Grave 'o' = 0xc3b2 +Grave 'u' = 0xc3b9 +GraveTab = Normal Option Option-Shift CapsLock-Option CapsLock-Option-Shift +Circumflex ' ' = '^' +Circumflex 'A' = 0xc382 +Circumflex 'E' = 0xc38a +Circumflex 'I' = 0xc38e +Circumflex 'O' = 0xc394 +Circumflex 'U' = 0xc39b +Circumflex 'a' = 0xc3a2 +Circumflex 'e' = 0xc3aa +Circumflex 'i' = 0xc3ae +Circumflex 'o' = 0xc3b4 +Circumflex 'u' = 0xc3bb +CircumflexTab = Normal Shift CapsLock CapsLock-Shift +Diaeresis ' ' = 0xc2a8 +Diaeresis 'A' = 0xc384 +Diaeresis 'E' = 0xc38b +Diaeresis 'I' = 0xc38f +Diaeresis 'O' = 0xc396 +Diaeresis 'U' = 0xc39c +Diaeresis 'Y' = 0xc5b8 +Diaeresis 'a' = 0xc3a4 +Diaeresis 'e' = 0xc3ab +Diaeresis 'i' = 0xc3af +Diaeresis 'o' = 0xc3b6 +Diaeresis 'u' = 0xc3bc +Diaeresis 'y' = 0xc3bf +DiaeresisTab = Normal Shift CapsLock CapsLock-Shift +Tilde ' ' = '~' +Tilde 'A' = 0xc383 +Tilde 'O' = 0xc395 +Tilde 'N' = 0xc391 +Tilde 'a' = 0xc3a3 +Tilde 'o' = 0xc3b5 +Tilde 'n' = 0xc3b1 +TildeTab = Option Option-Shift CapsLock-Option CapsLock-Option-Shift From bga at bug-br.org.br Sun Jan 25 12:02:44 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Sun, 25 Jan 2009 12:02:44 Subject: [Haiku-commits] r29008 - haiku/trunk/src/data/etc/keymaps In-Reply-To: <200901251157.n0PBvmI1016248@sheep.berlios.de> Message-ID: <7384259501-BeMail@Gaspode> On Sun, 25 Jan 2009 12:57:48 +0100, korli at BerliOS said: > added French Apple keymap, as posted by Vincent Duvert. BTW, not directly keymap related (I guess), but I see a weird thing with siacritical signs. I am using the Brazilian(ABNT2) keymap and it has dead keys for the diacritical signs. Juat as an example, I can get ? by typing ~ followed by a. The weird thing is that if I type too fast, I will get ~a instead of ?, so I can not use my normal typing speed when using diacritical signs. This does not happen in BeOS/Zeta nor in any other platform that I noticed. Any idea why this is happening in Haiku? -Bruno From stippi at mail.berlios.de Sun Jan 25 13:17:07 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Sun, 25 Jan 2009 13:17:07 +0100 Subject: [Haiku-commits] r29009 - haiku/trunk/src/apps/terminal Message-ID: <200901251217.n0PCH7GM002175@sheep.berlios.de> Author: stippi Date: 2009-01-25 13:17:02 +0100 (Sun, 25 Jan 2009) New Revision: 29009 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29009&view=rev Modified: haiku/trunk/src/apps/terminal/TermView.cpp Log: Fixed coding style issues pointed out by Jerome. Modified: haiku/trunk/src/apps/terminal/TermView.cpp =================================================================== --- haiku/trunk/src/apps/terminal/TermView.cpp 2009-01-25 11:57:47 UTC (rev 29008) +++ haiku/trunk/src/apps/terminal/TermView.cpp 2009-01-25 12:17:02 UTC (rev 29009) @@ -25,10 +25,10 @@ #include #include -#include #include #include #include +#include #include #include #include @@ -1590,7 +1590,7 @@ { // Launch menu to choose what is to do with the msg data BPoint point; - if (msg->FindPoint("_drop_point_", &point) < B_OK) + if (msg->FindPoint("_drop_point_", &point) != B_OK) return; BMessage* insertMessage = new BMessage(*msg); From anevilyak at mail.berlios.de Sun Jan 25 17:27:45 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Sun, 25 Jan 2009 17:27:45 +0100 Subject: [Haiku-commits] r29010 - haiku/trunk/build/jam Message-ID: <200901251627.n0PGRjmh031561@sheep.berlios.de> Author: anevilyak Date: 2009-01-25 17:27:44 +0100 (Sun, 25 Jan 2009) New Revision: 29010 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29010&view=rev Modified: haiku/trunk/build/jam/OptionalPackages Log: Update Vision package - fixes a bug that would sometimes result in malformed drag and dropped clippings. Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-01-25 12:17:02 UTC (rev 29009) +++ haiku/trunk/build/jam/OptionalPackages 2009-01-25 16:27:44 UTC (rev 29010) @@ -455,12 +455,12 @@ AddSymlinkToHaikuImage home config be Applications : /boot/apps/Vision-0.9.7-H-21072008/Vision ; } else { - InstallOptionalHaikuImagePackage Vision-0.9.7-H-11112008 - : http://vision.sf.net/Vision-0.9.7-H-11112008.zip + InstallOptionalHaikuImagePackage Vision-0.9.7-H-25012009 + : http://vision.sf.net/Vision-0.9.7-H-25012009.zip : apps ; AddSymlinkToHaikuImage home config be Applications - : /boot/apps/Vision-0.9.7-H-11112008/Vision ; + : /boot/apps/Vision-0.9.7-H-25012009/Vision ; } } From mmlr at mail.berlios.de Sun Jan 25 18:11:35 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 25 Jan 2009 18:11:35 +0100 Subject: [Haiku-commits] r29011 - haiku/trunk/headers/posix Message-ID: <200901251711.n0PHBZKp002431@sheep.berlios.de> Author: mmlr Date: 2009-01-25 18:11:22 +0100 (Sun, 25 Jan 2009) New Revision: 29011 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29011&view=rev Modified: haiku/trunk/headers/posix/stdlib.h Log: Add missing mkdtemp prototype. Modified: haiku/trunk/headers/posix/stdlib.h =================================================================== --- haiku/trunk/headers/posix/stdlib.h 2009-01-25 16:27:44 UTC (rev 29010) +++ haiku/trunk/headers/posix/stdlib.h 2009-01-25 17:11:22 UTC (rev 29011) @@ -64,6 +64,7 @@ extern int system(const char *command); extern char *mktemp(char *name); +extern char *mkdtemp(char *templat); extern int mkstemp(char *templat); extern char *ecvt(double value, int digits, int *_decimalPoint, int *_sign); From korli at mail.berlios.de Sun Jan 25 19:11:32 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Sun, 25 Jan 2009 19:11:32 +0100 Subject: [Haiku-commits] r29012 - haiku/trunk/src/kits/media Message-ID: <200901251811.n0PIBWwt018468@sheep.berlios.de> Author: korli Date: 2009-01-25 19:11:31 +0100 (Sun, 25 Jan 2009) New Revision: 29012 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29012&view=rev Modified: haiku/trunk/src/kits/media/SoundPlayer.cpp Log: BSoundPlayer changes: * calls the notifier in Start() and Stop() * calls SetHasData() with true in Start() like BeOS does * starts the timesource if not running in Start() Modified: haiku/trunk/src/kits/media/SoundPlayer.cpp =================================================================== --- haiku/trunk/src/kits/media/SoundPlayer.cpp 2009-01-25 17:11:22 UTC (rev 29011) +++ haiku/trunk/src/kits/media/SoundPlayer.cpp 2009-01-25 18:11:31 UTC (rev 29012) @@ -335,6 +335,11 @@ return B_ERROR; } + if (!fPlayerNode->TimeSource()->IsRunning()) { + roster->StartTimeSource(fPlayerNode->TimeSource()->Node(), + fPlayerNode->TimeSource()->RealTime()); + } + // Add latency and a few ms to the nodes current time to // make sure that we give the producer enough time to run // buffers through the node chain, otherwise it'll start @@ -345,7 +350,11 @@ TRACE("BSoundPlayer::Start: StartNode failed, %ld", err); return err; } + + if (fNotifierFunc) + fNotifierFunc(fCookie, B_STARTED, this); + SetHasData(true); atomic_or(&fFlags, F_IS_STARTED); return B_OK; @@ -389,6 +398,10 @@ // wait until all buffers on the way to the physical output have been played snooze(Latency() + 2000); } + + if (fNotifierFunc) + fNotifierFunc(fCookie, B_STOPPED, this); + } From korli at mail.berlios.de Sun Jan 25 19:13:50 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Sun, 25 Jan 2009 19:13:50 +0100 Subject: [Haiku-commits] r29013 - haiku/trunk/src/system/libroot/posix/malloc Message-ID: <200901251813.n0PIDoOp021087@sheep.berlios.de> Author: korli Date: 2009-01-25 19:13:49 +0100 (Sun, 25 Jan 2009) New Revision: 29013 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29013&view=rev Modified: haiku/trunk/src/system/libroot/posix/malloc/arch-specific.cpp Log: * Patch from Olivier Coursiere: restore sFreeHeapSize in case of resize_area failure Modified: haiku/trunk/src/system/libroot/posix/malloc/arch-specific.cpp =================================================================== --- haiku/trunk/src/system/libroot/posix/malloc/arch-specific.cpp 2009-01-25 18:11:31 UTC (rev 29012) +++ haiku/trunk/src/system/libroot/posix/malloc/arch-specific.cpp 2009-01-25 18:13:49 UTC (rev 29013) @@ -214,6 +214,7 @@ if (resize_area(sHeapArea, pageSize) < B_OK) { // out of memory - ToDo: as a fall back, we could try to allocate another area + sFreeHeapSize = oldHeapSize; hoardUnlock(sHeapLock); return NULL; } From mmlr at mail.berlios.de Sun Jan 25 19:14:51 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 25 Jan 2009 19:14:51 +0100 Subject: [Haiku-commits] r29014 - haiku/trunk/src/tools/fs_shell Message-ID: <200901251814.n0PIEp8R022393@sheep.berlios.de> Author: mmlr Date: 2009-01-25 19:14:46 +0100 (Sun, 25 Jan 2009) New Revision: 29014 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29014&view=rev Modified: haiku/trunk/src/tools/fs_shell/sem.cpp Log: Fix missing inclue. Modified: haiku/trunk/src/tools/fs_shell/sem.cpp =================================================================== --- haiku/trunk/src/tools/fs_shell/sem.cpp 2009-01-25 18:13:49 UTC (rev 29013) +++ haiku/trunk/src/tools/fs_shell/sem.cpp 2009-01-25 18:14:46 UTC (rev 29014) @@ -5,6 +5,8 @@ #include "compatibility.h" +#include + #include #include "fssh_errors.h" From korli at mail.berlios.de Sun Jan 25 20:12:59 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Sun, 25 Jan 2009 20:12:59 +0100 Subject: [Haiku-commits] r29015 - haiku/trunk/src/kits/tracker Message-ID: <200901251912.n0PJCxP4005761@sheep.berlios.de> Author: korli Date: 2009-01-25 20:12:58 +0100 (Sun, 25 Jan 2009) New Revision: 29015 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29015&view=rev Modified: haiku/trunk/src/kits/tracker/TrackerSettingsWindow.cpp Log: * centers the text for the settings list item as done with BStringItem Modified: haiku/trunk/src/kits/tracker/TrackerSettingsWindow.cpp =================================================================== --- haiku/trunk/src/kits/tracker/TrackerSettingsWindow.cpp 2009-01-25 18:14:46 UTC (rev 29014) +++ haiku/trunk/src/kits/tracker/TrackerSettingsWindow.cpp 2009-01-25 19:12:58 UTC (rev 29015) @@ -364,7 +364,9 @@ else owner->SetHighColor(kBlack); - owner->MovePenTo(rect.left + 4, rect.bottom - 2); + font_height fheight; + owner->GetFontHeight(&fheight); + owner->MovePenTo(rect.left + 4, rect.top + fheight.ascent + 2 + floorf(fheight.leading / 2)); owner->DrawString(Text()); From mmlr at mail.berlios.de Sun Jan 25 20:25:19 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 25 Jan 2009 20:25:19 +0100 Subject: [Haiku-commits] r29016 - haiku/trunk/build/jam Message-ID: <200901251925.n0PJPJTB007545@sheep.berlios.de> Author: mmlr Date: 2009-01-25 20:25:16 +0100 (Sun, 25 Jan 2009) New Revision: 29016 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29016&view=rev Modified: haiku/trunk/build/jam/BuildSetup Log: Rumour has it that we now have Haiku hosts with GCC > 2 as well. Modified: haiku/trunk/build/jam/BuildSetup =================================================================== --- haiku/trunk/build/jam/BuildSetup 2009-01-25 19:12:58 UTC (rev 29015) +++ haiku/trunk/build/jam/BuildSetup 2009-01-25 19:25:16 UTC (rev 29016) @@ -623,7 +623,12 @@ HOST_RM_ATTRS_TARGET = ; if $(HOST_PLATFORM_BEOS_COMPATIBLE) { - HOST_LIBSTDC++ = stdc++.r4 ; + if $(HOST_GCC_VERSION[1]) < 3 { + HOST_LIBSTDC++ = stdc++.r4 ; + } else { + HOST_LIBSTDC++ = stdc++ ; + } + HOST_LIBROOT = root ; HOST_STATIC_LIBROOT = $(HOST_LIBROOT) ; HOST_LIBBE = be ; From superstippi at gmx.de Sun Jan 25 20:25:34 2009 From: superstippi at gmx.de (Stephan Assmus) Date: Sun, 25 Jan 2009 20:25:34 +0100 Subject: [Haiku-commits] r29015 - haiku/trunk/src/kits/tracker In-Reply-To: <200901251912.n0PJCxP4005761@sheep.berlios.de> References: <200901251912.n0PJCxP4005761@sheep.berlios.de> Message-ID: <20090125202534.808.2@bepc.1232901250.fake> On 2009-01-25 at 20:20:16 [+0100], korli at BerliOS wrote: > Author: korli > Date: 2009-01-25 20:12:58 +0100 (Sun, 25 Jan 2009) New Revision: 29015 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29015&view=rev > > Modified: > haiku/trunk/src/kits/tracker/TrackerSettingsWindow.cpp > Log: > * centers the text for the settings list item as done with BStringItem > > > Modified: haiku/trunk/src/kits/tracker/TrackerSettingsWindow.cpp > =================================================================== > --- haiku/trunk/src/kits/tracker/TrackerSettingsWindow.cpp 2009-01-25 > 18:14:46 UTC (rev 29014) > +++ haiku/trunk/src/kits/tracker/TrackerSettingsWindow.cpp 2009-01-25 > 19:12:58 UTC (rev 29015) > @@ -364,7 +364,9 @@ > else > owner->SetHighColor(kBlack); > > - owner->MovePenTo(rect.left + 4, rect.bottom - 2); > + font_height fheight; > + owner->GetFontHeight(&fheight); > + owner->MovePenTo(rect.left + 4, rect.top + fheight.ascent + 2 + > floorf(fheight.leading / 2)); > > owner->DrawString(Text()); BTW, I know the old Tracker drawing code uses MovePen() a lot, but on Haiku (and I would guess BeOS too?), it's much faster to pass the drawing location in DrawString(). Best regards, -Stephan From korli at mail.berlios.de Sun Jan 25 20:43:41 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Sun, 25 Jan 2009 20:43:41 +0100 Subject: [Haiku-commits] r29017 - haiku/trunk/src/kits/tracker Message-ID: <200901251943.n0PJhfkx010688@sheep.berlios.de> Author: korli Date: 2009-01-25 20:43:41 +0100 (Sun, 25 Jan 2009) New Revision: 29017 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29017&view=rev Modified: haiku/trunk/src/kits/tracker/TrackerSettingsWindow.cpp Log: Applied a tip from Stephan: pass the location to DrawString directly. Modified: haiku/trunk/src/kits/tracker/TrackerSettingsWindow.cpp =================================================================== --- haiku/trunk/src/kits/tracker/TrackerSettingsWindow.cpp 2009-01-25 19:25:16 UTC (rev 29016) +++ haiku/trunk/src/kits/tracker/TrackerSettingsWindow.cpp 2009-01-25 19:43:41 UTC (rev 29017) @@ -366,9 +366,9 @@ font_height fheight; owner->GetFontHeight(&fheight); - owner->MovePenTo(rect.left + 4, rect.top + fheight.ascent + 2 + floorf(fheight.leading / 2)); - owner->DrawString(Text()); + owner->DrawString(Text(), BPoint(rect.left + 4, rect.top + + fheight.ascent + 2 + floorf(fheight.leading / 2))); owner->SetHighColor(kBlack); owner->SetLowColor(owner->ViewColor()); From korli at users.berlios.de Sun Jan 25 20:44:09 2009 From: korli at users.berlios.de (=?ISO-8859-1?B?Suly9G1lIER1dmFs?=) Date: Sun, 25 Jan 2009 20:44:09 +0100 Subject: [Haiku-commits] r29015 - haiku/trunk/src/kits/tracker In-Reply-To: <20090125202534.808.2@bepc.1232901250.fake> References: <200901251912.n0PJCxP4005761@sheep.berlios.de> <20090125202534.808.2@bepc.1232901250.fake> Message-ID: 2009/1/25 Stephan Assmus > BTW, I know the old Tracker drawing code uses MovePen() a lot, but on Haiku > (and I would guess BeOS too?), it's much faster to pass the drawing > location in DrawString(). > Done! Thanks for the tip. Bye, J?r?me -------------- next part -------------- An HTML attachment was scrubbed... URL: From korli at mail.berlios.de Sun Jan 25 20:57:22 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Sun, 25 Jan 2009 20:57:22 +0100 Subject: [Haiku-commits] r29018 - haiku/trunk/src/apps/aboutsystem Message-ID: <200901251957.n0PJvME6011428@sheep.berlios.de> Author: korli Date: 2009-01-25 20:57:21 +0100 (Sun, 25 Jan 2009) New Revision: 29018 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29018&view=rev Modified: haiku/trunk/src/apps/aboutsystem/HyperTextView.cpp Log: * calls BTextView hooks, this allows to select text (see bug #2497) Modified: haiku/trunk/src/apps/aboutsystem/HyperTextView.cpp =================================================================== --- haiku/trunk/src/apps/aboutsystem/HyperTextView.cpp 2009-01-25 19:43:41 UTC (rev 29017) +++ haiku/trunk/src/apps/aboutsystem/HyperTextView.cpp 2009-01-25 19:57:21 UTC (rev 29018) @@ -106,6 +106,8 @@ HyperTextView::MouseDown(BPoint where) { // We eat all mouse button events. + + BTextView::MouseDown(where); } @@ -117,6 +119,8 @@ HyperTextAction* action = _ActionAt(where); if (action != NULL) action->Clicked(this, where, message); + + BTextView::MouseUp(where); } From alex at zappotek.com Sun Jan 25 21:50:38 2009 From: alex at zappotek.com (Alexandre Deckner) Date: Sun, 25 Jan 2009 21:50:38 +0100 Subject: [Haiku-commits] r29008 - haiku/trunk/src/data/etc/keymaps In-Reply-To: <7384259501-BeMail@Gaspode> References: <7384259501-BeMail@Gaspode> Message-ID: <497CD09E.3000704@zappotek.com> Bruno Albuquerque wrote: > On Sun, 25 Jan 2009 12:57:48 +0100, korli at BerliOS said: > > >> added French Apple keymap, as posted by Vincent Duvert. >> > > BTW, not directly keymap related (I guess), but I see a weird thing > with siacritical signs. > > I am using the Brazilian(ABNT2) keymap and it has dead keys for the > diacritical signs. Juat as an example, I can get ? by typing ~ followed > by a. The weird thing is that if I type too fast, I will get ~a instead > of ?, so I can not use my normal typing speed when using diacritical > signs. This does not happen in BeOS/Zeta nor in any other platform that > I noticed. Any idea why this is happening in Haiku? note the similar issues described in http://dev.haiku-os.org/ticket/2241 Regards, Alex From mmlr at mail.berlios.de Sun Jan 25 22:15:30 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 25 Jan 2009 22:15:30 +0100 Subject: [Haiku-commits] r29019 - haiku/trunk/src/bin/network/ftpd Message-ID: <200901252115.n0PLFUBJ021681@sheep.berlios.de> Author: mmlr Date: 2009-01-25 22:15:28 +0100 (Sun, 25 Jan 2009) New Revision: 29019 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29019&view=rev Modified: haiku/trunk/src/bin/network/ftpd/ftpcmd.y Log: Temporary fix for compilation issue on bison 2.4. See ticket #3137. Modified: haiku/trunk/src/bin/network/ftpd/ftpcmd.y =================================================================== --- haiku/trunk/src/bin/network/ftpd/ftpcmd.y 2009-01-25 19:57:21 UTC (rev 29018) +++ haiku/trunk/src/bin/network/ftpd/ftpcmd.y 2009-01-25 21:15:28 UTC (rev 29019) @@ -76,6 +76,8 @@ #include "extern.h" #include "pathnames.h" +#include "ftpcmd.h" + extern union sockunion data_dest, his_addr; extern int hostinfo; extern int logged_in; From mmlr at mail.berlios.de Sun Jan 25 22:28:44 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 25 Jan 2009 22:28:44 +0100 Subject: [Haiku-commits] r29020 - haiku/trunk/src/system/kernel/util Message-ID: <200901252128.n0PLSiwq022682@sheep.berlios.de> Author: mmlr Date: 2009-01-25 22:28:43 +0100 (Sun, 25 Jan 2009) New Revision: 29020 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29020&view=rev Modified: haiku/trunk/src/system/kernel/util/kernel_cpp.cpp Log: When linking against libgcc already don't include these symbols. Otherwise we get multiple definitions of them when building with GCC4 on a GCC4 host. With that we can now build completely on a GCC4 host with native GCC 4.3.3. Modified: haiku/trunk/src/system/kernel/util/kernel_cpp.cpp =================================================================== --- haiku/trunk/src/system/kernel/util/kernel_cpp.cpp 2009-01-25 21:15:28 UTC (rev 29019) +++ haiku/trunk/src/system/kernel/util/kernel_cpp.cpp 2009-01-25 21:28:43 UTC (rev 29020) @@ -119,7 +119,7 @@ #endif // __GNUC__ >= 3 -#if __GNUC__ >= 4 +#if __GNUC__ >= 4 && !defined(USING_LIBGCC) extern "C" void From mmlr at mail.berlios.de Sun Jan 25 22:37:26 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 25 Jan 2009 22:37:26 +0100 Subject: [Haiku-commits] r29021 - in buildtools/vendor/binutils/current: . bfd bfd/doc bfd/po binutils binutils/doc binutils/po binutils/testsuite binutils/testsuite/binutils-all binutils/testsuite/binutils-all/arm binutils/testsuite/binutils-all/windres binutils/testsuite/config binutils/testsuite/lib config cpu elfcpp etc gas gas/config gas/doc gas/po gas/testsuite gas/testsuite/gas/all gas/testsuite/gas/arm gas/testsuite/gas/bfin gas/testsuite/gas/cfi gas/testsuite/gas/elf gas/testsuite/gas/h8300 gas/testsuite/gas/i386 gas/testsuite/gas/ia64 gas/testsuite/gas/lns gas/testsuite/gas/m68hc11 gas/testsuite/gas/m68k gas/testsuite/gas/macros gas/testsuite/gas/maxq10 gas/testsuite/gas/maxq20 gas/testsuite/gas/mips gas/testsuite/gas/mmix gas/testsuite/gas/mn10300 gas/testsuite/gas/ppc gas/testsuite/gas/s390 gas/testsuite/gas/sh gas/testsuite/gas/sh/arch gas/testsuite/gas/sh/sh64 gas/testsuite/gas/sparc gas/testsuite/gas/xtensa gas/testsuite/lib gold gold/po gold/testsuite gprof gprof/po include ! include/aout include/coff include/elf include/gdb include/opcode intl ld ld/emulparams ld/emultempl ld/po ld/scripttempl ld/testsuite ld/testsuite/config ld/testsuite/ld-alpha ld/testsuite/ld-arm ld/testsuite/ld-auto-import ld/testsuite/ld-checks ld/testsuite/ld-cris ld/testsuite/ld-elf ld/testsuite/ld-elfcomm ld/testsuite/ld-elfvers ld/testsuite/ld-gc ld/testsuite/ld-i386 ld/testsuite/ld-ia64 ld/testsuite/ld-m68k ld/testsuite/ld-mips-elf ld/testsuite/ld-mmix ld/testsuite/ld-mn10300 ld/testsuite/ld-powerpc ld/testsuite/ld-s390 ld/testsuite/ld-scripts ld/testsuite/ld-selective ld/testsuite/ld-sh/arch ld/testsuite/ld-sh/sh64 ld/testsuite/ld-shared ld/testsuite/ld-sparc ld/testsuite/ld-spu ld/testsuite/ld-srec ld/testsuite/ld-undefined ld/testsuite/ld-vxworks ld/testsuite/ld-x86-64 ld/testsuite/ld-xtensa ld/testsuite/lib libiberty libiberty/testsuite opcodes opcodes/po Message-ID: <200901252137.n0PLbQgP023519@sheep.berlios.de> Author: mmlr Date: 2009-01-25 22:01:43 +0100 (Sun, 25 Jan 2009) New Revision: 29021 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29021&view=rev Added: buildtools/vendor/binutils/current/ChangeLog buildtools/vendor/binutils/current/MAINTAINERS buildtools/vendor/binutils/current/README-maintainer-mode buildtools/vendor/binutils/current/bfd/ChangeLog-2007 buildtools/vendor/binutils/current/bfd/compress.c buildtools/vendor/binutils/current/bfd/efi-bsdrv-ia32.c buildtools/vendor/binutils/current/bfd/efi-bsdrv-ia64.c buildtools/vendor/binutils/current/bfd/efi-bsdrv-x86_64.c buildtools/vendor/binutils/current/bfd/efi-rtdrv-ia32.c buildtools/vendor/binutils/current/bfd/efi-rtdrv-ia64.c buildtools/vendor/binutils/current/bfd/efi-rtdrv-x86_64.c buildtools/vendor/binutils/current/bfd/po/fi.gmo buildtools/vendor/binutils/current/bfd/po/fi.po buildtools/vendor/binutils/current/binutils/ChangeLog-2007 buildtools/vendor/binutils/current/binutils/po/sk.gmo buildtools/vendor/binutils/current/binutils/po/sk.po buildtools/vendor/binutils/current/binutils/testsuite/binutils-all/dumptest.s buildtools/vendor/binutils/current/binutils/testsuite/binutils-all/dw2-compressed.S buildtools/vendor/binutils/current/binutils/testsuite/binutils-all/objdump.W buildtools/vendor/binutils/current/binutils/testsuite/binutils-all/objdump.s buildtools/vendor/binutils/current/binutils/testsuite/binutils-all/readelf.wa buildtools/vendor/binutils/current/compile buildtools/vendor/binutils/current/config/extensions.m4 buildtools/vendor/binutils/current/config/futex.m4 buildtools/vendor/binutils/current/config/mh-mingw buildtools/vendor/binutils/current/config/mh-pa buildtools/vendor/binutils/current/config/mh-pa-hpux10 buildtools/vendor/binutils/current/config/mt-mips-elfoabi buildtools/vendor/binutils/current/config/mt-mips-gnu buildtools/vendor/binutils/current/config/mt-mips16-compat buildtools/vendor/binutils/current/config/mt-sde buildtools/vendor/binutils/current/config/override.m4 buildtools/vendor/binutils/current/config/proginstall.m4 buildtools/vendor/binutils/current/config/tcl.m4 buildtools/vendor/binutils/current/depcomp buildtools/vendor/binutils/current/elfcpp/ buildtools/vendor/binutils/current/elfcpp/ChangeLog buildtools/vendor/binutils/current/elfcpp/README buildtools/vendor/binutils/current/elfcpp/dwarf.h buildtools/vendor/binutils/current/elfcpp/elfcpp.h buildtools/vendor/binutils/current/elfcpp/elfcpp_file.h buildtools/vendor/binutils/current/elfcpp/elfcpp_internal.h buildtools/vendor/binutils/current/elfcpp/elfcpp_swap.h buildtools/vendor/binutils/current/elfcpp/i386.h buildtools/vendor/binutils/current/elfcpp/powerpc.h buildtools/vendor/binutils/current/elfcpp/sparc.h buildtools/vendor/binutils/current/elfcpp/x86_64.h buildtools/vendor/binutils/current/etc/ChangeLog buildtools/vendor/binutils/current/gas/ChangeLog-2007 buildtools/vendor/binutils/current/gas/config/obj-fdpicelf.c buildtools/vendor/binutils/current/gas/config/obj-fdpicelf.h buildtools/vendor/binutils/current/gas/config/te-solaris.h buildtools/vendor/binutils/current/gas/testsuite/ChangeLog-2007 buildtools/vendor/binutils/current/gas/testsuite/gas/all/string.d buildtools/vendor/binutils/current/gas/testsuite/gas/all/string.s buildtools/vendor/binutils/current/gas/testsuite/gas/arm/arch4t-eabi.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/archv6m.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/archv6m.s buildtools/vendor/binutils/current/gas/testsuite/gas/arm/fp-save.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/fp-save.s buildtools/vendor/binutils/current/gas/testsuite/gas/arm/movw-local.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/movw-local.s buildtools/vendor/binutils/current/gas/testsuite/gas/arm/relax_load_align.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/relax_load_align.s buildtools/vendor/binutils/current/gas/testsuite/gas/arm/thumb-eabi.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/v4bx.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/v4bx.s buildtools/vendor/binutils/current/gas/testsuite/gas/arm/vfpv3-d16-bad.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/vfpv3-d16-bad.l buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/arith_mode.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/arith_mode.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/expected_comparison_errors.l buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/expected_comparison_errors.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/invalid_arith_mode.l buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/invalid_arith_mode.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/misc.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/misc.s buildtools/vendor/binutils/current/gas/testsuite/gas/elf/section6.d buildtools/vendor/binutils/current/gas/testsuite/gas/elf/section6.s buildtools/vendor/binutils/current/gas/testsuite/gas/elf/section7.d buildtools/vendor/binutils/current/gas/testsuite/gas/elf/section7.s buildtools/vendor/binutils/current/gas/testsuite/gas/elf/symtab.d buildtools/vendor/binutils/current/gas/testsuite/gas/elf/symtab.s buildtools/vendor/binutils/current/gas/testsuite/gas/h8300/pr3134.d buildtools/vendor/binutils/current/gas/testsuite/gas/h8300/pr3134.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/aes-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/aes.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/aes.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-1.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-10-1.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-10-1.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-10-2.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-10-2.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-10-3.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-10-3.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-10-4.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-10-4.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-10.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-10.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-11.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-11.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-12.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-12.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-2.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-2.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-3.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-3.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-4.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-4.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-5.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-5.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-6.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-6.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-7.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-7.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-8.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-8.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-9.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-9.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-avx-1-1.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-avx-1-1.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-avx-1-2.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-avx-1-2.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-avx-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/arch-avx-1.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/att-regs.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/att-regs.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/avx-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/avx.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/avx.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/clmul-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/clmul.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/clmul.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/compat-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/compat.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/compat.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/ept-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/ept.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/ept.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/i386.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/i386.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/intel-regs.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/intel-regs.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/inval-avx.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/inval-avx.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/inval-ept.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/inval-ept.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/inval-equ-1.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/inval-equ-1.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/inval-equ-2.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/inval-equ-2.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/inval-movbe.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/inval-movbe.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/mem-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/mem.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/mem.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/movbe-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/movbe.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/movbe.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/reg-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/reg.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/reg.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/rexw.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/rexw.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sib-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/simd-suffix.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/smx.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/smx.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse-check-error.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse-check-error.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse-check-none.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse-check-none.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse-check-warn.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse-check-warn.e buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse-check.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse-check.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse-noavx.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse-noavx.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse2avx.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse2avx.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/string-bad.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/string-bad.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/string-ok.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/string-ok.e buildtools/vendor/binutils/current/gas/testsuite/gas/i386/string-ok.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-aes-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-aes.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-aes.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-arch-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-arch-1.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-arch-2.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-arch-2.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-avx-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-avx.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-avx.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-clmul-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-clmul.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-clmul.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-ept-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-ept.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-ept.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-intel64.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-intel64.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-inval-avx.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-inval-avx.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-inval-ept.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-inval-ept.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-inval-movbe.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-inval-movbe.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-mem-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-mem.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-mem.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-movbe-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-movbe.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-movbe.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-opcode-inval-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-opcode-inval.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-opcode-inval.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-reg-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-reg.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-reg.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sib-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sib.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sib.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-simd-suffix.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sse-check-error.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sse-check-error.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sse-check-none.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sse-check-warn.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sse-check.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sse-noavx.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sse-noavx.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sse2avx.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sse2avx.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sse5.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sse5.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-w64-pcrel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-xsave-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-xsave.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-xsave.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/xsave-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/xsave.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/xsave.s buildtools/vendor/binutils/current/gas/testsuite/gas/lns/lns-big-delta.d buildtools/vendor/binutils/current/gas/testsuite/gas/lns/lns-big-delta.s buildtools/vendor/binutils/current/gas/testsuite/gas/lns/lns-common-1-ia64.s buildtools/vendor/binutils/current/gas/testsuite/gas/lns/lns-duplicate.d buildtools/vendor/binutils/current/gas/testsuite/gas/lns/lns-duplicate.s buildtools/vendor/binutils/current/gas/testsuite/gas/m68k/mcf-movsr.d buildtools/vendor/binutils/current/gas/testsuite/gas/m68k/mcf-movsr.s buildtools/vendor/binutils/current/gas/testsuite/gas/macros/exit.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/align.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/align.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/align2-el.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/align2.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/align2.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/at-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/at-1.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/at-2.l buildtools/vendor/binutils/current/gas/testsuite/gas/mips/at-2.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/call-nonpic-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/call-nonpic-1.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/cfi-n64-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/cfi-n64-1.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/cp0-names-r3000.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/cp0-names-r4000.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/elf-rel13-mips16.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/elf-rel13-mips16.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/elf-rel8-mips16.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/elf-rel8-mips16.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/elf-rel9-mips16.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/elf-rel9-mips16.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/jalr.l buildtools/vendor/binutils/current/gas/testsuite/gas/mips/jalr.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/loongson-2e.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/loongson-2e.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/loongson-2f.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/loongson-2f.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips-double-float-flag.l buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips-double-float-flag.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips-hard-float-flag.l buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips-hard-float-flag.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips-macro-ill-nofp.l buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips-macro-ill-nofp.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips-macro-ill-sfp.l buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips-macro-ill-sfp.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips16-hilo-match.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips16-hilo-match.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips16-vis-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips16-vis-1.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32-cp2.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32-cp2.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32-sf32.l buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32r2-cp2.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32r2-cp2.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32r2-fp32.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32r2-fp32.l buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32r2-fp32.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32r2-ill-nofp.l buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32r2-ill-nofp.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips4-fp.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips4-fp.l buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips4-fp.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips64-cp2.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips64-cp2.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/octeon-ill.l buildtools/vendor/binutils/current/gas/testsuite/gas/mips/octeon-ill.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/octeon.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/octeon.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/odd-float.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/odd-float.s buildtools/vendor/binutils/current/gas/testsuite/gas/mmix/err-loc-10.s buildtools/vendor/binutils/current/gas/testsuite/gas/mmix/err-loc-9.s buildtools/vendor/binutils/current/gas/testsuite/gas/mmix/loc-6.d buildtools/vendor/binutils/current/gas/testsuite/gas/mmix/loc-6.s buildtools/vendor/binutils/current/gas/testsuite/gas/mmix/loc-7.d buildtools/vendor/binutils/current/gas/testsuite/gas/mmix/loc-7.s buildtools/vendor/binutils/current/gas/testsuite/gas/mn10300/pr997.l buildtools/vendor/binutils/current/gas/testsuite/gas/mn10300/pr997.s buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/altivec_and_spe.d buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/altivec_and_spe.s buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/e500mc.d buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/e500mc.s buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/power6.d buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/power6.s buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/power7.d buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/power7.s buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/ppc750ps.d buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/ppc750ps.s buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/regnames.d buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/regnames.s buildtools/vendor/binutils/current/gas/testsuite/gas/s390/zarch-z10.d buildtools/vendor/binutils/current/gas/testsuite/gas/s390/zarch-z10.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/err-mova.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/sh64/eh-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/sh/sh64/eh-1.s buildtools/vendor/binutils/current/gas/testsuite/gas/sparc/gotop32.d buildtools/vendor/binutils/current/gas/testsuite/gas/sparc/gotop32.s buildtools/vendor/binutils/current/gas/testsuite/gas/sparc/gotop64.d buildtools/vendor/binutils/current/gas/testsuite/gas/sparc/gotop64.s buildtools/vendor/binutils/current/gas/testsuite/gas/sparc/pc2210.d buildtools/vendor/binutils/current/gas/testsuite/gas/sparc/pc2210.s buildtools/vendor/binutils/current/gas/testsuite/gas/xtensa/err-pcrel.s buildtools/vendor/binutils/current/gas/testsuite/gas/xtensa/pcrel.d buildtools/vendor/binutils/current/gas/testsuite/gas/xtensa/pcrel.s buildtools/vendor/binutils/current/gas/testsuite/gas/xtensa/weak-call.d buildtools/vendor/binutils/current/gas/testsuite/gas/xtensa/weak-call.s buildtools/vendor/binutils/current/gas/testsuite/gas/xtensa/xtensa-err.exp buildtools/vendor/binutils/current/gold/ buildtools/vendor/binutils/current/gold/ChangeLog buildtools/vendor/binutils/current/gold/Makefile.am buildtools/vendor/binutils/current/gold/Makefile.in buildtools/vendor/binutils/current/gold/NEWS buildtools/vendor/binutils/current/gold/README buildtools/vendor/binutils/current/gold/TODO buildtools/vendor/binutils/current/gold/aclocal.m4 buildtools/vendor/binutils/current/gold/archive.cc buildtools/vendor/binutils/current/gold/archive.h buildtools/vendor/binutils/current/gold/binary.cc buildtools/vendor/binutils/current/gold/binary.h buildtools/vendor/binutils/current/gold/common.cc buildtools/vendor/binutils/current/gold/common.h buildtools/vendor/binutils/current/gold/compressed_output.cc buildtools/vendor/binutils/current/gold/compressed_output.h buildtools/vendor/binutils/current/gold/config.in buildtools/vendor/binutils/current/gold/configure buildtools/vendor/binutils/current/gold/configure.ac buildtools/vendor/binutils/current/gold/configure.tgt buildtools/vendor/binutils/current/gold/copy-relocs.cc buildtools/vendor/binutils/current/gold/copy-relocs.h buildtools/vendor/binutils/current/gold/cref.cc buildtools/vendor/binutils/current/gold/cref.h buildtools/vendor/binutils/current/gold/debug.h buildtools/vendor/binutils/current/gold/defstd.cc buildtools/vendor/binutils/current/gold/defstd.h buildtools/vendor/binutils/current/gold/descriptors.cc buildtools/vendor/binutils/current/gold/descriptors.h buildtools/vendor/binutils/current/gold/dirsearch.cc buildtools/vendor/binutils/current/gold/dirsearch.h buildtools/vendor/binutils/current/gold/dwarf_reader.cc buildtools/vendor/binutils/current/gold/dwarf_reader.h buildtools/vendor/binutils/current/gold/dynobj.cc buildtools/vendor/binutils/current/gold/dynobj.h buildtools/vendor/binutils/current/gold/ehframe.cc buildtools/vendor/binutils/current/gold/ehframe.h buildtools/vendor/binutils/current/gold/errors.cc buildtools/vendor/binutils/current/gold/errors.h buildtools/vendor/binutils/current/gold/expression.cc buildtools/vendor/binutils/current/gold/fileread.cc buildtools/vendor/binutils/current/gold/fileread.h buildtools/vendor/binutils/current/gold/gold-threads.cc buildtools/vendor/binutils/current/gold/gold-threads.h buildtools/vendor/binutils/current/gold/gold.cc buildtools/vendor/binutils/current/gold/gold.h buildtools/vendor/binutils/current/gold/i386.cc buildtools/vendor/binutils/current/gold/layout.cc buildtools/vendor/binutils/current/gold/layout.h buildtools/vendor/binutils/current/gold/main.cc buildtools/vendor/binutils/current/gold/mapfile.cc buildtools/vendor/binutils/current/gold/mapfile.h buildtools/vendor/binutils/current/gold/merge.cc buildtools/vendor/binutils/current/gold/merge.h buildtools/vendor/binutils/current/gold/object.cc buildtools/vendor/binutils/current/gold/object.h buildtools/vendor/binutils/current/gold/options.cc buildtools/vendor/binutils/current/gold/options.h buildtools/vendor/binutils/current/gold/output.cc buildtools/vendor/binutils/current/gold/output.h buildtools/vendor/binutils/current/gold/parameters.cc buildtools/vendor/binutils/current/gold/parameters.h buildtools/vendor/binutils/current/gold/po/ buildtools/vendor/binutils/current/gold/po/Make-in buildtools/vendor/binutils/current/gold/po/POTFILES.in buildtools/vendor/binutils/current/gold/po/gold.pot buildtools/vendor/binutils/current/gold/powerpc.cc buildtools/vendor/binutils/current/gold/pread.c buildtools/vendor/binutils/current/gold/readsyms.cc buildtools/vendor/binutils/current/gold/readsyms.h buildtools/vendor/binutils/current/gold/reduced_debug_output.cc buildtools/vendor/binutils/current/gold/reduced_debug_output.h buildtools/vendor/binutils/current/gold/reloc-types.h buildtools/vendor/binutils/current/gold/reloc.cc buildtools/vendor/binutils/current/gold/reloc.h buildtools/vendor/binutils/current/gold/resolve.cc buildtools/vendor/binutils/current/gold/script-c.h buildtools/vendor/binutils/current/gold/script-sections.cc buildtools/vendor/binutils/current/gold/script-sections.h buildtools/vendor/binutils/current/gold/script.cc buildtools/vendor/binutils/current/gold/script.h buildtools/vendor/binutils/current/gold/sparc.cc buildtools/vendor/binutils/current/gold/stringpool.cc buildtools/vendor/binutils/current/gold/stringpool.h buildtools/vendor/binutils/current/gold/symtab.cc buildtools/vendor/binutils/current/gold/symtab.h buildtools/vendor/binutils/current/gold/target-reloc.h buildtools/vendor/binutils/current/gold/target-select.cc buildtools/vendor/binutils/current/gold/target-select.h buildtools/vendor/binutils/current/gold/target.h buildtools/vendor/binutils/current/gold/testsuite/ buildtools/vendor/binutils/current/gold/testsuite/Makefile.am buildtools/vendor/binutils/current/gold/testsuite/Makefile.in buildtools/vendor/binutils/current/gold/testsuite/basic_test.cc buildtools/vendor/binutils/current/gold/testsuite/binary.in buildtools/vendor/binutils/current/gold/testsuite/binary_test.cc buildtools/vendor/binutils/current/gold/testsuite/binary_unittest.cc buildtools/vendor/binutils/current/gold/testsuite/common_test_1.c buildtools/vendor/binutils/current/gold/testsuite/constructor_test.cc buildtools/vendor/binutils/current/gold/testsuite/copy_test.cc buildtools/vendor/binutils/current/gold/testsuite/copy_test_1.cc buildtools/vendor/binutils/current/gold/testsuite/copy_test_2.cc buildtools/vendor/binutils/current/gold/testsuite/debug_msg.cc buildtools/vendor/binutils/current/gold/testsuite/debug_msg.sh buildtools/vendor/binutils/current/gold/testsuite/exception_test.h buildtools/vendor/binutils/current/gold/testsuite/exception_test_1.cc buildtools/vendor/binutils/current/gold/testsuite/exception_test_2.cc buildtools/vendor/binutils/current/gold/testsuite/exception_test_main.cc buildtools/vendor/binutils/current/gold/testsuite/initpri1.c buildtools/vendor/binutils/current/gold/testsuite/justsyms.t buildtools/vendor/binutils/current/gold/testsuite/justsyms_1.cc buildtools/vendor/binutils/current/gold/testsuite/justsyms_2.cc buildtools/vendor/binutils/current/gold/testsuite/many_sections_test.cc buildtools/vendor/binutils/current/gold/testsuite/object_unittest.cc buildtools/vendor/binutils/current/gold/testsuite/odr_violation1.cc buildtools/vendor/binutils/current/gold/testsuite/odr_violation2.cc buildtools/vendor/binutils/current/gold/testsuite/protected_1.cc buildtools/vendor/binutils/current/gold/testsuite/protected_2.cc buildtools/vendor/binutils/current/gold/testsuite/protected_3.cc buildtools/vendor/binutils/current/gold/testsuite/protected_main_1.cc buildtools/vendor/binutils/current/gold/testsuite/protected_main_2.cc buildtools/vendor/binutils/current/gold/testsuite/protected_main_3.cc buildtools/vendor/binutils/current/gold/testsuite/relro_script_test.t buildtools/vendor/binutils/current/gold/testsuite/relro_test.cc buildtools/vendor/binutils/current/gold/testsuite/relro_test_main.cc buildtools/vendor/binutils/current/gold/testsuite/script_test_1.cc buildtools/vendor/binutils/current/gold/testsuite/script_test_1.t buildtools/vendor/binutils/current/gold/testsuite/script_test_2.cc buildtools/vendor/binutils/current/gold/testsuite/script_test_2.t buildtools/vendor/binutils/current/gold/testsuite/script_test_2a.cc buildtools/vendor/binutils/current/gold/testsuite/script_test_2b.cc buildtools/vendor/binutils/current/gold/testsuite/script_test_3.sh buildtools/vendor/binutils/current/gold/testsuite/script_test_3.t buildtools/vendor/binutils/current/gold/testsuite/script_test_4.sh buildtools/vendor/binutils/current/gold/testsuite/script_test_4.t buildtools/vendor/binutils/current/gold/testsuite/test.cc buildtools/vendor/binutils/current/gold/testsuite/test.h buildtools/vendor/binutils/current/gold/testsuite/testfile.cc buildtools/vendor/binutils/current/gold/testsuite/testfile.h buildtools/vendor/binutils/current/gold/testsuite/testmain.cc buildtools/vendor/binutils/current/gold/testsuite/tls_test.cc buildtools/vendor/binutils/current/gold/testsuite/tls_test.h buildtools/vendor/binutils/current/gold/testsuite/tls_test_c.c buildtools/vendor/binutils/current/gold/testsuite/tls_test_file2.cc buildtools/vendor/binutils/current/gold/testsuite/tls_test_main.cc buildtools/vendor/binutils/current/gold/testsuite/two_file_test.h buildtools/vendor/binutils/current/gold/testsuite/two_file_test_1.cc buildtools/vendor/binutils/current/gold/testsuite/two_file_test_1b.cc buildtools/vendor/binutils/current/gold/testsuite/two_file_test_2.cc buildtools/vendor/binutils/current/gold/testsuite/two_file_test_main.cc buildtools/vendor/binutils/current/gold/testsuite/undef_symbol.cc buildtools/vendor/binutils/current/gold/testsuite/undef_symbol.sh buildtools/vendor/binutils/current/gold/testsuite/undef_symbol_main.cc buildtools/vendor/binutils/current/gold/testsuite/ver_matching_def.cc buildtools/vendor/binutils/current/gold/testsuite/ver_matching_test.sh buildtools/vendor/binutils/current/gold/testsuite/ver_test.h buildtools/vendor/binutils/current/gold/testsuite/ver_test_1.cc buildtools/vendor/binutils/current/gold/testsuite/ver_test_10.script buildtools/vendor/binutils/current/gold/testsuite/ver_test_10.sh buildtools/vendor/binutils/current/gold/testsuite/ver_test_2.cc buildtools/vendor/binutils/current/gold/testsuite/ver_test_2.script buildtools/vendor/binutils/current/gold/testsuite/ver_test_2.sh buildtools/vendor/binutils/current/gold/testsuite/ver_test_3.cc buildtools/vendor/binutils/current/gold/testsuite/ver_test_4.cc buildtools/vendor/binutils/current/gold/testsuite/ver_test_4.script buildtools/vendor/binutils/current/gold/testsuite/ver_test_4.sh buildtools/vendor/binutils/current/gold/testsuite/ver_test_5.cc buildtools/vendor/binutils/current/gold/testsuite/ver_test_5.script buildtools/vendor/binutils/current/gold/testsuite/ver_test_5.sh buildtools/vendor/binutils/current/gold/testsuite/ver_test_6.c buildtools/vendor/binutils/current/gold/testsuite/ver_test_7.cc buildtools/vendor/binutils/current/gold/testsuite/ver_test_7.sh buildtools/vendor/binutils/current/gold/testsuite/ver_test_8.script buildtools/vendor/binutils/current/gold/testsuite/ver_test_9.cc buildtools/vendor/binutils/current/gold/testsuite/ver_test_main.cc buildtools/vendor/binutils/current/gold/testsuite/ver_test_main_2.cc buildtools/vendor/binutils/current/gold/testsuite/version_script.map buildtools/vendor/binutils/current/gold/testsuite/weak_alias_test_1.cc buildtools/vendor/binutils/current/gold/testsuite/weak_alias_test_2.cc buildtools/vendor/binutils/current/gold/testsuite/weak_alias_test_3.cc buildtools/vendor/binutils/current/gold/testsuite/weak_alias_test_4.cc buildtools/vendor/binutils/current/gold/testsuite/weak_alias_test_main.cc buildtools/vendor/binutils/current/gold/testsuite/weak_plt.sh buildtools/vendor/binutils/current/gold/testsuite/weak_plt_main.cc buildtools/vendor/binutils/current/gold/testsuite/weak_plt_shared.cc buildtools/vendor/binutils/current/gold/testsuite/weak_test.cc buildtools/vendor/binutils/current/gold/testsuite/weak_undef.h buildtools/vendor/binutils/current/gold/testsuite/weak_undef_file1.cc buildtools/vendor/binutils/current/gold/testsuite/weak_undef_file2.cc buildtools/vendor/binutils/current/gold/testsuite/weak_undef_test.cc buildtools/vendor/binutils/current/gold/tls.h buildtools/vendor/binutils/current/gold/token.h buildtools/vendor/binutils/current/gold/version.cc buildtools/vendor/binutils/current/gold/workqueue-internal.h buildtools/vendor/binutils/current/gold/workqueue-threads.cc buildtools/vendor/binutils/current/gold/workqueue.cc buildtools/vendor/binutils/current/gold/workqueue.h buildtools/vendor/binutils/current/gold/x86_64.cc buildtools/vendor/binutils/current/gold/yyscript.y buildtools/vendor/binutils/current/gprof/po/nl.gmo buildtools/vendor/binutils/current/gprof/po/nl.po buildtools/vendor/binutils/current/gprof/po/ro.gmo buildtools/vendor/binutils/current/gprof/po/ro.po buildtools/vendor/binutils/current/include/binary-io.h buildtools/vendor/binutils/current/include/elf/vxworks.h buildtools/vendor/binutils/current/include/gdb/sim-cr16.h buildtools/vendor/binutils/current/include/sha1.h buildtools/vendor/binutils/current/ld/ChangeLog-2007 buildtools/vendor/binutils/current/ld/emulparams/avr25.sh buildtools/vendor/binutils/current/ld/emulparams/avr31.sh buildtools/vendor/binutils/current/ld/emulparams/avr35.sh buildtools/vendor/binutils/current/ld/emulparams/avr51.sh buildtools/vendor/binutils/current/ld/emultempl/spu_ovl.o_c buildtools/vendor/binutils/current/ld/genscrba.sh buildtools/vendor/binutils/current/ld/testsuite/ChangeLog-2007 buildtools/vendor/binutils/current/ld/testsuite/ld-arm/arm-app-movw.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/armv4-bx.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/armv4-bx.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-0.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-00-nowarn.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-00.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-02-nowarn.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-02.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-04-nowarn.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-04.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-2.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-20-nowarn.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-20.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-22-nowarn.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-22.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-24-nowarn.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-24.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-4.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-40-nowarn.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-40.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-42-nowarn.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-42.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-44-nowarn.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/attr-merge-wchar-44.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-arm-arm-be8.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-arm-arm-pic-veneer.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-arm-arm.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-arm-arm.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-arm-thumb-blx-pic-veneer.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-arm-thumb-blx.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-arm-thumb-pic-veneer.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-arm-thumb.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-arm-thumb.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-group-size2.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-group.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-group.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-group2.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-mix.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-mix.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-mix2.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-mix2.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-section.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-section.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-thumb-arm-blx-pic-veneer.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-thumb-arm-blx.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-thumb-arm-pic-veneer.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-thumb-arm-short.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-thumb-arm-short.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-thumb-arm.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-thumb-arm.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-thumb-thumb-blx-pic-veneer.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-thumb-thumb-blx.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-thumb-thumb-m-pic-veneer.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-thumb-thumb-m.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-thumb-thumb-pic-veneer.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-thumb-thumb.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/farcall-thumb-thumb.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/movw-merge.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/movw-merge.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/symbian-seg1.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/symbian-seg1.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/thumb2-b-interwork.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/thumb2-b-interwork.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad-noeabi.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/thumb2-bl-bad-noeabi.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/eh-group.exp buildtools/vendor/binutils/current/ld/testsuite/ld-elf/eh-group1.s buildtools/vendor/binutils/current/ld/testsuite/ld-elf/eh-group2.s buildtools/vendor/binutils/current/ld/testsuite/ld-elf/eh6.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/eh6.s buildtools/vendor/binutils/current/ld/testsuite/ld-elf/flags1.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/flags1.ld buildtools/vendor/binutils/current/ld/testsuite/ld-elf/flags1.s buildtools/vendor/binutils/current/ld/testsuite/ld-elf/lma.lnk buildtools/vendor/binutils/current/ld/testsuite/ld-elf/lma.s buildtools/vendor/binutils/current/ld/testsuite/ld-elf/loadaddr.t buildtools/vendor/binutils/current/ld/testsuite/ld-elf/noload-3.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/noload-3.s buildtools/vendor/binutils/current/ld/testsuite/ld-elf/noload-3.t buildtools/vendor/binutils/current/ld/testsuite/ld-elf/note-2.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/note-2.s buildtools/vendor/binutils/current/ld/testsuite/ld-elf/note-2.t buildtools/vendor/binutils/current/ld/testsuite/ld-elf/relro1.s buildtools/vendor/binutils/current/ld/testsuite/ld-elf/relro2.s buildtools/vendor/binutils/current/ld/testsuite/ld-elf/sec-to-seg-script-adjoining-pages.t buildtools/vendor/binutils/current/ld/testsuite/ld-elf/sec-to-seg-script-disjoint-pages.t buildtools/vendor/binutils/current/ld/testsuite/ld-elf/sec-to-seg-script-same-page.t buildtools/vendor/binutils/current/ld/testsuite/ld-elf/sec-to-seg.exp buildtools/vendor/binutils/current/ld/testsuite/ld-elf/sec-to-seg1.s buildtools/vendor/binutils/current/ld/testsuite/ld-elf/sec-to-seg2.s buildtools/vendor/binutils/current/ld/testsuite/ld-elf/seg.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/seg.s buildtools/vendor/binutils/current/ld/testsuite/ld-elf/seg.t buildtools/vendor/binutils/current/ld/testsuite/ld-elf/tls_gc.s buildtools/vendor/binutils/current/ld/testsuite/ld-elfcomm/sort-common.s buildtools/vendor/binutils/current/ld/testsuite/ld-gc/ buildtools/vendor/binutils/current/ld/testsuite/ld-gc/gc.c buildtools/vendor/binutils/current/ld/testsuite/ld-gc/gc.exp buildtools/vendor/binutils/current/ld/testsuite/ld-gc/noent.d buildtools/vendor/binutils/current/ld/testsuite/ld-gc/noent.s buildtools/vendor/binutils/current/ld/testsuite/ld-i386/hidden1.d buildtools/vendor/binutils/current/ld/testsuite/ld-i386/hidden1.s buildtools/vendor/binutils/current/ld/testsuite/ld-i386/hidden2.d buildtools/vendor/binutils/current/ld/testsuite/ld-i386/hidden2.s buildtools/vendor/binutils/current/ld/testsuite/ld-i386/hidden3.d buildtools/vendor/binutils/current/ld/testsuite/ld-i386/hidden3.s buildtools/vendor/binutils/current/ld/testsuite/ld-i386/protected1.d buildtools/vendor/binutils/current/ld/testsuite/ld-i386/protected1.s buildtools/vendor/binutils/current/ld/testsuite/ld-i386/protected2.d buildtools/vendor/binutils/current/ld/testsuite/ld-i386/protected2.s buildtools/vendor/binutils/current/ld/testsuite/ld-i386/protected3.d buildtools/vendor/binutils/current/ld/testsuite/ld-i386/protected3.s buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsgd1.dd buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsgd1.s buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsie1.dd buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsie1.s buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsie2.d buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsie2.s buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsie3.d buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsie3.s buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsie4.d buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsie4.s buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsie5.d buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsie5.s buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsld1.dd buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsld1.s buildtools/vendor/binutils/current/ld/testsuite/ld-ia64/line.exp buildtools/vendor/binutils/current/ld/testsuite/ld-ia64/undefined.s buildtools/vendor/binutils/current/ld/testsuite/ld-m68k/got-1.d buildtools/vendor/binutils/current/ld/testsuite/ld-m68k/got-1.s buildtools/vendor/binutils/current/ld/testsuite/ld-m68k/got-multigot-12-13-14-34-35-ok.d buildtools/vendor/binutils/current/ld/testsuite/ld-m68k/got-multigot-14-ok.d buildtools/vendor/binutils/current/ld/testsuite/ld-m68k/got-multigot-15-er.d buildtools/vendor/binutils/current/ld/testsuite/ld-m68k/got-negative-12-13-14-34-ok.d buildtools/vendor/binutils/current/ld/testsuite/ld-m68k/got-negative-12-13-14-35-er.d buildtools/vendor/binutils/current/ld/testsuite/ld-m68k/got-negative-14-ok.d buildtools/vendor/binutils/current/ld/testsuite/ld-m68k/got-negative-15-er.d buildtools/vendor/binutils/current/ld/testsuite/ld-m68k/got-single-12-ok.d buildtools/vendor/binutils/current/ld/testsuite/ld-m68k/got-single-13-er.d buildtools/vendor/binutils/current/ld/testsuite/ld-m68k/got-xgot-12-13-14-15-34-35-ok.d buildtools/vendor/binutils/current/ld/testsuite/ld-m68k/got-xgot-15-ok.d buildtools/vendor/binutils/current/ld/testsuite/ld-m68k/m68k-got.exp buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/attr-gnu-4-04.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/attr-gnu-4-05.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/attr-gnu-4-15.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/attr-gnu-4-24.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/attr-gnu-4-25.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/attr-gnu-4-34.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/attr-gnu-4-35.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/attr-gnu-4-40.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/attr-gnu-4-42.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/attr-gnu-4-43.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/attr-gnu-4-44.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/attr-gnu-4-45.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/attr-gnu-4-5.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/attr-gnu-4-51.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/dyn-sec64.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/dyn-sec64.ld buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/dyn-sec64.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-dump-1.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-dump-1.ld buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-dump-1.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-dump-2.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-dump-2.ld buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-dump-2.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-page-1.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-page-1.ld buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-page-1.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-page-2.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-page-2.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-page-3.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-page-3a.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-page-3b.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-page-3c.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-vers-1.dd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-vers-1.rd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-vers-1.sd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-vers-1.ver buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-vers-1a.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/got-vers-1b.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-1-dummy.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-1.dd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-1.gd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-1.inc buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-1.ld buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-1a.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-1b.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-2.ad buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-2.dd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-2.gd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-2.nd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-2.rd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-2a.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-2b.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-3.dd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-3.gd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-3.inc buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-3.rd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-3a.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-3b.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-4.ver buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-4a.dd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-4a.gd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-4a.nd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-4a.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-4b.dd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-4b.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-pic-4c.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/multi-got-hidden-1.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/multi-got-hidden-1.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/multi-got-hidden-2.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/multi-got-hidden-2.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/no-shared-1-n32.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/no-shared-1-n64.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/no-shared-1-n64.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/no-shared-1-o32.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/no-shared-1-o32.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/no-shared-1.ld buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-1-rel.dd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-1-rel.nd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-1.dd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-1.ld buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-1.nd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-1a.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-1b.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-2.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-2a.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-2b.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-3-error.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.dd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.gd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.ld buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-3a.sd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.ad buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.dd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.gd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.ld buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.nd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.pd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.rd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-3b.sd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-4-error.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-4a.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.ad buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.dd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.gd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.ld buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.nd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.rd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-4b.sd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-5a.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.ad buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.dd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.gd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.ld buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.nd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.pd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.rd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-5b.sd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.ad buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.dd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.gd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.nd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.pd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.rd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32.sd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32a.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32b.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n32c.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.ad buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.dd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.gd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.nd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.pd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.rd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64.sd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64a.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64b.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-n64c.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.ad buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.dd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.gd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.nd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.pd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.rd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32.sd buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32a.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32b.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6-o32c.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/pic-and-nonpic-6.ld buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/reloc-estimate-1.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/reloc-estimate-1.ld buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/reloc-estimate-1a.s buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/reloc-estimate-1b.s buildtools/vendor/binutils/current/ld/testsuite/ld-mmix/loc10.d buildtools/vendor/binutils/current/ld/testsuite/ld-mmix/loc10.s buildtools/vendor/binutils/current/ld/testsuite/ld-mmix/loc10m.d buildtools/vendor/binutils/current/ld/testsuite/ld-mmix/loc8.d buildtools/vendor/binutils/current/ld/testsuite/ld-mmix/loc8.s buildtools/vendor/binutils/current/ld/testsuite/ld-mmix/loc8m.d buildtools/vendor/binutils/current/ld/testsuite/ld-mmix/loc9.d buildtools/vendor/binutils/current/ld/testsuite/ld-mmix/loc9.s buildtools/vendor/binutils/current/ld/testsuite/ld-mmix/loc9m.d buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/ buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i112045-1.d buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i112045-1.s buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i112045-2.d buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i112045-2.s buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i112045-3.d buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i112045-3.s buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i126256-1.c buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i126256-2.c buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i127740.d buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i127740.s buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i135409-1.d buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i135409-1.s buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i135409-2.d buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i135409-2.s buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i135409-3.d buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i135409-3.s buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i135409-4.d buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i135409-4.s buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i135409-4.t buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i135409-5.d buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i135409-5.s buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i135409-5.t buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i143317.d buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i143317.s buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i143317.t buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i36434-2.s buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i36434.d buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/i36434.s buildtools/vendor/binutils/current/ld/testsuite/ld-mn10300/mn10300.exp buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-4-03.d buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-4-14.d buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-4-23.d buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-4-24.d buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-4-32.d buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-4-33.d buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-4-34.d buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-4-4.s buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-4-41.d buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-8-1.s buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-8-11.d buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-8-2.s buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-8-23.d buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-8-3.s buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-8-31.d buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/include-1.d buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/include-1.t buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/include-data.t buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/include-mem.t buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/include-ram.t buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/include-sections.t buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/include-subdata.t buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/include.exp buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/include.s buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over.exp buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over.s buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over1.d buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over1.t buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over2.d buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over2.t buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over3.d buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over3.t buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over4.d buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over4.t buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over5.d buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over5.t buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over6.d buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over6.t buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over7.d buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over7.t buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over8-ok.d buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over8.s buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/rgn-over8.t buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/gotop32.dd buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/gotop32.rd buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/gotop32.s buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/gotop32.sd buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/gotop32.td buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/gotop64.dd buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/gotop64.rd buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/gotop64.s buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/gotop64.sd buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/gotop64.td buildtools/vendor/binutils/current/ld/testsuite/ld-spu/ovl1.lnk buildtools/vendor/binutils/current/ld/testsuite/ld-spu/ovl2.lnk buildtools/vendor/binutils/current/ld/testsuite/ld-vxworks/plt-mips1.d buildtools/vendor/binutils/current/ld/testsuite/ld-vxworks/plt-mips1.s buildtools/vendor/binutils/current/ld/testsuite/ld-vxworks/tls-1.d buildtools/vendor/binutils/current/ld/testsuite/ld-vxworks/tls-1.s buildtools/vendor/binutils/current/ld/testsuite/ld-vxworks/tls-2.d buildtools/vendor/binutils/current/ld/testsuite/ld-vxworks/tls-2.s buildtools/vendor/binutils/current/ld/testsuite/ld-vxworks/tls-3.d buildtools/vendor/binutils/current/ld/testsuite/ld-vxworks/tls-3.s buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/dwarfreloc.exp buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/dwarfreloc.rd buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/dwarfreloc1.s buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/dwarfreloc2.s buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/hidden1.d buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/hidden1.s buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/hidden2.d buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/hidden2.s buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/hidden3.d buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/hidden3.s buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/line.exp buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/protected1.d buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/protected1.s buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/protected2.d buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/protected2.s buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/protected3.d buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/protected3.s buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsgd1.dd buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsgd1.s buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsgd2.d buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsgd2.s buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsgd3.d buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsgd3.s buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsie1.dd buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsie1.s buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsie2.d buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsie2.s buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsie3.d buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsie3.s buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsld1.dd buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsld1.s buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/undefined.s buildtools/vendor/binutils/current/ld/testsuite/ld-xtensa/tlsbin.dd buildtools/vendor/binutils/current/ld/testsuite/ld-xtensa/tlsbin.rd buildtools/vendor/binutils/current/ld/testsuite/ld-xtensa/tlsbin.s buildtools/vendor/binutils/current/ld/testsuite/ld-xtensa/tlsbin.sd buildtools/vendor/binutils/current/ld/testsuite/ld-xtensa/tlsbin.td buildtools/vendor/binutils/current/ld/testsuite/ld-xtensa/tlslib.s buildtools/vendor/binutils/current/ld/testsuite/ld-xtensa/tlspic.dd buildtools/vendor/binutils/current/ld/testsuite/ld-xtensa/tlspic.rd buildtools/vendor/binutils/current/ld/testsuite/ld-xtensa/tlspic.sd buildtools/vendor/binutils/current/ld/testsuite/ld-xtensa/tlspic.td buildtools/vendor/binutils/current/ld/testsuite/ld-xtensa/tlspic1.s buildtools/vendor/binutils/current/ld/testsuite/ld-xtensa/tlspic2.s buildtools/vendor/binutils/current/ld/testsuite/ld-xtensa/xtensa.exp buildtools/vendor/binutils/current/libiberty/sha1.c buildtools/vendor/binutils/current/ltgcc.m4 buildtools/vendor/binutils/current/lt~obsolete.m4 buildtools/vendor/binutils/current/opcodes/ChangeLog-2007 buildtools/vendor/binutils/current/opcodes/i386-init.h Removed: buildtools/vendor/binutils/current/config/confsubdir.m4 buildtools/vendor/binutils/current/config/mh-armpic buildtools/vendor/binutils/current/config/mh-elfalphapic buildtools/vendor/binutils/current/config/mh-i370pic buildtools/vendor/binutils/current/config/mh-ia64pic buildtools/vendor/binutils/current/config/mh-m68kpic buildtools/vendor/binutils/current/config/mh-papic buildtools/vendor/binutils/current/config/mh-ppcpic buildtools/vendor/binutils/current/config/mh-s390pic buildtools/vendor/binutils/current/config/mh-sparcpic buildtools/vendor/binutils/current/config/mh-x86pic buildtools/vendor/binutils/current/gas/testsuite/lib/run buildtools/vendor/binutils/current/ld/emultempl/spu_ovl.o buildtools/vendor/binutils/current/ld/sha1.c buildtools/vendor/binutils/current/ld/sha1.h Modified: buildtools/vendor/binutils/current/Makefile.def buildtools/vendor/binutils/current/Makefile.in buildtools/vendor/binutils/current/Makefile.tpl buildtools/vendor/binutils/current/bfd/ChangeLog buildtools/vendor/binutils/current/bfd/Makefile.am buildtools/vendor/binutils/current/bfd/Makefile.in buildtools/vendor/binutils/current/bfd/aclocal.m4 buildtools/vendor/binutils/current/bfd/aix5ppc-core.c buildtools/vendor/binutils/current/bfd/aoutx.h buildtools/vendor/binutils/current/bfd/archive.c buildtools/vendor/binutils/current/bfd/archures.c buildtools/vendor/binutils/current/bfd/bfd-in.h buildtools/vendor/binutils/current/bfd/bfd-in2.h buildtools/vendor/binutils/current/bfd/bfd.c buildtools/vendor/binutils/current/bfd/bfdio.c buildtools/vendor/binutils/current/bfd/bfdwin.c buildtools/vendor/binutils/current/bfd/cache.c buildtools/vendor/binutils/current/bfd/cf-i386lynx.c buildtools/vendor/binutils/current/bfd/coff-alpha.c buildtools/vendor/binutils/current/bfd/coff-apollo.c buildtools/vendor/binutils/current/bfd/coff-arm.c buildtools/vendor/binutils/current/bfd/coff-aux.c buildtools/vendor/binutils/current/bfd/coff-h8300.c buildtools/vendor/binutils/current/bfd/coff-h8500.c buildtools/vendor/binutils/current/bfd/coff-i386.c buildtools/vendor/binutils/current/bfd/coff-i860.c buildtools/vendor/binutils/current/bfd/coff-i960.c buildtools/vendor/binutils/current/bfd/coff-ia64.c buildtools/vendor/binutils/current/bfd/coff-m68k.c buildtools/vendor/binutils/current/bfd/coff-m88k.c buildtools/vendor/binutils/current/bfd/coff-maxq.c buildtools/vendor/binutils/current/bfd/coff-mcore.c buildtools/vendor/binutils/current/bfd/coff-mips.c buildtools/vendor/binutils/current/bfd/coff-or32.c buildtools/vendor/binutils/current/bfd/coff-ppc.c buildtools/vendor/binutils/current/bfd/coff-rs6000.c buildtools/vendor/binutils/current/bfd/coff-sh.c buildtools/vendor/binutils/current/bfd/coff-sparc.c buildtools/vendor/binutils/current/bfd/coff-tic30.c buildtools/vendor/binutils/current/bfd/coff-tic4x.c buildtools/vendor/binutils/current/bfd/coff-tic54x.c buildtools/vendor/binutils/current/bfd/coff-tic80.c buildtools/vendor/binutils/current/bfd/coff-w65.c buildtools/vendor/binutils/current/bfd/coff-we32k.c buildtools/vendor/binutils/current/bfd/coff-x86_64.c buildtools/vendor/binutils/current/bfd/coff-z80.c buildtools/vendor/binutils/current/bfd/coff-z8k.c buildtools/vendor/binutils/current/bfd/coff64-rs6000.c buildtools/vendor/binutils/current/bfd/coffcode.h buildtools/vendor/binutils/current/bfd/coffgen.c buildtools/vendor/binutils/current/bfd/cofflink.c buildtools/vendor/binutils/current/bfd/config.bfd buildtools/vendor/binutils/current/bfd/config.in buildtools/vendor/binutils/current/bfd/configure buildtools/vendor/binutils/current/bfd/configure.in buildtools/vendor/binutils/current/bfd/cpu-avr.c buildtools/vendor/binutils/current/bfd/cpu-m68k.c buildtools/vendor/binutils/current/bfd/cpu-mips.c buildtools/vendor/binutils/current/bfd/cpu-powerpc.c buildtools/vendor/binutils/current/bfd/doc/ChangeLog buildtools/vendor/binutils/current/bfd/doc/Makefile.am buildtools/vendor/binutils/current/bfd/doc/Makefile.in buildtools/vendor/binutils/current/bfd/doc/archures.texi buildtools/vendor/binutils/current/bfd/doc/bfd.info buildtools/vendor/binutils/current/bfd/doc/bfdt.texi buildtools/vendor/binutils/current/bfd/doc/bfdver.texi buildtools/vendor/binutils/current/bfd/doc/chew.c buildtools/vendor/binutils/current/bfd/doc/coffcode.texi buildtools/vendor/binutils/current/bfd/doc/linker.texi buildtools/vendor/binutils/current/bfd/doc/reloc.texi buildtools/vendor/binutils/current/bfd/doc/section.texi buildtools/vendor/binutils/current/bfd/doc/syms.texi buildtools/vendor/binutils/current/bfd/dwarf1.c buildtools/vendor/binutils/current/bfd/dwarf2.c buildtools/vendor/binutils/current/bfd/ecoff.c buildtools/vendor/binutils/current/bfd/ecofflink.c buildtools/vendor/binutils/current/bfd/elf-bfd.h buildtools/vendor/binutils/current/bfd/elf-eh-frame.c buildtools/vendor/binutils/current/bfd/elf-hppa.h buildtools/vendor/binutils/current/bfd/elf-m10300.c buildtools/vendor/binutils/current/bfd/elf-strtab.c buildtools/vendor/binutils/current/bfd/elf-vxworks.c buildtools/vendor/binutils/current/bfd/elf-vxworks.h buildtools/vendor/binutils/current/bfd/elf.c buildtools/vendor/binutils/current/bfd/elf32-arm.c buildtools/vendor/binutils/current/bfd/elf32-avr.c buildtools/vendor/binutils/current/bfd/elf32-bfin.c buildtools/vendor/binutils/current/bfd/elf32-cr16.c buildtools/vendor/binutils/current/bfd/elf32-cris.c buildtools/vendor/binutils/current/bfd/elf32-d10v.c buildtools/vendor/binutils/current/bfd/elf32-dlx.c buildtools/vendor/binutils/current/bfd/elf32-fr30.c buildtools/vendor/binutils/current/bfd/elf32-frv.c buildtools/vendor/binutils/current/bfd/elf32-hppa.c buildtools/vendor/binutils/current/bfd/elf32-i386.c buildtools/vendor/binutils/current/bfd/elf32-iq2000.c buildtools/vendor/binutils/current/bfd/elf32-m32c.c buildtools/vendor/binutils/current/bfd/elf32-m32r.c buildtools/vendor/binutils/current/bfd/elf32-m68hc1x.c buildtools/vendor/binutils/current/bfd/elf32-m68k.c buildtools/vendor/binutils/current/bfd/elf32-mcore.c buildtools/vendor/binutils/current/bfd/elf32-mep.c buildtools/vendor/binutils/current/bfd/elf32-mips.c buildtools/vendor/binutils/current/bfd/elf32-msp430.c buildtools/vendor/binutils/current/bfd/elf32-mt.c buildtools/vendor/binutils/current/bfd/elf32-openrisc.c buildtools/vendor/binutils/current/bfd/elf32-ppc.c buildtools/vendor/binutils/current/bfd/elf32-s390.c buildtools/vendor/binutils/current/bfd/elf32-score.c buildtools/vendor/binutils/current/bfd/elf32-sh-symbian.c buildtools/vendor/binutils/current/bfd/elf32-sh.c buildtools/vendor/binutils/current/bfd/elf32-spu.c buildtools/vendor/binutils/current/bfd/elf32-spu.h buildtools/vendor/binutils/current/bfd/elf32-v850.c buildtools/vendor/binutils/current/bfd/elf32-vax.c buildtools/vendor/binutils/current/bfd/elf32-xstormy16.c buildtools/vendor/binutils/current/bfd/elf32-xtensa.c buildtools/vendor/binutils/current/bfd/elf64-alpha.c buildtools/vendor/binutils/current/bfd/elf64-hppa.c buildtools/vendor/binutils/current/bfd/elf64-mips.c buildtools/vendor/binutils/current/bfd/elf64-mmix.c buildtools/vendor/binutils/current/bfd/elf64-ppc.c buildtools/vendor/binutils/current/bfd/elf64-ppc.h buildtools/vendor/binutils/current/bfd/elf64-s390.c buildtools/vendor/binutils/current/bfd/elf64-sh64.c buildtools/vendor/binutils/current/bfd/elf64-sparc.c buildtools/vendor/binutils/current/bfd/elf64-x86-64.c buildtools/vendor/binutils/current/bfd/elfcode.h buildtools/vendor/binutils/current/bfd/elfcore.h buildtools/vendor/binutils/current/bfd/elflink.c buildtools/vendor/binutils/current/bfd/elfn32-mips.c buildtools/vendor/binutils/current/bfd/elfxx-ia64.c buildtools/vendor/binutils/current/bfd/elfxx-mips.c buildtools/vendor/binutils/current/bfd/elfxx-mips.h buildtools/vendor/binutils/current/bfd/elfxx-sparc.c buildtools/vendor/binutils/current/bfd/elfxx-target.h buildtools/vendor/binutils/current/bfd/format.c buildtools/vendor/binutils/current/bfd/hash.c buildtools/vendor/binutils/current/bfd/i386linux.c buildtools/vendor/binutils/current/bfd/ieee.c buildtools/vendor/binutils/current/bfd/libbfd-in.h buildtools/vendor/binutils/current/bfd/libbfd.c buildtools/vendor/binutils/current/bfd/libbfd.h buildtools/vendor/binutils/current/bfd/libcoff-in.h buildtools/vendor/binutils/current/bfd/libcoff.h buildtools/vendor/binutils/current/bfd/libecoff.h buildtools/vendor/binutils/current/bfd/libpei.h buildtools/vendor/binutils/current/bfd/linker.c buildtools/vendor/binutils/current/bfd/m68klinux.c buildtools/vendor/binutils/current/bfd/mach-o.c buildtools/vendor/binutils/current/bfd/mach-o.h buildtools/vendor/binutils/current/bfd/merge.c buildtools/vendor/binutils/current/bfd/opncls.c buildtools/vendor/binutils/current/bfd/pe-arm-wince.c buildtools/vendor/binutils/current/bfd/pe-i386.c buildtools/vendor/binutils/current/bfd/pe-mcore.c buildtools/vendor/binutils/current/bfd/pe-mips.c buildtools/vendor/binutils/current/bfd/pe-ppc.c buildtools/vendor/binutils/current/bfd/peXXigen.c buildtools/vendor/binutils/current/bfd/pef.c buildtools/vendor/binutils/current/bfd/pei-i386.c buildtools/vendor/binutils/current/bfd/pei-mcore.c buildtools/vendor/binutils/current/bfd/pei-ppc.c buildtools/vendor/binutils/current/bfd/peicode.h buildtools/vendor/binutils/current/bfd/po/SRC-POTFILES.in buildtools/vendor/binutils/current/bfd/po/bfd.pot buildtools/vendor/binutils/current/bfd/po/es.gmo buildtools/vendor/binutils/current/bfd/po/es.po buildtools/vendor/binutils/current/bfd/po/vi.gmo buildtools/vendor/binutils/current/bfd/po/vi.po buildtools/vendor/binutils/current/bfd/ppcboot.c buildtools/vendor/binutils/current/bfd/reloc.c buildtools/vendor/binutils/current/bfd/reloc16.c buildtools/vendor/binutils/current/bfd/rs6000-core.c buildtools/vendor/binutils/current/bfd/section.c buildtools/vendor/binutils/current/bfd/simple.c buildtools/vendor/binutils/current/bfd/som.c buildtools/vendor/binutils/current/bfd/som.h buildtools/vendor/binutils/current/bfd/sparclinux.c buildtools/vendor/binutils/current/bfd/srec.c buildtools/vendor/binutils/current/bfd/stabs.c buildtools/vendor/binutils/current/bfd/sunos.c buildtools/vendor/binutils/current/bfd/syms.c buildtools/vendor/binutils/current/bfd/targets.c buildtools/vendor/binutils/current/bfd/version.h buildtools/vendor/binutils/current/bfd/vms-misc.c buildtools/vendor/binutils/current/bfd/vms-tir.c buildtools/vendor/binutils/current/bfd/vms.c buildtools/vendor/binutils/current/bfd/warning.m4 buildtools/vendor/binutils/current/bfd/xcofflink.c buildtools/vendor/binutils/current/bfd/xsym.c buildtools/vendor/binutils/current/bfd/xtensa-isa.c buildtools/vendor/binutils/current/binutils/ChangeLog buildtools/vendor/binutils/current/binutils/MAINTAINERS buildtools/vendor/binutils/current/binutils/Makefile.am buildtools/vendor/binutils/current/binutils/Makefile.in buildtools/vendor/binutils/current/binutils/NEWS buildtools/vendor/binutils/current/binutils/aclocal.m4 buildtools/vendor/binutils/current/binutils/ar.c buildtools/vendor/binutils/current/binutils/arlex.c buildtools/vendor/binutils/current/binutils/arparse.c buildtools/vendor/binutils/current/binutils/arparse.h buildtools/vendor/binutils/current/binutils/arsup.c buildtools/vendor/binutils/current/binutils/bin2c.c buildtools/vendor/binutils/current/binutils/binemul.c buildtools/vendor/binutils/current/binutils/binemul.h buildtools/vendor/binutils/current/binutils/bucomm.c buildtools/vendor/binutils/current/binutils/bucomm.h buildtools/vendor/binutils/current/binutils/budbg.h buildtools/vendor/binutils/current/binutils/config.in buildtools/vendor/binutils/current/binutils/configure buildtools/vendor/binutils/current/binutils/configure.in buildtools/vendor/binutils/current/binutils/cxxfilt.c buildtools/vendor/binutils/current/binutils/deflex.c buildtools/vendor/binutils/current/binutils/defparse.c buildtools/vendor/binutils/current/binutils/defparse.h buildtools/vendor/binutils/current/binutils/dlltool.c buildtools/vendor/binutils/current/binutils/doc/Makefile.in buildtools/vendor/binutils/current/binutils/doc/addr2line.1 buildtools/vendor/binutils/current/binutils/doc/ar.1 buildtools/vendor/binutils/current/binutils/doc/binutils.info buildtools/vendor/binutils/current/binutils/doc/binutils.texi buildtools/vendor/binutils/current/binutils/doc/cxxfilt.man buildtools/vendor/binutils/current/binutils/doc/dlltool.1 buildtools/vendor/binutils/current/binutils/doc/fdl.texi buildtools/vendor/binutils/current/binutils/doc/nlmconv.1 buildtools/vendor/binutils/current/binutils/doc/nm.1 buildtools/vendor/binutils/current/binutils/doc/objcopy.1 buildtools/vendor/binutils/current/binutils/doc/objdump.1 buildtools/vendor/binutils/current/binutils/doc/ranlib.1 buildtools/vendor/binutils/current/binutils/doc/readelf.1 buildtools/vendor/binutils/current/binutils/doc/size.1 buildtools/vendor/binutils/current/binutils/doc/strings.1 buildtools/vendor/binutils/current/binutils/doc/strip.1 buildtools/vendor/binutils/current/binutils/doc/windmc.1 buildtools/vendor/binutils/current/binutils/doc/windres.1 buildtools/vendor/binutils/current/binutils/dwarf.c buildtools/vendor/binutils/current/binutils/dwarf.h buildtools/vendor/binutils/current/binutils/embedspu.sh buildtools/vendor/binutils/current/binutils/emul_aix.c buildtools/vendor/binutils/current/binutils/ieee.c buildtools/vendor/binutils/current/binutils/mcparse.c buildtools/vendor/binutils/current/binutils/mcparse.h buildtools/vendor/binutils/current/binutils/nlmconv.c buildtools/vendor/binutils/current/binutils/nlmheader.c buildtools/vendor/binutils/current/binutils/nlmheader.h buildtools/vendor/binutils/current/binutils/nm.c buildtools/vendor/binutils/current/binutils/objcopy.c buildtools/vendor/binutils/current/binutils/objdump.c buildtools/vendor/binutils/current/binutils/po/binutils.pot buildtools/vendor/binutils/current/binutils/po/es.gmo buildtools/vendor/binutils/current/binutils/po/es.po buildtools/vendor/binutils/current/binutils/po/ru.gmo buildtools/vendor/binutils/current/binutils/po/ru.po buildtools/vendor/binutils/current/binutils/po/sv.gmo buildtools/vendor/binutils/current/binutils/po/sv.po buildtools/vendor/binutils/current/binutils/prdbg.c buildtools/vendor/binutils/current/binutils/rclex.c buildtools/vendor/binutils/current/binutils/rcparse.c buildtools/vendor/binutils/current/binutils/rcparse.h buildtools/vendor/binutils/current/binutils/rcparse.y buildtools/vendor/binutils/current/binutils/rddbg.c buildtools/vendor/binutils/current/binutils/readelf.c buildtools/vendor/binutils/current/binutils/rename.c buildtools/vendor/binutils/current/binutils/rescoff.c buildtools/vendor/binutils/current/binutils/resrc.c buildtools/vendor/binutils/current/binutils/resres.c buildtools/vendor/binutils/current/binutils/size.c buildtools/vendor/binutils/current/binutils/srconv.c buildtools/vendor/binutils/current/binutils/strings.c buildtools/vendor/binutils/current/binutils/sysdep.h buildtools/vendor/binutils/current/binutils/sysdump.c buildtools/vendor/binutils/current/binutils/sysinfo.c buildtools/vendor/binutils/current/binutils/sysinfo.h buildtools/vendor/binutils/current/binutils/syslex.c buildtools/vendor/binutils/current/binutils/testsuite/ChangeLog buildtools/vendor/binutils/current/binutils/testsuite/binutils-all/ar.exp buildtools/vendor/binutils/current/binutils/testsuite/binutils-all/arm/objdump.exp buildtools/vendor/binutils/current/binutils/testsuite/binutils-all/objcopy.exp buildtools/vendor/binutils/current/binutils/testsuite/binutils-all/objdump.exp buildtools/vendor/binutils/current/binutils/testsuite/binutils-all/readelf.exp buildtools/vendor/binutils/current/binutils/testsuite/binutils-all/readelf.ss buildtools/vendor/binutils/current/binutils/testsuite/binutils-all/readelf.ss-64 buildtools/vendor/binutils/current/binutils/testsuite/binutils-all/readelf.ss-mips buildtools/vendor/binutils/current/binutils/testsuite/binutils-all/readelf.ss-tmips buildtools/vendor/binutils/current/binutils/testsuite/binutils-all/windres/windres.exp buildtools/vendor/binutils/current/binutils/testsuite/config/default.exp buildtools/vendor/binutils/current/binutils/testsuite/lib/utils-lib.exp buildtools/vendor/binutils/current/binutils/windmc.c buildtools/vendor/binutils/current/binutils/windres.c buildtools/vendor/binutils/current/config-ml.in buildtools/vendor/binutils/current/config.guess buildtools/vendor/binutils/current/config.rpath buildtools/vendor/binutils/current/config.sub buildtools/vendor/binutils/current/config/ChangeLog buildtools/vendor/binutils/current/config/acinclude.m4 buildtools/vendor/binutils/current/config/acx.m4 buildtools/vendor/binutils/current/config/mh-ppc-darwin buildtools/vendor/binutils/current/config/mt-gnu buildtools/vendor/binutils/current/config/mt-spu buildtools/vendor/binutils/current/config/no-executables.m4 buildtools/vendor/binutils/current/config/tls.m4 buildtools/vendor/binutils/current/configure buildtools/vendor/binutils/current/configure.ac buildtools/vendor/binutils/current/cpu/ChangeLog buildtools/vendor/binutils/current/cpu/cris.cpu buildtools/vendor/binutils/current/cpu/mt.opc buildtools/vendor/binutils/current/etc/fdl.texi buildtools/vendor/binutils/current/etc/make-stds.texi buildtools/vendor/binutils/current/etc/standards.info buildtools/vendor/binutils/current/etc/standards.texi buildtools/vendor/binutils/current/gas/ChangeLog buildtools/vendor/binutils/current/gas/ChangeLog-0203 buildtools/vendor/binutils/current/gas/ChangeLog-2005 buildtools/vendor/binutils/current/gas/ChangeLog-2006 buildtools/vendor/binutils/current/gas/Makefile.am buildtools/vendor/binutils/current/gas/Makefile.in buildtools/vendor/binutils/current/gas/NEWS buildtools/vendor/binutils/current/gas/aclocal.m4 buildtools/vendor/binutils/current/gas/app.c buildtools/vendor/binutils/current/gas/as.c buildtools/vendor/binutils/current/gas/as.h buildtools/vendor/binutils/current/gas/bfin-lex.c buildtools/vendor/binutils/current/gas/bfin-parse.c buildtools/vendor/binutils/current/gas/bfin-parse.h buildtools/vendor/binutils/current/gas/config.in buildtools/vendor/binutils/current/gas/config/atof-ieee.c buildtools/vendor/binutils/current/gas/config/atof-vax.c buildtools/vendor/binutils/current/gas/config/bfin-lex.l buildtools/vendor/binutils/current/gas/config/bfin-parse.y buildtools/vendor/binutils/current/gas/config/m68k-parse.h buildtools/vendor/binutils/current/gas/config/obj-coff.c buildtools/vendor/binutils/current/gas/config/obj-elf.c buildtools/vendor/binutils/current/gas/config/obj-evax.c buildtools/vendor/binutils/current/gas/config/obj-som.c buildtools/vendor/binutils/current/gas/config/tc-alpha.c buildtools/vendor/binutils/current/gas/config/tc-arc.c buildtools/vendor/binutils/current/gas/config/tc-arm.c buildtools/vendor/binutils/current/gas/config/tc-avr.c buildtools/vendor/binutils/current/gas/config/tc-bfin.c buildtools/vendor/binutils/current/gas/config/tc-bfin.h buildtools/vendor/binutils/current/gas/config/tc-cr16.c buildtools/vendor/binutils/current/gas/config/tc-crx.c buildtools/vendor/binutils/current/gas/config/tc-d10v.c buildtools/vendor/binutils/current/gas/config/tc-d30v.c buildtools/vendor/binutils/current/gas/config/tc-dlx.c buildtools/vendor/binutils/current/gas/config/tc-fr30.c buildtools/vendor/binutils/current/gas/config/tc-frv.c buildtools/vendor/binutils/current/gas/config/tc-frv.h buildtools/vendor/binutils/current/gas/config/tc-h8300.c buildtools/vendor/binutils/current/gas/config/tc-h8300.h buildtools/vendor/binutils/current/gas/config/tc-hppa.c buildtools/vendor/binutils/current/gas/config/tc-hppa.h buildtools/vendor/binutils/current/gas/config/tc-i370.c buildtools/vendor/binutils/current/gas/config/tc-i386.c buildtools/vendor/binutils/current/gas/config/tc-i386.h buildtools/vendor/binutils/current/gas/config/tc-i860.c buildtools/vendor/binutils/current/gas/config/tc-i860.h buildtools/vendor/binutils/current/gas/config/tc-i960.c buildtools/vendor/binutils/current/gas/config/tc-i960.h buildtools/vendor/binutils/current/gas/config/tc-ia64.c buildtools/vendor/binutils/current/gas/config/tc-ia64.h buildtools/vendor/binutils/current/gas/config/tc-ip2k.c buildtools/vendor/binutils/current/gas/config/tc-iq2000.c buildtools/vendor/binutils/current/gas/config/tc-m32c.c buildtools/vendor/binutils/current/gas/config/tc-m32c.h buildtools/vendor/binutils/current/gas/config/tc-m32r.c buildtools/vendor/binutils/current/gas/config/tc-m68hc11.c buildtools/vendor/binutils/current/gas/config/tc-m68k.c buildtools/vendor/binutils/current/gas/config/tc-maxq.c buildtools/vendor/binutils/current/gas/config/tc-mcore.c buildtools/vendor/binutils/current/gas/config/tc-mep.c buildtools/vendor/binutils/current/gas/config/tc-mips.c buildtools/vendor/binutils/current/gas/config/tc-mips.h buildtools/vendor/binutils/current/gas/config/tc-mmix.c buildtools/vendor/binutils/current/gas/config/tc-mn10200.c buildtools/vendor/binutils/current/gas/config/tc-mn10300.c buildtools/vendor/binutils/current/gas/config/tc-mn10300.h buildtools/vendor/binutils/current/gas/config/tc-msp430.c buildtools/vendor/binutils/current/gas/config/tc-mt.c buildtools/vendor/binutils/current/gas/config/tc-ns32k.c buildtools/vendor/binutils/current/gas/config/tc-openrisc.c buildtools/vendor/binutils/current/gas/config/tc-or32.c buildtools/vendor/binutils/current/gas/config/tc-pdp11.c buildtools/vendor/binutils/current/gas/config/tc-pj.c buildtools/vendor/binutils/current/gas/config/tc-ppc.c buildtools/vendor/binutils/current/gas/config/tc-ppc.h buildtools/vendor/binutils/current/gas/config/tc-s390.c buildtools/vendor/binutils/current/gas/config/tc-s390.h buildtools/vendor/binutils/current/gas/config/tc-score.c buildtools/vendor/binutils/current/gas/config/tc-sh.c buildtools/vendor/binutils/current/gas/config/tc-sh.h buildtools/vendor/binutils/current/gas/config/tc-sh64.c buildtools/vendor/binutils/current/gas/config/tc-sh64.h buildtools/vendor/binutils/current/gas/config/tc-sparc.c buildtools/vendor/binutils/current/gas/config/tc-sparc.h buildtools/vendor/binutils/current/gas/config/tc-spu.c buildtools/vendor/binutils/current/gas/config/tc-spu.h buildtools/vendor/binutils/current/gas/config/tc-tic30.c buildtools/vendor/binutils/current/gas/config/tc-tic4x.c buildtools/vendor/binutils/current/gas/config/tc-tic4x.h buildtools/vendor/binutils/current/gas/config/tc-tic54x.c buildtools/vendor/binutils/current/gas/config/tc-tic54x.h buildtools/vendor/binutils/current/gas/config/tc-v850.c buildtools/vendor/binutils/current/gas/config/tc-vax.c buildtools/vendor/binutils/current/gas/config/tc-xc16x.c buildtools/vendor/binutils/current/gas/config/tc-xstormy16.c buildtools/vendor/binutils/current/gas/config/tc-xtensa.c buildtools/vendor/binutils/current/gas/config/tc-xtensa.h buildtools/vendor/binutils/current/gas/config/tc-z8k.c buildtools/vendor/binutils/current/gas/config/xtensa-istack.h buildtools/vendor/binutils/current/gas/config/xtensa-relax.c buildtools/vendor/binutils/current/gas/config/xtensa-relax.h buildtools/vendor/binutils/current/gas/configure buildtools/vendor/binutils/current/gas/configure.in buildtools/vendor/binutils/current/gas/configure.tgt buildtools/vendor/binutils/current/gas/doc/Makefile.in buildtools/vendor/binutils/current/gas/doc/as.1 buildtools/vendor/binutils/current/gas/doc/as.info buildtools/vendor/binutils/current/gas/doc/as.texinfo buildtools/vendor/binutils/current/gas/doc/c-arc.texi buildtools/vendor/binutils/current/gas/doc/c-arm.texi buildtools/vendor/binutils/current/gas/doc/c-avr.texi buildtools/vendor/binutils/current/gas/doc/c-h8300.texi buildtools/vendor/binutils/current/gas/doc/c-i386.texi buildtools/vendor/binutils/current/gas/doc/c-m32c.texi buildtools/vendor/binutils/current/gas/doc/c-mips.texi buildtools/vendor/binutils/current/gas/doc/c-ppc.texi buildtools/vendor/binutils/current/gas/doc/c-sh.texi buildtools/vendor/binutils/current/gas/doc/c-sh64.texi buildtools/vendor/binutils/current/gas/doc/c-sparc.texi buildtools/vendor/binutils/current/gas/doc/c-xtensa.texi buildtools/vendor/binutils/current/gas/doc/internals.texi buildtools/vendor/binutils/current/gas/dw2gencfi.c buildtools/vendor/binutils/current/gas/dwarf2dbg.c buildtools/vendor/binutils/current/gas/dwarf2dbg.h buildtools/vendor/binutils/current/gas/ecoff.c buildtools/vendor/binutils/current/gas/ehopt.c buildtools/vendor/binutils/current/gas/expr.c buildtools/vendor/binutils/current/gas/hash.c buildtools/vendor/binutils/current/gas/hash.h buildtools/vendor/binutils/current/gas/itbl-lex.c buildtools/vendor/binutils/current/gas/itbl-parse.c buildtools/vendor/binutils/current/gas/itbl-parse.h buildtools/vendor/binutils/current/gas/listing.c buildtools/vendor/binutils/current/gas/listing.h buildtools/vendor/binutils/current/gas/m68k-parse.c buildtools/vendor/binutils/current/gas/macro.c buildtools/vendor/binutils/current/gas/messages.c buildtools/vendor/binutils/current/gas/po/POTFILES.in buildtools/vendor/binutils/current/gas/po/es.gmo buildtools/vendor/binutils/current/gas/po/es.po buildtools/vendor/binutils/current/gas/po/fr.gmo buildtools/vendor/binutils/current/gas/po/fr.po buildtools/vendor/binutils/current/gas/po/gas.pot buildtools/vendor/binutils/current/gas/po/rw.gmo buildtools/vendor/binutils/current/gas/po/rw.po buildtools/vendor/binutils/current/gas/po/tr.gmo buildtools/vendor/binutils/current/gas/po/tr.po buildtools/vendor/binutils/current/gas/read.c buildtools/vendor/binutils/current/gas/read.h buildtools/vendor/binutils/current/gas/stabs.c buildtools/vendor/binutils/current/gas/symbols.c buildtools/vendor/binutils/current/gas/testsuite/ChangeLog buildtools/vendor/binutils/current/gas/testsuite/gas/all/gas.exp buildtools/vendor/binutils/current/gas/testsuite/gas/arm/abs12.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/arch4t.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/group-reloc-alu-encoding-bad.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/group-reloc-alu.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/group-reloc-ldc-encoding-bad.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/group-reloc-ldc.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/group-reloc-ldr-encoding-bad.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/group-reloc-ldr.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/group-reloc-ldrs-encoding-bad.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/group-reloc-ldrs.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/local_function.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/mapshort-elf.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/mul-overlap.l buildtools/vendor/binutils/current/gas/testsuite/gas/arm/mul-overlap.s buildtools/vendor/binutils/current/gas/testsuite/gas/arm/t16-bad.l buildtools/vendor/binutils/current/gas/testsuite/gas/arm/t16-bad.s buildtools/vendor/binutils/current/gas/testsuite/gas/arm/thumb.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/thumb32.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/tls_vxworks.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/undefined.d buildtools/vendor/binutils/current/gas/testsuite/gas/arm/unwind_vxworks.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/arithmetic.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/arithmetic.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/bfin.exp buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/bit.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/bit2.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/bit2.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/cache2.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/control_code.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/control_code2.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/control_code2.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/event.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/event2.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/event2.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/expected_errors.l buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/expected_errors.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/flow.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/flow2.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/load.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/logical.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/logical2.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/logical2.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/move.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/move2.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/move2.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/parallel.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/parallel.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/parallel2.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/parallel2.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/parallel3.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/parallel3.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/parallel4.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/parallel4.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/shift.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/shift2.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/shift2.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/stack.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/stack2.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/stack2.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/store.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/vector.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/vector2.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/vector2.s buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/video.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/video2.d buildtools/vendor/binutils/current/gas/testsuite/gas/bfin/video2.s buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi-alpha-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi-alpha-3.d buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi-common-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi-common-2.d buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi-common-5.d buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi-common-6.d buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi-hppa-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi-i386.d buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi-i386.s buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi-m68k.d buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi-mips-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi-sh-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi-sparc-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi-sparc64-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi-x86_64.d buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi-x86_64.s buildtools/vendor/binutils/current/gas/testsuite/gas/cfi/cfi.exp buildtools/vendor/binutils/current/gas/testsuite/gas/elf/elf.exp buildtools/vendor/binutils/current/gas/testsuite/gas/elf/type.e buildtools/vendor/binutils/current/gas/testsuite/gas/elf/type.s buildtools/vendor/binutils/current/gas/testsuite/gas/h8300/h8300-coff.exp buildtools/vendor/binutils/current/gas/testsuite/gas/h8300/h8300.exp buildtools/vendor/binutils/current/gas/testsuite/gas/i386/amd.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/amd.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/amdfam10.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/amdfam10.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/i386.exp buildtools/vendor/binutils/current/gas/testsuite/gas/i386/intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/intel.e buildtools/vendor/binutils/current/gas/testsuite/gas/i386/intel.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/intelbad.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/intelbad.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/intelok.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/intelok.e buildtools/vendor/binutils/current/gas/testsuite/gas/i386/intelok.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/inval.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/inval.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/jump.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/jump.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/jump16.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/jump16.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/katmai.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/katmai.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/nops-1-i386-i686.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/nops-1-i386.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/nops-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/nops-2-i386.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/nops-2-merom.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/nops-2.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/nops-2.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/nops-3-i386.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/nops-3.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/nops.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/nops.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/opcode-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/opcode-suffix.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/prefix.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/prefix.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/prescott.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/prescott.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/reloc64.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/reloc64.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/reloc64.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sib.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sib.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/simd-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/simd.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/simd.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse2.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse2.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse4_1-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse4_1.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/sse4_1.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/svme.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/svme64.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-addr32.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-addr32.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-amdfam10.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-amdfam10.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-branch.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-branch.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-inval.l buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-inval.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-nops-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-nops-2.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-nops-3.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-nops-4.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-nops.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-nops.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-opcode.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-opcode.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-prescott.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-prescott.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-simd-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-simd.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-simd.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sse4_1-intel.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sse4_1.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86-64-sse4_1.s buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86_64.d buildtools/vendor/binutils/current/gas/testsuite/gas/i386/x86_64.s buildtools/vendor/binutils/current/gas/testsuite/gas/ia64/dv-raw-err.l buildtools/vendor/binutils/current/gas/testsuite/gas/ia64/dv-raw-err.s buildtools/vendor/binutils/current/gas/testsuite/gas/ia64/dv-waw-err.l buildtools/vendor/binutils/current/gas/testsuite/gas/ia64/dv-waw-err.s buildtools/vendor/binutils/current/gas/testsuite/gas/ia64/invalid-ar.l buildtools/vendor/binutils/current/gas/testsuite/gas/ia64/invalid-ar.s buildtools/vendor/binutils/current/gas/testsuite/gas/ia64/regs.d buildtools/vendor/binutils/current/gas/testsuite/gas/ia64/regs.s buildtools/vendor/binutils/current/gas/testsuite/gas/lns/lns-common-1-alt.d buildtools/vendor/binutils/current/gas/testsuite/gas/lns/lns-common-1.d buildtools/vendor/binutils/current/gas/testsuite/gas/lns/lns.exp buildtools/vendor/binutils/current/gas/testsuite/gas/m68hc11/bug-1825.d buildtools/vendor/binutils/current/gas/testsuite/gas/m68hc11/indexed12.d buildtools/vendor/binutils/current/gas/testsuite/gas/m68hc11/insns-dwarf2.d buildtools/vendor/binutils/current/gas/testsuite/gas/m68hc11/lbranch-dwarf2.d buildtools/vendor/binutils/current/gas/testsuite/gas/m68hc11/opers12-dwarf2.d buildtools/vendor/binutils/current/gas/testsuite/gas/m68k/all.exp buildtools/vendor/binutils/current/gas/testsuite/gas/m68k/br-isaa.d buildtools/vendor/binutils/current/gas/testsuite/gas/m68k/br-isab.d buildtools/vendor/binutils/current/gas/testsuite/gas/m68k/br-isac.d buildtools/vendor/binutils/current/gas/testsuite/gas/m68k/fido.d buildtools/vendor/binutils/current/gas/testsuite/gas/m68k/fido.s buildtools/vendor/binutils/current/gas/testsuite/gas/macros/macros.exp buildtools/vendor/binutils/current/gas/testsuite/gas/macros/purge.s buildtools/vendor/binutils/current/gas/testsuite/gas/macros/test1.d buildtools/vendor/binutils/current/gas/testsuite/gas/macros/test1.s buildtools/vendor/binutils/current/gas/testsuite/gas/maxq10/maxq10.exp buildtools/vendor/binutils/current/gas/testsuite/gas/maxq20/maxq20.exp buildtools/vendor/binutils/current/gas/testsuite/gas/mips/branch-misc-2pic-64.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/e32-rel2.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/elf-rel26.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/ldstla-32-shared.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/ldstla-32.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips.exp buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips16-intermix.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32-dsp.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32-dspr2.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32-mt.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32r2.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips32r2.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips4.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips4.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips64-dsp.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips64.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/mips64.s buildtools/vendor/binutils/current/gas/testsuite/gas/mips/smartmips.d buildtools/vendor/binutils/current/gas/testsuite/gas/mips/tls-ill.l buildtools/vendor/binutils/current/gas/testsuite/gas/mn10300/basic.exp buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/altivec_xcoff.d buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/altivec_xcoff.s buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/altivec_xcoff64.s buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/booke_xcoff.d buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/booke_xcoff.s buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/booke_xcoff64.d buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/booke_xcoff64.s buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/cell.d buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/cell.s buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/ppc.exp buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/test1xcoff32.d buildtools/vendor/binutils/current/gas/testsuite/gas/ppc/textalign-xcoff-001.d buildtools/vendor/binutils/current/gas/testsuite/gas/s390/esa-g5.d buildtools/vendor/binutils/current/gas/testsuite/gas/s390/esa-g5.s buildtools/vendor/binutils/current/gas/testsuite/gas/s390/esa-z9-109.d buildtools/vendor/binutils/current/gas/testsuite/gas/s390/esa-z9-109.s buildtools/vendor/binutils/current/gas/testsuite/gas/s390/s390.exp buildtools/vendor/binutils/current/gas/testsuite/gas/s390/zarch-z9-109.d buildtools/vendor/binutils/current/gas/testsuite/gas/s390/zarch-z9-109.s buildtools/vendor/binutils/current/gas/testsuite/gas/s390/zarch-z9-ec.d buildtools/vendor/binutils/current/gas/testsuite/gas/s390/zarch-z9-ec.s buildtools/vendor/binutils/current/gas/testsuite/gas/s390/zarch-z900.d buildtools/vendor/binutils/current/gas/testsuite/gas/s390/zarch-z900.s buildtools/vendor/binutils/current/gas/testsuite/gas/s390/zarch-z990.d buildtools/vendor/binutils/current/gas/testsuite/gas/s390/zarch-z990.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/arch.exp buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh-dsp.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh2.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh2a-nofpu-or-sh3-nommu.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh2a-nofpu-or-sh4-nommu-nofpu.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh2a-nofpu.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh2a-or-sh3e.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh2a-or-sh4.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh2a.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh2e.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh3-dsp.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh3-nommu.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh3.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh3e.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh4-nofpu.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh4-nommu-nofpu.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh4.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh4a-nofpu.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh4a.s buildtools/vendor/binutils/current/gas/testsuite/gas/sh/arch/sh4al-dsp.s buildtools/vendor/binutils/current/gas/testsuite/gas/sparc/sparc.exp buildtools/vendor/binutils/current/gas/testsuite/gas/xtensa/all.exp buildtools/vendor/binutils/current/gas/testsuite/lib/gas-defs.exp buildtools/vendor/binutils/current/gas/testsuite/lib/gas-dg.exp buildtools/vendor/binutils/current/gas/write.c buildtools/vendor/binutils/current/gprof/ChangeLog buildtools/vendor/binutils/current/gprof/Makefile.am buildtools/vendor/binutils/current/gprof/Makefile.in buildtools/vendor/binutils/current/gprof/aclocal.m4 buildtools/vendor/binutils/current/gprof/basic_blocks.c buildtools/vendor/binutils/current/gprof/cg_arcs.c buildtools/vendor/binutils/current/gprof/cg_dfn.c buildtools/vendor/binutils/current/gprof/cg_print.c buildtools/vendor/binutils/current/gprof/configure buildtools/vendor/binutils/current/gprof/configure.in buildtools/vendor/binutils/current/gprof/corefile.c buildtools/vendor/binutils/current/gprof/gconfig.in buildtools/vendor/binutils/current/gprof/gmon_io.c buildtools/vendor/binutils/current/gprof/gmon_io.h buildtools/vendor/binutils/current/gprof/gprof.1 buildtools/vendor/binutils/current/gprof/gprof.c buildtools/vendor/binutils/current/gprof/gprof.info buildtools/vendor/binutils/current/gprof/hist.c buildtools/vendor/binutils/current/gprof/po/es.gmo buildtools/vendor/binutils/current/gprof/po/es.po buildtools/vendor/binutils/current/gprof/po/fi.gmo buildtools/vendor/binutils/current/gprof/po/fi.po buildtools/vendor/binutils/current/gprof/po/fr.gmo buildtools/vendor/binutils/current/gprof/po/fr.po buildtools/vendor/binutils/current/gprof/po/gprof.pot buildtools/vendor/binutils/current/gprof/po/ms.gmo buildtools/vendor/binutils/current/gprof/po/ms.po buildtools/vendor/binutils/current/gprof/po/vi.gmo buildtools/vendor/binutils/current/gprof/po/vi.po buildtools/vendor/binutils/current/gprof/search_list.c buildtools/vendor/binutils/current/gprof/sym_ids.c buildtools/vendor/binutils/current/gprof/symtab.c buildtools/vendor/binutils/current/gprof/utils.c buildtools/vendor/binutils/current/include/ChangeLog buildtools/vendor/binutils/current/include/aout/ChangeLog buildtools/vendor/binutils/current/include/aout/ar.h buildtools/vendor/binutils/current/include/aout/stab.def buildtools/vendor/binutils/current/include/bfdlink.h buildtools/vendor/binutils/current/include/coff/ChangeLog buildtools/vendor/binutils/current/include/coff/pe.h buildtools/vendor/binutils/current/include/coff/ti.h buildtools/vendor/binutils/current/include/demangle.h buildtools/vendor/binutils/current/include/dis-asm.h buildtools/vendor/binutils/current/include/elf/ChangeLog buildtools/vendor/binutils/current/include/elf/arm.h buildtools/vendor/binutils/current/include/elf/avr.h buildtools/vendor/binutils/current/include/elf/common.h buildtools/vendor/binutils/current/include/elf/cr16.h buildtools/vendor/binutils/current/include/elf/cr16c.h buildtools/vendor/binutils/current/include/elf/dwarf2.h buildtools/vendor/binutils/current/include/elf/external.h buildtools/vendor/binutils/current/include/elf/hppa.h buildtools/vendor/binutils/current/include/elf/ia64.h buildtools/vendor/binutils/current/include/elf/internal.h buildtools/vendor/binutils/current/include/elf/m32r.h buildtools/vendor/binutils/current/include/elf/m68k.h buildtools/vendor/binutils/current/include/elf/mips.h buildtools/vendor/binutils/current/include/elf/mn10300.h buildtools/vendor/binutils/current/include/elf/ppc.h buildtools/vendor/binutils/current/include/elf/reloc-macros.h buildtools/vendor/binutils/current/include/elf/score.h buildtools/vendor/binutils/current/include/elf/sh.h buildtools/vendor/binutils/current/include/elf/sparc.h buildtools/vendor/binutils/current/include/elf/v850.h buildtools/vendor/binutils/current/include/elf/x86-64.h buildtools/vendor/binutils/current/include/elf/xtensa.h buildtools/vendor/binutils/current/include/filenames.h buildtools/vendor/binutils/current/include/floatformat.h buildtools/vendor/binutils/current/include/gdb/ChangeLog buildtools/vendor/binutils/current/include/gdb/callback.h buildtools/vendor/binutils/current/include/gdb/fileio.h buildtools/vendor/binutils/current/include/gdb/remote-sim.h buildtools/vendor/binutils/current/include/gdb/signals.h buildtools/vendor/binutils/current/include/gdb/sim-arm.h buildtools/vendor/binutils/current/include/gdb/sim-d10v.h buildtools/vendor/binutils/current/include/gdb/sim-frv.h buildtools/vendor/binutils/current/include/gdb/sim-h8300.h buildtools/vendor/binutils/current/include/gdb/sim-m32c.h buildtools/vendor/binutils/current/include/gdb/sim-ppc.h buildtools/vendor/binutils/current/include/gdb/sim-sh.h buildtools/vendor/binutils/current/include/libiberty.h buildtools/vendor/binutils/current/include/md5.h buildtools/vendor/binutils/current/include/opcode/ChangeLog buildtools/vendor/binutils/current/include/opcode/arm.h buildtools/vendor/binutils/current/include/opcode/avr.h buildtools/vendor/binutils/current/include/opcode/cr16.h buildtools/vendor/binutils/current/include/opcode/h8300.h buildtools/vendor/binutils/current/include/opcode/i386.h buildtools/vendor/binutils/current/include/opcode/ia64.h buildtools/vendor/binutils/current/include/opcode/mips.h buildtools/vendor/binutils/current/include/opcode/ppc.h buildtools/vendor/binutils/current/include/opcode/s390.h buildtools/vendor/binutils/current/include/safe-ctype.h buildtools/vendor/binutils/current/include/xtensa-config.h buildtools/vendor/binutils/current/intl/ChangeLog buildtools/vendor/binutils/current/intl/Makefile.in buildtools/vendor/binutils/current/intl/aclocal.m4 buildtools/vendor/binutils/current/intl/configure buildtools/vendor/binutils/current/ld/ChangeLog buildtools/vendor/binutils/current/ld/Makefile.am buildtools/vendor/binutils/current/ld/Makefile.in buildtools/vendor/binutils/current/ld/NEWS buildtools/vendor/binutils/current/ld/aclocal.m4 buildtools/vendor/binutils/current/ld/config.in buildtools/vendor/binutils/current/ld/configdoc.texi buildtools/vendor/binutils/current/ld/configure buildtools/vendor/binutils/current/ld/configure.host buildtools/vendor/binutils/current/ld/configure.in buildtools/vendor/binutils/current/ld/configure.tgt buildtools/vendor/binutils/current/ld/emulparams/armelf.sh buildtools/vendor/binutils/current/ld/emulparams/armelf_linux.sh buildtools/vendor/binutils/current/ld/emulparams/armnto.sh buildtools/vendor/binutils/current/ld/emulparams/elf32_spu.sh buildtools/vendor/binutils/current/ld/emulparams/elf32bfinfd.sh buildtools/vendor/binutils/current/ld/emulparams/elf32bmip.sh buildtools/vendor/binutils/current/ld/emulparams/elf32bmipn32-defs.sh buildtools/vendor/binutils/current/ld/emulparams/elf32ppc.sh buildtools/vendor/binutils/current/ld/emulparams/elf64ppc.sh buildtools/vendor/binutils/current/ld/emulparams/i386pe.sh buildtools/vendor/binutils/current/ld/emulparams/i386pe_posix.sh buildtools/vendor/binutils/current/ld/emulparams/i386pep.sh buildtools/vendor/binutils/current/ld/emulparams/m68kelf.sh buildtools/vendor/binutils/current/ld/emulparams/shelf_nbsd.sh buildtools/vendor/binutils/current/ld/emulparams/shlelf_linux.sh buildtools/vendor/binutils/current/ld/emulparams/vxworks.sh buildtools/vendor/binutils/current/ld/emultempl/aix.em buildtools/vendor/binutils/current/ld/emultempl/alphaelf.em buildtools/vendor/binutils/current/ld/emultempl/armcoff.em buildtools/vendor/binutils/current/ld/emultempl/armelf.em buildtools/vendor/binutils/current/ld/emultempl/avrelf.em buildtools/vendor/binutils/current/ld/emultempl/beos.em buildtools/vendor/binutils/current/ld/emultempl/elf-generic.em buildtools/vendor/binutils/current/ld/emultempl/elf32.em buildtools/vendor/binutils/current/ld/emultempl/gld960.em buildtools/vendor/binutils/current/ld/emultempl/hppaelf.em buildtools/vendor/binutils/current/ld/emultempl/ia64elf.em buildtools/vendor/binutils/current/ld/emultempl/irix.em buildtools/vendor/binutils/current/ld/emultempl/linux.em buildtools/vendor/binutils/current/ld/emultempl/lnk960.em buildtools/vendor/binutils/current/ld/emultempl/m68hc1xelf.em buildtools/vendor/binutils/current/ld/emultempl/m68kcoff.em buildtools/vendor/binutils/current/ld/emultempl/m68kelf.em buildtools/vendor/binutils/current/ld/emultempl/mipself.em buildtools/vendor/binutils/current/ld/emultempl/mmix-elfnmmo.em buildtools/vendor/binutils/current/ld/emultempl/mmo.em buildtools/vendor/binutils/current/ld/emultempl/pe.em buildtools/vendor/binutils/current/ld/emultempl/pep.em buildtools/vendor/binutils/current/ld/emultempl/ppc32elf.em buildtools/vendor/binutils/current/ld/emultempl/ppc64elf.em buildtools/vendor/binutils/current/ld/emultempl/scoreelf.em buildtools/vendor/binutils/current/ld/emultempl/sh64elf.em buildtools/vendor/binutils/current/ld/emultempl/spu_ovl.S buildtools/vendor/binutils/current/ld/emultempl/spuelf.em buildtools/vendor/binutils/current/ld/emultempl/sunos.em buildtools/vendor/binutils/current/ld/emultempl/ticoff.em buildtools/vendor/binutils/current/ld/emultempl/vanilla.em buildtools/vendor/binutils/current/ld/emultempl/vxworks.em buildtools/vendor/binutils/current/ld/emultempl/xtensaelf.em buildtools/vendor/binutils/current/ld/emultempl/z80.em buildtools/vendor/binutils/current/ld/gen-doc.texi buildtools/vendor/binutils/current/ld/genscripts.sh buildtools/vendor/binutils/current/ld/ld.1 buildtools/vendor/binutils/current/ld/ld.h buildtools/vendor/binutils/current/ld/ld.info buildtools/vendor/binutils/current/ld/ld.texinfo buildtools/vendor/binutils/current/ld/ldcref.c buildtools/vendor/binutils/current/ld/ldctor.c buildtools/vendor/binutils/current/ld/ldemul.c buildtools/vendor/binutils/current/ld/ldexp.c buildtools/vendor/binutils/current/ld/ldexp.h buildtools/vendor/binutils/current/ld/ldfile.c buildtools/vendor/binutils/current/ld/ldgram.c buildtools/vendor/binutils/current/ld/ldgram.h buildtools/vendor/binutils/current/ld/ldgram.y buildtools/vendor/binutils/current/ld/ldint.texinfo buildtools/vendor/binutils/current/ld/ldlang.c buildtools/vendor/binutils/current/ld/ldlang.h buildtools/vendor/binutils/current/ld/ldlex.c buildtools/vendor/binutils/current/ld/ldlex.l buildtools/vendor/binutils/current/ld/ldmain.c buildtools/vendor/binutils/current/ld/ldmain.h buildtools/vendor/binutils/current/ld/ldmisc.c buildtools/vendor/binutils/current/ld/ldwrite.c buildtools/vendor/binutils/current/ld/lexsup.c buildtools/vendor/binutils/current/ld/pe-dll.c buildtools/vendor/binutils/current/ld/po/POTFILES.in buildtools/vendor/binutils/current/ld/po/es.gmo buildtools/vendor/binutils/current/ld/po/es.po buildtools/vendor/binutils/current/ld/po/fr.gmo buildtools/vendor/binutils/current/ld/po/fr.po buildtools/vendor/binutils/current/ld/po/ld.pot buildtools/vendor/binutils/current/ld/po/vi.gmo buildtools/vendor/binutils/current/ld/po/vi.po buildtools/vendor/binutils/current/ld/scripttempl/armbpabi.sc buildtools/vendor/binutils/current/ld/scripttempl/avr.sc buildtools/vendor/binutils/current/ld/scripttempl/elf.sc buildtools/vendor/binutils/current/ld/scripttempl/elf32cr16.sc buildtools/vendor/binutils/current/ld/scripttempl/elf32cr16c.sc buildtools/vendor/binutils/current/ld/scripttempl/elf32crx.sc buildtools/vendor/binutils/current/ld/scripttempl/elf32sh-symbian.sc buildtools/vendor/binutils/current/ld/scripttempl/elf_chaos.sc buildtools/vendor/binutils/current/ld/scripttempl/elfd10v.sc buildtools/vendor/binutils/current/ld/scripttempl/elfi370.sc buildtools/vendor/binutils/current/ld/scripttempl/elfm68hc11.sc buildtools/vendor/binutils/current/ld/scripttempl/elfm68hc12.sc buildtools/vendor/binutils/current/ld/scripttempl/elfxtensa.sc buildtools/vendor/binutils/current/ld/scripttempl/ip2k.sc buildtools/vendor/binutils/current/ld/scripttempl/iq2000.sc buildtools/vendor/binutils/current/ld/scripttempl/mep.sc buildtools/vendor/binutils/current/ld/scripttempl/pe.sc buildtools/vendor/binutils/current/ld/scripttempl/pep.sc buildtools/vendor/binutils/current/ld/scripttempl/v850.sc buildtools/vendor/binutils/current/ld/scripttempl/xstormy16.sc buildtools/vendor/binutils/current/ld/testsuite/ChangeLog buildtools/vendor/binutils/current/ld/testsuite/config/default.exp buildtools/vendor/binutils/current/ld/testsuite/ld-alpha/tlsbin.rd buildtools/vendor/binutils/current/ld/testsuite/ld-alpha/tlsbinr.rd buildtools/vendor/binutils/current/ld/testsuite/ld-alpha/tlspic.rd buildtools/vendor/binutils/current/ld/testsuite/ld-arm/arm-app.r buildtools/vendor/binutils/current/ld/testsuite/ld-arm/arm-be8.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/arm-elf.exp buildtools/vendor/binutils/current/ld/testsuite/ld-arm/arm.ld buildtools/vendor/binutils/current/ld/testsuite/ld-arm/armthumb-lib.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/mixed-app.sym buildtools/vendor/binutils/current/ld/testsuite/ld-arm/mixed-lib.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/thumb2-bl-as-thumb1-bad.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/thumb2-bl-bad.d buildtools/vendor/binutils/current/ld/testsuite/ld-arm/thumb2-bl-bad.s buildtools/vendor/binutils/current/ld/testsuite/ld-arm/use-thumb-lib.sym buildtools/vendor/binutils/current/ld/testsuite/ld-auto-import/auto-import.exp buildtools/vendor/binutils/current/ld/testsuite/ld-auto-import/client.c buildtools/vendor/binutils/current/ld/testsuite/ld-checks/checks.exp buildtools/vendor/binutils/current/ld/testsuite/ld-cris/libdso-10.d buildtools/vendor/binutils/current/ld/testsuite/ld-cris/pv32-1.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/binutils.exp buildtools/vendor/binutils/current/ld/testsuite/ld-elf/eh-frame-hdr.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/eh1.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/eh2.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/eh3.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/eh4.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/eh5.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/elf.exp buildtools/vendor/binutils/current/ld/testsuite/ld-elf/exclude.exp buildtools/vendor/binutils/current/ld/testsuite/ld-elf/extract-symbol-1sec.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/hash.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/loadaddr1.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/loadaddr1.t buildtools/vendor/binutils/current/ld/testsuite/ld-elf/loadaddr2.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/loadaddr2.t buildtools/vendor/binutils/current/ld/testsuite/ld-elf/merge.d buildtools/vendor/binutils/current/ld/testsuite/ld-elf/sec64k.exp buildtools/vendor/binutils/current/ld/testsuite/ld-elf/tls_common.exp buildtools/vendor/binutils/current/ld/testsuite/ld-elfcomm/elfcomm.exp buildtools/vendor/binutils/current/ld/testsuite/ld-elfvers/vers.exp buildtools/vendor/binutils/current/ld/testsuite/ld-i386/i386.exp buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsbin.dd buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsbin.rd buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsbindesc.dd buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsbindesc.rd buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsbinpic.s buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsdesc.rd buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsgdesc.rd buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlsnopic.rd buildtools/vendor/binutils/current/ld/testsuite/ld-i386/tlspic.rd buildtools/vendor/binutils/current/ld/testsuite/ld-ia64/tlsbin.rd buildtools/vendor/binutils/current/ld/testsuite/ld-ia64/tlspic.rd buildtools/vendor/binutils/current/ld/testsuite/ld-m68k/m68k.exp buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/attr-gnu-4-14.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/attr-gnu-4-41.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/eh-frame1-n32.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/eh-frame1-n64.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/eh-frame2-n32.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/eh-frame2-n64.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/elf-rel-got-n64-linux.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/elf-rel-got-n64.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64-linux.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/elf-rel-xgot-n64.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips-elf.exp buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-intermix.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/mips16-local-stubs-1.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/multi-got-1.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/multi-got-no-shared.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/relax-jalr-n32-shared.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/relax-jalr-n64-shared.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tls-hidden2-got.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tls-hidden2.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tls-hidden3.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tls-hidden3.got buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tls-hidden3.ld buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tls-hidden3.r buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tls-hidden4.got buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tls-hidden4.r buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tls-multi-got-1.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tls-multi-got-1.got buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tls-multi-got-1.r buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tlsbin-o32.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tlsbin-o32.got buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tlsdyn-o32-1.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tlsdyn-o32-1.got buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tlsdyn-o32-2.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tlsdyn-o32-2.got buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tlsdyn-o32-3.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tlsdyn-o32-3.got buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tlsdyn-o32.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tlsdyn-o32.got buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tlslib-o32-hidden.got buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tlslib-o32-ver.got buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tlslib-o32.d buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/tlslib-o32.got buildtools/vendor/binutils/current/ld/testsuite/ld-mips-elf/vxworks1-static.d buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-4-13.d buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/attr-gnu-4-31.d buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/powerpc.exp buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/relbrlt.d buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/tlsexe.r buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/tlsexe32.r buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/tlsexetoc.r buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/tlsso.d buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/tlsso.r buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/tlsso32.d buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/tlsso32.r buildtools/vendor/binutils/current/ld/testsuite/ld-powerpc/tlstocso.r buildtools/vendor/binutils/current/ld/testsuite/ld-s390/tlsbin.rd buildtools/vendor/binutils/current/ld/testsuite/ld-s390/tlsbin_64.rd buildtools/vendor/binutils/current/ld/testsuite/ld-s390/tlspic.rd buildtools/vendor/binutils/current/ld/testsuite/ld-s390/tlspic_64.rd buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/align.exp buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/alignof.exp buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/crossref.exp buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/defined.s buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/map-address.d buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/map-address.exp buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/map-address.t buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/overlay-size-map.d buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/overlay-size.t buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/phdrs.exp buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/phdrs2.exp buildtools/vendor/binutils/current/ld/testsuite/ld-scripts/weak.exp buildtools/vendor/binutils/current/ld/testsuite/ld-selective/sel-dump.exp buildtools/vendor/binutils/current/ld/testsuite/ld-selective/selective.exp buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/arch_expected.txt buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh-dsp.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh2.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh2a-nofpu-or-sh3-nommu.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh2a-nofpu-or-sh4-nommu-nofpu.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh2a-nofpu.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh2a-or-sh3e.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh2a-or-sh4.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh2a.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh2e.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh3-dsp.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh3-nommu.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh3.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh3e.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh4-nofpu.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh4-nommu-nofpu.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh4.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh4a-nofpu.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh4a.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/arch/sh4al-dsp.s buildtools/vendor/binutils/current/ld/testsuite/ld-sh/sh64/crangerel1.rd buildtools/vendor/binutils/current/ld/testsuite/ld-sh/sh64/crangerel2.rd buildtools/vendor/binutils/current/ld/testsuite/ld-sh/sh64/reldl32.rd buildtools/vendor/binutils/current/ld/testsuite/ld-sh/sh64/reldl64.rd buildtools/vendor/binutils/current/ld/testsuite/ld-shared/sh1.c buildtools/vendor/binutils/current/ld/testsuite/ld-shared/sh2.c buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/sparc.exp buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/tlssunbin32.rd buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/tlssunbin64.rd buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/tlssunnopic32.dd buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/tlssunnopic32.rd buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/tlssunnopic32.sd buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/tlssunnopic64.dd buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/tlssunnopic64.rd buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/tlssunnopic64.sd buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/tlssunpic32.rd buildtools/vendor/binutils/current/ld/testsuite/ld-sparc/tlssunpic64.rd buildtools/vendor/binutils/current/ld/testsuite/ld-spu/ear.s buildtools/vendor/binutils/current/ld/testsuite/ld-spu/embed.rd buildtools/vendor/binutils/current/ld/testsuite/ld-spu/ovl.d buildtools/vendor/binutils/current/ld/testsuite/ld-spu/ovl.lnk buildtools/vendor/binutils/current/ld/testsuite/ld-spu/ovl2.d buildtools/vendor/binutils/current/ld/testsuite/ld-spu/ovl2.s buildtools/vendor/binutils/current/ld/testsuite/ld-srec/srec.exp buildtools/vendor/binutils/current/ld/testsuite/ld-undefined/undefined.exp buildtools/vendor/binutils/current/ld/testsuite/ld-undefined/weak-undef.exp buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsbin.rd buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsbindesc.dd buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsbindesc.rd buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsdesc.rd buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlsgdesc.rd buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/tlspic.rd buildtools/vendor/binutils/current/ld/testsuite/ld-x86-64/x86-64.exp buildtools/vendor/binutils/current/ld/testsuite/ld-xtensa/coalesce.exp buildtools/vendor/binutils/current/ld/testsuite/ld-xtensa/lcall.exp buildtools/vendor/binutils/current/ld/testsuite/lib/ld-lib.exp buildtools/vendor/binutils/current/libiberty/ChangeLog buildtools/vendor/binutils/current/libiberty/Makefile.in buildtools/vendor/binutils/current/libiberty/aclocal.m4 buildtools/vendor/binutils/current/libiberty/configure buildtools/vendor/binutils/current/libiberty/configure.ac buildtools/vendor/binutils/current/libiberty/cp-demangle.c buildtools/vendor/binutils/current/libiberty/cplus-dem.c buildtools/vendor/binutils/current/libiberty/floatformat.c buildtools/vendor/binutils/current/libiberty/functions.texi buildtools/vendor/binutils/current/libiberty/libiberty.texi buildtools/vendor/binutils/current/libiberty/maint-tool buildtools/vendor/binutils/current/libiberty/make-relative-prefix.c buildtools/vendor/binutils/current/libiberty/make-temp-file.c buildtools/vendor/binutils/current/libiberty/md5.c buildtools/vendor/binutils/current/libiberty/mkstemps.c buildtools/vendor/binutils/current/libiberty/obstacks.texi buildtools/vendor/binutils/current/libiberty/pex-common.h buildtools/vendor/binutils/current/libiberty/pex-djgpp.c buildtools/vendor/binutils/current/libiberty/pex-msdos.c buildtools/vendor/binutils/current/libiberty/pex-unix.c buildtools/vendor/binutils/current/libiberty/pex-win32.c buildtools/vendor/binutils/current/libiberty/pexecute.txh buildtools/vendor/binutils/current/libiberty/splay-tree.c buildtools/vendor/binutils/current/libiberty/strsignal.c buildtools/vendor/binutils/current/libiberty/testsuite/Makefile.in buildtools/vendor/binutils/current/libiberty/testsuite/demangle-expected buildtools/vendor/binutils/current/libtool.m4 buildtools/vendor/binutils/current/ltsugar.m4 buildtools/vendor/binutils/current/md5.sum buildtools/vendor/binutils/current/opcodes/ChangeLog buildtools/vendor/binutils/current/opcodes/Makefile.am buildtools/vendor/binutils/current/opcodes/Makefile.in buildtools/vendor/binutils/current/opcodes/aclocal.m4 buildtools/vendor/binutils/current/opcodes/arc-opc.c buildtools/vendor/binutils/current/opcodes/arm-dis.c buildtools/vendor/binutils/current/opcodes/bfin-dis.c buildtools/vendor/binutils/current/opcodes/config.in buildtools/vendor/binutils/current/opcodes/configure buildtools/vendor/binutils/current/opcodes/configure.in buildtools/vendor/binutils/current/opcodes/cr16-dis.c buildtools/vendor/binutils/current/opcodes/cr16-opc.c buildtools/vendor/binutils/current/opcodes/cris-dis.c buildtools/vendor/binutils/current/opcodes/dis-init.c buildtools/vendor/binutils/current/opcodes/disassemble.c buildtools/vendor/binutils/current/opcodes/i386-dis.c buildtools/vendor/binutils/current/opcodes/i386-gen.c buildtools/vendor/binutils/current/opcodes/i386-opc.h buildtools/vendor/binutils/current/opcodes/i386-opc.tbl buildtools/vendor/binutils/current/opcodes/i386-reg.tbl buildtools/vendor/binutils/current/opcodes/i386-tbl.h buildtools/vendor/binutils/current/opcodes/ia64-asmtab.c buildtools/vendor/binutils/current/opcodes/ia64-dis.c buildtools/vendor/binutils/current/opcodes/ia64-gen.c buildtools/vendor/binutils/current/opcodes/ia64-ic.tbl buildtools/vendor/binutils/current/opcodes/ia64-raw.tbl buildtools/vendor/binutils/current/opcodes/ia64-waw.tbl buildtools/vendor/binutils/current/opcodes/m68k-dis.c buildtools/vendor/binutils/current/opcodes/m68k-opc.c buildtools/vendor/binutils/current/opcodes/m88k-dis.c buildtools/vendor/binutils/current/opcodes/mcore-dis.c buildtools/vendor/binutils/current/opcodes/mep-desc.c buildtools/vendor/binutils/current/opcodes/mips-dis.c buildtools/vendor/binutils/current/opcodes/mips-opc.c buildtools/vendor/binutils/current/opcodes/mt-asm.c buildtools/vendor/binutils/current/opcodes/or32-opc.c buildtools/vendor/binutils/current/opcodes/po/POTFILES.in buildtools/vendor/binutils/current/opcodes/po/es.gmo buildtools/vendor/binutils/current/opcodes/po/es.po buildtools/vendor/binutils/current/opcodes/po/fr.gmo buildtools/vendor/binutils/current/opcodes/po/fr.po buildtools/vendor/binutils/current/opcodes/po/opcodes.pot buildtools/vendor/binutils/current/opcodes/po/vi.gmo buildtools/vendor/binutils/current/opcodes/po/vi.po buildtools/vendor/binutils/current/opcodes/ppc-dis.c buildtools/vendor/binutils/current/opcodes/ppc-opc.c buildtools/vendor/binutils/current/opcodes/s390-dis.c buildtools/vendor/binutils/current/opcodes/s390-mkopc.c buildtools/vendor/binutils/current/opcodes/s390-opc.c buildtools/vendor/binutils/current/opcodes/s390-opc.txt buildtools/vendor/binutils/current/opcodes/sparc-dis.c buildtools/vendor/binutils/current/opcodes/sparc-opc.c buildtools/vendor/binutils/current/opcodes/sysdep.h buildtools/vendor/binutils/current/src-release Log: Updating binutils current to binutils 2.19. Added: buildtools/vendor/binutils/current/ChangeLog =================================================================== --- buildtools/vendor/binutils/current/ChangeLog 2009-01-25 21:28:43 UTC (rev 29020) +++ buildtools/vendor/binutils/current/ChangeLog 2009-01-25 21:01:43 UTC (rev 29021) @@ -0,0 +1,12571 @@ +2008-08-31 Aaron W. LaFramboise + + * configure.ac (RPATH_ENVVAR): Use PATH on Windows. + (GCC_SHLIB_SUBDIR): New. + * Makefile.tpl (HOST_LIB_PATH_gcc): Use GCC_SHLIB_SUBDIR. + * configure: Regenerate. + * Makefile.in: Regenerate. + +2008-08-28 Tristan Gingold + + * configure.ac (powerpc-*-darwin*, i?86-*-darwin*,x86_64-*-darwin9): + Enable bfd, binutils and opcodes. + * configure: Regenerate. + +2008-08-16 Nicolas Roche + + * Makefile.tpl: Add BOOT_ADAFLAGS. + * Makefile.in: Regenerate. + +2008-08-16 Richard Sandiford + + * configure.ac (mips*-*-*linux*, mips*-*-gnu*): Use mt-mips-gnu. + * configure: Regenerate. + +2008-07-30 Paolo Bonzini + + Sync with gcc: + 2008-07-30 Paolo Bonzini + + * configure.ac: Add makefile fragments for hpux. + * Makefile.def (flags_to_pass): Add ADA_CFLAGS. + * Makefile.tpl (HOST_EXPORTS): Pass ADA_CFLAGS. + * configure: Regenerate. + * Makefile.in: Regenerate. + + 2008-06-17 Ralf Wildenhues + + * Makefile.tpl ($(srcdir)/configure): Update dependencies. + * Makefile.in: Regenerate. + * configure: Regenerate. + +2008-06-18 Ian Lance Taylor + + * src-release (BINUTILS_SUPPORT_DIRS): Remove mkdep and depcomp. + + * src-release (BINUTILS_SUPPORT_DIRS): Add depcomp. + +2008-06-17 Ralf Wildenhues + + * configure: Regenerate. + +2008-06-16 Ralf Wildenhues + + * configure.ac: Set TOPLEVEL_CONFIGURE_ARGUMENTS early, when + "$@" is still intact with both Autoconf 2.59 and 2.62. + * configure: Regenerate. + +2008-06-16 Ralf Wildenhues + + * Makefile.tpl: Fix comment errors. + * Makefile.in: Regenerate. + +2008-06-13 Julian Brown + + * configure.ac (arm*-*-linux-gnueabi): Don't disable building + of libobjc for ARM EABI Linux. + * configure: Regenerate. + +2008-06-12 David S. Miller + David Edelsohn + + * configure.ac: Add powerpc*-*-* to gold supported targets. + * configure: Regenerate. + +2008-06-08 Joseph Myers + + PR tree-optimization/36218 + * Makefile.def (flags_to_pass): Add LDFLAGS_FOR_BUILD. + * Makefile.tpl (EXTRA_BUILD_FLAGS): Define. + (all prefix="build-"): Pass them to build-system sub-makes. + * Makefile.in: Regenerate. + +2008-05-16 Daniel Jacobowitz + + * src-release (DEVO_SUPPORT): Add ChangeLog, MAINTAINERS, + README-maintainer-mode, lt~obsolete.m4, ltgcc.m4, depcomp, + mkdep, and compile. Update comments. + (ETC_SUPPORT): Add ChangeLog and update comments. + +2008-05-11 Ian Lance Taylor + + * src-release (BINUTILS_SUPPORT_DIRS): Add elfcpp and gold. + +2008-04-18 Paolo Bonzini + + Sync with gcc: + 2008-04-18 Paolo Bonzini + + PR bootstrap/35457 + * configure.ac: Include override.m4. + * configure: Regenerate. + + 2008-04-18 Paolo Bonzini + + * Makefile.tpl (restrap): Call `make all' using double-colon rules. + * Makefile.in: Regenerate. + + 2008-04-11 Eric B. Weddington + + * configure.ac: Do not build libssp for the AVR. + * configure: Regenerate. + +2008-04-18 Nick Clifton + + * MAINTAINERS: Replace reference to configure.in with reference to + configure.ac. + +2008-04-18 M R Swami Reddy + + * configure.ac (cr16-*-*): Add case for cr16 target and include gdb + as nonconfigurable directories list. + * configure: Regenerate. + +2008-04-14 David S. Miller + + * configure.ac: Add sparc*-*-* to gold supported targets. + * configure: Regenerate. + +2008-04-14 Ben Elliston + + * config.sub, config.guess: Update from upstream sources. + +2008-04-12 Hans-Peter Nilsson + + * Makefile.tpl : Error early unless at least GNU make 3.80. + * Makefile.in: Regenerate. + +2008-04-07 Ian Lance Taylor + + * Makefile.def: check-gold depends upon all-binutils. + * Makefile.in: Regenerate. + +2008-04-04 Nick Clifton + + PR binutils/4334 + * configure.ac: Run ACX_CHECK_CYGWIN_CAT_WORKS for cygwin hosted + builds. + * configure: Regenerate. + +2008-04-04 NightStrike + + PR other/35151 + * configure.ac: Combine rules for mingw32 and mingw64. + * configure: Regenerate. + +2008-03-27 Paolo Bonzini + + * Makefile.tpl (PICFLAG, PICFLAG_FOR_TARGET): Remove. + * Makefile.in: Regenerate. + +2008-03-20 Ian Lance Taylor + + * configure.ac: Add support for --enable-gold. + * Makefile.def: Add gold as a directory like ld. + * configure, Makefile.in: Regenerate. + +2008-03-19 Andreas Krebbel + + * opcodes/s390-mkopc.c (s390_opcode_cpu_val): S390_OPCODE_Z10 added. + (s390_cond_extensions): Reduced extensions to the compare related. + (main): z10 cpu type option added. + (expandConditionalJump): Renamed to ... + (insertExpandedMnemonic): ... this. + + * opcodes/s390-opc.c: Re-group the operand format makros. + (INSTR_RIE_RRPU, INSTR_RIE_RRP0, INSTR_RIE_RUPI, + INSTR_RIE_R0PI, INSTR_RIE_RUPU, INSTR_RIE_R0PU, INSTR_RIE_R0IU, + INSTR_RIE_R0I0, INSTR_RIE_R0UU, INSTR_RIE_R0U0, + INSTR_RIE_RRUUU, INSTR_RIS_RURDI, INSTR_RIS_R0RDI, INSTR_RIS_RURDU, + INSTR_RIS_R0RDU, INSTR_RRF_U0RR, INSTR_RRF_00RR, INSTR_RRS_RRRDU, + INSTR_RRS_RRRD0, INSTR_RXY_URRD, INSTR_SIY_IRD, INSTR_SIL_RDI, + INSTR_SIL_RDU): New instruction formats added. + (MASK_RIE_RRPU, MASK_RIE_RRP0, MASK_RIE_RUPI, MASK_RIE_R0PI, + MASK_RIE_RUPU, MASK_RIE_R0PU, MASK_RIE_R0IU, MASK_RIE_R0I0, + MASK_RIE_R0UU, MASK_RIE_R0U0, MASK_RIE_RRUUU, MASK_RIS_RURDI, + MASK_RIS_R0RDI, MASK_RIS_RURDU, MASK_RIS_R0RDU, MASK_RRF_U0RR, + MASK_RRF_00RR, MASK_RRS_RRRDU, MASK_RRS_RRRD0, MASK_RXY_URRD, + MASK_SIY_IRD, MASK_SIL_RDI, MASK_SIL_RDU): New instruction format + masks added. + (s390_opformats): New formats added "ris", "rrs", "sil". + * opcodes/s390-opc.txt: Add the conditional jumps with the + extensions removed from automatic expansion in s390-mkopc.c manually. + (asi - trtre): Add new System z10 EC instructions. + * include/opcode/s390.h (s390_opcode_cpu_val): S390_OPCODE_Z10 added. + +2008-03-17 Ralf Wildenhues + + * configure.ac: m4_include config/proginstall.m4. + * configure: Regenerate. + +2008-03-16 Ralf Wildenhues + + Backport from upstream Libtool: + + 2007-10-12 Eric Blake + + Deal with Autoconf 2.62's semantic change in m4_append. + * ltsugar.m4 (lt_append): Replace broken versions of + m4_append. + (lt_if_append_uniq): Don't require separator to be overquoted, + and avoid broken m4_append. + (lt_dict_add): Fix typo. + * libtool.m4 (_LT_DECL): Don't overquote separator. + +2008-03-13 David Edelsohn + + * config.rpath: Add AIX 6 support. + +2008-03-13 Paolo Bonzini + + * Makefile.def (stageprofile). Remove -fprofile-generate + from stage_libcflags. + * Makefile.in: Regenerate. + +2008-03-13 Ben Elliston + + * config.sub, config.guess: Update from upstream sources. + +2008-03-06 Florian Krohm + + * s390-opc.c (INSTR_RSL_R0RD): Fix operands. + * s390-opc.txt (cmpsc): Duplicate entry removed. + (dxr, sqdr, sqer, cxfbr, cdfbr, cefbr, lzer, lzdr, lzxr, + cegbr, cdgbr, cxgbr, cegr, cdgr, cxgr, cxfr, cdfr, cefr, fixr, fidr, + fier, cu42, cu41): Fix operand format. + +2008-02-20 Paolo Bonzini + + PR bootstrap/32009 + PR bootstrap/32161 + + * configure.ac (CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Compute here. + * configure: Regenerate. + + * Makefile.def: Define stage_libcflags for all bootstrap stages. + * Makefile.tpl (BOOT_LIBCFLAGS, STAGE2_LIBCFLAGS, STAGE3_LIBCFLAGS, + STAGE4_LIBCFLAGS): New. + (CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Subst from autoconf, without + $(SYSROOT_CFLAGS_FOR_TARGET) and $(DEBUG_PREFIX_CFLAGS_FOR_TARGET). + (BASE_TARGET_EXPORTS): Append them here to C{,XX}FLAGS. + (EXTRA_TARGET_FLAGS): Append them here to {LIB,}C{,XX}FLAGS. + (configure-stage[+id+]-[+prefix+][+module+]): Pass stage_libcflags + for target modules. Don't export LIBCFLAGS. + (all-stage[+id+]-[+prefix+][+module+]): Pass stage_libcflags; pass + $(BASE_FLAGS_TO_PASS) where [+args+] was passed, and [+args+] after + the overridden CFLAGS_FOR_TARGET and CXXFLAGS_FOR_TARGET. + (invocations of `all'): Replace $(TARGET_FLAGS_TO_PASS) with + $(EXTRA_TARGET_FLAGS), $(FLAGS_TO_PASS) with $(EXTRA_HOST_FLAGS). + * Makefile.in: Regenerate. + +2008-02-16 Ralf Wildenhues + + PR libgcj/33085 + * libtool.m4 (_LT_COMPILER_PIC) [ mingw, cygwin ] : + Do not use -DDLL_EXPORT. Backport from upstream. + +2008-02-14 Nick Clifton + + Import this patch from gcc: + 2008-01-24 David Edelsohn + + * libtool.m4: Backport AIX 6 support from ToT Libtool. + +2008-02-02 Hans-Peter Nilsson + + * configure.ac: Enable fortran for cris-*-elf and crisv32-*-elf. + * configure: Regenerate. + +2008-01-31 Marc Gauthier + + * configure.ac (xtensa*-*-*): Recognize processor variants. + * configure: Regenerate. + +2008-01-30 Ralf Wildenhues + + PR bootstrap/34922 + * configure.ac (PARSE_ARGS): Push suitable setting of + ac_subdirs_all, for `./configure --help=recursive'. + Handle `+' in generic toplevel directory disabling. + * configure: Regenerate. + +2008-01-23 Ben Elliston + + * config.sub, config.guess: Update from upstream sources. + +2008-01-08 Ben Elliston + + * config.sub, config.guess: Update from upstream sources. + +2007-12-19 Jeff Johnston + + * COPYING.LIBGLOSS: Update default copyright. + +2007-12-19 Jeff Johnston + + * COPYING.NEWLIB: Update default copyright. + +2007-12-17 Kaveh R. Ghazi + + * configure.ac: Change required MPFR from 2.2.0 -> 2.2.1. + Change recommended MPFR from 2.2.1 > 2.3.0. + * configure: Regenerate. + +2007-12-13 Richard Sandiford + + * Makefile.tpl (CFLAGS_FOR_TARGET): Add -g. + (CXXFLAGS_FOR_TARGET): Add -O2 -g. + * Makefile.in: Regenerate. + +2007-12-10 Andreas Tobler + + * configure.ac: Enable libjava for x86_64-*-darwin9. + * configure: Regenerate. + +2007-12-05 Ben Elliston + + * config.sub, config.guess: Update from upstream sources. + +2007-11-28 Ralf Wildenhues + + * config-ml.in: Robustify against white space in absolute file + names. + + * config-ml.in (multi-clean): Substitute ${Makefile}. + Remove superfluous ${Makefile} in list. + +2007-10-23 Daniel Jacobowitz + + * Makefile.def (dependencies): Make configure-gdb depend on + all-intl. + * Makefile.in: Regenerated. + +2007-10-15 Patrick Mansfield + + * Makefile.def: To avoid problems running with parallel makes, + build newlib before libgloss so that target specific header + files are availble. + * Makefile.in: Regenerate. + +2007-10-11 Daniel Jacobowitz + + * Makefile.def (dependencies): Add all-gdb -> all-libdecnumber. + * Makefile.in: Regenerate. + +2007-10-11 Daniel Jacobowitz + + * src-release (GDB_SUPPORT_DIRS): Add libdecnumber. + * libdecnumber: New directory, imported from GCC. + +2007-10-08 Mike Frysinger + + * configure.ac (CFLAGS_FOR_BUILD, CXXFLAGS_FOR_BUILD, + LDFLAGS_FOR_BUILD): Default them to host flags only for $host = $build. + Set default CXXFLAGS_FOR_BUILD to CXXFLAGS, not CFLAGS. Set default + LDFLAGS_FOR_BUILD to LDFLAGS, not CFLAGS. + * configure: Regenerate. + +2007-10-01 Paolo Bonzini + + * Makefile.tpl (AR_FOR_BUILD, AS_FOR_BUILD, CXX_FOR_BUILD, + DLLTOOL_FOR_BUILD, GCJ_FOR_BUILD, GFORTRAN_FOR_BUILD, + LDFLAGS_FOR_BUILD, LD_FOR_BUILD, NM_FOR_BUILD, RANLIB_FOR_BUILD, + WINDMC_FOR_BUILD, WINDRES_FOR_BUILD): Use autoconf substitutions. + * configure.ac: Default them to host tools for $host = $build. + Subst them. + + * configure: Regenerate. + * Makefile.in: Regenerate. + +2007-09-20 Richard Sandiford + + * configure.ac (mipsisa*-*-elfoabi*): New stanza. + * configure: Regenerate. + +2007-09-19 Benjamin Kosnik + + * configure.ac (TOPLEVEL_CONFIGURE_ARGUMENTS): Move libgomp before + libstdc++. + * Makefile.def: Add libgomp config as a maybe dependency for libstdc++. + * configure: Regenerate. + * Makefile.in: Regenerate. + +2007-09-17 Andreas Schwab + + * configure.ac: Raise minimum makeinfo version to 4.6. + * configure: Regenerate. + +2007-09-15 Alan Modra + + * configure.ac: Correct makeinfo version check. + * configure: Regenerate. + +2007-09-14 Richard Sandiford + + * configure.ac (mips*-sde-elf*): New stanza. Add target-libiberty + to $skipdirs and only disable gprof for newlib. Use the normal + mips*-elf* handling in other respects. + * configure: Regnerate. + +2007-09-12 David Daney + + * configure.ac: Remove mips64*-*-linux* noconfigdirs section, thus + enabling libgcj. + * configure: Regenerate. + +2007-09-12 Richard Guenther + + * configure.ac (--enable-stage1-checking): If neither --enable-checking + nor --disable-checking is provided also turn on yes and types + checking for stage1. + * configure: Re-generate. + +2007-09-11 Francois-Xavier Coudert + + PR target/33281 + * configure.ac: Use config/mh-mingw on mingw. + * configure: Regenerate. + +2007-09-10 Rask Ingemann Lambertsen + + PR other/32154 + * configure.ac: For libgloss targets, point the linker to the linker + script, startup code and simulator library. + * configure: Regenerate. + +2007-09-09 Andrew Haley + + * configure.ac (noconfigdirs): Remove target-libffi and + target-libjava. + +2007-08-29 Nick Clifton + + * config.sub, config.guess: Update from upstream sources. + +2007-08-21 Richard Guenther + + * configure.ac: Add types checking to stage1 checking flags. + * configure: Regenerate. + +2007-08-18 Paul Brook + Joseph Myers + + * Makefile.tpl (DEBUG_PREFIX_CFLAGS_FOR_TARGET): New. + (CFLAGS_FOR_TARGET, CXXFLAGS_FOR_TARGET): Include it. + * Makefile.in: Regenerate. + * configure.ac (--with-debug-prefix-map): New. + * configure: Regenerate. + +2007-08-17 Richard Sandiford + Nigel Stephens + + * configure.ac (mips*-sde-elf*): New stanza. Use config/mt-sde + as target_makefile_frag. + * configure: Regenerate. + +2007-08-16 Alexandre Oliva + + * Makefile.def (STAGE2_CFLAGS, STAGE3_CFLAGS, STAGE4_CFLAGS): + Add to flags_to_pass. Adjust uses of BOOT_CFLAGS. + (bootstrap2-debug, bootstrap-debug): New bootstrap stages. + * Makefile.tpl (STAGE2_CFLAGS, STAGE3_CFLAGS, STAGE4_CFLAGS): New. + (do-compare, do-compare3, do-compare-debug): New. + ([+compare-target+]): Use them. + +2007-08-16 Alexandre Oliva + + * Makefile.def (STAGE2_CFLAGS, STAGE3_CFLAGS, STAGE4_CFLAGS): + Add to flags_to_pass. Adjust uses of BOOT_CFLAGS. + (bootstrap2-debug, bootstrap-debug): New bootstrap stages. + * Makefile.tpl (STAGE2_CFLAGS, STAGE3_CFLAGS, STAGE4_CFLAGS): New. + (do-compare, do-compare3, do-compare-debug): New. + ([+compare-target+]): Use them. + +2007-08-13 Ralf Wildenhues + Ben Elliston + + * configure.ac (TOPLEVEL_CONFIGURE_ARGUMENTS, baseargs): Pass + --silent if $silent. + * configure: Regenerate. + +2007-08-12 Daniel Jacobowitz + + * src-release (DEVO_SUPPORT): Add COPYING3 and COPYING3.LIB. + +2007-07-17 Nick Clifton + + * COPYING3: New file. Contains version 3 of the GNU General + Public License. + * COPYING3.LIB: New file. Contains version 3 of the GNU + Lesser General Public License. + +2007-07-11 Bernd Schmidt + + * configure.ac: Fix my previous change to really match GCC. + * configure: Regenerate. + +2007-07-11 Ralf Wildenhues + + * configure.ac: Rewrite 'configure --help' strings to look nicer. + * configure: Regenerate. + +2007-07-11 Ralf Wildenhues + + * configure.ac: Add some missing m4 quotation. + * configure: Regenerate. + +2007-07-09 Kai Tietz + + * Makefile.def: Add windmc tool to build. + * Makefile.tpl: Likewise. + * configure.ac: Likewise. + * Makefile.in: Regenerate. + * configure: Regenerate. + +2007-07-05 H.J. Lu + + * lt~obsolete.m4: New. Import from 20070318 libtool. + +2007-06-29 Bernd Schmidt + + * configure.ac: Don't add target-libmudflap to noconfigdirs for + uclinux and linux-uclibc targets. + * configure: Regenerate. + +2007-06-28 DJ Delorie + + * configure.ac (arm*-*-linux-gnueabi): Don't build libgloss if we're + not building newlib. + * configure: Regenerated. + +2007-06-22 Daniel Jacobowitz + + * src-release (DEVO_SUPPORT): Correct typos. + +2007-06-18 Daniel Jacobowitz + + * Makefile.def: Add dependency from configure-gdb to all-bfd. + * Makefile.in: Regenerated. + +2007-06-14 Paolo Bonzini + + * Makefile.tpl (cleanstrap): Don't delete the toplevel Makefile. + (distclean-stage[+id+]): Possibly delete stage_last. + * Makefile.in: Regenerate. + +2007-06-07 Ben Elliston + + * config.sub, config.guess: Update from upstream sources. + +2007-06-07 Ben Elliston + + * Makefile.tpl: Fix spelling error. + * Makefile.in: Regenerate. + +2007-06-04 Paolo Bonzini + + Sync with gcc: + 2007-05-30 Jakub Jelinek + + PR bootstrap/29382 + * configure.ac: Don't use -fkeep-inline-functions for GCC < 3.3.1. + * configure: Rebuilt. + +2007-06-01 Steve Ellcey + + * libtool.m4 (LT_CMD_MAX_LEN): Try using getconf to set + lt_cv_sys_max_cmd_len. + +2007-05-31 Paolo Bonzini + + * ltgcc.m4: Update from GCC. + +2007-05-25 Andreas Tobler + + * ltmain.sh: Fix Darwin verstring, remove ${wl}. + +2007-05-24 Steve Ellcey + + * ltmain.sh: Update from GCC. + * libtool.m4: Update from GCC. + * ltsugar.m4: New. Update from GCC. + * ltversion.m4: New. Update from GCC. + * ltoptions.m4: New. Update from GCC. + * ltconfig: Remove. + * ltcf-c.sh: Remove. + * ltcf-cxx.sh: Remove. + * ltcf-gcj.sh: Remove. + * src-release: Update with new libtool file list. + +2007-05-16 Paolo Bonzini + + * Makefile.def (bootstrap_stage): Replace stage_make_flags with + stage_cflags. + * Makefile.tpl (POSTSTAGE1_HOST_EXPORTS, POSTSTAGE1_FLAGS_TO_PASS): + Remove CFLAGS/LIBCFLAGS. + (configure-stage[+id+]-[+prefix+][+module+], + all-stage[+id+]-[+prefix+][+module+]): Pass it from [+stage_cflags+]. + * Makefile.in: Regenerate. + +2007-04-14 Steve Ellcey + + * config-ml.in: Update from GCC. + +2007-04-09 Daniel Jacobowitz + + * src-release (do-proto-toplev): Process the support directories before + the tool directory. + +2007-03-21 Richard Sandiford + + * configure.ac (TOPLEVEL_CONFIGURE_ARGUMENTS): Fix m4 quoting + of glob. Quote arguments with single quotes too. + * configure: Regenerate. + +2007-03-12 Brooks Moses + + * Makefile.def (fixincludes): Remove unneeded "missing" lines. + * Makefile.in: Regenerate + +2007-03-07 Andreas Schwab + + * configure: Regenerate. + +2007-03-01 Brooks Moses + + * configure.ac: Add "--with-pdfdir" configure option, + which defines pdfdir variable. + * Makefile.def (target=fixincludes): Add install-pdf to + missing targets. + (recursive_targets): Add install-pdf target. + (flags_to_pass): Add pdfdir. + * Makefile.tpl: Add pdfdir handling, add do-install-pdf + target. + * configure: Regenerate + * Makefile.in: Regenerate + +2007-02-28 Eric Christopher + + Revert: + 2006-12-07 Mike Stump + + * Makefile.def (dependencies): Add dependency for + install-target-libssp and install-target-libgomp on + install-gcc. + * Makefile.in: Regenerate. + +2007-02-27 Matt Kraai + + * configure: Regenerate. + * configure.ac: Move statements after variable declarations. + +2007-02-19 Joseph Myers + + * configure.ac: Adjust for loop syntax. + * configure: Regenerate. + +2007-02-18 Alexandre Oliva + + * configure: Rebuilt. + +2007-02-18 Alexandre Oliva + + * configure.ac: Drop multiple occurrences of --enable-languages, + and fix its quoting. + * configure: Rebuilt. + +2007-02-17 Mark Mitchell + Nathan Sidwell + Vladimir Prus + + * configure.ac (TOPLEVEL_CONFIGURE_ARGUMENTS): Fix quoting. + * configure: Regenerate. + +2007-02-13 Daniel Jacobowitz + + * configure.ac (target_libraries): Move libgcc before libiberty. + * configure: Regenerated. + +2007-02-13 Paolo Bonzini + + * configure: Regenerate again? + +2007-02-13 Paolo Bonzini + + * configure: Reapply PR30748 fix which was lost in the previous commit. + +2007-02-13 Daniel Jacobowitz + Paolo Bonzini + + PR bootstrap/30753 + * configure.ac: Remove obsolete build / host tests. Use AC_PROG_CC + unconditionally. Use AC_PROG_CXX. Use ACX_TOOL_DIRS to find $prefix. + * configure: Regenerated. + +2007-02-10 Paolo Bonzini + + * configure: Regenerate. + +2007-02-09 Daniel Jacobowitz + + PR bootstrap/30748 + * configure.ac: Correct syntax for Solaris ksh. + * configure: Regenerated. + +2007-02-09 Paolo Bonzini + + * Makefile.def: Sync with GCC. + * Makefile.tpl: Sync with GCC. + * Makefile.in: Regenerate. + * configure: Regenerate. + +2007-02-09 Daniel Jacobowitz + + * Makefile.tpl (build_alias, host_alias, target_alias): Use + noncanonical equivalents. + * configure.in: Rename to... + * configure.ac: ...this. Update AC_PREREQ. Prevent error for + AS_FOR_TARGET. Set build_noncanonical, host_noncanonical, and + target_noncanonical. Use them. Rewrite removal of configure + arguments for autoconf 2.59. Discard variable settings. Force + program_transform_name for native tools. + + * Makefile.in: Regenerated. + * configure: Regenerated with autoconf 2.59. + + * src-release (DEVO_SUPPORT, do-proto-toplev): Expect configure.ac. + +2007-02-08 Jeff Johnston + + * COPYING.LIBGLOSS: Reformat default Red Hat + license to fit within 80 columns. + * COPYING.NEWLIB: Ditto. + +2007-02-05 Dave Brolley + + * Contribute the following changes: + 2006-11-28 DJ Delorie + + * configure.in: Fix typo for mep's target_makefile_frag. + * configure: Regenerated. + + 2005-04-22 Richard Sandiford + + * configure.in (mep*): Add -mlibrary to FLAGS_FOR_TARGET. + * configure: Regenerate. + + 2001-09-19 DJ Delorie + + * configure.in (target_makefile_frag): use mt-mep + + 2001-06-12 Don Howard + + * configure.in: Remove gdb from MeP skip list. + + 2001-04-05 DJ Delorie + + * configure.in (noconfigdirs): Remove gcc from MeP skip list. + + 2001-03-20 Ben Elliston + + * configure.in (noconfigdirs): Add gcc and gdb for MeP. + + 2001-03-19 Ben Elliston + + * config.sub (mep, mep-*): Add. + +2007-01-31 Andreas Schwab + + * Makefile.tpl (LDFLAGS): Substitute it. + * Makefile.in: Regenerate. + +2007-01-11 Paolo Bonzini + + * configure.in: Change == to = in test command. + * configure: Regenerate. + +2007-01-11 Paolo Bonzini + Nick Clifton + Kaveh R. Ghazi + + * configure.in (build_configargs, host_configargs, target_configargs): + Remove build/host/target parameters. + (host_libs): Add gmp and mpfr. + (GMP tests): Reorganize to allow in-tree GMP/MPFR. + * Makefile.def (gmp, mpfr): New. + (gcc): Remove target. + * Makefile.tpl (build_os, build_vendor, host_os, host_vendor, + target_os, target_vendor): New. + (configure): Add host_alias/target_alias arguments. Adjust invocations. + * configure: Regenerate. + * Makefile.in: Regenerate. + +2007-01-11 Matt Fago + + * configure.in: Try to link to functions only in mpfr 2.2.x + to improve robustness of configure tests. + * configure: Regenerate. + +2007-01-08 Kai Tietz + + * configure.in: Add support for an x86_64-mingw* target. + * configure: Regenerate. + +2007-01-05 Daniel Jacobowitz + + * Makefile.tpl (all-target): Correct @if conditional for target + modules. + * configure.in: Omit libiberty if building only target libgcc. + * configure, Makefile.in: Regenerated. + +2007-01-04 Paolo Bonzini + + * configure.in: Use DEV-PHASE to detect the default for --enable-werror. + * configure: Regenerate. + +2007-01-03 Daniel Jacobowitz + + * Makefile.def (target_modules): Add libgcc. + (lang_env_dependencies): Remove default items. Use no_c and no_gcc. + * Makefile.tpl (clean-target-libgcc): Delete. + (configure-target-[+module+]): Emit --disable-bootstrap dependencies + on gcc even for bootstrapped modules. Rewrite handling of + lang_env_dependencies to loop over target_modules. + * configure.in (target_libraries): Add target-libgcc. + * Makefile.in, configure: Regenerated. + +2006-12-29 Paolo Bonzini + + Sync with gcc: + 2006-12-29 Paolo Bonzini + + * configure.in: Reorganize recognition of languages. Add + --enable-stage1-languages. Show supported languages for the chosen + target rather than all recognized languages. + * configure: Regenerate. + + 2006-12-29 Paolo Bonzini + + * Makefile.tpl (GCC_STRAP_TARGETS, all-prebootstrap): Remove. + * Makefile.in: Regenerate. + + 2006-12-29 Kaveh R. Ghazi + + * configure.in: Warn that MPFR 2.2.0 is buggy. + * configure: Regenerate. + +2006-12-27 Ian Lance Taylor + + * configure.in: When removing Makefiles to force a reconfigure, also + remove prev-DIR*/Makefile. + * configure: Regenerate. + +2006-12-23 Kazu Hirata + + * config.bfd: Recognize fido. + +2006-12-19 Paolo Bonzini + + Sync with gcc: + + 2006-12-19 Paolo Bonzini + + * configure.in: Remove "$build" case for powerpc-*-darwin* since + it only affects bootstrap and could be tested on "$host" as well. + * configure: Regenerate. + * config/mh-ppc-darwin: Add to the stage1 cflags here. + + 2006-12-19 Paolo Bonzini + + PR bootstrap/29544 + * Makefile.def (flags_to_pass): Add STAGE1_CHECKING. + (bootstrap_stage): Add STAGE1_CHECKING to stage1 configure flags, + move here comment from Makefile.tpl. + * Makefile.tpl: Move some definitions higher in the file. + (STAGE1_CHECKING): New. + * configure.in: Add --enable-stage1-checking. + * configure: Regenerate. + * Makefile.in: Regenerate. + + 2006-12-03 Kaveh R. Ghazi + + * configure.in: Update error message for missing GMP/MPFR. + + * configure: Regenerate. + + 2006-12-02 Kaveh R. Ghazi + + * configure.in: Update MPFR version in error message. + + * configure: Regenerate. + + 2006-11-26 Kaveh R. Ghazi + + * configure.in (--with-mpfr-dir, --with-gmp-dir): Remove flags. + (--with-mpfr-include, --with-mpfr-lib, --with-gmp-include, + --with-gmp-lib): New flags. + + * configure: Regenerate. + +2006-12-12 Andreas Tobler + + PR bootstrap/30134 + * configure.in: Correct x86 darwin support for libjava to powerpc + and i?86 only. + * configure: Regenerate. + +2006-12-11 Alan Modra + + * configure.in: Handle spu makefile frag. + * Makefile.tpl (MAINT): Define + (MAINTAINER_MODE_FALSE, MAINTAINER_MODE_TRUE): Define. + * configure: Regenerate. + * Makefile.in: Regenerate. + +2006-12-11 Ben Elliston + + * config.sub, config.guess: Update from upstream sources. + +2006-12-11 Ben Elliston + + * configure.in: Sync with GCC (spu-*-*). + * configure: Sync with GCC. + +2006-12-07 Mike Stump + + * Makefile.def (dependencies): Add dependency for + install-target-libssp and install-target-libgomp on + install-gcc. + * Makefile.in: Regenerate. + +2006-11-16 Paolo Bonzini + + * Makefile.tpl (clean-target-libgcc): Test for gcc Makefile presence. + (unstage): Test for stage_last presence. + + PR bootstrap/29802 + * Makefile.tpl (POSTSTAGE1_FLAGS_TO_PASS): Add HOST_SUBDIR in STAGE_PREFIX. + * Makefile.in: Regenerate. + +2006-11-14 DJ Delorie + + * Makefile.tpl (clean-stage*): Sync with GCC (clean). + * Makefile.in: Sync with GCC. + * configure.in: Sync with GCC (mpfr, gmp). + * configure: Sync with GCC. + +2006-11-08 Jie Zhang + + * configure.in: Remove target-libgloss from noconfigdirs for + bfin-*-*. + * configure: Regenerated. + +2006-10-27 Jeff Johnston + + * COPYING.NEWLIB: Add spu license. + * COPYING.LIBGLOSS: Ditto. + +2006-10-17 Brooks Moses + + * Makefile.def: Added pdf target handling. + * Makefile.tpl: Added pdf target handling. + * Makefile.in: Regenerated. + +2006-10-11 Jeff Johnston + + * COPYING.NEWLIB: Updated. + * COPYING.LIBGLOSS: Ditto. + +2006-09-27 Dave Brolley + + * configure.in (RUNTEST): Look for 'runtest' in the source tree by using + $s instead of $r. + * configure: Regenerated. + +2006-09-26 Ben Elliston + + * config.sub, config.guess: Update from upstream sources. + +2006-09-20 Thiemo Seufer + + * configure.in: Remove redundant handling of mips*-dec-bsd*. Likewise + for mipstx39-*-*. Disable libgloss for mips64*-*-linux*. + * configure: Regenerate. + [... truncated: 710626 lines follow ...] From mmlr at mail.berlios.de Sun Jan 25 22:38:22 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 25 Jan 2009 22:38:22 +0100 Subject: [Haiku-commits] r29022 - buildtools/vendor/binutils Message-ID: <200901252138.n0PLcMR6023548@sheep.berlios.de> Author: mmlr Date: 2009-01-25 22:38:21 +0100 (Sun, 25 Jan 2009) New Revision: 29022 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29022&view=rev Added: buildtools/vendor/binutils/2.19/ Log: Tagging binutils 2.19. Copied: buildtools/vendor/binutils/2.19 (from rev 29021, buildtools/vendor/binutils/current) From mmlr at mail.berlios.de Sun Jan 25 22:39:31 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 25 Jan 2009 22:39:31 +0100 Subject: [Haiku-commits] r29023 - buildtools/trunk Message-ID: <200901252139.n0PLdVSr023621@sheep.berlios.de> Author: mmlr Date: 2009-01-25 22:39:30 +0100 (Sun, 25 Jan 2009) New Revision: 29023 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29023&view=rev Removed: buildtools/trunk/binutils/ Log: Making room for binutils 2.19. From mmlr at mail.berlios.de Sun Jan 25 22:40:18 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 25 Jan 2009 22:40:18 +0100 Subject: [Haiku-commits] r29024 - buildtools/trunk Message-ID: <200901252140.n0PLeIo8023698@sheep.berlios.de> Author: mmlr Date: 2009-01-25 22:40:16 +0100 (Sun, 25 Jan 2009) New Revision: 29024 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29024&view=rev Added: buildtools/trunk/binutils/ Log: Adding binutils 2.19 to trunk. Copied: buildtools/trunk/binutils (from rev 29023, buildtools/vendor/binutils/2.19) From mmlr at mail.berlios.de Sun Jan 25 22:45:34 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 25 Jan 2009 22:45:34 +0100 Subject: [Haiku-commits] r29025 - in buildtools/trunk/binutils: . bfd gas gas/config ld Message-ID: <200901252145.n0PLjYjl024205@sheep.berlios.de> Author: mmlr Date: 2009-01-25 22:45:27 +0100 (Sun, 25 Jan 2009) New Revision: 29025 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29025&view=rev Modified: buildtools/trunk/binutils/bfd/config.bfd buildtools/trunk/binutils/bfd/elf32-ppc.c buildtools/trunk/binutils/gas/config/tc-i386.c buildtools/trunk/binutils/gas/configure.tgt buildtools/trunk/binutils/ld/Makefile.am buildtools/trunk/binutils/ld/Makefile.in buildtools/trunk/binutils/ld/configure.tgt buildtools/trunk/binutils/libtool.m4 Log: Applying Haiku support. Modified: buildtools/trunk/binutils/bfd/config.bfd =================================================================== --- buildtools/trunk/binutils/bfd/config.bfd 2009-01-25 21:40:16 UTC (rev 29024) +++ buildtools/trunk/binutils/bfd/config.bfd 2009-01-25 21:45:27 UTC (rev 29025) @@ -271,7 +271,7 @@ ;; arm-*-elf | arm-*-freebsd* | arm*-*-linux-* | arm*-*-conix* | \ arm*-*-uclinux* | arm-*-kfreebsd*-gnu | \ - arm*-*-eabi* ) + arm*-*-eabi* | arm*-*-haiku*) targ_defvec=bfd_elf32_littlearm_vec targ_selvecs=bfd_elf32_bigarm_vec ;; @@ -652,6 +652,9 @@ targ_defvec=bfd_elf32_i386_vec targ_selvecs="i386pe_vec i386pei_vec" ;; + i[3-7]86-*-haiku*) + targ_defvec=bfd_elf32_i386_vec + ;; i[3-7]86-*-interix*) targ_defvec=i386pei_vec targ_selvecs="i386pe_vec" @@ -833,7 +836,10 @@ targ_selvecs=ieee_vec targ_underscore=yes ;; - + m68*-*-haiku*) + targ_defvec=bfd_elf32_m68k_vec + targ_selvecs="m68kcoff_vec ieee_vec" + ;; m88*-harris-cxux* | m88*-*-dgux* | m88*-*-sysv4*) targ_defvec=bfd_elf32_m88k_vec targ_selvecs=m88kbcs_vec @@ -1120,6 +1126,11 @@ targ_selvecs="mach_o_be_vec mach_o_le_vec mach_o_fat_vec pef_vec pef_xlib_vec sym_vec" targ_archs="bfd_powerpc_arch bfd_rs6000_arch bfd_i386_arch" ;; + powerpc-*-haiku*) + targ_defvec=bfd_elf32_powerpc_vec + targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec pef_vec pef_xlib_vec pmac_xcoff_vec ppcboot_vec" + targ_cflags=-D__HAIKU_TARGET__ + ;; powerpc-*-macos*) targ_defvec=pmac_xcoff_vec ;; Modified: buildtools/trunk/binutils/bfd/elf32-ppc.c =================================================================== --- buildtools/trunk/binutils/bfd/elf32-ppc.c 2009-01-25 21:40:16 UTC (rev 29024) +++ buildtools/trunk/binutils/bfd/elf32-ppc.c 2009-01-25 21:45:27 UTC (rev 29025) @@ -8054,7 +8054,7 @@ #define TARGET_BIG_NAME "elf32-powerpc" #define ELF_ARCH bfd_arch_powerpc #define ELF_MACHINE_CODE EM_PPC -#ifdef __QNXTARGET__ +#if defined(__QNXTARGET__) || defined(__HAIKU_TARGET__) #define ELF_MAXPAGESIZE 0x1000 #else #define ELF_MAXPAGESIZE 0x10000 Modified: buildtools/trunk/binutils/gas/config/tc-i386.c =================================================================== --- buildtools/trunk/binutils/gas/config/tc-i386.c 2009-01-25 21:40:16 UTC (rev 29024) +++ buildtools/trunk/binutils/gas/config/tc-i386.c 2009-01-25 21:45:27 UTC (rev 29025) @@ -319,7 +319,8 @@ && !defined (TE_LINUX) \ && !defined (TE_NETWARE) \ && !defined (TE_FreeBSD) \ - && !defined (TE_NetBSD))) + && !defined (TE_NetBSD) \ + && !defined (TE_BeOS))) /* This array holds the chars that always start a comment. If the pre-processor is disabled, these aren't very useful. The option --divide will remove '/' from this list. */ Modified: buildtools/trunk/binutils/gas/configure.tgt =================================================================== --- buildtools/trunk/binutils/gas/configure.tgt 2009-01-25 21:40:16 UTC (rev 29024) +++ buildtools/trunk/binutils/gas/configure.tgt 2009-01-25 21:45:27 UTC (rev 29025) @@ -123,6 +123,7 @@ arm-wince-pe | arm-*-wince) fmt=coff em=wince-pe ;; arm-*-pe | thumb-*-pe) fmt=coff em=pe ;; arm-*-riscix*) fmt=aout em=riscix ;; + arm-*-haiku*) fmt=elf em=haiku ;; avr-*-*) fmt=elf bfd_gas=yes ;; @@ -174,9 +175,10 @@ i386-ibm-aix*) fmt=coff em=i386aix ;; i386-sequent-bsd*) fmt=aout em=dynix ;; i386-*-beospe*) fmt=coff em=pe ;; - i386-*-beos*) fmt=elf ;; + i386-*-beos*) fmt=elf em=beos ;; i386-*-coff) fmt=coff ;; i386-*-elf) fmt=elf ;; + i386-*-haiku*) fmt=elf em=haiku ;; i386-*-kaos*) fmt=elf ;; i386-*-bsd*) fmt=aout em=386bsd ;; i386-*-netbsd0.8) fmt=aout em=386bsd ;; @@ -262,6 +264,7 @@ m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;; m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;; m68k-*-psos*) fmt=elf em=psos;; + m68k-*-haiku*) fmt=elf em=haiku ;; maxq-*-coff) fmt=coff bfd_gas=yes ;; @@ -318,9 +321,10 @@ ppc-*-aix5.[01]) fmt=coff em=aix5 ;; ppc-*-aix5.*) fmt=coff em=aix5 ;; ppc-*-aix*) fmt=coff ;; - ppc-*-beos*) fmt=coff ;; + ppc-*-beos*) fmt=coff em=beos ;; ppc-*-*n*bsd* | ppc-*-elf*) fmt=elf ;; ppc-*-eabi* | ppc-*-sysv4*) fmt=elf ;; + ppc-*-haiku*) fmt=elf em=haiku ;; ppc-*-linux-*) fmt=elf em=linux ;; ppc-*-solaris*) fmt=elf em=solaris ;; ppc-*-rtems*) fmt=elf ;; Modified: buildtools/trunk/binutils/ld/Makefile.am =================================================================== --- buildtools/trunk/binutils/ld/Makefile.am 2009-01-25 21:40:16 UTC (rev 29024) +++ buildtools/trunk/binutils/ld/Makefile.am 2009-01-25 21:45:27 UTC (rev 29025) @@ -121,6 +121,7 @@ earmelf.o \ earmelfb.o \ earmelf_fbsd.o \ + earmelf_haiku.o \ earmelf_linux.o \ earmelf_linux_eabi.o \ earmelfb_linux.o \ @@ -208,7 +209,9 @@ eelf_i386_be.o \ eelf_i386_chaos.o \ eelf_i386_fbsd.o \ + eelf_i386_haiku.o \ eelf_i386_ldso.o \ + eelf_ppc_haiku.o \ eelf_i386_vxworks.o \ eelf_s390.o \ egld960.o \ @@ -539,6 +542,10 @@ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelf_fbsd "$(tdir_armelf_fbsd)" +earmelf_haiku.c: $(srcdir)/emulparams/armelf_haiku.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armelf_haiku "$(tdir_armelf_haiku)" earmelf_linux.c: $(srcdir)/emulparams/armelf_linux.sh \ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -1023,9 +1030,15 @@ $(srcdir)/emulparams/elf_i386.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_fbsd "$(tdir_elf_i386_fbsd)" +eelf_i386_haiku.c: $(srcdir)/emulparams/elf_i386_haiku.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_i386_haiku "$(tdir_elf_i386_haiku)" eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_ldso "$(tdir_elf_i386_ldso)" +eelf_ppc_haiku.c: $(srcdir)/emulparams/elf_ppc_haiku.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_ppc_haiku "$(tdir_elf_ppc_haiku)" eelf_i386_vxworks.c: $(srcdir)/emulparams/elf_i386_vxworks.sh \ $(srcdir)/emulparams/vxworks.sh $(srcdir)/emultempl/vxworks.em \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} Modified: buildtools/trunk/binutils/ld/Makefile.in =================================================================== --- buildtools/trunk/binutils/ld/Makefile.in 2009-01-25 21:40:16 UTC (rev 29024) +++ buildtools/trunk/binutils/ld/Makefile.in 2009-01-25 21:45:27 UTC (rev 29025) @@ -372,6 +372,7 @@ earmelf.o \ earmelfb.o \ earmelf_fbsd.o \ + earmelf_haiku.o \ earmelf_linux.o \ earmelf_linux_eabi.o \ earmelfb_linux.o \ @@ -459,7 +460,9 @@ eelf_i386_be.o \ eelf_i386_chaos.o \ eelf_i386_fbsd.o \ + eelf_i386_haiku.o \ eelf_i386_ldso.o \ + eelf_ppc_haiku.o \ eelf_i386_vxworks.o \ eelf_s390.o \ egld960.o \ @@ -1369,6 +1372,10 @@ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} armelf_fbsd "$(tdir_armelf_fbsd)" +earmelf_haiku.c: $(srcdir)/emulparams/armelf_haiku.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/armelf.em \ + $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} armelf_haiku "$(tdir_armelf_haiku)" earmelf_linux.c: $(srcdir)/emulparams/armelf_linux.sh \ $(ELF_DEPS) $(srcdir)/emultempl/armelf.em \ $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} @@ -1853,9 +1860,15 @@ $(srcdir)/emulparams/elf_i386.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_fbsd "$(tdir_elf_i386_fbsd)" +eelf_i386_haiku.c: $(srcdir)/emulparams/elf_i386_haiku.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_i386_haiku "$(tdir_elf_i386_haiku)" eelf_i386_ldso.c: $(srcdir)/emulparams/elf_i386_ldso.sh \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} ${GENSCRIPTS} elf_i386_ldso "$(tdir_elf_i386_ldso)" +eelf_ppc_haiku.c: $(srcdir)/emulparams/elf_ppc_haiku.sh \ + $(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} + ${GENSCRIPTS} elf_ppc_haiku "$(tdir_elf_ppc_haiku)" eelf_i386_vxworks.c: $(srcdir)/emulparams/elf_i386_vxworks.sh \ $(srcdir)/emulparams/vxworks.sh $(srcdir)/emultempl/vxworks.em \ $(ELF_DEPS) $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS} Modified: buildtools/trunk/binutils/ld/configure.tgt =================================================================== --- buildtools/trunk/binutils/ld/configure.tgt 2009-01-25 21:40:16 UTC (rev 29024) +++ buildtools/trunk/binutils/ld/configure.tgt 2009-01-25 21:45:27 UTC (rev 29025) @@ -93,6 +93,7 @@ ;; arm-*-vxworks) targ_emul=armelf_vxworks ;; arm*-*-conix*) targ_emul=armelf ;; +arm*-*-haiku*) targ_emul=armelf_haiku; targ_extra_emuls=armelf ;; thumb-*-linux-* | thumb-*-uclinux*) targ_emul=armelf_linux; targ_extra_emuls=armelf ;; strongarm-*-coff) targ_emul=armcoff ;; strongarm-*-elf) targ_emul=armelf ;; @@ -274,6 +275,7 @@ targ_extra_ofiles="deffilep.o pe-dll.o" ;; i[3-7]86-*-beospe*) targ_emul=i386beos ;; i[3-7]86-*-beos*) targ_emul=elf_i386_be ;; +i[3-7]86-*-haiku*) targ_emul=elf_i386_haiku ;; i[3-7]86-*-vxworks*) targ_emul=elf_i386_vxworks ;; i[3-7]86-*-chaos) targ_emul=elf_i386_chaos ;; @@ -340,7 +342,9 @@ targ_extra_emuls="m68kelfnbsd m68k4knbsd" ;; m68*-*-psos*) targ_emul=m68kpsos ;; m68*-*-rtemscoff*) targ_emul=m68kcoff ;; -m68*-*-rtems*) targ_emul=m68kelf +m68*-*-rtems*) targ_emul=m68kelf ;; +m68*-*-haiku*) targ_emul=m68kelf + targ_extra_emuls=m68kcoff ;; m8*-*-*) targ_emul=m88kbcs ;; @@ -485,6 +489,7 @@ powerpc-*-aix5*) targ_emul=aix5ppc ;; powerpc-*-aix*) targ_emul=aixppc ;; powerpc-*-beos*) targ_emul=aixppc ;; +powerpc-*-haiku*) targ_emul=elf_ppc_haiku ;; powerpc-*-windiss*) targ_emul=elf32ppcwindiss ;; powerpc-*-lynxos*) targ_emul=ppclynx ;; rs6000-*-aix5*) targ_emul=aix5rs6 ;; Modified: buildtools/trunk/binutils/libtool.m4 =================================================================== --- buildtools/trunk/binutils/libtool.m4 2009-01-25 21:40:16 UTC (rev 29024) +++ buildtools/trunk/binutils/libtool.m4 2009-01-25 21:45:27 UTC (rev 29025) @@ -2211,6 +2211,15 @@ hardcode_into_libs=yes ;; +haiku*) + library_names_spec='${libname}.so' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. @@ -2891,6 +2900,10 @@ lt_cv_deplibs_check_method=pass_all ;; +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + hpux10.20* | hpux11*) lt_cv_file_magic_cmd=/usr/bin/file case $host_cpu in @@ -3110,7 +3123,7 @@ [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in -*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin* | *-*-haiku*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) From mmlr at mail.berlios.de Sun Jan 25 22:46:06 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 25 Jan 2009 22:46:06 +0100 Subject: [Haiku-commits] r29026 - buildtools/trunk/binutils/gas/config Message-ID: <200901252146.n0PLk6Tj024239@sheep.berlios.de> Author: mmlr Date: 2009-01-25 22:46:04 +0100 (Sun, 25 Jan 2009) New Revision: 29026 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29026&view=rev Added: buildtools/trunk/binutils/gas/config/te-beos.h buildtools/trunk/binutils/gas/config/te-haiku.h Log: Missed those two in last commit. Added: buildtools/trunk/binutils/gas/config/te-beos.h =================================================================== --- buildtools/trunk/binutils/gas/config/te-beos.h 2009-01-25 21:45:27 UTC (rev 29025) +++ buildtools/trunk/binutils/gas/config/te-beos.h 2009-01-25 21:46:04 UTC (rev 29026) @@ -0,0 +1,10 @@ +/* Target environment for BeOS/Haiku. It is the same as the generic + target, except that it arranges via the TE_BeOS define to + suppress the use of "/" as a comment character. Some code in the + haiku kernel uses "/" to mean division. (What a concept!) */ +#define TE_BeOS 1 + +#define LOCAL_LABELS_DOLLAR 1 +#define LOCAL_LABELS_FB 1 + +#include "obj-format.h" Added: buildtools/trunk/binutils/gas/config/te-haiku.h =================================================================== --- buildtools/trunk/binutils/gas/config/te-haiku.h 2009-01-25 21:45:27 UTC (rev 29025) +++ buildtools/trunk/binutils/gas/config/te-haiku.h 2009-01-25 21:46:04 UTC (rev 29026) @@ -0,0 +1,10 @@ +/* Target environment for BeOS/Haiku. It is the same as the generic + target, except that it arranges via the TE_BeOS define to + suppress the use of "/" as a comment character. Some code in the + haiku kernel uses "/" to mean division. (What a concept!) */ +#define TE_BeOS 1 + +#define LOCAL_LABELS_DOLLAR 1 +#define LOCAL_LABELS_FB 1 + +#include "obj-format.h" From mmlr at mail.berlios.de Sun Jan 25 23:15:21 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 25 Jan 2009 23:15:21 +0100 Subject: [Haiku-commits] r29027 - buildtools/trunk/binutils/ld/emulparams Message-ID: <200901252215.n0PMFLev026295@sheep.berlios.de> Author: mmlr Date: 2009-01-25 23:15:19 +0100 (Sun, 25 Jan 2009) New Revision: 29027 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29027&view=rev Added: buildtools/trunk/binutils/ld/emulparams/elf_i386_haiku.sh Log: Forgot this in Haiku patch as well. Added: buildtools/trunk/binutils/ld/emulparams/elf_i386_haiku.sh =================================================================== --- buildtools/trunk/binutils/ld/emulparams/elf_i386_haiku.sh 2009-01-25 21:46:04 UTC (rev 29026) +++ buildtools/trunk/binutils/ld/emulparams/elf_i386_haiku.sh 2009-01-25 22:15:19 UTC (rev 29027) @@ -0,0 +1,11 @@ +SCRIPT_NAME=elf +OUTPUT_FORMAT="elf32-i386" +TEXT_START_ADDR=0x200000 +NONPAGED_TEXT_START_ADDR=0x200000 +MAXPAGESIZE=0x1000 +ARCH=i386 +MACHINE= +NOP=0x90909090 +TEMPLATE_NAME=elf32 +GENERATE_SHLIB_SCRIPT=yes +NO_SMALL_DATA=yes From korli at mail.berlios.de Sun Jan 25 23:18:45 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Sun, 25 Jan 2009 23:18:45 +0100 Subject: [Haiku-commits] r29028 - haiku/trunk/src/kits/interface Message-ID: <200901252218.n0PMIj60026512@sheep.berlios.de> Author: korli Date: 2009-01-25 23:18:44 +0100 (Sun, 25 Jan 2009) New Revision: 29028 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29028&view=rev Modified: haiku/trunk/src/kits/interface/Control.cpp haiku/trunk/src/kits/interface/TextControl.cpp Log: * BTextControl is kept navigable to be handled correctly by BControl::SetEnabled(). MakeFocus() transfers anyway the focus on its textview. * BControl::SetEnabled() now calls SetFlags(), BTextControl::SetFlags() is then correctly called. * BControl::SetEnabled() now uses fWantsNav to know if B_NAVIGABLE should be restored Modified: haiku/trunk/src/kits/interface/Control.cpp =================================================================== --- haiku/trunk/src/kits/interface/Control.cpp 2009-01-25 22:15:19 UTC (rev 29027) +++ haiku/trunk/src/kits/interface/Control.cpp 2009-01-25 22:18:44 UTC (rev 29028) @@ -344,10 +344,13 @@ fEnabled = enabled; - if (fEnabled) - BView::SetFlags(Flags() | B_NAVIGABLE); - else - BView::SetFlags(Flags() & ~B_NAVIGABLE); + if (fEnabled && fWantsNav) + SetFlags(Flags() | B_NAVIGABLE); + else if (!fEnabled && (Flags() & B_NAVIGABLE)) { + fWantsNav = true; + SetFlags(Flags() & ~B_NAVIGABLE); + } else + fWantsNav = false; if (Window()) { Invalidate(Bounds()); @@ -552,7 +555,7 @@ fEnabled = true; fFocusChanging = false; fTracking = false; - fWantsNav = true; + fWantsNav = Flags() & B_NAVIGABLE; if (data && data->HasString("_fname")) SetFont(be_plain_font, B_FONT_FAMILY_AND_STYLE); Modified: haiku/trunk/src/kits/interface/TextControl.cpp =================================================================== --- haiku/trunk/src/kits/interface/TextControl.cpp 2009-01-25 22:15:19 UTC (rev 29027) +++ haiku/trunk/src/kits/interface/TextControl.cpp 2009-01-25 22:18:44 UTC (rev 29028) @@ -11,8 +11,6 @@ /*! BTextControl displays text that can act like a control. */ -#include - #include #include #include @@ -27,6 +25,7 @@ //#define TRACE_TEXT_CONTROL #ifdef TRACE_TEXT_CONTROL +# include # include static int32 sFunctionDepth = -1; # define CALLED(x...) FunctionTracer _ft("BTextControl", __FUNCTION__, \ @@ -512,10 +511,7 @@ if (flags & B_NAVIGABLE) fText->SetFlags(fText->Flags() | B_NAVIGABLE); } - - // Don't make this one navigable - flags &= ~B_NAVIGABLE; - + BView::SetFlags(flags); } @@ -929,8 +925,6 @@ fDivider = floorf(bounds.Width() / 2.0f); uint32 navigableFlags = Flags() & B_NAVIGABLE; - if (navigableFlags != 0) - BView::SetFlags(Flags() & ~B_NAVIGABLE); if (archive) fText = static_cast(FindView("_input_")); From mmlr at mail.berlios.de Mon Jan 26 01:57:06 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 01:57:06 +0100 Subject: [Haiku-commits] r29029 - haiku/trunk/src/add-ons/kernel/bus_managers/usb Message-ID: <200901260057.n0Q0v6AI027201@sheep.berlios.de> Author: mmlr Date: 2009-01-26 01:57:02 +0100 (Mon, 26 Jan 2009) New Revision: 29029 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29029&view=rev Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/Hub.cpp Log: Fix usage of wrong port change values. The request numbers were compared with the bitmap instead of the masks. Spotted by Mika Lindqvist (after 100 reboots), thanks for tracking down such hard to spot errors! Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/Hub.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/usb/Hub.cpp 2009-01-25 22:18:44 UTC (rev 29028) +++ haiku/trunk/src/add-ons/kernel/bus_managers/usb/Hub.cpp 2009-01-26 00:57:02 UTC (rev 29029) @@ -153,13 +153,13 @@ if (result < B_OK) return result; - if (fPortStatus[index].change & C_PORT_RESET) { + if (fPortStatus[index].change & PORT_STATUS_RESET) { // reset is done break; } } - if ((fPortStatus[index].change & C_PORT_RESET) == 0) { + if ((fPortStatus[index].change & PORT_STATUS_RESET) == 0) { TRACE_ERROR("port %d won't reset\n", index); return B_ERROR; } @@ -302,7 +302,7 @@ 0, NULL, 0, NULL); } - if (fPortStatus[i].change & PORT_RESET) { + if (fPortStatus[i].change & PORT_STATUS_RESET) { TRACE_ALWAYS("port %ld was reset\n", i); DefaultPipe()->SendRequest(USB_REQTYPE_CLASS | USB_REQTYPE_OTHER_OUT, USB_REQUEST_CLEAR_FEATURE, C_PORT_RESET, i + 1, From umccullough at gmail.com Mon Jan 26 05:09:54 2009 From: umccullough at gmail.com (Urias McCullough) Date: Sun, 25 Jan 2009 20:09:54 -0800 Subject: [Haiku-commits] r29027 - buildtools/trunk/binutils/ld/emulparams In-Reply-To: <200901252215.n0PMFLev026295@sheep.berlios.de> References: <200901252215.n0PMFLev026295@sheep.berlios.de> Message-ID: <1e80d8750901252009t39ba2650ge71a0f1c86e421d2@mail.gmail.com> On Sun, Jan 25, 2009 at 2:15 PM, wrote: > Author: mmlr > Date: 2009-01-25 23:15:19 +0100 (Sun, 25 Jan 2009) > New Revision: 29027 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29027&view=rev > > Added: > buildtools/trunk/binutils/ld/emulparams/elf_i386_haiku.sh FYI, also missing from here are "elf_ppc_haiku.sh" and "armelf_haiku.sh" that seem to have existed previously... - Urias From mmlr at mail.berlios.de Mon Jan 26 06:01:47 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 06:01:47 +0100 Subject: [Haiku-commits] r29031 - buildtools/vendor/gcc Message-ID: <200901260501.n0Q51ltu030378@sheep.berlios.de> Author: mmlr Date: 2009-01-26 06:01:45 +0100 (Mon, 26 Jan 2009) New Revision: 29031 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29031&view=rev Added: buildtools/vendor/gcc/4.3.3/ Log: Tagging GCC 4.3.3. Copied: buildtools/vendor/gcc/4.3.3 (from rev 29030, buildtools/vendor/gcc/current) From mmlr at mail.berlios.de Mon Jan 26 06:02:41 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 06:02:41 +0100 Subject: [Haiku-commits] r29032 - buildtools/trunk Message-ID: <200901260502.n0Q52fkM030399@sheep.berlios.de> Author: mmlr Date: 2009-01-26 06:02:39 +0100 (Mon, 26 Jan 2009) New Revision: 29032 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29032&view=rev Removed: buildtools/trunk/gcc/ Log: Removing previous GCC4 to have a clean base. From mmlr at mail.berlios.de Mon Jan 26 06:03:17 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 06:03:17 +0100 Subject: [Haiku-commits] r29033 - buildtools/trunk Message-ID: <200901260503.n0Q53HZs030434@sheep.berlios.de> Author: mmlr Date: 2009-01-26 06:03:14 +0100 (Mon, 26 Jan 2009) New Revision: 29033 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29033&view=rev Added: buildtools/trunk/gcc/ Log: Bring GCC 4.3.3 to trunk. Copied: buildtools/trunk/gcc (from rev 29032, buildtools/vendor/gcc/4.3.3) From mmlr at mail.berlios.de Mon Jan 26 06:10:39 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 06:10:39 +0100 Subject: [Haiku-commits] r29034 - in buildtools/trunk/gcc: . gcc gcc/config gcc/config/i386 gcc/ginclude intl libgcc libgomp libiberty libmudflap libssp libstdc++-v3 libstdc++-v3/libsupc++ Message-ID: <200901260510.n0Q5AdPt030853@sheep.berlios.de> Author: mmlr Date: 2009-01-26 06:09:46 +0100 (Mon, 26 Jan 2009) New Revision: 29034 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29034&view=rev Added: buildtools/trunk/gcc/gcc/config/haiku.h buildtools/trunk/gcc/gcc/config/i386/haiku.h buildtools/trunk/gcc/gcc/config/i386/t-haiku Modified: buildtools/trunk/gcc/config.guess buildtools/trunk/gcc/config.rpath buildtools/trunk/gcc/configure buildtools/trunk/gcc/gcc/Makefile.in buildtools/trunk/gcc/gcc/config.gcc buildtools/trunk/gcc/gcc/configure buildtools/trunk/gcc/gcc/configure.ac buildtools/trunk/gcc/gcc/crtstuff.c buildtools/trunk/gcc/gcc/defaults.h buildtools/trunk/gcc/gcc/ginclude/stdarg.h buildtools/trunk/gcc/gcc/ginclude/stddef.h buildtools/trunk/gcc/intl/loadmsgcat.c buildtools/trunk/gcc/libgcc/config.host buildtools/trunk/gcc/libgomp/configure buildtools/trunk/gcc/libiberty/make-relative-prefix.c buildtools/trunk/gcc/libmudflap/configure buildtools/trunk/gcc/libssp/configure buildtools/trunk/gcc/libstdc++-v3/configure buildtools/trunk/gcc/libstdc++-v3/crossconfig.m4 buildtools/trunk/gcc/libstdc++-v3/libsupc++/tinfo.cc buildtools/trunk/gcc/libtool.m4 buildtools/trunk/gcc/ltmain.sh Log: Applying Haiku compatibility. Modified: buildtools/trunk/gcc/config.guess =================================================================== --- buildtools/trunk/gcc/config.guess 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/config.guess 2009-01-26 05:09:46 UTC (rev 29034) @@ -1216,6 +1216,9 @@ BePC:BeOS:*:*) # BeOS running on Intel PC compatible. echo i586-pc-beos exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; SX-4:SUPER-UX:*:*) echo sx4-nec-superux${UNAME_RELEASE} exit ;; Modified: buildtools/trunk/gcc/config.rpath =================================================================== --- buildtools/trunk/gcc/config.rpath 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/config.rpath 2009-01-26 05:09:46 UTC (rev 29034) @@ -161,6 +161,8 @@ ;; netbsd*) ;; + haiku*) + ;; solaris* | sysv5*) if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then ld_shlibs=no Modified: buildtools/trunk/gcc/configure =================================================================== --- buildtools/trunk/gcc/configure 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/configure 2009-01-26 05:09:46 UTC (rev 29034) @@ -2044,6 +2044,9 @@ *-*-cygwin*) noconfigdirs="$noconfigdirs autoconf automake send-pr rcs guile perl" ;; + *-*-haiku*) + noconfigdirs="$noconfigdirs tk itcl libgui gdb" + ;; *-*-netbsd*) noconfigdirs="$noconfigdirs rcs" ;; @@ -2161,6 +2164,9 @@ ;; esac ;; + *-*-haiku) + noconfigdirs="$noconfigdirs target-libiberty" + ;; *-*-kaos*) # Remove unsupported stuff on all kaOS configurations. skipdirs="target-libiberty ${libgcj} target-libstdc++-v3 target-librx" @@ -2603,6 +2609,9 @@ ip2k-*-*) noconfigdirs="$noconfigdirs target-libiberty target-libstdc++-v3 ${libgcj}" ;; + *-*-haiku*) + noconfigdirs="$noconfigdirs gdb target-newlib target-libgloss ${libgcj}" + ;; *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu) noconfigdirs="$noconfigdirs target-newlib target-libgloss" ;; Modified: buildtools/trunk/gcc/gcc/Makefile.in =================================================================== --- buildtools/trunk/gcc/gcc/Makefile.in 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/gcc/Makefile.in 2009-01-26 05:09:46 UTC (rev 29034) @@ -3265,7 +3265,7 @@ $(genprogmd:%=build/gen%$(build_exeext)): $(BUILD_RTL) $(BUILD_ERRORS) # These programs need libs over and above what they get from the above list. -build/genautomata$(build_exeext) : BUILD_LIBS += -lm +#build/genautomata$(build_exeext) : BUILD_LIBS += -lm # These programs are not linked with the MD reader. build/gengenrtl$(build_exeext) : $(BUILD_ERRORS) Added: buildtools/trunk/gcc/gcc/config/haiku.h =================================================================== --- buildtools/trunk/gcc/gcc/config/haiku.h 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/gcc/config/haiku.h 2009-01-26 05:09:46 UTC (rev 29034) @@ -0,0 +1,172 @@ +/* Definitions of target machine for GCC. + Common Haiku definitions for all architectures. + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 + Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GCC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + + +/* Change debugging to Dwarf2. */ +#undef PREFERRED_DEBUGGING_TYPE +#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG + +#undef ASM_COMMENT_START +#define ASM_COMMENT_START " #" + +/* Output assembler code to FILE to increment profiler label # LABELNO + for profiling a function entry. */ + +#undef MCOUNT_NAME +#define MCOUNT_NAME "_mcount" + +#define TARGET_DECLSPEC 1 + +/* Haiku uses lots of multichars, so don't warn about them unless the + user explicitly asks for the warnings with -Wmultichar. Note that + CC1_SPEC is used for both cc1 and cc1plus. */ + +#undef CC1_SPEC +#define CC1_SPEC "%{!no-fpic:%{!fno-pic:%{!fno-pie:%{!fpie:%{!fPIC:%{!fPIE:-fpic}}}}}} %{!Wmultichar: -Wno-multichar} %(cc1_cpu) %{profile:-p}" + +#undef CC1PLUS_SPEC +#define CC1PLUS_SPEC "%{!Wctor-dtor-privacy:-Wno-ctor-dtor-privacy}" + +/* Provide start and end file specs appropriate to glibc. */ + +/* LIB_SPEC for Haiku */ +#undef LIB_SPEC +#define LIB_SPEC "-lroot" + +/* gcc runtime lib is built into libroot.so on Haiku */ +/* ??? This is gonna be lovely when the next release of gcc has + some new symbol in, so that links start failing. */ +#undef LIBGCC_SPEC +#define LIBGCC_SPEC "" + +/* Note: There currently is no mcount.o on Haiku. In the BeOS specification + it was i386-mcount.o, but that doesn't exist in gcc 2.95.3 either. */ + +#undef STARTFILE_SPEC +#define STARTFILE_SPEC "crti.o%s crtbegin.o%s %{!nostart:start_dyn.o%s} init_term_dyn.o%s %{p:mcount.o%s}" + +#undef ENDFILE_SPEC +#define ENDFILE_SPEC "crtend.o%s crtn.o%s" + +/* For native compiler, use standard Haiku include file search paths + rooted in /boot/develop/headers. For a cross compiler, don't + expect the host to use the Haiku directory scheme, and instead look + for the Haiku include files relative to TOOL_INCLUDE_DIR. Yes, we + use ANSI string concatenation here (FIXME) */ + +#ifndef CROSS_COMPILE +#undef INCLUDE_DEFAULTS +#define INCLUDE_DEFAULTS \ + { \ + { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 },\ + { GCC_INCLUDE_DIR, "GCC", 0, 0 },\ + { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1}, \ + { "/boot/develop/headers/os/add-ons/graphics", 0, 0, 0 },\ + { "/boot/develop/headers/os/devel", 0, 0, 0 },\ + { "/boot/develop/headers/os/translation", 0, 0, 0 },\ + { "/boot/develop/headers/os/mail", 0, 0, 0 },\ + { "/boot/develop/headers/os/drivers", 0, 0, 0 },\ + { "/boot/develop/headers/os/opengl", 0, 0, 0 },\ + { "/boot/develop/headers/os/game", 0, 0, 0 },\ + { "/boot/develop/headers/os/support", 0, 0, 0 },\ + { "/boot/develop/headers/os/storage", 0, 0, 0 },\ + { "/boot/develop/headers/os/kernel", 0, 0, 0 },\ + { "/boot/develop/headers/os/net", 0, 0, 0 },\ + { "/boot/develop/headers/os/midi", 0, 0, 0 },\ + { "/boot/develop/headers/os/midi2", 0, 0, 0 },\ + { "/boot/develop/headers/os/media", 0, 0, 0 },\ + { "/boot/develop/headers/os/interface", 0, 0, 0 },\ + { "/boot/develop/headers/os/device", 0, 0, 0 },\ + { "/boot/develop/headers/os/app", 0, 0, 0 },\ + { "/boot/develop/headers/os/precompiled", 0, 0, 0 },\ + { "/boot/develop/headers/os/add-ons/input_server", 0, 0, 0 },\ + { "/boot/develop/headers/os/add-ons/net_server", 0, 0, 0 },\ + { "/boot/develop/headers/os/add-ons/screen_saver", 0, 0, 0 },\ + { "/boot/develop/headers/os/add-ons/tracker", 0, 0, 0 },\ + { "/boot/develop/headers/os/be_apps/Deskbar", 0, 0, 0 },\ + { "/boot/develop/headers/os/be_apps/NetPositive", 0, 0, 0 },\ + { "/boot/develop/headers/os/be_apps/Tracker", 0, 0, 0 },\ + { "/boot/develop/headers/os/drivers/tty", 0, 0, 0 },\ + { "/boot/develop/headers/os/net/netinet", 0, 0, 0 },\ + { "/boot/develop/headers/os/storage", 0, 0, 0 },\ + { "/boot/develop/headers/os", 0, 0, 0 },\ + { "/boot/develop/headers/gnu", 0, 0, 0 },\ + { "/boot/develop/headers/cpp", 0, 0, 0 },\ + { "/boot/develop/headers/bsd", 0, 0, 0 },\ + { "/boot/develop/headers/posix", 0, 0, 0 },\ + { "/boot/develop/headers", 0, 0, 0 }, \ + { 0, 0, 0, 0 } \ + } +#else /* CROSS_COMPILE */ +#undef INCLUDE_DEFAULTS +#define INCLUDE_DEFAULTS \ + { \ + { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 },\ + { GCC_INCLUDE_DIR, "GCC", 0, 0 },\ + { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1}, \ + { CROSS_INCLUDE_DIR "/os/add-ons/graphics", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/devel", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/translation", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/mail", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/drivers", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/opengl", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/game", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/support", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/storage", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/kernel", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/net", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/midi", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/midi2", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/media", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/interface", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/device", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/app", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/precompiled", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/add-ons/input_server", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/add-ons/net_server", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/add-ons/screen_saver", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/add-ons/tracker", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/be_apps/Deskbar", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/be_apps/NetPositive", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/be_apps/Tracker", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/drivers/tty", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/net/netinet", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/storage", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/gnu", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/cpp", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/bsd", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/posix", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR , 0, 0, 0 }, \ + { 0, 0, 0, 0 } \ + } +#endif + +/* Whee. LIBRARY_PATH is Be's LD_LIBRARY_PATH, which of course will + cause nasty problems if we override it. */ +#define LIBRARY_PATH_ENV "BELIBRARIES" + +/* Haiku doesn't have a separate math library. */ +#define MATH_LIBRARY "" + +/* Haiku headers are C++-aware (and often use C++). */ +#define NO_IMPLICIT_EXTERN_C Added: buildtools/trunk/gcc/gcc/config/i386/haiku.h =================================================================== --- buildtools/trunk/gcc/gcc/config/i386/haiku.h 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/gcc/config/i386/haiku.h 2009-01-26 05:09:46 UTC (rev 29034) @@ -0,0 +1,94 @@ +/* Definitions for Intel x86 running Haiku + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004 + Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GCC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + + +#define TARGET_VERSION fprintf (stderr, " (i386 Haiku/ELF)"); + +/* The SVR4 ABI for the i386 says that records and unions are returned + in memory. */ +#undef DEFAULT_PCC_STRUCT_RETURN +#define DEFAULT_PCC_STRUCT_RETURN 1 + +#undef DBX_REGISTER_NUMBER +#define DBX_REGISTER_NUMBER(n) \ + (TARGET_64BIT ? dbx64_register_map[n] : svr4_dbx_register_map[n]) + +#undef SIZE_TYPE +#define SIZE_TYPE "long unsigned int" + +#undef PTRDIFF_TYPE +#define PTRDIFF_TYPE "long int" + +#undef WCHAR_TYPE +#define WCHAR_TYPE "short unsigned int" + +#undef WCHAR_TYPE_SIZE +#define WCHAR_TYPE_SIZE 16 + +#define TARGET_OS_CPP_BUILTINS() \ + do \ + { \ + builtin_define ("__BEOS__"); \ + builtin_define ("__HAIKU__"); \ + builtin_define ("__INTEL__"); \ + builtin_define ("_X86_"); \ + builtin_define ("__stdcall=__attribute__((__stdcall__))"); \ + builtin_define ("__cdecl=__attribute__((__cdecl__))"); \ + builtin_assert ("system=haiku"); \ + /* Haiku apparently doesn't support merging of symbols across shared \ + object boundaries. Hence we need to explicitly specify that \ + type_infos are not merged, so that they get compared by name \ + instead of by pointer. */ \ + builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \ + builtin_define ("__GXX_TYPEINFO_EQUALITY_INLINE=0"); \ + } \ + while (0) + +/* Provide a LINK_SPEC appropriate for Haiku. Here we provide support + for the special GCC options -static and -shared, which allow us to + link things in one of these three modes by applying the appropriate + combinations of options at link-time. */ + +/* If ELF is the default format, we should not use /lib/elf. */ + +#undef LINK_SPEC +#define LINK_SPEC "%{!o*:-o %b} -m elf_i386_haiku -shared -no-undefined -Bsymbolic %{nostart:-e 0}" + +/* A C statement (sans semicolon) to output to the stdio stream + FILE the assembler definition of uninitialized global DECL named + NAME whose size is SIZE bytes and alignment is ALIGN bytes. + Try to use asm_output_aligned_bss to implement this macro. */ + +#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ + asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN) + +/* A C statement to output to the stdio stream FILE an assembler + command to advance the location counter to a multiple of 1<= 2 +#if !(defined(__BEOS__) || defined(__HAIKU__)) #include +#endif /* uClibc pretends to be glibc 2.2 and DT_CONFIG is defined in its link.h. But it doesn't use PT_GNU_EH_FRAME ELF segment currently. */ # if !defined(__UCLIBC__) \ @@ -148,7 +150,9 @@ extern void __do_global_ctors_1 (void); /* Likewise for _Jv_RegisterClasses. */ +#ifdef JCR_SECTION_NAME extern void _Jv_RegisterClasses (void *) TARGET_ATTRIBUTE_WEAK; +#endif #ifdef OBJECT_FORMAT_ELF Modified: buildtools/trunk/gcc/gcc/defaults.h =================================================================== --- buildtools/trunk/gcc/gcc/defaults.h 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/gcc/defaults.h 2009-01-26 05:09:46 UTC (rev 29034) @@ -360,9 +360,13 @@ at program start-up time. */ #if defined (TARGET_ASM_NAMED_SECTION) && SUPPORTS_WEAK #ifndef JCR_SECTION_NAME +/* Hack to remove _Jv crap on BeOS. i know it should be made somehow through + config files, but i don't know how (in which file ;) */ +#if !defined(__BEOS__) && !defined(__HAIKU__) #define JCR_SECTION_NAME ".jcr" #endif #endif +#endif /* This decision to use a .jcr section can be overridden by defining USE_JCR_SECTION to 0 in target file. This is necessary if target Modified: buildtools/trunk/gcc/gcc/ginclude/stdarg.h =================================================================== --- buildtools/trunk/gcc/gcc/ginclude/stdarg.h 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/gcc/ginclude/stdarg.h 2009-01-26 05:09:46 UTC (rev 29034) @@ -100,7 +100,7 @@ #ifndef _VA_LIST /* The macro _VA_LIST_T_H is used in the Bull dpx2 */ #ifndef _VA_LIST_T_H -/* The macro __va_list__ is used by BeOS. */ +/* The macro __va_list__ is used by BeOS and Haiku. */ #ifndef __va_list__ typedef __gnuc_va_list va_list; #endif /* not __va_list__ */ Modified: buildtools/trunk/gcc/gcc/ginclude/stddef.h =================================================================== --- buildtools/trunk/gcc/gcc/ginclude/stddef.h 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/gcc/ginclude/stddef.h 2009-01-26 05:09:46 UTC (rev 29034) @@ -169,7 +169,7 @@ /* Define this type if we are doing the whole job, or if we want this type in particular. */ #if defined (_STDDEF_H) || defined (__need_size_t) -#ifndef __size_t__ /* BeOS */ +#ifndef __size_t__ /* BeOS, Haiku */ #ifndef __SIZE_T__ /* Cray Unicos/Mk */ #ifndef _SIZE_T /* in case has defined it. */ #ifndef _SYS_SIZE_T_H @@ -186,7 +186,7 @@ #ifndef _GCC_SIZE_T #ifndef _SIZET_ #ifndef __size_t -#define __size_t__ /* BeOS */ +#define __size_t__ /* BeOS, Haiku */ #define __SIZE_T__ /* Cray Unicos/Mk */ #define _SIZE_T #define _SYS_SIZE_T_H @@ -212,9 +212,9 @@ #endif #if !(defined (__GNUG__) && defined (size_t)) typedef __SIZE_TYPE__ size_t; -#ifdef __BEOS__ +#if defined(__BEOS__) || defined(__HAIKU__) typedef long ssize_t; -#endif /* __BEOS__ */ +#endif /* __BEOS__ || __HAIKU__ */ #endif /* !(defined (__GNUG__) && defined (size_t)) */ #endif /* __size_t */ #endif /* _SIZET_ */ @@ -245,7 +245,7 @@ /* Define this type if we are doing the whole job, or if we want this type in particular. */ #if defined (_STDDEF_H) || defined (__need_wchar_t) -#ifndef __wchar_t__ /* BeOS */ +#ifndef __wchar_t__ /* BeOS, Haiku */ #ifndef __WCHAR_T__ /* Cray Unicos/Mk */ #ifndef _WCHAR_T #ifndef _T_WCHAR_ @@ -262,7 +262,7 @@ #ifndef ___int_wchar_t_h #ifndef __INT_WCHAR_T_H #ifndef _GCC_WCHAR_T -#define __wchar_t__ /* BeOS */ +#define __wchar_t__ /* BeOS, Haiku */ #define __WCHAR_T__ /* Cray Unicos/Mk */ #define _WCHAR_T #define _T_WCHAR_ Modified: buildtools/trunk/gcc/intl/loadmsgcat.c =================================================================== --- buildtools/trunk/gcc/intl/loadmsgcat.c 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/intl/loadmsgcat.c 2009-01-26 05:09:46 UTC (rev 29034) @@ -480,8 +480,8 @@ # define O_BINARY _O_BINARY # define O_TEXT _O_TEXT #endif -#ifdef __BEOS__ - /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */ +#if defined(__BEOS__) || defined(__HAIKU__) + /* BeOS 5 and Haiku R1 have O_BINARY and O_TEXT, but they have no effect. */ # undef O_BINARY # undef O_TEXT #endif Modified: buildtools/trunk/gcc/libgcc/config.host =================================================================== --- buildtools/trunk/gcc/libgcc/config.host 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/libgcc/config.host 2009-01-26 05:09:46 UTC (rev 29034) @@ -313,6 +313,8 @@ ;; x86_64-*-freebsd*) ;; +i[34567]86-*-haikuelf* | i[34567]86-*-haiku*) + ;; i[34567]86-*-netbsdelf*) ;; i[34567]86-*-netbsd*) Modified: buildtools/trunk/gcc/libgomp/configure =================================================================== --- buildtools/trunk/gcc/libgomp/configure 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/libgomp/configure 2009-01-26 05:09:46 UTC (rev 29034) @@ -6443,7 +6443,7 @@ fi ;; - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + beos* | haiku* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; @@ -7079,6 +7079,11 @@ fi ;; + haiku*) + allow_undefined_flag=unsupported + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + ;; + interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no @@ -8543,6 +8548,12 @@ hardcode_into_libs=yes ;; +haiku*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. Modified: buildtools/trunk/gcc/libiberty/make-relative-prefix.c =================================================================== --- buildtools/trunk/gcc/libiberty/make-relative-prefix.c 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/libiberty/make-relative-prefix.c 2009-01-26 05:09:46 UTC (rev 29034) @@ -57,6 +57,9 @@ #ifdef HAVE_UNISTD_H #include #endif +#ifdef HAVE_SYS_STAT_H +#include +#endif #include @@ -254,6 +257,7 @@ { if (*endp == PATH_SEPARATOR || *endp == 0) { + struct stat st; if (endp == startp) { nstore[0] = '.'; @@ -271,10 +275,11 @@ else nstore[endp - startp] = 0; } + strcat (nstore, progname); - if (! access (nstore, X_OK) + if ((! stat(nstore, &st) && S_ISREG (st.st_mode) && ! access (nstore, X_OK)) #ifdef HAVE_HOST_EXECUTABLE_SUFFIX - || ! access (strcat (nstore, HOST_EXECUTABLE_SUFFIX), X_OK) + || (! stat (strcat (nstore, HOST_EXECUTABLE_SUFFIX)) && S_ISREG (st.st_mode) && ! access (nstore, X_OK)) #endif ) { Modified: buildtools/trunk/gcc/libmudflap/configure =================================================================== --- buildtools/trunk/gcc/libmudflap/configure 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/libmudflap/configure 2009-01-26 05:09:46 UTC (rev 29034) @@ -7585,7 +7585,7 @@ fi ;; - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + beos* | haiku* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; @@ -8221,6 +8221,11 @@ fi ;; + haiku*) + allow_undefined_flag=unsupported + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + ;; + interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no @@ -9685,6 +9690,12 @@ hardcode_into_libs=yes ;; +haiku*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. Modified: buildtools/trunk/gcc/libssp/configure =================================================================== --- buildtools/trunk/gcc/libssp/configure 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/libssp/configure 2009-01-26 05:09:46 UTC (rev 29034) @@ -6567,7 +6567,7 @@ fi ;; - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + beos* | haiku* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; @@ -7203,6 +7203,11 @@ fi ;; + haiku*) + allow_undefined_flag=unsupported + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + ;; + interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no @@ -8682,6 +8687,12 @@ hardcode_into_libs=yes ;; +haiku*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. Modified: buildtools/trunk/gcc/libstdc++-v3/configure =================================================================== --- buildtools/trunk/gcc/libstdc++-v3/configure 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/libstdc++-v3/configure 2009-01-26 05:09:46 UTC (rev 29034) @@ -7221,7 +7221,7 @@ fi ;; - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + beos* | haiku* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; @@ -7857,6 +7857,11 @@ fi ;; + haiku*) + allow_undefined_flag=unsupported + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + ;; + interix[3-9]*) hardcode_direct=no hardcode_shlibpath_var=no @@ -9336,6 +9341,12 @@ hardcode_into_libs=yes ;; +haiku*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. @@ -11491,6 +11502,11 @@ gnu*) ;; + haiku*) + allow_undefined_flag=unsupported + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + ;; + hpux9*) hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' hardcode_libdir_separator_CXX=: @@ -12323,7 +12339,7 @@ lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' fi ;; - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + beos* | haiku* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32*) @@ -13250,6 +13266,12 @@ hardcode_into_libs=yes ;; +haiku*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. Modified: buildtools/trunk/gcc/libstdc++-v3/crossconfig.m4 =================================================================== --- buildtools/trunk/gcc/libstdc++-v3/crossconfig.m4 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/libstdc++-v3/crossconfig.m4 2009-01-26 05:09:46 UTC (rev 29034) @@ -170,6 +170,48 @@ AC_DEFINE(HAVE_ISNANL) fi ;; + + *-haiku*) + AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ + machine/endian.h machine/param.h sys/machine.h sys/types.h \ + fp.h float.h endian.h inttypes.h locale.h float.h stdint.h]) + SECTION_FLAGS='-ffunction-sections -fdata-sections' + AC_SUBST(SECTION_FLAGS) + + AC_DEFINE(HAVE_INT64_T) + + AC_DEFINE(HAVE_ACOSF) + AC_DEFINE(HAVE_ASINF) + AC_DEFINE(HAVE_ATANF) + AC_DEFINE(HAVE_ATAN2F) + AC_DEFINE(HAVE_CEILF) + AC_DEFINE(HAVE_COPYSIGN) + AC_DEFINE(HAVE_COPYSIGNF) + AC_DEFINE(HAVE_COSF) + AC_DEFINE(HAVE_COSHF) + AC_DEFINE(HAVE_EXPF) + AC_DEFINE(HAVE_FABSF) + AC_DEFINE(HAVE_FINITE) + AC_DEFINE(HAVE_FINITEF) + AC_DEFINE(HAVE_FLOORF) + AC_DEFINE(HAVE_FMODF) + AC_DEFINE(HAVE_FREXPF) + AC_DEFINE(HAVE_HYPOT) + AC_DEFINE(HAVE_HYPOTF) + AC_DEFINE(HAVE_ISINF) + AC_DEFINE(HAVE_ISINFF) + AC_DEFINE(HAVE_ISNAN) + AC_DEFINE(HAVE_ISNANF) + AC_DEFINE(HAVE_LOGF) + AC_DEFINE(HAVE_LOG10F) + AC_DEFINE(HAVE_MODFF) + AC_DEFINE(HAVE_SINF) + AC_DEFINE(HAVE_SINHF) + AC_DEFINE(HAVE_SQRTF) + AC_DEFINE(HAVE_TANF) + AC_DEFINE(HAVE_TANHF) + ;; + *-hpux*) AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \ machine/endian.h machine/param.h sys/machine.h sys/types.h \ Modified: buildtools/trunk/gcc/libstdc++-v3/libsupc++/tinfo.cc =================================================================== --- buildtools/trunk/gcc/libstdc++-v3/libsupc++/tinfo.cc 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/libstdc++-v3/libsupc++/tinfo.cc 2009-01-26 05:09:46 UTC (rev 29034) @@ -37,6 +37,15 @@ ~type_info () { } +#ifdef __HAIKU__ +#ifndef __GXX_MERGED_TYPEINFO_NAMES +#define __GXX_MERGED_TYPEINFO_NAMES 0 +#endif +#ifndef __GXX_TYPEINFO_EQUALITY_INLINE +#define __GXX_TYPEINFO_EQUALITY_INLINE 0 +#endif +#endif + #if !__GXX_TYPEINFO_EQUALITY_INLINE // We can't rely on common symbols being shared between shared objects. Modified: buildtools/trunk/gcc/libtool.m4 =================================================================== --- buildtools/trunk/gcc/libtool.m4 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/libtool.m4 2009-01-26 05:09:46 UTC (rev 29034) @@ -2211,6 +2211,12 @@ hardcode_into_libs=yes ;; +haiku*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. @@ -3110,7 +3116,7 @@ [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in -*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) +*-*-beos* | *-*-haiku* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) @@ -3411,7 +3417,7 @@ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' fi ;; - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + beos* | haiku* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; mingw* | cygwin* | os2* | pw32*) @@ -3707,7 +3713,7 @@ fi ;; - beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + beos* | haiku* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;; @@ -4163,6 +4169,11 @@ fi ;; + haiku*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + ;; + interix[[3-9]]*) _LT_TAGVAR(hardcode_direct, $1)=no _LT_TAGVAR(hardcode_shlibpath_var, $1)=no Modified: buildtools/trunk/gcc/ltmain.sh =================================================================== --- buildtools/trunk/gcc/ltmain.sh 2009-01-26 05:03:14 UTC (rev 29033) +++ buildtools/trunk/gcc/ltmain.sh 2009-01-26 05:09:46 UTC (rev 29034) @@ -3073,7 +3073,7 @@ -l*) if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;; @@ -4996,7 +4996,7 @@ if test "$build_libtool_libs" = yes; then if test -n "$rpath"; then case $host in - *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*) + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012]) From mmlr at mail.berlios.de Mon Jan 26 06:15:44 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 06:15:44 +0100 Subject: [Haiku-commits] r29035 - haiku/trunk/build/scripts Message-ID: <200901260515.n0Q5Fi3X031490@sheep.berlios.de> Author: mmlr Date: 2009-01-26 06:15:41 +0100 (Mon, 26 Jan 2009) New Revision: 29035 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29035&view=rev Modified: haiku/trunk/build/scripts/build_cross_tools_gcc4 Log: Updating config for current GCC4 cross compiler. Modified: haiku/trunk/build/scripts/build_cross_tools_gcc4 =================================================================== --- haiku/trunk/build/scripts/build_cross_tools_gcc4 2009-01-26 05:09:46 UTC (rev 29034) +++ haiku/trunk/build/scripts/build_cross_tools_gcc4 2009-01-26 05:15:41 UTC (rev 29035) @@ -89,7 +89,7 @@ cd $binutilsObjDir CFLAGS="-O2" CXXFLAGS="-O2" $binutilsSourceDir/configure \ --prefix=$installDir --target=$haikuMachine --disable-nls \ - --disable-shared || exit 1 + --disable-shared --disable-multilib || exit 1 $MAKE || exit 1 $MAKE install || exit 1 @@ -120,8 +120,8 @@ cd $gccObjDir CFLAGS="-O2" CXXFLAGS="-O2" $gccSourceDir/configure --prefix=$installDir \ --target=$haikuMachine --disable-nls --disable-shared \ - --enable-languages=c,c++ --with-headers=$tmpIncludeDir \ - --with-libs=$tmpLibDir || exit 1 + --disable-multilib --enable-languages=c,c++ \ + --with-headers=$tmpIncludeDir --with-libs=$tmpLibDir || exit 1 # make gcc $MAKE || { From mmlr at mail.berlios.de Mon Jan 26 06:30:05 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 06:30:05 +0100 Subject: [Haiku-commits] r29036 - buildtools/trunk/binutils/ld/emulparams Message-ID: <200901260530.n0Q5U50d032337@sheep.berlios.de> Author: mmlr Date: 2009-01-26 06:29:57 +0100 (Mon, 26 Jan 2009) New Revision: 29036 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29036&view=rev Added: buildtools/trunk/binutils/ld/emulparams/armelf_haiku.sh buildtools/trunk/binutils/ld/emulparams/elf_ppc_haiku.sh Log: Adding arm and ppc config files previously missed. Added: buildtools/trunk/binutils/ld/emulparams/armelf_haiku.sh =================================================================== --- buildtools/trunk/binutils/ld/emulparams/armelf_haiku.sh 2009-01-26 05:15:41 UTC (rev 29035) +++ buildtools/trunk/binutils/ld/emulparams/armelf_haiku.sh 2009-01-26 05:29:57 UTC (rev 29036) @@ -0,0 +1,24 @@ +ARCH=arm +SCRIPT_NAME=elf +OUTPUT_FORMAT="elf32-littlearm" +BIG_OUTPUT_FORMAT="elf32-bigarm" +LITTLE_OUTPUT_FORMAT="elf32-littlearm" +MAXPAGESIZE=0x8000 +COMMONPAGESIZE=0x1000 +TEMPLATE_NAME=elf32 +EXTRA_EM_FILE=armelf +GENERATE_SHLIB_SCRIPT=yes +GENERATE_PIE_SCRIPT=yes + +DATA_START_SYMBOLS='__data_start = . ;'; +OTHER_TEXT_SECTIONS='*(.glue_7t) *(.glue_7)' +OTHER_BSS_SYMBOLS='__bss_start__ = .;' +OTHER_BSS_END_SYMBOLS='_bss_end__ = . ; __bss_end__ = . ;' +OTHER_END_SYMBOLS='__end__ = . ;' +OTHER_SECTIONS='.note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) }' + +TEXT_START_ADDR=0x00008000 +TARGET2_TYPE=got-rel + +# ARM does not support .s* sections. +NO_SMALL_DATA=yes Added: buildtools/trunk/binutils/ld/emulparams/elf_ppc_haiku.sh =================================================================== --- buildtools/trunk/binutils/ld/emulparams/elf_ppc_haiku.sh 2009-01-26 05:15:41 UTC (rev 29035) +++ buildtools/trunk/binutils/ld/emulparams/elf_ppc_haiku.sh 2009-01-26 05:29:57 UTC (rev 29036) @@ -0,0 +1,20 @@ +SCRIPT_NAME=elf +OUTPUT_FORMAT="elf32-powerpc" +TEXT_START_ADDR=0x200000 +NONPAGED_TEXT_START_ADDR=0x200000 +MAXPAGESIZE=0x1000 +ARCH=powerpc +MACHINE= +NOP=0x60000000 +TEMPLATE_NAME=elf32 +GENERATE_SHLIB_SCRIPT=yes +BSS_PLT= +OTHER_RELRO_SECTIONS=" + .fixup ${RELOCATING-0} : { *(.fixup) } + .got1 ${RELOCATING-0} : { *(.got1) } + .got2 ${RELOCATING-0} : { *(.got2) } +" +OTHER_GOT_RELOC_SECTIONS=" + .rela.got1 ${RELOCATING-0} : { *(.rela.got1) } + .rela.got2 ${RELOCATING-0} : { *(.rela.got2) } +" From mmlr at mail.berlios.de Mon Jan 26 06:48:44 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 06:48:44 +0100 Subject: [Haiku-commits] r29037 - in buildtools/vendor: . gmp gmp/current gmp/current/cxx gmp/current/demos gmp/current/demos/calc gmp/current/demos/expr gmp/current/demos/perl gmp/current/demos/perl/GMP gmp/current/doc gmp/current/macos gmp/current/mpbsd gmp/current/mpf gmp/current/mpn gmp/current/mpn/a29k gmp/current/mpn/alpha gmp/current/mpn/alpha/ev5 gmp/current/mpn/alpha/ev6 gmp/current/mpn/alpha/ev6/nails gmp/current/mpn/alpha/ev67 gmp/current/mpn/arm gmp/current/mpn/clipper gmp/current/mpn/cray gmp/current/mpn/cray/cfp gmp/current/mpn/cray/ieee gmp/current/mpn/generic gmp/current/mpn/i960 gmp/current/mpn/ia64 gmp/current/mpn/lisp gmp/current/mpn/m68k gmp/current/mpn/m68k/mc68020 gmp/current/mpn/m88k gmp/current/mpn/m88k/mc88110 gmp/current/mpn/mips32 gmp/current/mpn/mips64 gmp/current/mpn/ns32k gmp/current/mpn/pa32 gmp/current/mpn/pa32/hppa1_1 gmp/current/mpn/pa32/hppa1_1/pa7100 gmp/current/mpn/pa32/hppa2_0 gmp/current/mpn/pa64 gmp/current/mpn/power gmp/current/mpn/powerpc32 gmp/curr! ent/mpn/powerpc32/750 gmp/current/mpn/powerpc32/vmx gmp/current/mpn/powerpc64 gmp/current/mpn/powerpc64/mode32 gmp/current/mpn/powerpc64/mode64 gmp/current/mpn/powerpc64/vmx gmp/current/mpn/pyr gmp/current/mpn/s390 gmp/current/mpn/sh gmp/current/mpn/sh/sh2 gmp/current/mpn/sparc32 gmp/current/mpn/sparc32/v8 gmp/current/mpn/sparc32/v8/supersparc gmp/current/mpn/sparc32/v9 gmp/current/mpn/sparc64 gmp/current/mpn/thumb gmp/current/mpn/vax gmp/current/mpn/x86 gmp/current/mpn/x86/fat gmp/current/mpn/x86/i486 gmp/current/mpn/x86/k6 gmp/current/mpn/x86/k6/k62mmx gmp/current/mpn/x86/k6/mmx gmp/current/mpn/x86/k7 gmp/current/mpn/x86/k7/mmx gmp/current/mpn/x86/p6 gmp/current/mpn/x86/p6/mmx gmp/current/mpn/x86/p6/p3mmx gmp/current/mpn/x86/pentium gmp/current/mpn/x86/pentium/mmx gmp/current/mpn/x86/pentium4 gmp/current/mpn/x86/pentium4/mmx gmp/current/mpn/x86/pentium4/sse2 gmp/current/mpn/x86_64 gmp/current/mpn/z8000 gmp/current/mpn/z8000x gmp/current/mpq gmp/current/mpz gmp/current/pri! ntf gmp/current/scanf gmp/current/tests gmp/current/tests/cxx ! gmp/curr Message-ID: <200901260548.n0Q5mime011006@sheep.berlios.de> Author: mmlr Date: 2009-01-26 06:42:01 +0100 (Mon, 26 Jan 2009) New Revision: 29037 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29037&view=rev Added: buildtools/vendor/gmp/ buildtools/vendor/gmp/current/ buildtools/vendor/gmp/current/.gdbinit buildtools/vendor/gmp/current/AUTHORS buildtools/vendor/gmp/current/COPYING buildtools/vendor/gmp/current/COPYING.LIB buildtools/vendor/gmp/current/ChangeLog buildtools/vendor/gmp/current/INSTALL buildtools/vendor/gmp/current/INSTALL.autoconf buildtools/vendor/gmp/current/Makefile.am buildtools/vendor/gmp/current/Makefile.in buildtools/vendor/gmp/current/NEWS buildtools/vendor/gmp/current/README buildtools/vendor/gmp/current/acinclude.m4 buildtools/vendor/gmp/current/aclocal.m4 buildtools/vendor/gmp/current/ansi2knr.1 buildtools/vendor/gmp/current/ansi2knr.c buildtools/vendor/gmp/current/assert.c buildtools/vendor/gmp/current/compat.c buildtools/vendor/gmp/current/config.guess buildtools/vendor/gmp/current/config.in buildtools/vendor/gmp/current/config.sub buildtools/vendor/gmp/current/configfsf.guess buildtools/vendor/gmp/current/configfsf.sub buildtools/vendor/gmp/current/configure buildtools/vendor/gmp/current/configure.in buildtools/vendor/gmp/current/cxx/ buildtools/vendor/gmp/current/cxx/Makefile.am buildtools/vendor/gmp/current/cxx/Makefile.in buildtools/vendor/gmp/current/cxx/dummy.cc buildtools/vendor/gmp/current/cxx/isfuns.cc buildtools/vendor/gmp/current/cxx/ismpf.cc buildtools/vendor/gmp/current/cxx/ismpq.cc buildtools/vendor/gmp/current/cxx/ismpz.cc buildtools/vendor/gmp/current/cxx/ismpznw.cc buildtools/vendor/gmp/current/cxx/osdoprnti.cc buildtools/vendor/gmp/current/cxx/osfuns.cc buildtools/vendor/gmp/current/cxx/osmpf.cc buildtools/vendor/gmp/current/cxx/osmpq.cc buildtools/vendor/gmp/current/cxx/osmpz.cc buildtools/vendor/gmp/current/demos/ buildtools/vendor/gmp/current/demos/Makefile.am buildtools/vendor/gmp/current/demos/Makefile.in buildtools/vendor/gmp/current/demos/calc/ buildtools/vendor/gmp/current/demos/calc/Makefile.am buildtools/vendor/gmp/current/demos/calc/Makefile.in buildtools/vendor/gmp/current/demos/calc/README buildtools/vendor/gmp/current/demos/calc/calc-common.h buildtools/vendor/gmp/current/demos/calc/calc-config-h.in buildtools/vendor/gmp/current/demos/calc/calc.c buildtools/vendor/gmp/current/demos/calc/calc.h buildtools/vendor/gmp/current/demos/calc/calc.y buildtools/vendor/gmp/current/demos/calc/calclex.c buildtools/vendor/gmp/current/demos/calc/calclex.l buildtools/vendor/gmp/current/demos/calc/calcread.c buildtools/vendor/gmp/current/demos/expr/ buildtools/vendor/gmp/current/demos/expr/Makefile.am buildtools/vendor/gmp/current/demos/expr/Makefile.in buildtools/vendor/gmp/current/demos/expr/README buildtools/vendor/gmp/current/demos/expr/expr-impl.h buildtools/vendor/gmp/current/demos/expr/expr.c buildtools/vendor/gmp/current/demos/expr/expr.h buildtools/vendor/gmp/current/demos/expr/exprf.c buildtools/vendor/gmp/current/demos/expr/exprfa.c buildtools/vendor/gmp/current/demos/expr/exprq.c buildtools/vendor/gmp/current/demos/expr/exprqa.c buildtools/vendor/gmp/current/demos/expr/exprv.c buildtools/vendor/gmp/current/demos/expr/exprz.c buildtools/vendor/gmp/current/demos/expr/exprza.c buildtools/vendor/gmp/current/demos/expr/run-expr.c buildtools/vendor/gmp/current/demos/expr/t-expr.c buildtools/vendor/gmp/current/demos/factorize.c buildtools/vendor/gmp/current/demos/isprime.c buildtools/vendor/gmp/current/demos/perl/ buildtools/vendor/gmp/current/demos/perl/GMP.pm buildtools/vendor/gmp/current/demos/perl/GMP.xs buildtools/vendor/gmp/current/demos/perl/GMP/ buildtools/vendor/gmp/current/demos/perl/GMP/Mpf.pm buildtools/vendor/gmp/current/demos/perl/GMP/Mpq.pm buildtools/vendor/gmp/current/demos/perl/GMP/Mpz.pm buildtools/vendor/gmp/current/demos/perl/GMP/Rand.pm buildtools/vendor/gmp/current/demos/perl/INSTALL buildtools/vendor/gmp/current/demos/perl/Makefile.PL buildtools/vendor/gmp/current/demos/perl/sample.pl buildtools/vendor/gmp/current/demos/perl/test.pl buildtools/vendor/gmp/current/demos/perl/test2.pl buildtools/vendor/gmp/current/demos/perl/typemap buildtools/vendor/gmp/current/demos/pexpr-config-h.in buildtools/vendor/gmp/current/demos/pexpr.c buildtools/vendor/gmp/current/demos/primes.c buildtools/vendor/gmp/current/demos/qcn.c buildtools/vendor/gmp/current/doc/ buildtools/vendor/gmp/current/doc/Makefile.am buildtools/vendor/gmp/current/doc/Makefile.in buildtools/vendor/gmp/current/doc/fdl.texi buildtools/vendor/gmp/current/doc/mdate-sh buildtools/vendor/gmp/current/doc/stamp-vti buildtools/vendor/gmp/current/doc/texinfo.tex buildtools/vendor/gmp/current/doc/version.texi buildtools/vendor/gmp/current/dumbmp.c buildtools/vendor/gmp/current/errno.c buildtools/vendor/gmp/current/extract-dbl.c buildtools/vendor/gmp/current/gen-bases.c buildtools/vendor/gmp/current/gen-fac_ui.c buildtools/vendor/gmp/current/gen-fib.c buildtools/vendor/gmp/current/gen-psqr.c buildtools/vendor/gmp/current/gmp-h.in buildtools/vendor/gmp/current/gmp-impl.h buildtools/vendor/gmp/current/gmpxx.h buildtools/vendor/gmp/current/install-sh buildtools/vendor/gmp/current/invalid.c buildtools/vendor/gmp/current/libmp.sym buildtools/vendor/gmp/current/longlong.h buildtools/vendor/gmp/current/ltmain.sh buildtools/vendor/gmp/current/macos/ buildtools/vendor/gmp/current/macos/Makefile.in buildtools/vendor/gmp/current/macos/README buildtools/vendor/gmp/current/macos/configure buildtools/vendor/gmp/current/macos/unix2mac buildtools/vendor/gmp/current/memory.c buildtools/vendor/gmp/current/missing buildtools/vendor/gmp/current/mp-h.in buildtools/vendor/gmp/current/mp_bpl.c buildtools/vendor/gmp/current/mp_clz_tab.c buildtools/vendor/gmp/current/mp_dv_tab.c buildtools/vendor/gmp/current/mp_get_fns.c buildtools/vendor/gmp/current/mp_minv_tab.c buildtools/vendor/gmp/current/mp_set_fns.c buildtools/vendor/gmp/current/mpbsd/ buildtools/vendor/gmp/current/mpbsd/Makefile.am buildtools/vendor/gmp/current/mpbsd/Makefile.in buildtools/vendor/gmp/current/mpbsd/itom.c buildtools/vendor/gmp/current/mpbsd/mfree.c buildtools/vendor/gmp/current/mpbsd/min.c buildtools/vendor/gmp/current/mpbsd/mout.c buildtools/vendor/gmp/current/mpbsd/mtox.c buildtools/vendor/gmp/current/mpbsd/rpow.c buildtools/vendor/gmp/current/mpbsd/sdiv.c buildtools/vendor/gmp/current/mpbsd/xtom.c buildtools/vendor/gmp/current/mpf/ buildtools/vendor/gmp/current/mpf/Makefile.am buildtools/vendor/gmp/current/mpf/Makefile.in buildtools/vendor/gmp/current/mpf/abs.c buildtools/vendor/gmp/current/mpf/add.c buildtools/vendor/gmp/current/mpf/add_ui.c buildtools/vendor/gmp/current/mpf/ceilfloor.c buildtools/vendor/gmp/current/mpf/clear.c buildtools/vendor/gmp/current/mpf/cmp.c buildtools/vendor/gmp/current/mpf/cmp_d.c buildtools/vendor/gmp/current/mpf/cmp_si.c buildtools/vendor/gmp/current/mpf/cmp_ui.c buildtools/vendor/gmp/current/mpf/div.c buildtools/vendor/gmp/current/mpf/div_2exp.c buildtools/vendor/gmp/current/mpf/div_ui.c buildtools/vendor/gmp/current/mpf/dump.c buildtools/vendor/gmp/current/mpf/eq.c buildtools/vendor/gmp/current/mpf/fits_s.h buildtools/vendor/gmp/current/mpf/fits_sint.c buildtools/vendor/gmp/current/mpf/fits_slong.c buildtools/vendor/gmp/current/mpf/fits_sshort.c buildtools/vendor/gmp/current/mpf/fits_u.h buildtools/vendor/gmp/current/mpf/fits_uint.c buildtools/vendor/gmp/current/mpf/fits_ulong.c buildtools/vendor/gmp/current/mpf/fits_ushort.c buildtools/vendor/gmp/current/mpf/get_d.c buildtools/vendor/gmp/current/mpf/get_d_2exp.c buildtools/vendor/gmp/current/mpf/get_dfl_prec.c buildtools/vendor/gmp/current/mpf/get_prc.c buildtools/vendor/gmp/current/mpf/get_si.c buildtools/vendor/gmp/current/mpf/get_str.c buildtools/vendor/gmp/current/mpf/get_ui.c buildtools/vendor/gmp/current/mpf/init.c buildtools/vendor/gmp/current/mpf/init2.c buildtools/vendor/gmp/current/mpf/inp_str.c buildtools/vendor/gmp/current/mpf/int_p.c buildtools/vendor/gmp/current/mpf/iset.c buildtools/vendor/gmp/current/mpf/iset_d.c buildtools/vendor/gmp/current/mpf/iset_si.c buildtools/vendor/gmp/current/mpf/iset_str.c buildtools/vendor/gmp/current/mpf/iset_ui.c buildtools/vendor/gmp/current/mpf/mul.c buildtools/vendor/gmp/current/mpf/mul_2exp.c buildtools/vendor/gmp/current/mpf/mul_ui.c buildtools/vendor/gmp/current/mpf/neg.c buildtools/vendor/gmp/current/mpf/out_str.c buildtools/vendor/gmp/current/mpf/pow_ui.c buildtools/vendor/gmp/current/mpf/random2.c buildtools/vendor/gmp/current/mpf/reldiff.c buildtools/vendor/gmp/current/mpf/set.c buildtools/vendor/gmp/current/mpf/set_d.c buildtools/vendor/gmp/current/mpf/set_dfl_prec.c buildtools/vendor/gmp/current/mpf/set_prc.c buildtools/vendor/gmp/current/mpf/set_prc_raw.c buildtools/vendor/gmp/current/mpf/set_q.c buildtools/vendor/gmp/current/mpf/set_si.c buildtools/vendor/gmp/current/mpf/set_str.c buildtools/vendor/gmp/current/mpf/set_ui.c buildtools/vendor/gmp/current/mpf/set_z.c buildtools/vendor/gmp/current/mpf/size.c buildtools/vendor/gmp/current/mpf/sqrt.c buildtools/vendor/gmp/current/mpf/sqrt_ui.c buildtools/vendor/gmp/current/mpf/sub.c buildtools/vendor/gmp/current/mpf/sub_ui.c buildtools/vendor/gmp/current/mpf/swap.c buildtools/vendor/gmp/current/mpf/trunc.c buildtools/vendor/gmp/current/mpf/ui_div.c buildtools/vendor/gmp/current/mpf/ui_sub.c buildtools/vendor/gmp/current/mpf/urandomb.c buildtools/vendor/gmp/current/mpn/ buildtools/vendor/gmp/current/mpn/Makeasm.am buildtools/vendor/gmp/current/mpn/Makefile.am buildtools/vendor/gmp/current/mpn/Makefile.in buildtools/vendor/gmp/current/mpn/README buildtools/vendor/gmp/current/mpn/a29k/ buildtools/vendor/gmp/current/mpn/a29k/add_n.s buildtools/vendor/gmp/current/mpn/a29k/addmul_1.s buildtools/vendor/gmp/current/mpn/a29k/lshift.s buildtools/vendor/gmp/current/mpn/a29k/mul_1.s buildtools/vendor/gmp/current/mpn/a29k/rshift.s buildtools/vendor/gmp/current/mpn/a29k/sub_n.s buildtools/vendor/gmp/current/mpn/a29k/submul_1.s buildtools/vendor/gmp/current/mpn/a29k/udiv.s buildtools/vendor/gmp/current/mpn/a29k/umul.s buildtools/vendor/gmp/current/mpn/alpha/ buildtools/vendor/gmp/current/mpn/alpha/README buildtools/vendor/gmp/current/mpn/alpha/add_n.asm buildtools/vendor/gmp/current/mpn/alpha/addmul_1.asm buildtools/vendor/gmp/current/mpn/alpha/alpha-defs.m4 buildtools/vendor/gmp/current/mpn/alpha/aorslsh1_n.asm buildtools/vendor/gmp/current/mpn/alpha/cntlz.asm buildtools/vendor/gmp/current/mpn/alpha/copyd.asm buildtools/vendor/gmp/current/mpn/alpha/copyi.asm buildtools/vendor/gmp/current/mpn/alpha/default.m4 buildtools/vendor/gmp/current/mpn/alpha/dive_1.c buildtools/vendor/gmp/current/mpn/alpha/diveby3.asm buildtools/vendor/gmp/current/mpn/alpha/ev5/ buildtools/vendor/gmp/current/mpn/alpha/ev5/add_n.asm buildtools/vendor/gmp/current/mpn/alpha/ev5/com_n.asm buildtools/vendor/gmp/current/mpn/alpha/ev5/gmp-mparam.h buildtools/vendor/gmp/current/mpn/alpha/ev5/lshift.asm buildtools/vendor/gmp/current/mpn/alpha/ev5/rshift.asm buildtools/vendor/gmp/current/mpn/alpha/ev5/sub_n.asm buildtools/vendor/gmp/current/mpn/alpha/ev6/ buildtools/vendor/gmp/current/mpn/alpha/ev6/add_n.asm buildtools/vendor/gmp/current/mpn/alpha/ev6/addmul_1.asm buildtools/vendor/gmp/current/mpn/alpha/ev6/gmp-mparam.h buildtools/vendor/gmp/current/mpn/alpha/ev6/mul_1.asm buildtools/vendor/gmp/current/mpn/alpha/ev6/nails/ buildtools/vendor/gmp/current/mpn/alpha/ev6/nails/README buildtools/vendor/gmp/current/mpn/alpha/ev6/nails/addmul_1.asm buildtools/vendor/gmp/current/mpn/alpha/ev6/nails/addmul_2.asm buildtools/vendor/gmp/current/mpn/alpha/ev6/nails/addmul_3.asm buildtools/vendor/gmp/current/mpn/alpha/ev6/nails/addmul_4.asm buildtools/vendor/gmp/current/mpn/alpha/ev6/nails/aors_n.asm buildtools/vendor/gmp/current/mpn/alpha/ev6/nails/gmp-mparam.h buildtools/vendor/gmp/current/mpn/alpha/ev6/nails/mul_1.asm buildtools/vendor/gmp/current/mpn/alpha/ev6/nails/submul_1.asm buildtools/vendor/gmp/current/mpn/alpha/ev6/slot.pl buildtools/vendor/gmp/current/mpn/alpha/ev6/sqr_diagonal.asm buildtools/vendor/gmp/current/mpn/alpha/ev6/sub_n.asm buildtools/vendor/gmp/current/mpn/alpha/ev6/submul_1.asm buildtools/vendor/gmp/current/mpn/alpha/ev67/ buildtools/vendor/gmp/current/mpn/alpha/ev67/gcd_1.asm buildtools/vendor/gmp/current/mpn/alpha/ev67/hamdist.asm buildtools/vendor/gmp/current/mpn/alpha/ev67/popcount.asm buildtools/vendor/gmp/current/mpn/alpha/gmp-mparam.h buildtools/vendor/gmp/current/mpn/alpha/invert_limb.asm buildtools/vendor/gmp/current/mpn/alpha/lshift.asm buildtools/vendor/gmp/current/mpn/alpha/mod_34lsub1.asm buildtools/vendor/gmp/current/mpn/alpha/mode1o.asm buildtools/vendor/gmp/current/mpn/alpha/mul_1.asm buildtools/vendor/gmp/current/mpn/alpha/rshift.asm buildtools/vendor/gmp/current/mpn/alpha/sqr_diagonal.asm buildtools/vendor/gmp/current/mpn/alpha/sub_n.asm buildtools/vendor/gmp/current/mpn/alpha/submul_1.asm buildtools/vendor/gmp/current/mpn/alpha/umul.asm buildtools/vendor/gmp/current/mpn/alpha/unicos.m4 buildtools/vendor/gmp/current/mpn/arm/ buildtools/vendor/gmp/current/mpn/arm/add_n.asm buildtools/vendor/gmp/current/mpn/arm/addmul_1.asm buildtools/vendor/gmp/current/mpn/arm/arm-defs.m4 buildtools/vendor/gmp/current/mpn/arm/copyd.asm buildtools/vendor/gmp/current/mpn/arm/copyi.asm buildtools/vendor/gmp/current/mpn/arm/gmp-mparam.h buildtools/vendor/gmp/current/mpn/arm/invert_limb.asm buildtools/vendor/gmp/current/mpn/arm/mul_1.asm buildtools/vendor/gmp/current/mpn/arm/sub_n.asm buildtools/vendor/gmp/current/mpn/arm/submul_1.asm buildtools/vendor/gmp/current/mpn/arm/udiv.asm buildtools/vendor/gmp/current/mpn/asm-defs.m4 buildtools/vendor/gmp/current/mpn/clipper/ buildtools/vendor/gmp/current/mpn/clipper/add_n.s buildtools/vendor/gmp/current/mpn/clipper/mul_1.s buildtools/vendor/gmp/current/mpn/clipper/sub_n.s buildtools/vendor/gmp/current/mpn/cpp-ccas buildtools/vendor/gmp/current/mpn/cray/ buildtools/vendor/gmp/current/mpn/cray/README buildtools/vendor/gmp/current/mpn/cray/add_n.c buildtools/vendor/gmp/current/mpn/cray/cfp/ buildtools/vendor/gmp/current/mpn/cray/cfp/addmul_1.c buildtools/vendor/gmp/current/mpn/cray/cfp/mul_1.c buildtools/vendor/gmp/current/mpn/cray/cfp/mulwwc90.s buildtools/vendor/gmp/current/mpn/cray/cfp/mulwwj90.s buildtools/vendor/gmp/current/mpn/cray/cfp/submul_1.c buildtools/vendor/gmp/current/mpn/cray/gmp-mparam.h buildtools/vendor/gmp/current/mpn/cray/hamdist.c buildtools/vendor/gmp/current/mpn/cray/ieee/ buildtools/vendor/gmp/current/mpn/cray/ieee/addmul_1.c buildtools/vendor/gmp/current/mpn/cray/ieee/gmp-mparam.h buildtools/vendor/gmp/current/mpn/cray/ieee/invert_limb.c buildtools/vendor/gmp/current/mpn/cray/ieee/mul_1.c buildtools/vendor/gmp/current/mpn/cray/ieee/mul_basecase.c buildtools/vendor/gmp/current/mpn/cray/ieee/sqr_basecase.c buildtools/vendor/gmp/current/mpn/cray/ieee/submul_1.c buildtools/vendor/gmp/current/mpn/cray/lshift.c buildtools/vendor/gmp/current/mpn/cray/mulww.f buildtools/vendor/gmp/current/mpn/cray/popcount.c buildtools/vendor/gmp/current/mpn/cray/rshift.c buildtools/vendor/gmp/current/mpn/cray/sub_n.c buildtools/vendor/gmp/current/mpn/generic/ buildtools/vendor/gmp/current/mpn/generic/add.c buildtools/vendor/gmp/current/mpn/generic/add_1.c buildtools/vendor/gmp/current/mpn/generic/add_n.c buildtools/vendor/gmp/current/mpn/generic/addmul_1.c buildtools/vendor/gmp/current/mpn/generic/addsub_n.c buildtools/vendor/gmp/current/mpn/generic/bdivmod.c buildtools/vendor/gmp/current/mpn/generic/cmp.c buildtools/vendor/gmp/current/mpn/generic/dc_divrem_n.c buildtools/vendor/gmp/current/mpn/generic/dive_1.c buildtools/vendor/gmp/current/mpn/generic/diveby3.c buildtools/vendor/gmp/current/mpn/generic/divis.c buildtools/vendor/gmp/current/mpn/generic/divrem.c buildtools/vendor/gmp/current/mpn/generic/divrem_1.c buildtools/vendor/gmp/current/mpn/generic/divrem_2.c buildtools/vendor/gmp/current/mpn/generic/dump.c buildtools/vendor/gmp/current/mpn/generic/fib2_ui.c buildtools/vendor/gmp/current/mpn/generic/gcd.c buildtools/vendor/gmp/current/mpn/generic/gcd_1.c buildtools/vendor/gmp/current/mpn/generic/gcdext.c buildtools/vendor/gmp/current/mpn/generic/get_d.c buildtools/vendor/gmp/current/mpn/generic/get_str.c buildtools/vendor/gmp/current/mpn/generic/gmp-mparam.h buildtools/vendor/gmp/current/mpn/generic/jacbase.c buildtools/vendor/gmp/current/mpn/generic/lshift.c buildtools/vendor/gmp/current/mpn/generic/mod_1.c buildtools/vendor/gmp/current/mpn/generic/mod_34lsub1.c buildtools/vendor/gmp/current/mpn/generic/mode1o.c buildtools/vendor/gmp/current/mpn/generic/mul.c buildtools/vendor/gmp/current/mpn/generic/mul_1.c buildtools/vendor/gmp/current/mpn/generic/mul_basecase.c buildtools/vendor/gmp/current/mpn/generic/mul_fft.c buildtools/vendor/gmp/current/mpn/generic/mul_n.c buildtools/vendor/gmp/current/mpn/generic/mullow_basecase.c buildtools/vendor/gmp/current/mpn/generic/mullow_n.c buildtools/vendor/gmp/current/mpn/generic/perfsqr.c buildtools/vendor/gmp/current/mpn/generic/popham.c buildtools/vendor/gmp/current/mpn/generic/pow_1.c buildtools/vendor/gmp/current/mpn/generic/pre_divrem_1.c buildtools/vendor/gmp/current/mpn/generic/pre_mod_1.c buildtools/vendor/gmp/current/mpn/generic/random.c buildtools/vendor/gmp/current/mpn/generic/random2.c buildtools/vendor/gmp/current/mpn/generic/rootrem.c buildtools/vendor/gmp/current/mpn/generic/rshift.c buildtools/vendor/gmp/current/mpn/generic/sb_divrem_mn.c buildtools/vendor/gmp/current/mpn/generic/scan0.c buildtools/vendor/gmp/current/mpn/generic/scan1.c buildtools/vendor/gmp/current/mpn/generic/set_str.c buildtools/vendor/gmp/current/mpn/generic/sizeinbase.c buildtools/vendor/gmp/current/mpn/generic/sqr_basecase.c buildtools/vendor/gmp/current/mpn/generic/sqrtrem.c buildtools/vendor/gmp/current/mpn/generic/sub.c buildtools/vendor/gmp/current/mpn/generic/sub_1.c buildtools/vendor/gmp/current/mpn/generic/sub_n.c buildtools/vendor/gmp/current/mpn/generic/submul_1.c buildtools/vendor/gmp/current/mpn/generic/tdiv_qr.c buildtools/vendor/gmp/current/mpn/generic/udiv_w_sdiv.c buildtools/vendor/gmp/current/mpn/i960/ buildtools/vendor/gmp/current/mpn/i960/README buildtools/vendor/gmp/current/mpn/i960/add_n.s buildtools/vendor/gmp/current/mpn/i960/addmul_1.s buildtools/vendor/gmp/current/mpn/i960/mul_1.s buildtools/vendor/gmp/current/mpn/i960/sub_n.s buildtools/vendor/gmp/current/mpn/ia64/ buildtools/vendor/gmp/current/mpn/ia64/README buildtools/vendor/gmp/current/mpn/ia64/add_n.asm buildtools/vendor/gmp/current/mpn/ia64/addmul_1.asm buildtools/vendor/gmp/current/mpn/ia64/copyd.asm buildtools/vendor/gmp/current/mpn/ia64/copyi.asm buildtools/vendor/gmp/current/mpn/ia64/gcd_1.asm buildtools/vendor/gmp/current/mpn/ia64/gmp-mparam.h buildtools/vendor/gmp/current/mpn/ia64/ia64-defs.m4 buildtools/vendor/gmp/current/mpn/ia64/invert_limb.asm buildtools/vendor/gmp/current/mpn/ia64/lorrshift.asm buildtools/vendor/gmp/current/mpn/ia64/mode1o.asm buildtools/vendor/gmp/current/mpn/ia64/mul_1.asm buildtools/vendor/gmp/current/mpn/ia64/popcount.asm buildtools/vendor/gmp/current/mpn/ia64/sub_n.asm buildtools/vendor/gmp/current/mpn/ia64/submul_1.c buildtools/vendor/gmp/current/mpn/lisp/ buildtools/vendor/gmp/current/mpn/lisp/gmpasm-mode.el buildtools/vendor/gmp/current/mpn/m4-ccas buildtools/vendor/gmp/current/mpn/m68k/ buildtools/vendor/gmp/current/mpn/m68k/README buildtools/vendor/gmp/current/mpn/m68k/aors_n.asm buildtools/vendor/gmp/current/mpn/m68k/gmp-mparam.h buildtools/vendor/gmp/current/mpn/m68k/lshift.asm buildtools/vendor/gmp/current/mpn/m68k/m68k-defs.m4 buildtools/vendor/gmp/current/mpn/m68k/mc68020/ buildtools/vendor/gmp/current/mpn/m68k/mc68020/aorsmul_1.asm buildtools/vendor/gmp/current/mpn/m68k/mc68020/mul_1.asm buildtools/vendor/gmp/current/mpn/m68k/mc68020/udiv.asm buildtools/vendor/gmp/current/mpn/m68k/mc68020/umul.asm buildtools/vendor/gmp/current/mpn/m68k/rshift.asm buildtools/vendor/gmp/current/mpn/m68k/t-m68k-defs.pl buildtools/vendor/gmp/current/mpn/m88k/ buildtools/vendor/gmp/current/mpn/m88k/README buildtools/vendor/gmp/current/mpn/m88k/add_n.s buildtools/vendor/gmp/current/mpn/m88k/mc88110/ buildtools/vendor/gmp/current/mpn/m88k/mc88110/add_n.S buildtools/vendor/gmp/current/mpn/m88k/mc88110/addmul_1.s buildtools/vendor/gmp/current/mpn/m88k/mc88110/mul_1.s buildtools/vendor/gmp/current/mpn/m88k/mc88110/sub_n.S buildtools/vendor/gmp/current/mpn/m88k/mul_1.s buildtools/vendor/gmp/current/mpn/m88k/sub_n.s buildtools/vendor/gmp/current/mpn/mips32/ buildtools/vendor/gmp/current/mpn/mips32/add_n.asm buildtools/vendor/gmp/current/mpn/mips32/addmul_1.asm buildtools/vendor/gmp/current/mpn/mips32/gmp-mparam.h buildtools/vendor/gmp/current/mpn/mips32/lshift.asm buildtools/vendor/gmp/current/mpn/mips32/mips-defs.m4 buildtools/vendor/gmp/current/mpn/mips32/mips.m4 buildtools/vendor/gmp/current/mpn/mips32/mul_1.asm buildtools/vendor/gmp/current/mpn/mips32/rshift.asm buildtools/vendor/gmp/current/mpn/mips32/sub_n.asm buildtools/vendor/gmp/current/mpn/mips32/submul_1.asm buildtools/vendor/gmp/current/mpn/mips32/umul.asm buildtools/vendor/gmp/current/mpn/mips64/ buildtools/vendor/gmp/current/mpn/mips64/README buildtools/vendor/gmp/current/mpn/mips64/add_n.asm buildtools/vendor/gmp/current/mpn/mips64/addmul_1.asm buildtools/vendor/gmp/current/mpn/mips64/divrem_1.asm buildtools/vendor/gmp/current/mpn/mips64/gmp-mparam.h buildtools/vendor/gmp/current/mpn/mips64/lshift.asm buildtools/vendor/gmp/current/mpn/mips64/mul_1.asm buildtools/vendor/gmp/current/mpn/mips64/rshift.asm buildtools/vendor/gmp/current/mpn/mips64/sqr_diagonal.asm buildtools/vendor/gmp/current/mpn/mips64/sub_n.asm buildtools/vendor/gmp/current/mpn/mips64/submul_1.asm buildtools/vendor/gmp/current/mpn/mips64/umul.asm buildtools/vendor/gmp/current/mpn/ns32k/ buildtools/vendor/gmp/current/mpn/ns32k/add_n.s buildtools/vendor/gmp/current/mpn/ns32k/addmul_1.s buildtools/vendor/gmp/current/mpn/ns32k/mul_1.s buildtools/vendor/gmp/current/mpn/ns32k/sub_n.s buildtools/vendor/gmp/current/mpn/ns32k/submul_1.s buildtools/vendor/gmp/current/mpn/pa32/ buildtools/vendor/gmp/current/mpn/pa32/README buildtools/vendor/gmp/current/mpn/pa32/add_n.asm buildtools/vendor/gmp/current/mpn/pa32/gmp-mparam.h buildtools/vendor/gmp/current/mpn/pa32/hppa1_1/ buildtools/vendor/gmp/current/mpn/pa32/hppa1_1/addmul_1.asm buildtools/vendor/gmp/current/mpn/pa32/hppa1_1/gmp-mparam.h buildtools/vendor/gmp/current/mpn/pa32/hppa1_1/mul_1.asm buildtools/vendor/gmp/current/mpn/pa32/hppa1_1/pa7100/ buildtools/vendor/gmp/current/mpn/pa32/hppa1_1/pa7100/add_n.asm buildtools/vendor/gmp/current/mpn/pa32/hppa1_1/pa7100/addmul_1.asm buildtools/vendor/gmp/current/mpn/pa32/hppa1_1/pa7100/lshift.asm buildtools/vendor/gmp/current/mpn/pa32/hppa1_1/pa7100/rshift.asm buildtools/vendor/gmp/current/mpn/pa32/hppa1_1/pa7100/sub_n.asm buildtools/vendor/gmp/current/mpn/pa32/hppa1_1/pa7100/submul_1.asm buildtools/vendor/gmp/current/mpn/pa32/hppa1_1/sqr_diagonal.asm buildtools/vendor/gmp/current/mpn/pa32/hppa1_1/submul_1.asm buildtools/vendor/gmp/current/mpn/pa32/hppa1_1/udiv.asm buildtools/vendor/gmp/current/mpn/pa32/hppa1_1/umul.asm buildtools/vendor/gmp/current/mpn/pa32/hppa2_0/ buildtools/vendor/gmp/current/mpn/pa32/hppa2_0/add_n.asm buildtools/vendor/gmp/current/mpn/pa32/hppa2_0/gmp-mparam.h buildtools/vendor/gmp/current/mpn/pa32/hppa2_0/sqr_diagonal.asm buildtools/vendor/gmp/current/mpn/pa32/hppa2_0/sub_n.asm buildtools/vendor/gmp/current/mpn/pa32/lshift.asm buildtools/vendor/gmp/current/mpn/pa32/pa-defs.m4 buildtools/vendor/gmp/current/mpn/pa32/rshift.asm buildtools/vendor/gmp/current/mpn/pa32/sub_n.asm buildtools/vendor/gmp/current/mpn/pa32/udiv.asm buildtools/vendor/gmp/current/mpn/pa64/ buildtools/vendor/gmp/current/mpn/pa64/README buildtools/vendor/gmp/current/mpn/pa64/add_n.asm buildtools/vendor/gmp/current/mpn/pa64/addmul_1.asm buildtools/vendor/gmp/current/mpn/pa64/aorslsh1_n.asm buildtools/vendor/gmp/current/mpn/pa64/gmp-mparam.h buildtools/vendor/gmp/current/mpn/pa64/lshift.asm buildtools/vendor/gmp/current/mpn/pa64/mul_1.asm buildtools/vendor/gmp/current/mpn/pa64/rshift.asm buildtools/vendor/gmp/current/mpn/pa64/sqr_diagonal.asm buildtools/vendor/gmp/current/mpn/pa64/sub_n.asm buildtools/vendor/gmp/current/mpn/pa64/submul_1.asm buildtools/vendor/gmp/current/mpn/pa64/udiv.asm buildtools/vendor/gmp/current/mpn/pa64/umul.asm buildtools/vendor/gmp/current/mpn/power/ buildtools/vendor/gmp/current/mpn/power/add_n.asm buildtools/vendor/gmp/current/mpn/power/addmul_1.asm buildtools/vendor/gmp/current/mpn/power/gmp-mparam.h buildtools/vendor/gmp/current/mpn/power/lshift.asm buildtools/vendor/gmp/current/mpn/power/mul_1.asm buildtools/vendor/gmp/current/mpn/power/rshift.asm buildtools/vendor/gmp/current/mpn/power/sdiv.asm buildtools/vendor/gmp/current/mpn/power/sub_n.asm buildtools/vendor/gmp/current/mpn/power/submul_1.asm buildtools/vendor/gmp/current/mpn/power/umul.asm buildtools/vendor/gmp/current/mpn/powerpc32/ buildtools/vendor/gmp/current/mpn/powerpc32/750/ buildtools/vendor/gmp/current/mpn/powerpc32/750/com_n.asm buildtools/vendor/gmp/current/mpn/powerpc32/750/gmp-mparam.h buildtools/vendor/gmp/current/mpn/powerpc32/750/lshift.asm buildtools/vendor/gmp/current/mpn/powerpc32/750/rshift.asm buildtools/vendor/gmp/current/mpn/powerpc32/README buildtools/vendor/gmp/current/mpn/powerpc32/add_n.asm buildtools/vendor/gmp/current/mpn/powerpc32/addlsh1_n.asm buildtools/vendor/gmp/current/mpn/powerpc32/addmul_1.asm buildtools/vendor/gmp/current/mpn/powerpc32/aix.m4 buildtools/vendor/gmp/current/mpn/powerpc32/darwin.m4 buildtools/vendor/gmp/current/mpn/powerpc32/diveby3.asm buildtools/vendor/gmp/current/mpn/powerpc32/eabi.m4 buildtools/vendor/gmp/current/mpn/powerpc32/elf.m4 buildtools/vendor/gmp/current/mpn/powerpc32/gmp-mparam.h buildtools/vendor/gmp/current/mpn/powerpc32/lshift.asm buildtools/vendor/gmp/current/mpn/powerpc32/mod_34lsub1.asm buildtools/vendor/gmp/current/mpn/powerpc32/mode1o.asm buildtools/vendor/gmp/current/mpn/powerpc32/mul_1.asm buildtools/vendor/gmp/current/mpn/powerpc32/powerpc-defs.m4 buildtools/vendor/gmp/current/mpn/powerpc32/rshift.asm buildtools/vendor/gmp/current/mpn/powerpc32/sqr_diagonal.asm buildtools/vendor/gmp/current/mpn/powerpc32/sub_n.asm buildtools/vendor/gmp/current/mpn/powerpc32/sublsh1_n.asm buildtools/vendor/gmp/current/mpn/powerpc32/submul_1.asm buildtools/vendor/gmp/current/mpn/powerpc32/umul.asm buildtools/vendor/gmp/current/mpn/powerpc32/vmx/ buildtools/vendor/gmp/current/mpn/powerpc32/vmx/copyd.asm buildtools/vendor/gmp/current/mpn/powerpc32/vmx/copyi.asm buildtools/vendor/gmp/current/mpn/powerpc32/vmx/logops_n.asm buildtools/vendor/gmp/current/mpn/powerpc32/vmx/popcount.asm buildtools/vendor/gmp/current/mpn/powerpc64/ buildtools/vendor/gmp/current/mpn/powerpc64/README buildtools/vendor/gmp/current/mpn/powerpc64/aix.m4 buildtools/vendor/gmp/current/mpn/powerpc64/copyd.asm buildtools/vendor/gmp/current/mpn/powerpc64/copyi.asm buildtools/vendor/gmp/current/mpn/powerpc64/darwin.m4 buildtools/vendor/gmp/current/mpn/powerpc64/elf.m4 buildtools/vendor/gmp/current/mpn/powerpc64/gmp-mparam.h buildtools/vendor/gmp/current/mpn/powerpc64/lshift.asm buildtools/vendor/gmp/current/mpn/powerpc64/mode32/ buildtools/vendor/gmp/current/mpn/powerpc64/mode32/add_n.asm buildtools/vendor/gmp/current/mpn/powerpc64/mode32/addmul_1.asm buildtools/vendor/gmp/current/mpn/powerpc64/mode32/mul_1.asm buildtools/vendor/gmp/current/mpn/powerpc64/mode32/sub_n.asm buildtools/vendor/gmp/current/mpn/powerpc64/mode32/submul_1.asm buildtools/vendor/gmp/current/mpn/powerpc64/mode64/ buildtools/vendor/gmp/current/mpn/powerpc64/mode64/add_n.asm buildtools/vendor/gmp/current/mpn/powerpc64/mode64/addmul_1.asm buildtools/vendor/gmp/current/mpn/powerpc64/mode64/mul_1.asm buildtools/vendor/gmp/current/mpn/powerpc64/mode64/sub_n.asm buildtools/vendor/gmp/current/mpn/powerpc64/mode64/submul_1.asm buildtools/vendor/gmp/current/mpn/powerpc64/mode64/umul.asm buildtools/vendor/gmp/current/mpn/powerpc64/rshift.asm buildtools/vendor/gmp/current/mpn/powerpc64/sqr_diagonal.asm buildtools/vendor/gmp/current/mpn/powerpc64/umul.asm buildtools/vendor/gmp/current/mpn/powerpc64/vmx/ buildtools/vendor/gmp/current/mpn/powerpc64/vmx/popcount.asm buildtools/vendor/gmp/current/mpn/pyr/ buildtools/vendor/gmp/current/mpn/pyr/add_n.s buildtools/vendor/gmp/current/mpn/pyr/addmul_1.s buildtools/vendor/gmp/current/mpn/pyr/mul_1.s buildtools/vendor/gmp/current/mpn/pyr/sub_n.s buildtools/vendor/gmp/current/mpn/s390/ buildtools/vendor/gmp/current/mpn/s390/README buildtools/vendor/gmp/current/mpn/s390/addmul_1.asm buildtools/vendor/gmp/current/mpn/s390/gmp-mparam.h buildtools/vendor/gmp/current/mpn/s390/mul_1.asm buildtools/vendor/gmp/current/mpn/s390/submul_1.asm buildtools/vendor/gmp/current/mpn/sh/ buildtools/vendor/gmp/current/mpn/sh/add_n.s buildtools/vendor/gmp/current/mpn/sh/sh2/ buildtools/vendor/gmp/current/mpn/sh/sh2/addmul_1.s buildtools/vendor/gmp/current/mpn/sh/sh2/mul_1.s buildtools/vendor/gmp/current/mpn/sh/sh2/submul_1.s buildtools/vendor/gmp/current/mpn/sh/sub_n.s buildtools/vendor/gmp/current/mpn/sparc32/ buildtools/vendor/gmp/current/mpn/sparc32/README buildtools/vendor/gmp/current/mpn/sparc32/add_n.asm buildtools/vendor/gmp/current/mpn/sparc32/addmul_1.asm buildtools/vendor/gmp/current/mpn/sparc32/gmp-mparam.h buildtools/vendor/gmp/current/mpn/sparc32/lshift.asm buildtools/vendor/gmp/current/mpn/sparc32/mul_1.asm buildtools/vendor/gmp/current/mpn/sparc32/rshift.asm buildtools/vendor/gmp/current/mpn/sparc32/sparc-defs.m4 buildtools/vendor/gmp/current/mpn/sparc32/sub_n.asm buildtools/vendor/gmp/current/mpn/sparc32/submul_1.asm buildtools/vendor/gmp/current/mpn/sparc32/udiv.asm buildtools/vendor/gmp/current/mpn/sparc32/udiv_nfp.asm buildtools/vendor/gmp/current/mpn/sparc32/umul.asm buildtools/vendor/gmp/current/mpn/sparc32/v8/ buildtools/vendor/gmp/current/mpn/sparc32/v8/addmul_1.asm buildtools/vendor/gmp/current/mpn/sparc32/v8/gmp-mparam.h buildtools/vendor/gmp/current/mpn/sparc32/v8/mul_1.asm buildtools/vendor/gmp/current/mpn/sparc32/v8/submul_1.asm buildtools/vendor/gmp/current/mpn/sparc32/v8/supersparc/ buildtools/vendor/gmp/current/mpn/sparc32/v8/supersparc/gmp-mparam.h buildtools/vendor/gmp/current/mpn/sparc32/v8/supersparc/udiv.asm buildtools/vendor/gmp/current/mpn/sparc32/v8/udiv.asm buildtools/vendor/gmp/current/mpn/sparc32/v8/umul.asm buildtools/vendor/gmp/current/mpn/sparc32/v9/ buildtools/vendor/gmp/current/mpn/sparc32/v9/README buildtools/vendor/gmp/current/mpn/sparc32/v9/add_n.asm buildtools/vendor/gmp/current/mpn/sparc32/v9/addmul_1.asm buildtools/vendor/gmp/current/mpn/sparc32/v9/gmp-mparam.h buildtools/vendor/gmp/current/mpn/sparc32/v9/mul_1.asm buildtools/vendor/gmp/current/mpn/sparc32/v9/sqr_diagonal.asm buildtools/vendor/gmp/current/mpn/sparc32/v9/sub_n.asm buildtools/vendor/gmp/current/mpn/sparc32/v9/submul_1.asm buildtools/vendor/gmp/current/mpn/sparc32/v9/udiv.asm buildtools/vendor/gmp/current/mpn/sparc64/ buildtools/vendor/gmp/current/mpn/sparc64/README buildtools/vendor/gmp/current/mpn/sparc64/add_n.asm buildtools/vendor/gmp/current/mpn/sparc64/addmul_1.asm buildtools/vendor/gmp/current/mpn/sparc64/addmul_2.asm buildtools/vendor/gmp/current/mpn/sparc64/copyd.asm buildtools/vendor/gmp/current/mpn/sparc64/copyi.asm buildtools/vendor/gmp/current/mpn/sparc64/dive_1.c buildtools/vendor/gmp/current/mpn/sparc64/divrem_1.c buildtools/vendor/gmp/current/mpn/sparc64/gmp-mparam.h buildtools/vendor/gmp/current/mpn/sparc64/lshift.asm buildtools/vendor/gmp/current/mpn/sparc64/mod_1.c buildtools/vendor/gmp/current/mpn/sparc64/mode1o.c buildtools/vendor/gmp/current/mpn/sparc64/mul_1.asm buildtools/vendor/gmp/current/mpn/sparc64/rshift.asm buildtools/vendor/gmp/current/mpn/sparc64/sparc64.h buildtools/vendor/gmp/current/mpn/sparc64/sqr_diagonal.asm buildtools/vendor/gmp/current/mpn/sparc64/sub_n.asm buildtools/vendor/gmp/current/mpn/sparc64/submul_1.asm buildtools/vendor/gmp/current/mpn/thumb/ buildtools/vendor/gmp/current/mpn/thumb/add_n.s buildtools/vendor/gmp/current/mpn/thumb/sub_n.s buildtools/vendor/gmp/current/mpn/vax/ buildtools/vendor/gmp/current/mpn/vax/add_n.s buildtools/vendor/gmp/current/mpn/vax/addmul_1.s buildtools/vendor/gmp/current/mpn/vax/gmp-mparam.h buildtools/vendor/gmp/current/mpn/vax/lshift.s buildtools/vendor/gmp/current/mpn/vax/mul_1.s buildtools/vendor/gmp/current/mpn/vax/rshift.s buildtools/vendor/gmp/current/mpn/vax/sub_n.s buildtools/vendor/gmp/current/mpn/vax/submul_1.s buildtools/vendor/gmp/current/mpn/x86/ buildtools/vendor/gmp/current/mpn/x86/README buildtools/vendor/gmp/current/mpn/x86/aors_n.asm buildtools/vendor/gmp/current/mpn/x86/aorsmul_1.asm buildtools/vendor/gmp/current/mpn/x86/copyd.asm buildtools/vendor/gmp/current/mpn/x86/copyi.asm buildtools/vendor/gmp/current/mpn/x86/dive_1.asm buildtools/vendor/gmp/current/mpn/x86/diveby3.asm buildtools/vendor/gmp/current/mpn/x86/divrem_1.asm buildtools/vendor/gmp/current/mpn/x86/fat/ buildtools/vendor/gmp/current/mpn/x86/fat/fat.c buildtools/vendor/gmp/current/mpn/x86/fat/fat_entry.asm buildtools/vendor/gmp/current/mpn/x86/fat/gcd_1.c buildtools/vendor/gmp/current/mpn/x86/fat/gmp-mparam.h buildtools/vendor/gmp/current/mpn/x86/fat/mode1o.c buildtools/vendor/gmp/current/mpn/x86/gmp-mparam.h buildtools/vendor/gmp/current/mpn/x86/i486/ buildtools/vendor/gmp/current/mpn/x86/i486/gmp-mparam.h buildtools/vendor/gmp/current/mpn/x86/k6/ buildtools/vendor/gmp/current/mpn/x86/k6/README buildtools/vendor/gmp/current/mpn/x86/k6/aors_n.asm buildtools/vendor/gmp/current/mpn/x86/k6/aorsmul_1.asm buildtools/vendor/gmp/current/mpn/x86/k6/cross.pl buildtools/vendor/gmp/current/mpn/x86/k6/diveby3.asm buildtools/vendor/gmp/current/mpn/x86/k6/divrem_1.asm buildtools/vendor/gmp/current/mpn/x86/k6/gcd_1.asm buildtools/vendor/gmp/current/mpn/x86/k6/gcd_finda.asm buildtools/vendor/gmp/current/mpn/x86/k6/gmp-mparam.h buildtools/vendor/gmp/current/mpn/x86/k6/k62mmx/ buildtools/vendor/gmp/current/mpn/x86/k6/k62mmx/copyd.asm buildtools/vendor/gmp/current/mpn/x86/k6/k62mmx/lshift.asm buildtools/vendor/gmp/current/mpn/x86/k6/k62mmx/rshift.asm buildtools/vendor/gmp/current/mpn/x86/k6/mmx/ buildtools/vendor/gmp/current/mpn/x86/k6/mmx/com_n.asm buildtools/vendor/gmp/current/mpn/x86/k6/mmx/dive_1.asm buildtools/vendor/gmp/current/mpn/x86/k6/mmx/logops_n.asm buildtools/vendor/gmp/current/mpn/x86/k6/mmx/lshift.asm buildtools/vendor/gmp/current/mpn/x86/k6/mmx/popham.asm buildtools/vendor/gmp/current/mpn/x86/k6/mmx/rshift.asm buildtools/vendor/gmp/current/mpn/x86/k6/mod_34lsub1.asm buildtools/vendor/gmp/current/mpn/x86/k6/mode1o.asm buildtools/vendor/gmp/current/mpn/x86/k6/mul_1.asm buildtools/vendor/gmp/current/mpn/x86/k6/mul_basecase.asm buildtools/vendor/gmp/current/mpn/x86/k6/pre_mod_1.asm buildtools/vendor/gmp/current/mpn/x86/k6/sqr_basecase.asm buildtools/vendor/gmp/current/mpn/x86/k7/ buildtools/vendor/gmp/current/mpn/x86/k7/README buildtools/vendor/gmp/current/mpn/x86/k7/aors_n.asm buildtools/vendor/gmp/current/mpn/x86/k7/aorsmul_1.asm buildtools/vendor/gmp/current/mpn/x86/k7/dive_1.asm buildtools/vendor/gmp/current/mpn/x86/k7/diveby3.asm buildtools/vendor/gmp/current/mpn/x86/k7/gcd_1.asm buildtools/vendor/gmp/current/mpn/x86/k7/gmp-mparam.h buildtools/vendor/gmp/current/mpn/x86/k7/mmx/ buildtools/vendor/gmp/current/mpn/x86/k7/mmx/com_n.asm buildtools/vendor/gmp/current/mpn/x86/k7/mmx/copyd.asm buildtools/vendor/gmp/current/mpn/x86/k7/mmx/copyi.asm buildtools/vendor/gmp/current/mpn/x86/k7/mmx/divrem_1.asm buildtools/vendor/gmp/current/mpn/x86/k7/mmx/lshift.asm buildtools/vendor/gmp/current/mpn/x86/k7/mmx/mod_1.asm buildtools/vendor/gmp/current/mpn/x86/k7/mmx/popham.asm buildtools/vendor/gmp/current/mpn/x86/k7/mmx/rshift.asm buildtools/vendor/gmp/current/mpn/x86/k7/mod_34lsub1.asm buildtools/vendor/gmp/current/mpn/x86/k7/mode1o.asm buildtools/vendor/gmp/current/mpn/x86/k7/mul_1.asm buildtools/vendor/gmp/current/mpn/x86/k7/mul_basecase.asm buildtools/vendor/gmp/current/mpn/x86/k7/sqr_basecase.asm buildtools/vendor/gmp/current/mpn/x86/lshift.asm buildtools/vendor/gmp/current/mpn/x86/mod_1.asm buildtools/vendor/gmp/current/mpn/x86/mod_34lsub1.asm buildtools/vendor/gmp/current/mpn/x86/mul_1.asm buildtools/vendor/gmp/current/mpn/x86/mul_basecase.asm buildtools/vendor/gmp/current/mpn/x86/p6/ buildtools/vendor/gmp/current/mpn/x86/p6/README buildtools/vendor/gmp/current/mpn/x86/p6/aors_n.asm buildtools/vendor/gmp/current/mpn/x86/p6/aorsmul_1.asm buildtools/vendor/gmp/current/mpn/x86/p6/copyd.asm buildtools/vendor/gmp/current/mpn/x86/p6/dive_1.asm buildtools/vendor/gmp/current/mpn/x86/p6/diveby3.asm buildtools/vendor/gmp/current/mpn/x86/p6/gmp-mparam.h buildtools/vendor/gmp/current/mpn/x86/p6/mmx/ buildtools/vendor/gmp/current/mpn/x86/p6/mmx/divrem_1.asm buildtools/vendor/gmp/current/mpn/x86/p6/mmx/gmp-mparam.h buildtools/vendor/gmp/current/mpn/x86/p6/mmx/lshift.asm buildtools/vendor/gmp/current/mpn/x86/p6/mmx/popham.asm buildtools/vendor/gmp/current/mpn/x86/p6/mmx/rshift.asm buildtools/vendor/gmp/current/mpn/x86/p6/mod_1.asm buildtools/vendor/gmp/current/mpn/x86/p6/mod_34lsub1.asm buildtools/vendor/gmp/current/mpn/x86/p6/mode1o.asm buildtools/vendor/gmp/current/mpn/x86/p6/mul_basecase.asm buildtools/vendor/gmp/current/mpn/x86/p6/p3mmx/ buildtools/vendor/gmp/current/mpn/x86/p6/p3mmx/popham.asm buildtools/vendor/gmp/current/mpn/x86/p6/sqr_basecase.asm buildtools/vendor/gmp/current/mpn/x86/pentium/ buildtools/vendor/gmp/current/mpn/x86/pentium/README buildtools/vendor/gmp/current/mpn/x86/pentium/aors_n.asm buildtools/vendor/gmp/current/mpn/x86/pentium/aorsmul_1.asm buildtools/vendor/gmp/current/mpn/x86/pentium/com_n.asm buildtools/vendor/gmp/current/mpn/x86/pentium/copyd.asm buildtools/vendor/gmp/current/mpn/x86/pentium/copyi.asm buildtools/vendor/gmp/current/mpn/x86/pentium/dive_1.asm buildtools/vendor/gmp/current/mpn/x86/pentium/diveby3.asm buildtools/vendor/gmp/current/mpn/x86/pentium/gmp-mparam.h buildtools/vendor/gmp/current/mpn/x86/pentium/hamdist.asm buildtools/vendor/gmp/current/mpn/x86/pentium/logops_n.asm buildtools/vendor/gmp/current/mpn/x86/pentium/lshift.asm buildtools/vendor/gmp/current/mpn/x86/pentium/mmx/ buildtools/vendor/gmp/current/mpn/x86/pentium/mmx/gmp-mparam.h buildtools/vendor/gmp/current/mpn/x86/pentium/mmx/hamdist.asm buildtools/vendor/gmp/current/mpn/x86/pentium/mmx/lshift.asm buildtools/vendor/gmp/current/mpn/x86/pentium/mmx/mul_1.asm buildtools/vendor/gmp/current/mpn/x86/pentium/mmx/rshift.asm buildtools/vendor/gmp/current/mpn/x86/pentium/mod_1.asm buildtools/vendor/gmp/current/mpn/x86/pentium/mod_34lsub1.asm buildtools/vendor/gmp/current/mpn/x86/pentium/mode1o.asm buildtools/vendor/gmp/current/mpn/x86/pentium/mul_1.asm buildtools/vendor/gmp/current/mpn/x86/pentium/mul_2.asm buildtools/vendor/gmp/current/mpn/x86/pentium/mul_basecase.asm buildtools/vendor/gmp/current/mpn/x86/pentium/popcount.asm buildtools/vendor/gmp/current/mpn/x86/pentium/rshift.asm buildtools/vendor/gmp/current/mpn/x86/pentium/sqr_basecase.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/ buildtools/vendor/gmp/current/mpn/x86/pentium4/README buildtools/vendor/gmp/current/mpn/x86/pentium4/copyd.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/copyi.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/mmx/ buildtools/vendor/gmp/current/mpn/x86/pentium4/mmx/lshift.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/mmx/popham.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/mmx/rshift.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/ buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/add_n.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/addlsh1_n.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/addmul_1.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/dive_1.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/diveby3.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/divrem_1.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/gmp-mparam.h buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/mod_1.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/mod_34lsub1.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/mode1o.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/mul_1.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/mul_basecase.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/rsh1add_n.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/sqr_basecase.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/sub_n.asm buildtools/vendor/gmp/current/mpn/x86/pentium4/sse2/submul_1.asm buildtools/vendor/gmp/current/mpn/x86/rshift.asm buildtools/vendor/gmp/current/mpn/x86/sqr_basecase.asm buildtools/vendor/gmp/current/mpn/x86/t-zdisp.sh buildtools/vendor/gmp/current/mpn/x86/t-zdisp2.pl buildtools/vendor/gmp/current/mpn/x86/udiv.asm buildtools/vendor/gmp/current/mpn/x86/umul.asm buildtools/vendor/gmp/current/mpn/x86/x86-defs.m4 buildtools/vendor/gmp/current/mpn/x86_64/ buildtools/vendor/gmp/current/mpn/x86_64/README buildtools/vendor/gmp/current/mpn/x86_64/add_n.asm buildtools/vendor/gmp/current/mpn/x86_64/addmul_1.asm buildtools/vendor/gmp/current/mpn/x86_64/gmp-mparam.h buildtools/vendor/gmp/current/mpn/x86_64/lshift.asm buildtools/vendor/gmp/current/mpn/x86_64/mode1o.asm buildtools/vendor/gmp/current/mpn/x86_64/mul_1.asm buildtools/vendor/gmp/current/mpn/x86_64/rshift.asm buildtools/vendor/gmp/current/mpn/x86_64/sub_n.asm buildtools/vendor/gmp/current/mpn/x86_64/submul_1.asm buildtools/vendor/gmp/current/mpn/x86_64/x86_64-defs.m4 buildtools/vendor/gmp/current/mpn/z8000/ buildtools/vendor/gmp/current/mpn/z8000/README buildtools/vendor/gmp/current/mpn/z8000/add_n.s buildtools/vendor/gmp/current/mpn/z8000/gmp-mparam.h buildtools/vendor/gmp/current/mpn/z8000/mul_1.s buildtools/vendor/gmp/current/mpn/z8000/sub_n.s buildtools/vendor/gmp/current/mpn/z8000x/ buildtools/vendor/gmp/current/mpn/z8000x/add_n.s buildtools/vendor/gmp/current/mpn/z8000x/sub_n.s buildtools/vendor/gmp/current/mpq/ buildtools/vendor/gmp/current/mpq/Makefile.am buildtools/vendor/gmp/current/mpq/Makefile.in buildtools/vendor/gmp/current/mpq/abs.c buildtools/vendor/gmp/current/mpq/aors.c buildtools/vendor/gmp/current/mpq/canonicalize.c buildtools/vendor/gmp/current/mpq/clear.c buildtools/vendor/gmp/current/mpq/cmp.c buildtools/vendor/gmp/current/mpq/cmp_si.c buildtools/vendor/gmp/current/mpq/cmp_ui.c buildtools/vendor/gmp/current/mpq/div.c buildtools/vendor/gmp/current/mpq/equal.c buildtools/vendor/gmp/current/mpq/get_d.c buildtools/vendor/gmp/current/mpq/get_den.c buildtools/vendor/gmp/current/mpq/get_num.c buildtools/vendor/gmp/current/mpq/get_str.c buildtools/vendor/gmp/current/mpq/init.c buildtools/vendor/gmp/current/mpq/inp_str.c buildtools/vendor/gmp/current/mpq/inv.c buildtools/vendor/gmp/current/mpq/md_2exp.c buildtools/vendor/gmp/current/mpq/mul.c buildtools/vendor/gmp/current/mpq/neg.c buildtools/vendor/gmp/current/mpq/out_str.c buildtools/vendor/gmp/current/mpq/set.c buildtools/vendor/gmp/current/mpq/set_d.c buildtools/vendor/gmp/current/mpq/set_den.c buildtools/vendor/gmp/current/mpq/set_f.c buildtools/vendor/gmp/current/mpq/set_num.c buildtools/vendor/gmp/current/mpq/set_si.c buildtools/vendor/gmp/current/mpq/set_str.c buildtools/vendor/gmp/current/mpq/set_ui.c buildtools/vendor/gmp/current/mpq/set_z.c buildtools/vendor/gmp/current/mpq/swap.c buildtools/vendor/gmp/current/mpz/ buildtools/vendor/gmp/current/mpz/Makefile.am buildtools/vendor/gmp/current/mpz/Makefile.in buildtools/vendor/gmp/current/mpz/abs.c buildtools/vendor/gmp/current/mpz/add.c buildtools/vendor/gmp/current/mpz/add_ui.c buildtools/vendor/gmp/current/mpz/and.c buildtools/vendor/gmp/current/mpz/aors.h buildtools/vendor/gmp/current/mpz/aors_ui.h buildtools/vendor/gmp/current/mpz/aorsmul.c buildtools/vendor/gmp/current/mpz/aorsmul_i.c buildtools/vendor/gmp/current/mpz/array_init.c buildtools/vendor/gmp/current/mpz/bin_ui.c buildtools/vendor/gmp/current/mpz/bin_uiui.c buildtools/vendor/gmp/current/mpz/cdiv_q.c buildtools/vendor/gmp/current/mpz/cdiv_q_ui.c buildtools/vendor/gmp/current/mpz/cdiv_qr.c buildtools/vendor/gmp/current/mpz/cdiv_qr_ui.c buildtools/vendor/gmp/current/mpz/cdiv_r.c buildtools/vendor/gmp/current/mpz/cdiv_r_ui.c buildtools/vendor/gmp/current/mpz/cdiv_ui.c buildtools/vendor/gmp/current/mpz/cfdiv_q_2exp.c buildtools/vendor/gmp/current/mpz/cfdiv_r_2exp.c buildtools/vendor/gmp/current/mpz/clear.c buildtools/vendor/gmp/current/mpz/clrbit.c buildtools/vendor/gmp/current/mpz/cmp.c buildtools/vendor/gmp/current/mpz/cmp_d.c buildtools/vendor/gmp/current/mpz/cmp_si.c buildtools/vendor/gmp/current/mpz/cmp_ui.c buildtools/vendor/gmp/current/mpz/cmpabs.c buildtools/vendor/gmp/current/mpz/cmpabs_d.c buildtools/vendor/gmp/current/mpz/cmpabs_ui.c buildtools/vendor/gmp/current/mpz/com.c buildtools/vendor/gmp/current/mpz/combit.c buildtools/vendor/gmp/current/mpz/cong.c buildtools/vendor/gmp/current/mpz/cong_2exp.c buildtools/vendor/gmp/current/mpz/cong_ui.c buildtools/vendor/gmp/current/mpz/dive_ui.c buildtools/vendor/gmp/current/mpz/divegcd.c buildtools/vendor/gmp/current/mpz/divexact.c buildtools/vendor/gmp/current/mpz/divis.c buildtools/vendor/gmp/current/mpz/divis_2exp.c buildtools/vendor/gmp/current/mpz/divis_ui.c buildtools/vendor/gmp/current/mpz/dump.c buildtools/vendor/gmp/current/mpz/export.c buildtools/vendor/gmp/current/mpz/fac_ui.c buildtools/vendor/gmp/current/mpz/fdiv_q.c buildtools/vendor/gmp/current/mpz/fdiv_q_ui.c buildtools/vendor/gmp/current/mpz/fdiv_qr.c buildtools/vendor/gmp/current/mpz/fdiv_qr_ui.c buildtools/vendor/gmp/current/mpz/fdiv_r.c buildtools/vendor/gmp/current/mpz/fdiv_r_ui.c buildtools/vendor/gmp/current/mpz/fdiv_ui.c buildtools/vendor/gmp/current/mpz/fib2_ui.c buildtools/vendor/gmp/current/mpz/fib_ui.c buildtools/vendor/gmp/current/mpz/fits_s.h buildtools/vendor/gmp/current/mpz/fits_sint.c buildtools/vendor/gmp/current/mpz/fits_slong.c buildtools/vendor/gmp/current/mpz/fits_sshort.c buildtools/vendor/gmp/current/mpz/fits_uint.c buildtools/vendor/gmp/current/mpz/fits_ulong.c buildtools/vendor/gmp/current/mpz/fits_ushort.c buildtools/vendor/gmp/current/mpz/gcd.c buildtools/vendor/gmp/current/mpz/gcd_ui.c buildtools/vendor/gmp/current/mpz/gcdext.c buildtools/vendor/gmp/current/mpz/get_d.c buildtools/vendor/gmp/current/mpz/get_d_2exp.c buildtools/vendor/gmp/current/mpz/get_si.c buildtools/vendor/gmp/current/mpz/get_str.c buildtools/vendor/gmp/current/mpz/get_ui.c buildtools/vendor/gmp/current/mpz/getlimbn.c buildtools/vendor/gmp/current/mpz/hamdist.c buildtools/vendor/gmp/current/mpz/import.c buildtools/vendor/gmp/current/mpz/init.c buildtools/vendor/gmp/current/mpz/init2.c buildtools/vendor/gmp/current/mpz/inp_raw.c buildtools/vendor/gmp/current/mpz/inp_str.c buildtools/vendor/gmp/current/mpz/invert.c buildtools/vendor/gmp/current/mpz/ior.c buildtools/vendor/gmp/current/mpz/iset.c buildtools/vendor/gmp/current/mpz/iset_d.c buildtools/vendor/gmp/current/mpz/iset_si.c buildtools/vendor/gmp/current/mpz/iset_str.c buildtools/vendor/gmp/current/mpz/iset_ui.c buildtools/vendor/gmp/current/mpz/jacobi.c buildtools/vendor/gmp/current/mpz/kronsz.c buildtools/vendor/gmp/current/mpz/kronuz.c buildtools/vendor/gmp/current/mpz/kronzs.c buildtools/vendor/gmp/current/mpz/kronzu.c buildtools/vendor/gmp/current/mpz/lcm.c buildtools/vendor/gmp/current/mpz/lcm_ui.c buildtools/vendor/gmp/current/mpz/lucnum2_ui.c buildtools/vendor/gmp/current/mpz/lucnum_ui.c buildtools/vendor/gmp/current/mpz/millerrabin.c buildtools/vendor/gmp/current/mpz/mod.c buildtools/vendor/gmp/current/mpz/mul.c buildtools/vendor/gmp/current/mpz/mul_2exp.c buildtools/vendor/gmp/current/mpz/mul_i.h buildtools/vendor/gmp/current/mpz/mul_si.c buildtools/vendor/gmp/current/mpz/mul_ui.c buildtools/vendor/gmp/current/mpz/n_pow_ui.c buildtools/vendor/gmp/current/mpz/neg.c buildtools/vendor/gmp/current/mpz/nextprime.c buildtools/vendor/gmp/current/mpz/out_raw.c buildtools/vendor/gmp/current/mpz/out_str.c buildtools/vendor/gmp/current/mpz/perfpow.c buildtools/vendor/gmp/current/mpz/perfsqr.c buildtools/vendor/gmp/current/mpz/popcount.c buildtools/vendor/gmp/current/mpz/pow_ui.c buildtools/vendor/gmp/current/mpz/powm.c buildtools/vendor/gmp/current/mpz/powm_ui.c buildtools/vendor/gmp/current/mpz/pprime_p.c buildtools/vendor/gmp/current/mpz/random.c buildtools/vendor/gmp/current/mpz/random2.c buildtools/vendor/gmp/current/mpz/realloc.c buildtools/vendor/gmp/current/mpz/realloc2.c buildtools/vendor/gmp/current/mpz/remove.c buildtools/vendor/gmp/current/mpz/root.c buildtools/vendor/gmp/current/mpz/rootrem.c buildtools/vendor/gmp/current/mpz/rrandomb.c buildtools/vendor/gmp/current/mpz/scan0.c buildtools/vendor/gmp/current/mpz/scan1.c buildtools/vendor/gmp/current/mpz/set.c buildtools/vendor/gmp/current/mpz/set_d.c buildtools/vendor/gmp/current/mpz/set_f.c buildtools/vendor/gmp/current/mpz/set_q.c buildtools/vendor/gmp/current/mpz/set_si.c buildtools/vendor/gmp/current/mpz/set_str.c buildtools/vendor/gmp/current/mpz/set_ui.c buildtools/vendor/gmp/current/mpz/setbit.c buildtools/vendor/gmp/current/mpz/size.c buildtools/vendor/gmp/current/mpz/sizeinbase.c buildtools/vendor/gmp/current/mpz/sqrt.c buildtools/vendor/gmp/current/mpz/sqrtrem.c buildtools/vendor/gmp/current/mpz/sub.c buildtools/vendor/gmp/current/mpz/sub_ui.c buildtools/vendor/gmp/current/mpz/swap.c buildtools/vendor/gmp/current/mpz/tdiv_q.c buildtools/vendor/gmp/current/mpz/tdiv_q_2exp.c buildtools/vendor/gmp/current/mpz/tdiv_q_ui.c buildtools/vendor/gmp/current/mpz/tdiv_qr.c buildtools/vendor/gmp/current/mpz/tdiv_qr_ui.c buildtools/vendor/gmp/current/mpz/tdiv_r.c buildtools/vendor/gmp/current/mpz/tdiv_r_2exp.c buildtools/vendor/gmp/current/mpz/tdiv_r_ui.c buildtools/vendor/gmp/current/mpz/tdiv_ui.c buildtools/vendor/gmp/current/mpz/tstbit.c buildtools/vendor/gmp/current/mpz/ui_pow_ui.c buildtools/vendor/gmp/current/mpz/ui_sub.c buildtools/vendor/gmp/current/mpz/urandomb.c buildtools/vendor/gmp/current/mpz/urandomm.c buildtools/vendor/gmp/current/mpz/xor.c buildtools/vendor/gmp/current/printf/ buildtools/vendor/gmp/current/printf/Makefile.am buildtools/vendor/gmp/current/printf/Makefile.in buildtools/vendor/gmp/current/printf/asprintf.c buildtools/vendor/gmp/current/printf/asprntffuns.c buildtools/vendor/gmp/current/printf/doprnt.c buildtools/vendor/gmp/current/printf/doprntf.c buildtools/vendor/gmp/current/printf/doprnti.c buildtools/vendor/gmp/current/printf/fprintf.c buildtools/vendor/gmp/current/printf/obprintf.c buildtools/vendor/gmp/current/printf/obprntffuns.c buildtools/vendor/gmp/current/printf/obvprintf.c buildtools/vendor/gmp/current/printf/printf.c buildtools/vendor/gmp/current/printf/printffuns.c buildtools/vendor/gmp/current/printf/repl-vsnprintf.c buildtools/vendor/gmp/current/printf/snprintf.c buildtools/vendor/gmp/current/printf/snprntffuns.c buildtools/vendor/gmp/current/printf/sprintf.c buildtools/vendor/gmp/current/printf/sprintffuns.c buildtools/vendor/gmp/current/printf/vasprintf.c buildtools/vendor/gmp/current/printf/vfprintf.c buildtools/vendor/gmp/current/printf/vprintf.c buildtools/vendor/gmp/current/printf/vsnprintf.c buildtools/vendor/gmp/current/printf/vsprintf.c buildtools/vendor/gmp/current/rand.c buildtools/vendor/gmp/current/randbui.c buildtools/vendor/gmp/current/randclr.c buildtools/vendor/gmp/current/randdef.c buildtools/vendor/gmp/current/randiset.c buildtools/vendor/gmp/current/randlc2s.c buildtools/vendor/gmp/current/randlc2x.c buildtools/vendor/gmp/current/randmt.c buildtools/vendor/gmp/current/randmt.h buildtools/vendor/gmp/current/randmts.c buildtools/vendor/gmp/current/randmui.c buildtools/vendor/gmp/current/rands.c buildtools/vendor/gmp/current/randsd.c buildtools/vendor/gmp/current/randsdui.c buildtools/vendor/gmp/current/scanf/ buildtools/vendor/gmp/current/scanf/Makefile.am buildtools/vendor/gmp/current/scanf/Makefile.in buildtools/vendor/gmp/current/scanf/doscan.c buildtools/vendor/gmp/current/scanf/fscanf.c buildtools/vendor/gmp/current/scanf/fscanffuns.c buildtools/vendor/gmp/current/scanf/scanf.c buildtools/vendor/gmp/current/scanf/sscanf.c buildtools/vendor/gmp/current/scanf/sscanffuns.c buildtools/vendor/gmp/current/scanf/vfscanf.c buildtools/vendor/gmp/current/scanf/vscanf.c buildtools/vendor/gmp/current/scanf/vsscanf.c buildtools/vendor/gmp/current/tal-debug.c buildtools/vendor/gmp/current/tal-notreent.c buildtools/vendor/gmp/current/tal-reent.c buildtools/vendor/gmp/current/tests/ buildtools/vendor/gmp/current/tests/Makefile.am buildtools/vendor/gmp/current/tests/Makefile.in buildtools/vendor/gmp/current/tests/amd64call.asm buildtools/vendor/gmp/current/tests/amd64check.c buildtools/vendor/gmp/current/tests/cxx/ buildtools/vendor/gmp/current/tests/cxx/Makefile.am buildtools/vendor/gmp/current/tests/cxx/Makefile.in buildtools/vendor/gmp/current/tests/cxx/clocale.c buildtools/vendor/gmp/current/tests/cxx/t-assign.cc buildtools/vendor/gmp/current/tests/cxx/t-binary.cc buildtools/vendor/gmp/current/tests/cxx/t-cast.cc buildtools/vendor/gmp/current/tests/cxx/t-constr.cc buildtools/vendor/gmp/current/tests/cxx/t-headers.cc buildtools/vendor/gmp/current/tests/cxx/t-istream.cc buildtools/vendor/gmp/current/tests/cxx/t-locale.cc buildtools/vendor/gmp/current/tests/cxx/t-misc.cc buildtools/vendor/gmp/current/tests/cxx/t-ops.cc buildtools/vendor/gmp/current/tests/cxx/t-ostream.cc buildtools/vendor/gmp/current/tests/cxx/t-prec.cc buildtools/vendor/gmp/current/tests/cxx/t-rand.cc buildtools/vendor/gmp/current/tests/cxx/t-ternary.cc buildtools/vendor/gmp/current/tests/cxx/t-unary.cc buildtools/vendor/gmp/current/tests/devel/ buildtools/vendor/gmp/current/tests/devel/Makefile.am buildtools/vendor/gmp/current/tests/devel/Makefile.in buildtools/vendor/gmp/current/tests/devel/README buildtools/vendor/gmp/current/tests/devel/addmul_N.c buildtools/vendor/gmp/current/tests/devel/anymul_1.c buildtools/vendor/gmp/current/tests/devel/aors_n.c buildtools/vendor/gmp/current/tests/devel/copy.c buildtools/vendor/gmp/current/tests/devel/divmod_1.c buildtools/vendor/gmp/current/tests/devel/divrem.c buildtools/vendor/gmp/current/tests/devel/logops_n.c buildtools/vendor/gmp/current/tests/devel/mul_N.c buildtools/vendor/gmp/current/tests/devel/shift.c buildtools/vendor/gmp/current/tests/devel/try.c buildtools/vendor/gmp/current/tests/memory.c buildtools/vendor/gmp/current/tests/misc.c buildtools/vendor/gmp/current/tests/misc/ buildtools/vendor/gmp/current/tests/misc/Makefile.am buildtools/vendor/gmp/current/tests/misc/Makefile.in buildtools/vendor/gmp/current/tests/misc/t-locale.c buildtools/vendor/gmp/current/tests/misc/t-printf.c buildtools/vendor/gmp/current/tests/misc/t-scanf.c buildtools/vendor/gmp/current/tests/mpbsd/ buildtools/vendor/gmp/current/tests/mpbsd/Makefile.am buildtools/vendor/gmp/current/tests/mpbsd/Makefile.in buildtools/vendor/gmp/current/tests/mpbsd/allfuns.c buildtools/vendor/gmp/current/tests/mpbsd/t-itom.c buildtools/vendor/gmp/current/tests/mpbsd/t-mtox.c buildtools/vendor/gmp/current/tests/mpf/ buildtools/vendor/gmp/current/tests/mpf/Makefile.am buildtools/vendor/gmp/current/tests/mpf/Makefile.in buildtools/vendor/gmp/current/tests/mpf/reuse.c buildtools/vendor/gmp/current/tests/mpf/t-add.c buildtools/vendor/gmp/current/tests/mpf/t-cmp_d.c buildtools/vendor/gmp/current/tests/mpf/t-cmp_si.c buildtools/vendor/gmp/current/tests/mpf/t-conv.c buildtools/vendor/gmp/current/tests/mpf/t-div.c buildtools/vendor/gmp/current/tests/mpf/t-dm2exp.c buildtools/vendor/gmp/current/tests/mpf/t-fits.c buildtools/vendor/gmp/current/tests/mpf/t-get_d.c buildtools/vendor/gmp/current/tests/mpf/t-get_d_2exp.c buildtools/vendor/gmp/current/tests/mpf/t-get_si.c buildtools/vendor/gmp/current/tests/mpf/t-get_ui.c buildtools/vendor/gmp/current/tests/mpf/t-gsprec.c buildtools/vendor/gmp/current/tests/mpf/t-inp_str.c buildtools/vendor/gmp/current/tests/mpf/t-int_p.c buildtools/vendor/gmp/current/tests/mpf/t-mul_ui.c buildtools/vendor/gmp/current/tests/mpf/t-muldiv.c buildtools/vendor/gmp/current/tests/mpf/t-set.c buildtools/vendor/gmp/current/tests/mpf/t-set_q.c buildtools/vendor/gmp/current/tests/mpf/t-set_si.c buildtools/vendor/gmp/current/tests/mpf/t-set_ui.c buildtools/vendor/gmp/current/tests/mpf/t-sqrt.c buildtools/vendor/gmp/current/tests/mpf/t-sqrt_ui.c buildtools/vendor/gmp/current/tests/mpf/t-sub.c buildtools/vendor/gmp/current/tests/mpf/t-trunc.c buildtools/vendor/gmp/current/tests/mpf/t-ui_div.c buildtools/vendor/gmp/current/tests/mpn/ buildtools/vendor/gmp/current/tests/mpn/Makefile.am buildtools/vendor/gmp/current/tests/mpn/Makefile.in buildtools/vendor/gmp/current/tests/mpn/t-aors_1.c buildtools/vendor/gmp/current/tests/mpn/t-asmtype.c buildtools/vendor/gmp/current/tests/mpn/t-divrem_1.c buildtools/vendor/gmp/current/tests/mpn/t-fat.c buildtools/vendor/gmp/current/tests/mpn/t-get_d.c buildtools/vendor/gmp/current/tests/mpn/t-instrument.c buildtools/vendor/gmp/current/tests/mpn/t-iord_u.c buildtools/vendor/gmp/current/tests/mpn/t-mp_bases.c buildtools/vendor/gmp/current/tests/mpn/t-perfsqr.c buildtools/vendor/gmp/current/tests/mpn/t-scan.c buildtools/vendor/gmp/current/tests/mpq/ buildtools/vendor/gmp/current/tests/mpq/Makefile.am buildtools/vendor/gmp/current/tests/mpq/Makefile.in buildtools/vendor/gmp/current/tests/mpq/t-aors.c buildtools/vendor/gmp/current/tests/mpq/t-cmp.c buildtools/vendor/gmp/current/tests/mpq/t-cmp_si.c buildtools/vendor/gmp/current/tests/mpq/t-cmp_ui.c buildtools/vendor/gmp/current/tests/mpq/t-equal.c buildtools/vendor/gmp/current/tests/mpq/t-get_d.c buildtools/vendor/gmp/current/tests/mpq/t-get_str.c buildtools/vendor/gmp/current/tests/mpq/t-inp_str.c buildtools/vendor/gmp/current/tests/mpq/t-md_2exp.c buildtools/vendor/gmp/current/tests/mpq/t-set_f.c buildtools/vendor/gmp/current/tests/mpq/t-set_str.c buildtools/vendor/gmp/current/tests/mpz/ buildtools/vendor/gmp/current/tests/mpz/Makefile.am buildtools/vendor/gmp/current/tests/mpz/Makefile.in buildtools/vendor/gmp/current/tests/mpz/bit.c buildtools/vendor/gmp/current/tests/mpz/convert.c buildtools/vendor/gmp/current/tests/mpz/dive.c buildtools/vendor/gmp/current/tests/mpz/dive_ui.c buildtools/vendor/gmp/current/tests/mpz/io.c buildtools/vendor/gmp/current/tests/mpz/logic.c buildtools/vendor/gmp/current/tests/mpz/reuse.c buildtools/vendor/gmp/current/tests/mpz/t-addsub.c buildtools/vendor/gmp/current/tests/mpz/t-aorsmul.c buildtools/vendor/gmp/current/tests/mpz/t-bin.c buildtools/vendor/gmp/current/tests/mpz/t-cdiv_ui.c buildtools/vendor/gmp/current/tests/mpz/t-cmp.c buildtools/vendor/gmp/current/tests/mpz/t-cmp_d.c buildtools/vendor/gmp/current/tests/mpz/t-cmp_si.c buildtools/vendor/gmp/current/tests/mpz/t-cong.c buildtools/vendor/gmp/current/tests/mpz/t-cong_2exp.c buildtools/vendor/gmp/current/tests/mpz/t-div_2exp.c buildtools/vendor/gmp/current/tests/mpz/t-divis.c buildtools/vendor/gmp/current/tests/mpz/t-divis_2exp.c buildtools/vendor/gmp/current/tests/mpz/t-export.c buildtools/vendor/gmp/current/tests/mpz/t-fac_ui.c buildtools/vendor/gmp/current/tests/mpz/t-fdiv.c buildtools/vendor/gmp/current/tests/mpz/t-fdiv_ui.c buildtools/vendor/gmp/current/tests/mpz/t-fib_ui.c buildtools/vendor/gmp/current/tests/mpz/t-fits.c buildtools/vendor/gmp/current/tests/mpz/t-gcd.c buildtools/vendor/gmp/current/tests/mpz/t-gcd_ui.c buildtools/vendor/gmp/current/tests/mpz/t-get_d.c buildtools/vendor/gmp/current/tests/mpz/t-get_d_2exp.c buildtools/vendor/gmp/current/tests/mpz/t-get_si.c buildtools/vendor/gmp/current/tests/mpz/t-hamdist.c buildtools/vendor/gmp/current/tests/mpz/t-import.c buildtools/vendor/gmp/current/tests/mpz/t-inp_str.c buildtools/vendor/gmp/current/tests/mpz/t-io_raw.c buildtools/vendor/gmp/current/tests/mpz/t-jac.c buildtools/vendor/gmp/current/tests/mpz/t-lcm.c buildtools/vendor/gmp/current/tests/mpz/t-lucnum_ui.c buildtools/vendor/gmp/current/tests/mpz/t-mul.c buildtools/vendor/gmp/current/tests/mpz/t-mul_i.c buildtools/vendor/gmp/current/tests/mpz/t-oddeven.c buildtools/vendor/gmp/current/tests/mpz/t-perfsqr.c buildtools/vendor/gmp/current/tests/mpz/t-popcount.c buildtools/vendor/gmp/current/tests/mpz/t-pow.c buildtools/vendor/gmp/current/tests/mpz/t-powm.c buildtools/vendor/gmp/current/tests/mpz/t-powm_ui.c buildtools/vendor/gmp/current/tests/mpz/t-pprime_p.c buildtools/vendor/gmp/current/tests/mpz/t-root.c buildtools/vendor/gmp/current/tests/mpz/t-scan.c buildtools/vendor/gmp/current/tests/mpz/t-set_d.c buildtools/vendor/gmp/current/tests/mpz/t-set_f.c buildtools/vendor/gmp/current/tests/mpz/t-set_si.c buildtools/vendor/gmp/current/tests/mpz/t-set_str.c buildtools/vendor/gmp/current/tests/mpz/t-sizeinbase.c buildtools/vendor/gmp/current/tests/mpz/t-sqrtrem.c buildtools/vendor/gmp/current/tests/mpz/t-tdiv.c buildtools/vendor/gmp/current/tests/mpz/t-tdiv_ui.c buildtools/vendor/gmp/current/tests/rand/ buildtools/vendor/gmp/current/tests/rand/Makefile.am buildtools/vendor/gmp/current/tests/rand/Makefile.in buildtools/vendor/gmp/current/tests/rand/findlc.c buildtools/vendor/gmp/current/tests/rand/gen.c buildtools/vendor/gmp/current/tests/rand/gmpstat.h buildtools/vendor/gmp/current/tests/rand/spect.c buildtools/vendor/gmp/current/tests/rand/stat.c buildtools/vendor/gmp/current/tests/rand/statlib.c buildtools/vendor/gmp/current/tests/rand/t-iset.c buildtools/vendor/gmp/current/tests/rand/t-lc2exp.c buildtools/vendor/gmp/current/tests/rand/t-mt.c buildtools/vendor/gmp/current/tests/rand/t-rand.c buildtools/vendor/gmp/current/tests/rand/t-urbui.c buildtools/vendor/gmp/current/tests/rand/t-urmui.c buildtools/vendor/gmp/current/tests/rand/t-urndmm.c buildtools/vendor/gmp/current/tests/rand/zdiv_round.c buildtools/vendor/gmp/current/tests/refmpf.c buildtools/vendor/gmp/current/tests/refmpn.c buildtools/vendor/gmp/current/tests/refmpq.c buildtools/vendor/gmp/current/tests/refmpz.c buildtools/vendor/gmp/current/tests/spinner.c buildtools/vendor/gmp/current/tests/t-bswap.c buildtools/vendor/gmp/current/tests/t-constants.c buildtools/vendor/gmp/current/tests/t-count_zeros.c buildtools/vendor/gmp/current/tests/t-gmpmax.c buildtools/vendor/gmp/current/tests/t-hightomask.c buildtools/vendor/gmp/current/tests/t-modlinv.c buildtools/vendor/gmp/current/tests/t-parity.c buildtools/vendor/gmp/current/tests/t-popc.c buildtools/vendor/gmp/current/tests/t-sub.c buildtools/vendor/gmp/current/tests/tests.h buildtools/vendor/gmp/current/tests/trace.c buildtools/vendor/gmp/current/tests/x86call.asm buildtools/vendor/gmp/current/tests/x86check.c buildtools/vendor/gmp/current/tune/ buildtools/vendor/gmp/current/tune/Makefile.am buildtools/vendor/gmp/current/tune/Makefile.in buildtools/vendor/gmp/current/tune/README buildtools/vendor/gmp/current/tune/alpha.asm buildtools/vendor/gmp/current/tune/common.c buildtools/vendor/gmp/current/tune/divrem1div.c buildtools/vendor/gmp/current/tune/divrem1inv.c buildtools/vendor/gmp/current/tune/divrem2div.c buildtools/vendor/gmp/current/tune/divrem2inv.c buildtools/vendor/gmp/current/tune/freq.c buildtools/vendor/gmp/current/tune/gcd_bin.c buildtools/vendor/gmp/current/tune/gcd_finda_gen.c buildtools/vendor/gmp/current/tune/gcdext_double.c buildtools/vendor/gmp/current/tune/gcdext_single.c buildtools/vendor/gmp/current/tune/gcdextod.c buildtools/vendor/gmp/current/tune/gcdextos.c buildtools/vendor/gmp/current/tune/hppa.asm buildtools/vendor/gmp/current/tune/hppa2.asm buildtools/vendor/gmp/current/tune/hppa2w.asm buildtools/vendor/gmp/current/tune/ia64.asm buildtools/vendor/gmp/current/tune/jacbase1.c buildtools/vendor/gmp/current/tune/jacbase2.c buildtools/vendor/gmp/current/tune/jacbase3.c buildtools/vendor/gmp/current/tune/many.pl buildtools/vendor/gmp/current/tune/mod_1_div.c buildtools/vendor/gmp/current/tune/mod_1_inv.c buildtools/vendor/gmp/current/tune/modlinv.c buildtools/vendor/gmp/current/tune/noop.c buildtools/vendor/gmp/current/tune/pentium.asm buildtools/vendor/gmp/current/tune/powerpc.asm buildtools/vendor/gmp/current/tune/powerpc64.asm buildtools/vendor/gmp/current/tune/powm_mod.c buildtools/vendor/gmp/current/tune/powm_redc.c buildtools/vendor/gmp/current/tune/pre_divrem_1.c buildtools/vendor/gmp/current/tune/sb_div.c buildtools/vendor/gmp/current/tune/sb_inv.c buildtools/vendor/gmp/current/tune/set_strb.c buildtools/vendor/gmp/current/tune/set_strs.c buildtools/vendor/gmp/current/tune/sparcv9.asm buildtools/vendor/gmp/current/tune/speed-ext.c buildtools/vendor/gmp/current/tune/speed.c buildtools/vendor/gmp/current/tune/speed.h buildtools/vendor/gmp/current/tune/time.c buildtools/vendor/gmp/current/tune/tuneup.c buildtools/vendor/gmp/current/tune/x86_64.asm buildtools/vendor/gmp/current/version.c Log: Importing GMP library 4.2.1 required by GCC 4.3. Added: buildtools/vendor/gmp/current/.gdbinit =================================================================== --- buildtools/vendor/gmp/current/.gdbinit 2009-01-26 05:29:57 UTC (rev 29036) +++ buildtools/vendor/gmp/current/.gdbinit 2009-01-26 05:42:01 UTC (rev 29037) @@ -0,0 +1,34 @@ +# Copyright 1999 Free Software Foundation, Inc. +# +# This file is part of the GNU MP Library. +# +# The GNU MP Library is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or (at your +# option) any later version. +# +# The GNU MP Library is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +# License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with the GNU MP Library; see the file COPYING.LIB. If not, write to +# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. + + +define pz +set __gmpz_dump ($) +end + +define pq +set __gmpz_dump ($->_mp_num) +echo / +set __gmpz_dump ($->_mp_den) +end + +define pf +set __gmpf_dump ($) +end + Added: buildtools/vendor/gmp/current/AUTHORS =================================================================== --- buildtools/vendor/gmp/current/AUTHORS 2009-01-26 05:29:57 UTC (rev 29036) +++ buildtools/vendor/gmp/current/AUTHORS 2009-01-26 05:42:01 UTC (rev 29037) @@ -0,0 +1,18 @@ +Authors of GNU MP (in chronological order of initial contribution) + +Torbj?rn Granlund Main author +John Amanatides Original version of mpz/pprime_p.c +Paul Zimmermann mpn/generic/mul_fft.c, mpn/generic/dc_divrem_n.c, + new mpz/powm.c, improved Toom3 code. +Ken Weber mpn/generic/gcd.c mpn/generic/bdivmod.c +Bennet Yee mpz/jacobi.c mpz/legendre.c +Andreas Schwab mpn/m68k/lshift.S, mpn/m68k/rshift.S +Robert Harley mpn/generic/mul_n.c, files in mpn/arm +Linus Nordberg Random number framework, original autoconfery +Kent Boortz MacOS 9 port +Kevin Ryde Most x86 assembly, new autoconfery, and countless other + things (please see the GMP manual for complete list) +Gerardo Ballabio gmpxx.h and C++ istream input +Pedro Gimeno Mersenne Twister random generator, other random number + revisions +Jason Moxham New mpz/fac_ui.c and gen-fac_ui.c Added: buildtools/vendor/gmp/current/COPYING =================================================================== --- buildtools/vendor/gmp/current/COPYING 2009-01-26 05:29:57 UTC (rev 29036) +++ buildtools/vendor/gmp/current/COPYING 2009-01-26 05:42:01 UTC (rev 29037) @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. Added: buildtools/vendor/gmp/current/COPYING.LIB =================================================================== --- buildtools/vendor/gmp/current/COPYING.LIB 2009-01-26 05:29:57 UTC (rev 29036) +++ buildtools/vendor/gmp/current/COPYING.LIB 2009-01-26 05:42:01 UTC (rev 29037) @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + Added: buildtools/vendor/gmp/current/ChangeLog =================================================================== --- buildtools/vendor/gmp/current/ChangeLog 2009-01-26 05:29:57 UTC (rev 29036) +++ buildtools/vendor/gmp/current/ChangeLog 2009-01-26 05:42:01 UTC (rev 29037) @@ -0,0 +1,20869 @@ +Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +. +This file is part of the GNU MP Library. +. +The GNU MP Library is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or (at your +option) any later version. +. +The GNU MP Library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +License for more details. +. +You should have received a copy of the GNU Lesser General Public License +along with the GNU MP Library; see the file COPYING.LIB. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +MA 02110-1301, USA. + +2006-05-04 Torbjorn Granlund + + * Version 4.2.1 released. + +2006-05-03 Torbjorn Granlund + + * mpn/powerpc64/vmx/popcount.asm: Conditionally zero extend n. + +2006-04-27 Torbjorn Granlund + + * mpz/divexact.c: Call mpz_tdiv_q for large operands. + + * configure.in (powerpc-*-darwin): Remove -fast, it affects PIC. + +2006-04-26 Torbjorn Granlund + + * config.guess: Try to recognize Ultrasparc T1 (as ultrasparct1). + * config.sub: Handle ultrasparct1. + +2006-04-25 Torbjorn Granlund + + * mpn/sparc64/gmp-mparam.h: Retune, without separation of GNUC and + non-GNUC data. + +2006-04-19 Torbjorn Granlund + + * configure.in: Support powerpc eABI. + * mpn/powerpc32/eabi.m4: New file. + + * configure.in: Support powerpc *bsd. + * mpn/powerpc64/elf.m4: New name for mpn/powerpc64/linux64.m4. + * mpn/powerpc32/elf.m4: New name for mpn/powerpc32/linux.m4. + + * mpn/powerpc64/linux64.m4 (ASM_END): Quote TOC_ENTRY. + +2006-04-18 Torbjorn Granlund + + * configure.in (gmp_mpn_functions_optional): Add lshiftc. + (HAVE_NATIVE): Add lshiftc. + + * tune/speed.h (SPEED_ROUTINE_MPN_ADDSUB_N_CALL): New macro. + * tune/common.c (speed_mpn_addsub_n): New function. + * tune/speed.c (routine): Add measuring of mpn_addsub_n. + + * mpn/powerpc64/linux64.m4 (TOC_ENTRY): Define to empty. + * mpn/powerpc64/aix.m4 (TOC_ENTRY): Likewise. + * mpn/powerpc32/aix.m4 (TOC_ENTRY): Likewise. + + * mpn/powerpc32/aix.m4 (EXTERN): New, copied form powerpc64/aix.m4. + * mpn/powerpc32/mode1o.asm: Use EXTERN. + * mpn/powerpc32/linux.m4 (EXTERN): Provide dummy definition. + * mpn/powerpc32/darwin.m4 (EXTERN): Likewise. + +2006-04-13 Torbjorn Granlund + [... truncated: 312143 lines follow ...] From mmlr at mail.berlios.de Mon Jan 26 06:49:30 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 06:49:30 +0100 Subject: [Haiku-commits] r29038 - buildtools/vendor/gmp Message-ID: <200901260549.n0Q5nUb1011992@sheep.berlios.de> Author: mmlr Date: 2009-01-26 06:49:28 +0100 (Mon, 26 Jan 2009) New Revision: 29038 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29038&view=rev Added: buildtools/vendor/gmp/4.2.1/ Log: Tagging GMP 4.2.1. Copied: buildtools/vendor/gmp/4.2.1 (from rev 29037, buildtools/vendor/gmp/current) From mmlr at mail.berlios.de Mon Jan 26 06:53:21 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 06:53:21 +0100 Subject: [Haiku-commits] r29039 - in buildtools/vendor: . mpfr mpfr/current mpfr/current/tests Message-ID: <200901260553.n0Q5rLbE014806@sheep.berlios.de> Author: mmlr Date: 2009-01-26 06:50:34 +0100 (Mon, 26 Jan 2009) New Revision: 29039 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29039&view=rev Added: buildtools/vendor/mpfr/ buildtools/vendor/mpfr/current/ buildtools/vendor/mpfr/current/AUTHORS buildtools/vendor/mpfr/current/BUGS buildtools/vendor/mpfr/current/COPYING buildtools/vendor/mpfr/current/COPYING.LIB buildtools/vendor/mpfr/current/ChangeLog buildtools/vendor/mpfr/current/FAQ.html buildtools/vendor/mpfr/current/INSTALL buildtools/vendor/mpfr/current/Makefile.am buildtools/vendor/mpfr/current/Makefile.in buildtools/vendor/mpfr/current/NEWS buildtools/vendor/mpfr/current/PATCHES buildtools/vendor/mpfr/current/README buildtools/vendor/mpfr/current/TODO buildtools/vendor/mpfr/current/VERSION buildtools/vendor/mpfr/current/abort_prec_max.c buildtools/vendor/mpfr/current/acinclude.m4 buildtools/vendor/mpfr/current/aclocal.m4 buildtools/vendor/mpfr/current/acos.c buildtools/vendor/mpfr/current/acosh.c buildtools/vendor/mpfr/current/add.c buildtools/vendor/mpfr/current/add1.c buildtools/vendor/mpfr/current/add1sp.c buildtools/vendor/mpfr/current/add_ui.c buildtools/vendor/mpfr/current/agm.c buildtools/vendor/mpfr/current/ansi2knr.1 buildtools/vendor/mpfr/current/ansi2knr.c buildtools/vendor/mpfr/current/asin.c buildtools/vendor/mpfr/current/asinh.c buildtools/vendor/mpfr/current/atan.c buildtools/vendor/mpfr/current/atan2.c buildtools/vendor/mpfr/current/atanh.c buildtools/vendor/mpfr/current/cache.c buildtools/vendor/mpfr/current/cbrt.c buildtools/vendor/mpfr/current/check.c buildtools/vendor/mpfr/current/clear.c buildtools/vendor/mpfr/current/clears.c buildtools/vendor/mpfr/current/cmp.c buildtools/vendor/mpfr/current/cmp2.c buildtools/vendor/mpfr/current/cmp_abs.c buildtools/vendor/mpfr/current/cmp_d.c buildtools/vendor/mpfr/current/cmp_ld.c buildtools/vendor/mpfr/current/cmp_si.c buildtools/vendor/mpfr/current/cmp_ui.c buildtools/vendor/mpfr/current/comparisons.c buildtools/vendor/mpfr/current/config.guess buildtools/vendor/mpfr/current/config.sub buildtools/vendor/mpfr/current/configure buildtools/vendor/mpfr/current/configure.in buildtools/vendor/mpfr/current/const_catalan.c buildtools/vendor/mpfr/current/const_euler.c buildtools/vendor/mpfr/current/const_log2.c buildtools/vendor/mpfr/current/const_pi.c buildtools/vendor/mpfr/current/constant.c buildtools/vendor/mpfr/current/copysign.c buildtools/vendor/mpfr/current/cos.c buildtools/vendor/mpfr/current/cosh.c buildtools/vendor/mpfr/current/cot.c buildtools/vendor/mpfr/current/coth.c buildtools/vendor/mpfr/current/csc.c buildtools/vendor/mpfr/current/csch.c buildtools/vendor/mpfr/current/depcomp buildtools/vendor/mpfr/current/dim.c buildtools/vendor/mpfr/current/div.c buildtools/vendor/mpfr/current/div_2exp.c buildtools/vendor/mpfr/current/div_2si.c buildtools/vendor/mpfr/current/div_2ui.c buildtools/vendor/mpfr/current/div_ui.c buildtools/vendor/mpfr/current/dump.c buildtools/vendor/mpfr/current/eint.c buildtools/vendor/mpfr/current/eq.c buildtools/vendor/mpfr/current/erf.c buildtools/vendor/mpfr/current/erfc.c buildtools/vendor/mpfr/current/exceptions.c buildtools/vendor/mpfr/current/exp.c buildtools/vendor/mpfr/current/exp10.c buildtools/vendor/mpfr/current/exp2.c buildtools/vendor/mpfr/current/exp3.c buildtools/vendor/mpfr/current/exp_2.c buildtools/vendor/mpfr/current/expm1.c buildtools/vendor/mpfr/current/extract.c buildtools/vendor/mpfr/current/factorial.c buildtools/vendor/mpfr/current/fdl.texi buildtools/vendor/mpfr/current/fits_intmax.c buildtools/vendor/mpfr/current/fits_s.h buildtools/vendor/mpfr/current/fits_sint.c buildtools/vendor/mpfr/current/fits_slong.c buildtools/vendor/mpfr/current/fits_sshort.c buildtools/vendor/mpfr/current/fits_u.h buildtools/vendor/mpfr/current/fits_uint.c buildtools/vendor/mpfr/current/fits_uintmax.c buildtools/vendor/mpfr/current/fits_ulong.c buildtools/vendor/mpfr/current/fits_ushort.c buildtools/vendor/mpfr/current/fma.c buildtools/vendor/mpfr/current/fms.c buildtools/vendor/mpfr/current/frac.c buildtools/vendor/mpfr/current/free_cache.c buildtools/vendor/mpfr/current/gamma.c buildtools/vendor/mpfr/current/gen_inverse.h buildtools/vendor/mpfr/current/generic.c buildtools/vendor/mpfr/current/get_d.c buildtools/vendor/mpfr/current/get_d64.c buildtools/vendor/mpfr/current/get_exp.c buildtools/vendor/mpfr/current/get_f.c buildtools/vendor/mpfr/current/get_ld.c buildtools/vendor/mpfr/current/get_patches.c buildtools/vendor/mpfr/current/get_patches.sh buildtools/vendor/mpfr/current/get_si.c buildtools/vendor/mpfr/current/get_sj.c buildtools/vendor/mpfr/current/get_str.c buildtools/vendor/mpfr/current/get_ui.c buildtools/vendor/mpfr/current/get_uj.c buildtools/vendor/mpfr/current/get_z.c buildtools/vendor/mpfr/current/get_z_exp.c buildtools/vendor/mpfr/current/gmp_op.c buildtools/vendor/mpfr/current/hypot.c buildtools/vendor/mpfr/current/init.c buildtools/vendor/mpfr/current/init2.c buildtools/vendor/mpfr/current/inits.c buildtools/vendor/mpfr/current/inits2.c buildtools/vendor/mpfr/current/inp_str.c buildtools/vendor/mpfr/current/install-sh buildtools/vendor/mpfr/current/int_ceil_log2.c buildtools/vendor/mpfr/current/isinf.c buildtools/vendor/mpfr/current/isinteger.c buildtools/vendor/mpfr/current/isnan.c buildtools/vendor/mpfr/current/isnum.c buildtools/vendor/mpfr/current/isqrt.c buildtools/vendor/mpfr/current/iszero.c buildtools/vendor/mpfr/current/jn.c buildtools/vendor/mpfr/current/jyn_asympt.c buildtools/vendor/mpfr/current/lngamma.c buildtools/vendor/mpfr/current/log.c buildtools/vendor/mpfr/current/log10.c buildtools/vendor/mpfr/current/log1p.c buildtools/vendor/mpfr/current/log2.c buildtools/vendor/mpfr/current/logging.c buildtools/vendor/mpfr/current/ltmain.sh buildtools/vendor/mpfr/current/minmax.c buildtools/vendor/mpfr/current/missing buildtools/vendor/mpfr/current/mp_clz_tab.c buildtools/vendor/mpfr/current/mparam_h.in buildtools/vendor/mpfr/current/mpf2mpfr.h buildtools/vendor/mpfr/current/mpfr-gmp.c buildtools/vendor/mpfr/current/mpfr-gmp.h buildtools/vendor/mpfr/current/mpfr-impl.h buildtools/vendor/mpfr/current/mpfr-longlong.h buildtools/vendor/mpfr/current/mpfr.h buildtools/vendor/mpfr/current/mpfr.info buildtools/vendor/mpfr/current/mpfr.texi buildtools/vendor/mpfr/current/mpn_exp.c buildtools/vendor/mpfr/current/mul.c buildtools/vendor/mpfr/current/mul_2exp.c buildtools/vendor/mpfr/current/mul_2si.c buildtools/vendor/mpfr/current/mul_2ui.c buildtools/vendor/mpfr/current/mul_ui.c buildtools/vendor/mpfr/current/mulders.c buildtools/vendor/mpfr/current/neg.c buildtools/vendor/mpfr/current/next.c buildtools/vendor/mpfr/current/out_str.c buildtools/vendor/mpfr/current/pow.c buildtools/vendor/mpfr/current/pow_si.c buildtools/vendor/mpfr/current/pow_ui.c buildtools/vendor/mpfr/current/pow_z.c buildtools/vendor/mpfr/current/powerof2.c buildtools/vendor/mpfr/current/print_raw.c buildtools/vendor/mpfr/current/print_rnd_mode.c buildtools/vendor/mpfr/current/random.c buildtools/vendor/mpfr/current/random2.c buildtools/vendor/mpfr/current/reldiff.c buildtools/vendor/mpfr/current/remquo.c buildtools/vendor/mpfr/current/rint.c buildtools/vendor/mpfr/current/root.c buildtools/vendor/mpfr/current/round_near_x.c buildtools/vendor/mpfr/current/round_p.c buildtools/vendor/mpfr/current/round_prec.c buildtools/vendor/mpfr/current/round_raw_generic.c buildtools/vendor/mpfr/current/sec.c buildtools/vendor/mpfr/current/sech.c buildtools/vendor/mpfr/current/set.c buildtools/vendor/mpfr/current/set_d.c buildtools/vendor/mpfr/current/set_d64.c buildtools/vendor/mpfr/current/set_dfl_prec.c buildtools/vendor/mpfr/current/set_exp.c buildtools/vendor/mpfr/current/set_f.c buildtools/vendor/mpfr/current/set_inf.c buildtools/vendor/mpfr/current/set_ld.c buildtools/vendor/mpfr/current/set_nan.c buildtools/vendor/mpfr/current/set_prc_raw.c buildtools/vendor/mpfr/current/set_prec.c buildtools/vendor/mpfr/current/set_q.c buildtools/vendor/mpfr/current/set_rnd.c buildtools/vendor/mpfr/current/set_si.c buildtools/vendor/mpfr/current/set_si_2exp.c buildtools/vendor/mpfr/current/set_sj.c buildtools/vendor/mpfr/current/set_str.c buildtools/vendor/mpfr/current/set_str_raw.c buildtools/vendor/mpfr/current/set_ui.c buildtools/vendor/mpfr/current/set_ui_2exp.c buildtools/vendor/mpfr/current/set_uj.c buildtools/vendor/mpfr/current/set_z.c buildtools/vendor/mpfr/current/setmax.c buildtools/vendor/mpfr/current/setmin.c buildtools/vendor/mpfr/current/setsign.c buildtools/vendor/mpfr/current/sgn.c buildtools/vendor/mpfr/current/si_op.c buildtools/vendor/mpfr/current/signbit.c buildtools/vendor/mpfr/current/sin.c buildtools/vendor/mpfr/current/sin_cos.c buildtools/vendor/mpfr/current/sinh.c buildtools/vendor/mpfr/current/sqr.c buildtools/vendor/mpfr/current/sqrt.c buildtools/vendor/mpfr/current/sqrt_ui.c buildtools/vendor/mpfr/current/stack_interface.c buildtools/vendor/mpfr/current/strtofr.c buildtools/vendor/mpfr/current/sub.c buildtools/vendor/mpfr/current/sub1.c buildtools/vendor/mpfr/current/sub1sp.c buildtools/vendor/mpfr/current/sub_ui.c buildtools/vendor/mpfr/current/subnormal.c buildtools/vendor/mpfr/current/sum.c buildtools/vendor/mpfr/current/swap.c buildtools/vendor/mpfr/current/tan.c buildtools/vendor/mpfr/current/tanh.c buildtools/vendor/mpfr/current/tests/ buildtools/vendor/mpfr/current/tests/Makefile.am buildtools/vendor/mpfr/current/tests/Makefile.in buildtools/vendor/mpfr/current/tests/cmp_str.c buildtools/vendor/mpfr/current/tests/inp_str.data buildtools/vendor/mpfr/current/tests/memory.c buildtools/vendor/mpfr/current/tests/mpf_compat.c buildtools/vendor/mpfr/current/tests/mpf_compat.h buildtools/vendor/mpfr/current/tests/mpfr-test.h buildtools/vendor/mpfr/current/tests/mpfr_compat.c buildtools/vendor/mpfr/current/tests/reuse.c buildtools/vendor/mpfr/current/tests/rnd_mode.c buildtools/vendor/mpfr/current/tests/tabs.c buildtools/vendor/mpfr/current/tests/tacos.c buildtools/vendor/mpfr/current/tests/tacosh.c buildtools/vendor/mpfr/current/tests/tadd.c buildtools/vendor/mpfr/current/tests/tadd1sp.c buildtools/vendor/mpfr/current/tests/tadd_ui.c buildtools/vendor/mpfr/current/tests/tagm.c buildtools/vendor/mpfr/current/tests/tasin.c buildtools/vendor/mpfr/current/tests/tasinh.c buildtools/vendor/mpfr/current/tests/tatan.c buildtools/vendor/mpfr/current/tests/tatanh.c buildtools/vendor/mpfr/current/tests/tcan_round.c buildtools/vendor/mpfr/current/tests/tcbrt.c buildtools/vendor/mpfr/current/tests/tcheck.c buildtools/vendor/mpfr/current/tests/tcmp.c buildtools/vendor/mpfr/current/tests/tcmp2.c buildtools/vendor/mpfr/current/tests/tcmp_d.c buildtools/vendor/mpfr/current/tests/tcmp_ld.c buildtools/vendor/mpfr/current/tests/tcmp_ui.c buildtools/vendor/mpfr/current/tests/tcmpabs.c buildtools/vendor/mpfr/current/tests/tcomparisons.c buildtools/vendor/mpfr/current/tests/tconst_catalan.c buildtools/vendor/mpfr/current/tests/tconst_euler.c buildtools/vendor/mpfr/current/tests/tconst_log2.c buildtools/vendor/mpfr/current/tests/tconst_pi.c buildtools/vendor/mpfr/current/tests/tcopysign.c buildtools/vendor/mpfr/current/tests/tcos.c buildtools/vendor/mpfr/current/tests/tcosh.c buildtools/vendor/mpfr/current/tests/tcot.c buildtools/vendor/mpfr/current/tests/tcoth.c buildtools/vendor/mpfr/current/tests/tcsc.c buildtools/vendor/mpfr/current/tests/tcsch.c buildtools/vendor/mpfr/current/tests/tdim.c buildtools/vendor/mpfr/current/tests/tdiv.c buildtools/vendor/mpfr/current/tests/tdiv_ui.c buildtools/vendor/mpfr/current/tests/teint.c buildtools/vendor/mpfr/current/tests/teq.c buildtools/vendor/mpfr/current/tests/terf.c buildtools/vendor/mpfr/current/tests/tests.c buildtools/vendor/mpfr/current/tests/texceptions.c buildtools/vendor/mpfr/current/tests/texp.c buildtools/vendor/mpfr/current/tests/texp10.c buildtools/vendor/mpfr/current/tests/texp2.c buildtools/vendor/mpfr/current/tests/texpm1.c buildtools/vendor/mpfr/current/tests/tfactorial.c buildtools/vendor/mpfr/current/tests/tfits.c buildtools/vendor/mpfr/current/tests/tfma.c buildtools/vendor/mpfr/current/tests/tfms.c buildtools/vendor/mpfr/current/tests/tfrac.c buildtools/vendor/mpfr/current/tests/tgamma.c buildtools/vendor/mpfr/current/tests/tgeneric.c buildtools/vendor/mpfr/current/tests/tgeneric_ui.c buildtools/vendor/mpfr/current/tests/tget_d.c buildtools/vendor/mpfr/current/tests/tget_d_2exp.c buildtools/vendor/mpfr/current/tests/tget_f.c buildtools/vendor/mpfr/current/tests/tget_ld_2exp.c buildtools/vendor/mpfr/current/tests/tget_set_d64.c buildtools/vendor/mpfr/current/tests/tget_sj.c buildtools/vendor/mpfr/current/tests/tget_str.c buildtools/vendor/mpfr/current/tests/tget_z.c buildtools/vendor/mpfr/current/tests/tgmpop.c buildtools/vendor/mpfr/current/tests/thyperbolic.c buildtools/vendor/mpfr/current/tests/thypot.c buildtools/vendor/mpfr/current/tests/tinits.c buildtools/vendor/mpfr/current/tests/tinp_str.c buildtools/vendor/mpfr/current/tests/tinternals.c buildtools/vendor/mpfr/current/tests/tisnan.c buildtools/vendor/mpfr/current/tests/tj0.c buildtools/vendor/mpfr/current/tests/tj1.c buildtools/vendor/mpfr/current/tests/tjn.c buildtools/vendor/mpfr/current/tests/tl2b.c buildtools/vendor/mpfr/current/tests/tlgamma.c buildtools/vendor/mpfr/current/tests/tlngamma.c buildtools/vendor/mpfr/current/tests/tlog.c buildtools/vendor/mpfr/current/tests/tlog10.c buildtools/vendor/mpfr/current/tests/tlog1p.c buildtools/vendor/mpfr/current/tests/tlog2.c buildtools/vendor/mpfr/current/tests/tminmax.c buildtools/vendor/mpfr/current/tests/tmul.c buildtools/vendor/mpfr/current/tests/tmul_2exp.c buildtools/vendor/mpfr/current/tests/tmul_ui.c buildtools/vendor/mpfr/current/tests/tnext.c buildtools/vendor/mpfr/current/tests/tout_str.c buildtools/vendor/mpfr/current/tests/toutimpl.c buildtools/vendor/mpfr/current/tests/tpow.c buildtools/vendor/mpfr/current/tests/tpow3.c buildtools/vendor/mpfr/current/tests/tpow_z.c buildtools/vendor/mpfr/current/tests/trandom.c buildtools/vendor/mpfr/current/tests/tremquo.c buildtools/vendor/mpfr/current/tests/trint.c buildtools/vendor/mpfr/current/tests/troot.c buildtools/vendor/mpfr/current/tests/tround_prec.c buildtools/vendor/mpfr/current/tests/tsec.c buildtools/vendor/mpfr/current/tests/tsech.c buildtools/vendor/mpfr/current/tests/tset.c buildtools/vendor/mpfr/current/tests/tset_d.c buildtools/vendor/mpfr/current/tests/tset_exp.c buildtools/vendor/mpfr/current/tests/tset_f.c buildtools/vendor/mpfr/current/tests/tset_ld.c buildtools/vendor/mpfr/current/tests/tset_q.c buildtools/vendor/mpfr/current/tests/tset_si.c buildtools/vendor/mpfr/current/tests/tset_sj.c buildtools/vendor/mpfr/current/tests/tset_str.c buildtools/vendor/mpfr/current/tests/tset_z.c buildtools/vendor/mpfr/current/tests/tsgn.c buildtools/vendor/mpfr/current/tests/tsi_op.c buildtools/vendor/mpfr/current/tests/tsin.c buildtools/vendor/mpfr/current/tests/tsin_cos.c buildtools/vendor/mpfr/current/tests/tsinh.c buildtools/vendor/mpfr/current/tests/tsqr.c buildtools/vendor/mpfr/current/tests/tsqrt.c buildtools/vendor/mpfr/current/tests/tsqrt_ui.c buildtools/vendor/mpfr/current/tests/tstckintc.c buildtools/vendor/mpfr/current/tests/tstrtofr.c buildtools/vendor/mpfr/current/tests/tsub.c buildtools/vendor/mpfr/current/tests/tsub1sp.c buildtools/vendor/mpfr/current/tests/tsub_ui.c buildtools/vendor/mpfr/current/tests/tsubnormal.c buildtools/vendor/mpfr/current/tests/tsum.c buildtools/vendor/mpfr/current/tests/tswap.c buildtools/vendor/mpfr/current/tests/ttan.c buildtools/vendor/mpfr/current/tests/ttanh.c buildtools/vendor/mpfr/current/tests/ttrunc.c buildtools/vendor/mpfr/current/tests/tui_div.c buildtools/vendor/mpfr/current/tests/tui_pow.c buildtools/vendor/mpfr/current/tests/tui_sub.c buildtools/vendor/mpfr/current/tests/tversion.c buildtools/vendor/mpfr/current/tests/ty0.c buildtools/vendor/mpfr/current/tests/ty1.c buildtools/vendor/mpfr/current/tests/tyn.c buildtools/vendor/mpfr/current/tests/tzeta.c buildtools/vendor/mpfr/current/tests/tzeta_ui.c buildtools/vendor/mpfr/current/texinfo.tex buildtools/vendor/mpfr/current/tuneup.c buildtools/vendor/mpfr/current/uceil_exp2.c buildtools/vendor/mpfr/current/uceil_log2.c buildtools/vendor/mpfr/current/ufloor_log2.c buildtools/vendor/mpfr/current/ui_div.c buildtools/vendor/mpfr/current/ui_pow.c buildtools/vendor/mpfr/current/ui_pow_ui.c buildtools/vendor/mpfr/current/ui_sub.c buildtools/vendor/mpfr/current/urandomb.c buildtools/vendor/mpfr/current/version.c buildtools/vendor/mpfr/current/volatile.c buildtools/vendor/mpfr/current/yn.c buildtools/vendor/mpfr/current/zeta.c buildtools/vendor/mpfr/current/zeta_ui.c Log: Importing MPFR library 2.3.0 required by GCC 4.3. Added: buildtools/vendor/mpfr/current/AUTHORS =================================================================== --- buildtools/vendor/mpfr/current/AUTHORS 2009-01-26 05:49:28 UTC (rev 29038) +++ buildtools/vendor/mpfr/current/AUTHORS 2009-01-26 05:50:34 UTC (rev 29039) @@ -0,0 +1,17 @@ +Authors of MPFR (in chronological order of initial contribution): + +Guillaume Hanrot Main author +Fabrice Rouillier Original version of mul_ui.c, gmp_op.c +Paul Zimmermann Main author +Sylvie Boldo Original version of agm.c and log.c +Emmanuel Jeandel Original version of generic.c, exp3.c, pi.c, sincos.c +Mathieu Dutour asin.c, atan.c and gamma.c +Vincent Lef?vre Main author +David Daney Hyperbolic and inverse hyperbolic functions, base-2 + and base-10 exponential and logarithm, factorial +Patrick P?lissier Main author +Laurent Fousse Original version of sum.c + +All authors are included in the MPFR mailing-list . +This is the preferred way to contact us. For further information, please +look at the MPFR web page . Added: buildtools/vendor/mpfr/current/BUGS =================================================================== --- buildtools/vendor/mpfr/current/BUGS 2009-01-26 05:49:28 UTC (rev 29038) +++ buildtools/vendor/mpfr/current/BUGS 2009-01-26 05:50:34 UTC (rev 29039) @@ -0,0 +1,61 @@ +Copyright 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc. +Contributed by the Spaces project, INRIA Lorraine. + +This file is part of the MPFR Library. + +The MPFR Library is free software; you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation; either version 2.1 of the License, or (at your +option) any later version. + +The MPFR Library is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public +License for more details. + +You should have received a copy of the GNU Lesser General Public License +along with the MPFR Library; see the file COPYING.LIB. If not, write to +the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, +MA 02110-1301, USA. + +############################################################################## + +Probably many bugs. + +Known bugs: + +* The overflow/underflow exceptions may be badly handled in some functions; + specially when the intermediary internal results have exponent which + exceeds the hardware limit (2^30 for a 32 bits CPU, and 2^62 for a 64 bits + CPU). + +* Under Linux/x86 with the traditional FPU, some functions do not work + if the FPU rounding precision has been changed to single (this is a + bad practice and should be useless, but one never knows what other + software will do). + +* Some functions do not use MPFR_SAVE_EXPO_* macros, thus do not behave + correctly in a reduced exponent range. + +Potential bugs: + +* Possible integer overflows on some machines. + +* Possible bugs with huge precisions (> 2^30). + +* Possible bugs if the chosen exponent range does not allow to represent + the range [1/16, 16]. + +* Possible infinite loop in some functions for particular cases: when + the exact result is an exactly representable number or the middle of + consecutive two such numbers. However for non-algebraic functions, it is + believed that no such case exists, except the well-known cases like cos(0)=1, + exp(0)=1, and so on, and the x^y function when y is an integer or y=1/2^k. + +* The mpfr_set_ld function may be quite slow if the long double type has an + exponent of more than 15 bits. + +* mpfr_set_d may give wrong results on some non-IEEE architectures. + +* Error analysis for some functions may be incorrect (out-of-date due + to modifications in the code?). Added: buildtools/vendor/mpfr/current/COPYING =================================================================== --- buildtools/vendor/mpfr/current/COPYING 2009-01-26 05:49:28 UTC (rev 29038) +++ buildtools/vendor/mpfr/current/COPYING 2009-01-26 05:50:34 UTC (rev 29039) @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. Added: buildtools/vendor/mpfr/current/COPYING.LIB =================================================================== --- buildtools/vendor/mpfr/current/COPYING.LIB 2009-01-26 05:49:28 UTC (rev 29038) +++ buildtools/vendor/mpfr/current/COPYING.LIB 2009-01-26 05:50:34 UTC (rev 29039) @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + Added: buildtools/vendor/mpfr/current/ChangeLog =================================================================== --- buildtools/vendor/mpfr/current/ChangeLog 2009-01-26 05:49:28 UTC (rev 29038) +++ buildtools/vendor/mpfr/current/ChangeLog 2009-01-26 05:50:34 UTC (rev 29039) @@ -0,0 +1,40716 @@ +------------------------------------------------------------------------ +r4796 | vlefevre | 2007-08-28 15:40:53 +0000 (Tue, 28 Aug 2007) | 3 lines +Changed paths: + M /branches/2.3/atan2.c + M /branches/2.3/tests/tatan.c + +Ported the mpfr_atan2 fix in underflow case and corresponding testcases +from the trunk. + +------------------------------------------------------------------------ +r4787 | vlefevre | 2007-08-28 13:17:01 +0000 (Tue, 28 Aug 2007) | 2 lines +Changed paths: + M /branches/2.3/README.dev + +README.dev: added a paragraph concerning Ziv loops. + +------------------------------------------------------------------------ +r4782 | vlefevre | 2007-08-27 14:29:03 +0000 (Mon, 27 Aug 2007) | 2 lines +Changed paths: + M /branches/2.3 + M /branches/2.3/tests + +Updated svn:ignore properties. + +------------------------------------------------------------------------ +r4780 | vlefevre | 2007-08-27 11:55:25 +0000 (Mon, 27 Aug 2007) | 7 lines +Changed paths: + M /branches/2.3/FAQ.html + +FAQ update: + * The question numbers are now hardcoded instead of being generated + with CSS rules. + * Added the list of questions at the top. + * CSS styles: a grey bar is displayed on the left of the target answer + (if the browser supports the ":target" pseudo-class from CSS3). + +------------------------------------------------------------------------ +r4777 | vlefevre | 2007-08-27 10:44:49 +0000 (Mon, 27 Aug 2007) | 2 lines +Changed paths: + M /branches/2.3/FAQ.html + +FAQ update. + +------------------------------------------------------------------------ +r4775 | vlefevre | 2007-08-22 15:52:23 +0000 (Wed, 22 Aug 2007) | 6 lines +Changed paths: + M /branches/2.3/INSTALL + +INSTALL: added another warning concerning the --with-gmp options. [... truncated: 179384 lines follow ...] From mmlr at mail.berlios.de Mon Jan 26 06:54:33 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 06:54:33 +0100 Subject: [Haiku-commits] r29040 - buildtools/vendor/mpfr Message-ID: <200901260554.n0Q5sXq7015808@sheep.berlios.de> Author: mmlr Date: 2009-01-26 06:54:30 +0100 (Mon, 26 Jan 2009) New Revision: 29040 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29040&view=rev Added: buildtools/vendor/mpfr/2.3.0/ Log: Tagging MPFR 2.3.0. Copied: buildtools/vendor/mpfr/2.3.0 (from rev 29039, buildtools/vendor/mpfr/current) From mmlr at mail.berlios.de Mon Jan 26 06:55:48 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 06:55:48 +0100 Subject: [Haiku-commits] r29041 - buildtools/trunk/gcc Message-ID: <200901260555.n0Q5tmp1017027@sheep.berlios.de> Author: mmlr Date: 2009-01-26 06:55:46 +0100 (Mon, 26 Jan 2009) New Revision: 29041 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29041&view=rev Added: buildtools/trunk/gcc/gmp/ Log: Adding inline gmp directory so the GMP library is built as part of GCC 4.3. Copied: buildtools/trunk/gcc/gmp (from rev 29040, buildtools/vendor/gmp/4.2.1) From mmlr at mail.berlios.de Mon Jan 26 06:56:25 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 06:56:25 +0100 Subject: [Haiku-commits] r29042 - buildtools/trunk/gcc Message-ID: <200901260556.n0Q5uP5g017686@sheep.berlios.de> Author: mmlr Date: 2009-01-26 06:56:19 +0100 (Mon, 26 Jan 2009) New Revision: 29042 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29042&view=rev Added: buildtools/trunk/gcc/mpfr/ Log: Adding inline mpfr directory so the MPFR library is built as part of GCC 4.3. Copied: buildtools/trunk/gcc/mpfr (from rev 29041, buildtools/vendor/mpfr/2.3.0) From mmlr at mail.berlios.de Mon Jan 26 07:43:29 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 07:43:29 +0100 Subject: [Haiku-commits] r29043 - buildtools/trunk/gcc/gmp/doc Message-ID: <200901260643.n0Q6hT5o027262@sheep.berlios.de> Author: mmlr Date: 2009-01-26 07:43:27 +0100 (Mon, 26 Jan 2009) New Revision: 29043 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29043&view=rev Added: buildtools/trunk/gcc/gmp/doc/gmp.texi Log: This file seems to be missing. It can't be generated on some platforms. Copied: buildtools/trunk/gcc/gmp/doc/gmp.texi (from rev 29042, buildtools/trunk/gcc/gmp/doc/fdl.texi) From mmlr at mail.berlios.de Mon Jan 26 07:53:21 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 07:53:21 +0100 Subject: [Haiku-commits] r29044 - buildtools/trunk/gcc/gcc Message-ID: <200901260653.n0Q6rLmt032324@sheep.berlios.de> Author: mmlr Date: 2009-01-26 07:53:18 +0100 (Mon, 26 Jan 2009) New Revision: 29044 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29044&view=rev Modified: buildtools/trunk/gcc/gcc/Makefile.in Log: That was only for native compilation actually. Should un-break cross-compiler creation. Modified: buildtools/trunk/gcc/gcc/Makefile.in =================================================================== --- buildtools/trunk/gcc/gcc/Makefile.in 2009-01-26 06:43:27 UTC (rev 29043) +++ buildtools/trunk/gcc/gcc/Makefile.in 2009-01-26 06:53:18 UTC (rev 29044) @@ -3265,7 +3265,7 @@ $(genprogmd:%=build/gen%$(build_exeext)): $(BUILD_RTL) $(BUILD_ERRORS) # These programs need libs over and above what they get from the above list. -#build/genautomata$(build_exeext) : BUILD_LIBS += -lm +build/genautomata$(build_exeext) : BUILD_LIBS += -lm # These programs are not linked with the MD reader. build/gengenrtl$(build_exeext) : $(BUILD_ERRORS) From mmlr at mail.berlios.de Mon Jan 26 08:28:37 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 08:28:37 +0100 Subject: [Haiku-commits] r29045 - buildtools/trunk/gcc/gcc/config/i386 Message-ID: <200901260728.n0Q7SbI9032098@sheep.berlios.de> Author: mmlr Date: 2009-01-26 08:28:33 +0100 (Mon, 26 Jan 2009) New Revision: 29045 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29045&view=rev Modified: buildtools/trunk/gcc/gcc/config/i386/t-haiku Log: Don't override the SYSTEM_HEADER_DIR generally but only for native builds. Modified: buildtools/trunk/gcc/gcc/config/i386/t-haiku =================================================================== --- buildtools/trunk/gcc/gcc/config/i386/t-haiku 2009-01-26 06:53:18 UTC (rev 29044) +++ buildtools/trunk/gcc/gcc/config/i386/t-haiku 2009-01-26 07:28:33 UTC (rev 29045) @@ -1,4 +1,4 @@ # There are system headers elsewhere, but these are the ones that # we are most likely to want to apply any fixes to. -SYSTEM_HEADER_DIR = /boot/develop/headers/posix +NATIVE_SYSTEM_HEADER_DIR = /boot/develop/headers/posix CROSS_SYSTEM_HEADER_DIR = $(tooldir)/sys-include/posix From mmlr at mail.berlios.de Mon Jan 26 08:33:10 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 08:33:10 +0100 Subject: [Haiku-commits] r29046 - haiku/trunk/build/jam Message-ID: <200901260733.n0Q7XA1X032594@sheep.berlios.de> Author: mmlr Date: 2009-01-26 08:33:08 +0100 (Mon, 26 Jan 2009) New Revision: 29046 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29046&view=rev Modified: haiku/trunk/build/jam/OptionalPackages Log: Add a prebuilt GCC 4.3.3 package to the Development optional package. It's installed either when building with GCC4 or when making a hybrid. Can be installed separatly as well. Have fun :-) Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-01-26 07:28:33 UTC (rev 29045) +++ haiku/trunk/build/jam/OptionalPackages 2009-01-26 07:33:08 UTC (rev 29046) @@ -264,6 +264,15 @@ : ; } + + if $(HAIKU_GCC_VERSION[1]) = 4 || $(isHybridBuild) = 1 { + # gcc and binutils + local baseURL = http://haiku.mlotz.ch ; + InstallOptionalHaikuImagePackage gcc-4.3.3-haiku-090125 + : $(baseURL)/gcc-4.3.3-haiku-090125.zip + : + ; + } } From haiku at kaldience.com Mon Jan 26 08:38:50 2009 From: haiku at kaldience.com (Maurice Kalinowski) Date: Mon, 26 Jan 2009 08:38:50 +0100 Subject: [Haiku-commits] r29046 - haiku/trunk/build/jam In-Reply-To: <200901260733.n0Q7XA1X032594@sheep.berlios.de> References: <200901260733.n0Q7XA1X032594@sheep.berlios.de> Message-ID: <497D688A.9080309@kaldience.com> mmlr at mail.berlios.de wrote: > Modified: > haiku/trunk/build/jam/OptionalPackages > Log: > Add a prebuilt GCC 4.3.3 package to the Development optional package. It's > installed either when building with GCC4 or when making a hybrid. Can be > installed separatly as well. Have fun :-) > Awesome, after having tried this myself and other people as well, it is nice to finally have a native gcc 4. Will try it out this evening as first thing to go :) Regards, Maurice From bga at bug-br.org.br Mon Jan 26 09:47:02 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Mon, 26 Jan 2009 09:47:02 Subject: [Haiku-commits] r29008 - haiku/trunk/src/data/etc/keymaps In-Reply-To: <497CD09E.3000704@zappotek.com> Message-ID: <1281188200-BeMail@Gaspode> On Sun, 25 Jan 2009 21:50:38 +0100, Alexandre Deckner said: > > BTW, not directly keymap related (I guess), but I see a weird thing > > with siacritical signs. > > > > I am using the Brazilian(ABNT2) keymap and it has dead keys for the > > diacritical signs. Juat as an example, I can get ? by typing ~ > > followed > > by a. The weird thing is that if I type too fast, I will get ~a > > instead > > of ?, so I can not use my normal typing speed when using > > diacritical > > signs. This does not happen in BeOS/Zeta nor in any other platform > > that > > I noticed. Any idea why this is happening in Haiku? > > note the similar issues described in http://dev.haiku-os.org/ticket/2241 > Yes, the last comment is exactly what I described. Thanks. -Bruno From rossi at webpositive.org Mon Jan 26 11:06:16 2009 From: rossi at webpositive.org (rossi at webpositive.org) Date: Mon, 26 Jan 2009 05:06:16 -0500 (EST) Subject: [Haiku-commits] r29040 - buildtools/vendor/mpfr In-Reply-To: <200901260554.n0Q5sXq7015808@sheep.berlios.de> References: <200901260554.n0Q5sXq7015808@sheep.berlios.de> Message-ID: <10742.77.0.236.27.1232964376.squirrel@webmail7.pair.com> Hi, > Author: mmlr > Date: 2009-01-26 06:54:30 +0100 (Mon, 26 Jan 2009) > New Revision: 29040 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29040&view=rev > > Added: > buildtools/vendor/mpfr/2.3.0/ > Log: > Tagging MPFR 2.3.0. > > Copied: buildtools/vendor/mpfr/2.3.0 (from rev 29039, > buildtools/vendor/mpfr/current) I've tried to build the new cross compiler on my primary build box (Ubuntu 8.10) this morning. However the build failed due to missing ./get_patches.sh. Here is the relevant snippet from the build output: rossi at skullcap:~/develop/haiku/haiku/generated.gcc4$ ../configure --build-cross-tools-gcc4 x86 ../../buildtools/ --include-gpl-addons --include-3rdparty --enable-multiuser --use-gcc-pipe [...] ./get_patches.sh > get_patches.c || rm -f get_patches.c /bin/bash: ./get_patches.sh: No such file or directory if /bin/bash ./libtool --tag=CC --mode=compile gcc -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_STDARG=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SETLOCALE=1 -DHAVE_GETTIMEOFDAY=1 -DMPFR_HAVE_FESETROUND=1 -DHAVE_FLOOR=1 -DHAVE_CEIL=1 -DHAVE_LDOUBLE_IEEE_EXT_LITTLE=1 -DHAVE_ATTRIBUTE_MODE=1 -DHAVE_ALLOCA_H=1 -I. -I/home/rossi/develop/haiku/buildtools/gcc/mpfr -I/home/rossi/develop/haiku/haiku/generated.gcc4/cross-tools-build/gcc/./gmp -I/home/rossi/develop/haiku/haiku/generated.gcc4/cross-tools-build/gcc/./gmp/tune -O2 -MT get_patches.lo -MD -MP -MF ".deps/get_patches.Tpo" -c -o get_patches.lo get_patches.c; \ then mv -f ".deps/get_patches.Tpo" ".deps/get_patches.Plo"; else rm -f ".deps/get_patches.Tpo"; exit 1; fi gcc -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_STDARG=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SETLOCALE=1 -DHAVE_GETTIMEOFDAY=1 -DMPFR_HAVE_FESETROUND=1 -DHAVE_FLOOR=1 -DHAVE_CEIL=1 -DHAVE_LDOUBLE_IEEE_EXT_LITTLE=1 -DHAVE_ATTRIBUTE_MODE=1 -DHAVE_ALLOCA_H=1 -I. -I/home/rossi/develop/haiku/buildtools/gcc/mpfr -I/home/rossi/develop/haiku/haiku/generated.gcc4/cross-tools-build/gcc/./gmp -I/home/rossi/develop/haiku/haiku/generated.gcc4/cross-tools-build/gcc/./gmp/tune -O2 -MT get_patches.lo -MD -MP -MF .deps/get_patches.Tpo -c get_patches.c -o get_patches.o gcc: get_patches.c: No such file or directory gcc: no input files make[3]: *** [get_patches.lo] Error 1 make[3]: Leaving directory `/home/rossi/develop/haiku/haiku/generated.gcc4/cross-tools-build/gcc/mpfr' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/home/rossi/develop/haiku/haiku/generated.gcc4/cross-tools-build/gcc/mpfr' make[1]: *** [all-mpfr] Error 2 make[1]: Leaving directory `/home/rossi/develop/haiku/haiku/generated.gcc4/cross-tools-build/gcc' make: *** [all] Error 2 ERROR: Building gcc failed. rossi at skullcap:~/develop/haiku/haiku/generated.gcc4$ Both trees (buildtools and haiku itself) have been on r29046. Cheers, Rossi From stippi at mail.berlios.de Mon Jan 26 20:25:59 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Mon, 26 Jan 2009 20:25:59 +0100 Subject: [Haiku-commits] r29047 - haiku/trunk/src/servers/app Message-ID: <200901261925.n0QJPxq9017621@sheep.berlios.de> Author: stippi Date: 2009-01-26 20:25:58 +0100 (Mon, 26 Jan 2009) New Revision: 29047 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29047&view=rev Modified: haiku/trunk/src/servers/app/FontCacheEntry.cpp Log: The glpyhs stored in a font cache entry were never freed upon deletion of the entry. Modified: haiku/trunk/src/servers/app/FontCacheEntry.cpp =================================================================== --- haiku/trunk/src/servers/app/FontCacheEntry.cpp 2009-01-26 07:33:08 UTC (rev 29046) +++ haiku/trunk/src/servers/app/FontCacheEntry.cpp 2009-01-26 19:25:58 UTC (rev 29047) @@ -49,6 +49,18 @@ memset(fGlyphs, 0, sizeof(fGlyphs)); } + ~GlyphCachePool() + { + for (int i = 0; i < 256; i++) { + GlyphCache** cache = fGlyphs[i]; + if (cache == NULL) + continue; + for (int j = 0; j < 256; j++) + delete cache[j]; + delete[] cache; + } + } + const GlyphCache* FindGlyph(uint16 glyphCode) const { unsigned msb = (glyphCode >> 8) & 0xFF; @@ -71,12 +83,15 @@ unsigned lsb = glyphCode & 0xFF; if (fGlyphs[msb][lsb]) - return 0; // already exists, do not overwrite + return NULL; // already exists, do not overwrite GlyphCache* glyph = (GlyphCache*)fAllocator.allocate(sizeof(GlyphCache), sizeof(double)); + if (glyph == NULL) + return NULL; + glyph->glyph_index = glyphIndex; glyph->data = fAllocator.allocate(dataSize); glyph->data_size = dataSize; From mmlr at mail.berlios.de Mon Jan 26 21:54:01 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 21:54:01 +0100 Subject: [Haiku-commits] r29048 - in buildtools/trunk/gcc/gcc/config: . i386 Message-ID: <200901262054.n0QKs1ko029154@sheep.berlios.de> Author: mmlr Date: 2009-01-26 21:53:59 +0100 (Mon, 26 Jan 2009) New Revision: 29048 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29048&view=rev Modified: buildtools/trunk/gcc/gcc/config/haiku.h buildtools/trunk/gcc/gcc/config/i386/t-haiku Log: Attempt at fixing the cross-compiler config. Some cleanup in the default includes as well. Modified: buildtools/trunk/gcc/gcc/config/haiku.h =================================================================== --- buildtools/trunk/gcc/gcc/config/haiku.h 2009-01-26 19:25:58 UTC (rev 29047) +++ buildtools/trunk/gcc/gcc/config/haiku.h 2009-01-26 20:53:59 UTC (rev 29048) @@ -73,42 +73,36 @@ for the Haiku include files relative to TOOL_INCLUDE_DIR. Yes, we use ANSI string concatenation here (FIXME) */ -#ifndef CROSS_COMPILE +#ifndef CROSS_DIRECTORY_STRUCTURE #undef INCLUDE_DEFAULTS #define INCLUDE_DEFAULTS \ { \ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 },\ { GCC_INCLUDE_DIR, "GCC", 0, 0 },\ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1}, \ - { "/boot/develop/headers/os/add-ons/graphics", 0, 0, 0 },\ - { "/boot/develop/headers/os/devel", 0, 0, 0 },\ - { "/boot/develop/headers/os/translation", 0, 0, 0 },\ - { "/boot/develop/headers/os/mail", 0, 0, 0 },\ + { "/boot/develop/headers/os", 0, 0, 0 },\ + { "/boot/develop/headers/os/app", 0, 0, 0 },\ + { "/boot/develop/headers/os/device", 0, 0, 0 },\ { "/boot/develop/headers/os/drivers", 0, 0, 0 },\ - { "/boot/develop/headers/os/opengl", 0, 0, 0 },\ { "/boot/develop/headers/os/game", 0, 0, 0 },\ - { "/boot/develop/headers/os/support", 0, 0, 0 },\ - { "/boot/develop/headers/os/storage", 0, 0, 0 },\ + { "/boot/develop/headers/os/interface", 0, 0, 0 },\ { "/boot/develop/headers/os/kernel", 0, 0, 0 },\ - { "/boot/develop/headers/os/net", 0, 0, 0 },\ + { "/boot/develop/headers/os/mail", 0, 0, 0 },\ + { "/boot/develop/headers/os/media", 0, 0, 0 },\ { "/boot/develop/headers/os/midi", 0, 0, 0 },\ { "/boot/develop/headers/os/midi2", 0, 0, 0 },\ - { "/boot/develop/headers/os/media", 0, 0, 0 },\ - { "/boot/develop/headers/os/interface", 0, 0, 0 },\ - { "/boot/develop/headers/os/device", 0, 0, 0 },\ - { "/boot/develop/headers/os/app", 0, 0, 0 },\ - { "/boot/develop/headers/os/precompiled", 0, 0, 0 },\ + { "/boot/develop/headers/os/net", 0, 0, 0 },\ + { "/boot/develop/headers/os/opengl", 0, 0, 0 },\ + { "/boot/develop/headers/os/storage", 0, 0, 0 },\ + { "/boot/develop/headers/os/support", 0, 0, 0 },\ + { "/boot/develop/headers/os/translation", 0, 0, 0 },\ + { "/boot/develop/headers/os/add-ons/graphics", 0, 0, 0 },\ { "/boot/develop/headers/os/add-ons/input_server", 0, 0, 0 },\ - { "/boot/develop/headers/os/add-ons/net_server", 0, 0, 0 },\ { "/boot/develop/headers/os/add-ons/screen_saver", 0, 0, 0 },\ { "/boot/develop/headers/os/add-ons/tracker", 0, 0, 0 },\ { "/boot/develop/headers/os/be_apps/Deskbar", 0, 0, 0 },\ { "/boot/develop/headers/os/be_apps/NetPositive", 0, 0, 0 },\ { "/boot/develop/headers/os/be_apps/Tracker", 0, 0, 0 },\ - { "/boot/develop/headers/os/drivers/tty", 0, 0, 0 },\ - { "/boot/develop/headers/os/net/netinet", 0, 0, 0 },\ - { "/boot/develop/headers/os/storage", 0, 0, 0 },\ - { "/boot/develop/headers/os", 0, 0, 0 },\ { "/boot/develop/headers/gnu", 0, 0, 0 },\ { "/boot/develop/headers/cpp", 0, 0, 0 },\ { "/boot/develop/headers/bsd", 0, 0, 0 },\ @@ -116,42 +110,37 @@ { "/boot/develop/headers", 0, 0, 0 }, \ { 0, 0, 0, 0 } \ } -#else /* CROSS_COMPILE */ +#else /* CROSS_DIRECTORY_STRUCTURE */ #undef INCLUDE_DEFAULTS #define INCLUDE_DEFAULTS \ { \ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 },\ { GCC_INCLUDE_DIR, "GCC", 0, 0 },\ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1}, \ - { CROSS_INCLUDE_DIR "/os/add-ons/graphics", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/devel", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/translation", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/mail", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/app", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/device", 0, 0, 0 },\ { CROSS_INCLUDE_DIR "/os/drivers", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/opengl", 0, 0, 0 },\ { CROSS_INCLUDE_DIR "/os/game", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/support", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/storage", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/interface", 0, 0, 0 },\ { CROSS_INCLUDE_DIR "/os/kernel", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/net", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/mail", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/media", 0, 0, 0 },\ { CROSS_INCLUDE_DIR "/os/midi", 0, 0, 0 },\ { CROSS_INCLUDE_DIR "/os/midi2", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/media", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/interface", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/device", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/app", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/precompiled", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/net", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/opengl", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/storage", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/support", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/translation", 0, 0, 0 },\ + { CROSS_INCLUDE_DIR "/os/add-ons/graphics", 0, 0, 0 },\ { CROSS_INCLUDE_DIR "/os/add-ons/input_server", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/add-ons/net_server", 0, 0, 0 },\ { CROSS_INCLUDE_DIR "/os/add-ons/screen_saver", 0, 0, 0 },\ { CROSS_INCLUDE_DIR "/os/add-ons/tracker", 0, 0, 0 },\ { CROSS_INCLUDE_DIR "/os/be_apps/Deskbar", 0, 0, 0 },\ { CROSS_INCLUDE_DIR "/os/be_apps/NetPositive", 0, 0, 0 },\ { CROSS_INCLUDE_DIR "/os/be_apps/Tracker", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/drivers/tty", 0, 0, 0 },\ { CROSS_INCLUDE_DIR "/os/net/netinet", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/storage", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os", 0, 0, 0 },\ { CROSS_INCLUDE_DIR "/gnu", 0, 0, 0 },\ { CROSS_INCLUDE_DIR "/cpp", 0, 0, 0 },\ { CROSS_INCLUDE_DIR "/bsd", 0, 0, 0 },\ @@ -159,7 +148,7 @@ { CROSS_INCLUDE_DIR , 0, 0, 0 }, \ { 0, 0, 0, 0 } \ } -#endif +#endif /* CROSS_DIRECTORY_STRUCTURE */ /* Whee. LIBRARY_PATH is Be's LD_LIBRARY_PATH, which of course will cause nasty problems if we override it. */ Modified: buildtools/trunk/gcc/gcc/config/i386/t-haiku =================================================================== --- buildtools/trunk/gcc/gcc/config/i386/t-haiku 2009-01-26 19:25:58 UTC (rev 29047) +++ buildtools/trunk/gcc/gcc/config/i386/t-haiku 2009-01-26 20:53:59 UTC (rev 29048) @@ -1,4 +1,3 @@ # There are system headers elsewhere, but these are the ones that # we are most likely to want to apply any fixes to. NATIVE_SYSTEM_HEADER_DIR = /boot/develop/headers/posix -CROSS_SYSTEM_HEADER_DIR = $(tooldir)/sys-include/posix From mmlr at mail.berlios.de Mon Jan 26 23:47:05 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 23:47:05 +0100 Subject: [Haiku-commits] r29049 - buildtools/trunk/gcc/gcc/config Message-ID: <200901262247.n0QMl5Ul015212@sheep.berlios.de> Author: mmlr Date: 2009-01-26 23:47:03 +0100 (Mon, 26 Jan 2009) New Revision: 29049 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29049&view=rev Modified: buildtools/trunk/gcc/gcc/config/haiku.h Log: Specify add_sysroot for cross compiler search dirs. Add fixed include dir. Modified: buildtools/trunk/gcc/gcc/config/haiku.h =================================================================== --- buildtools/trunk/gcc/gcc/config/haiku.h 2009-01-26 20:53:59 UTC (rev 29048) +++ buildtools/trunk/gcc/gcc/config/haiku.h 2009-01-26 22:47:03 UTC (rev 29049) @@ -77,76 +77,79 @@ #undef INCLUDE_DEFAULTS #define INCLUDE_DEFAULTS \ { \ - { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 },\ - { GCC_INCLUDE_DIR, "GCC", 0, 0 },\ - { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1}, \ - { "/boot/develop/headers/os", 0, 0, 0 },\ - { "/boot/develop/headers/os/app", 0, 0, 0 },\ - { "/boot/develop/headers/os/device", 0, 0, 0 },\ - { "/boot/develop/headers/os/drivers", 0, 0, 0 },\ - { "/boot/develop/headers/os/game", 0, 0, 0 },\ - { "/boot/develop/headers/os/interface", 0, 0, 0 },\ - { "/boot/develop/headers/os/kernel", 0, 0, 0 },\ - { "/boot/develop/headers/os/mail", 0, 0, 0 },\ - { "/boot/develop/headers/os/media", 0, 0, 0 },\ - { "/boot/develop/headers/os/midi", 0, 0, 0 },\ - { "/boot/develop/headers/os/midi2", 0, 0, 0 },\ - { "/boot/develop/headers/os/net", 0, 0, 0 },\ - { "/boot/develop/headers/os/opengl", 0, 0, 0 },\ - { "/boot/develop/headers/os/storage", 0, 0, 0 },\ - { "/boot/develop/headers/os/support", 0, 0, 0 },\ - { "/boot/develop/headers/os/translation", 0, 0, 0 },\ - { "/boot/develop/headers/os/add-ons/graphics", 0, 0, 0 },\ - { "/boot/develop/headers/os/add-ons/input_server", 0, 0, 0 },\ - { "/boot/develop/headers/os/add-ons/screen_saver", 0, 0, 0 },\ - { "/boot/develop/headers/os/add-ons/tracker", 0, 0, 0 },\ - { "/boot/develop/headers/os/be_apps/Deskbar", 0, 0, 0 },\ - { "/boot/develop/headers/os/be_apps/NetPositive", 0, 0, 0 },\ - { "/boot/develop/headers/os/be_apps/Tracker", 0, 0, 0 },\ - { "/boot/develop/headers/gnu", 0, 0, 0 },\ - { "/boot/develop/headers/cpp", 0, 0, 0 },\ - { "/boot/develop/headers/bsd", 0, 0, 0 },\ - { "/boot/develop/headers/posix", 0, 0, 0 },\ - { "/boot/develop/headers", 0, 0, 0 }, \ - { 0, 0, 0, 0 } \ + { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \ + { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, \ + { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 }, \ + { "/boot/develop/headers/os", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/app", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/device", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/drivers", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/game", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/interface", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/kernel", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/mail", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/media", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/midi", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/midi2", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/net", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/opengl", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/storage", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/support", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/translation", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/add-ons/graphics", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/add-ons/input_server", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/add-ons/screen_saver", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/add-ons/tracker", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/be_apps/Deskbar", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/be_apps/NetPositive", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/os/be_apps/Tracker", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/gnu", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/cpp", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/bsd", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers/posix", 0, 0, 0, 0, 0 }, \ + { "/boot/develop/headers", 0, 0, 0, 0, 0 }, \ + { 0, 0, 0, 0, 0, 0 } \ } #else /* CROSS_DIRECTORY_STRUCTURE */ #undef INCLUDE_DEFAULTS #define INCLUDE_DEFAULTS \ { \ - { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 },\ - { GCC_INCLUDE_DIR, "GCC", 0, 0 },\ - { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1}, \ - { CROSS_INCLUDE_DIR "/os", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/app", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/device", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/drivers", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/game", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/interface", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/kernel", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/mail", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/media", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/midi", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/midi2", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/net", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/opengl", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/storage", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/support", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/translation", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/add-ons/graphics", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/add-ons/input_server", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/add-ons/screen_saver", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/add-ons/tracker", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/be_apps/Deskbar", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/be_apps/NetPositive", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/be_apps/Tracker", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/os/net/netinet", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/gnu", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/cpp", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/bsd", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR "/posix", 0, 0, 0 },\ - { CROSS_INCLUDE_DIR , 0, 0, 0 }, \ - { 0, 0, 0, 0 } \ + { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 1, 0 }, \ + { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 1, 0 } \ + { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 1, 0 } \ + { GCC_INCLUDE_DIR, "GCC", 0, 0, 1, 0 }, \ + { FIXED_INCLUDE_DIR, "GCC", 0, 0, 1, 0 } \ + { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/app", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/device", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/drivers", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/game", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/interface", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/kernel", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/mail", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/media", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/midi", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/midi2", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/net", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/opengl", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/storage", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/support", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/translation", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/add-ons/graphics", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/add-ons/input_server", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/add-ons/screen_saver", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/add-ons/tracker", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/be_apps/Deskbar", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/be_apps/NetPositive", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/be_apps/Tracker", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/os/net/netinet", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/gnu", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/cpp", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/bsd", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR "/posix", 0, 0, 0, 1, 0 }, \ + { CROSS_INCLUDE_DIR , 0, 0, 0, 1, 0 }, \ + { 0, 0, 0, 0, 0, 0 } \ } #endif /* CROSS_DIRECTORY_STRUCTURE */ From mmlr at mail.berlios.de Mon Jan 26 23:51:17 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 23:51:17 +0100 Subject: [Haiku-commits] r29050 - buildtools/trunk/gcc/gcc/config Message-ID: <200901262251.n0QMpHqX015828@sheep.berlios.de> Author: mmlr Date: 2009-01-26 23:51:15 +0100 (Mon, 26 Jan 2009) New Revision: 29050 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29050&view=rev Modified: buildtools/trunk/gcc/gcc/config/haiku.h Log: Oops. Modified: buildtools/trunk/gcc/gcc/config/haiku.h =================================================================== --- buildtools/trunk/gcc/gcc/config/haiku.h 2009-01-26 22:47:03 UTC (rev 29049) +++ buildtools/trunk/gcc/gcc/config/haiku.h 2009-01-26 22:51:15 UTC (rev 29050) @@ -118,7 +118,7 @@ { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 1, 0 } \ { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 1, 0 } \ { GCC_INCLUDE_DIR, "GCC", 0, 0, 1, 0 }, \ - { FIXED_INCLUDE_DIR, "GCC", 0, 0, 1, 0 } \ + { FIXED_INCLUDE_DIR, "GCC", 0, 0, 1, 0 }, \ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 1, 0 }, \ { CROSS_INCLUDE_DIR "/os", 0, 0, 0, 1, 0 }, \ { CROSS_INCLUDE_DIR "/os/app", 0, 0, 0, 1, 0 }, \ From korli at mail.berlios.de Mon Jan 26 23:57:50 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Mon, 26 Jan 2009 23:57:50 +0100 Subject: [Haiku-commits] r29051 - haiku/trunk/src/system/kernel/arch/x86 Message-ID: <200901262257.n0QMvomt016297@sheep.berlios.de> Author: korli Date: 2009-01-26 23:57:49 +0100 (Mon, 26 Jan 2009) New Revision: 29051 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29051&view=rev Modified: haiku/trunk/src/system/kernel/arch/x86/arch_cpu.cpp haiku/trunk/src/system/kernel/arch/x86/arch_smp.c Log: * now init SSE on all CPUs, as I noted cr4 wasn't set correctly * this fixes the use of SSE instructions here on a dual core. Modified: haiku/trunk/src/system/kernel/arch/x86/arch_cpu.cpp =================================================================== --- haiku/trunk/src/system/kernel/arch/x86/arch_cpu.cpp 2009-01-26 22:51:15 UTC (rev 29050) +++ haiku/trunk/src/system/kernel/arch/x86/arch_cpu.cpp 2009-01-26 22:57:49 UTC (rev 29051) @@ -213,7 +213,7 @@ } -static void +extern "C" void init_sse(void) { if (!x86_check_feature(IA32_FEATURE_SSE, FEATURE_COMMON) Modified: haiku/trunk/src/system/kernel/arch/x86/arch_smp.c =================================================================== --- haiku/trunk/src/system/kernel/arch/x86/arch_smp.c 2009-01-26 22:51:15 UTC (rev 29050) +++ haiku/trunk/src/system/kernel/arch/x86/arch_smp.c 2009-01-26 22:57:49 UTC (rev 29051) @@ -42,6 +42,7 @@ static uint32 sAPICVersions[B_MAX_CPU_COUNT]; extern bool gUsingIOAPIC; +extern void init_sse(void); static uint32 apic_read(uint32 offset) @@ -196,6 +197,8 @@ TRACE(("arch_smp_init_percpu: setting up the apic on cpu %ld\n", cpu)); setup_apic(args, cpu); + init_sse(); + return B_OK; } From mmlr at mail.berlios.de Mon Jan 26 23:58:00 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 26 Jan 2009 23:58:00 +0100 Subject: [Haiku-commits] r29052 - buildtools/trunk/gcc/gcc/config Message-ID: <200901262258.n0QMw0Y7016313@sheep.berlios.de> Author: mmlr Date: 2009-01-26 23:57:59 +0100 (Mon, 26 Jan 2009) New Revision: 29052 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29052&view=rev Modified: buildtools/trunk/gcc/gcc/config/haiku.h Log: Sorry, seriously not enough sleep. Modified: buildtools/trunk/gcc/gcc/config/haiku.h =================================================================== --- buildtools/trunk/gcc/gcc/config/haiku.h 2009-01-26 22:57:49 UTC (rev 29051) +++ buildtools/trunk/gcc/gcc/config/haiku.h 2009-01-26 22:57:59 UTC (rev 29052) @@ -115,8 +115,8 @@ #define INCLUDE_DEFAULTS \ { \ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 1, 0 }, \ - { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 1, 0 } \ - { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 1, 0 } \ + { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 1, 0 }, \ + { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 1, 0 }, \ { GCC_INCLUDE_DIR, "GCC", 0, 0, 1, 0 }, \ { FIXED_INCLUDE_DIR, "GCC", 0, 0, 1, 0 }, \ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 1, 0 }, \ From korli at mail.berlios.de Tue Jan 27 00:20:42 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Tue, 27 Jan 2009 00:20:42 +0100 Subject: [Haiku-commits] r29053 - in haiku/trunk/src: add-ons/opengl/mesa_software_renderer kits/opengl kits/opengl/mesa Message-ID: <200901262320.n0QNKgL6018378@sheep.berlios.de> Author: korli Date: 2009-01-27 00:20:42 +0100 (Tue, 27 Jan 2009) New Revision: 29053 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29053&view=rev Modified: haiku/trunk/src/add-ons/opengl/mesa_software_renderer/Jamfile haiku/trunk/src/kits/opengl/Jamfile haiku/trunk/src/kits/opengl/mesa/Jamfile Log: added SSE again as support in Haiku seems OK. This can be reverted if needed. Note this won't trigger a rebuild. Modified: haiku/trunk/src/add-ons/opengl/mesa_software_renderer/Jamfile =================================================================== --- haiku/trunk/src/add-ons/opengl/mesa_software_renderer/Jamfile 2009-01-26 22:57:59 UTC (rev 29052) +++ haiku/trunk/src/add-ons/opengl/mesa_software_renderer/Jamfile 2009-01-26 23:20:42 UTC (rev 29053) @@ -13,11 +13,7 @@ defines = BEOS_THREADS GNU_ASSEMBLER ; if $(TARGET_ARCH) = x86 { - defines += USE_X86_ASM USE_MMX_ASM USE_3DNOW_ASM ; - if $(TARGET_PLATFORM != haiku) { - # FIXME: Remove me when Haiku SSE support will be fixed. - defines += USE_SSE_ASM ; - } + defines += USE_X86_ASM USE_MMX_ASM USE_3DNOW_ASM USE_SSE_ASM ; } else { # Not yet supported, as current Mesa3D PPC assembly is Linux-dependent! # defines += USE_PPC_ASM ; Modified: haiku/trunk/src/kits/opengl/Jamfile =================================================================== --- haiku/trunk/src/kits/opengl/Jamfile 2009-01-26 22:57:59 UTC (rev 29052) +++ haiku/trunk/src/kits/opengl/Jamfile 2009-01-26 23:20:42 UTC (rev 29053) @@ -25,11 +25,7 @@ defines = BEOS_THREADS GNU_ASSEMBLER ; if $(TARGET_ARCH) = x86 { - defines += USE_X86_ASM USE_MMX_ASM USE_3DNOW_ASM ; - if $(TARGET_PLATFORM) != haiku { - # FIXME: Remove me when Haiku SSE support will be fixed. - defines += USE_SSE_ASM ; - } + defines += USE_X86_ASM USE_MMX_ASM USE_3DNOW_ASM USE_SSE_ASM ; } else if $(TARGET_ARCH) = ppc { # Not yet supported, as current Mesa3D PPC assembly is Linux-dependent! # defines += USE_PPC_ASM ; Modified: haiku/trunk/src/kits/opengl/mesa/Jamfile =================================================================== --- haiku/trunk/src/kits/opengl/mesa/Jamfile 2009-01-26 22:57:59 UTC (rev 29052) +++ haiku/trunk/src/kits/opengl/mesa/Jamfile 2009-01-26 23:20:42 UTC (rev 29053) @@ -61,11 +61,7 @@ defines = BEOS_THREADS GNU_ASSEMBLER ; if $(TARGET_ARCH) = x86 { - defines += USE_X86_ASM USE_MMX_ASM USE_3DNOW_ASM ; - if $(TARGET_PLATFORM) != haiku { - # FIXME: Remove me when Haiku SSE support will be fixed. - defines += USE_SSE_ASM ; - } + defines += USE_X86_ASM USE_MMX_ASM USE_3DNOW_ASM USE_SSE_ASM ; } else { # Not yet supported, as current Mesa3D PPC assembly is Linux-dependent! # defines += USE_PPC_ASM ; From mmlr at mail.berlios.de Tue Jan 27 00:27:40 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 27 Jan 2009 00:27:40 +0100 Subject: [Haiku-commits] r29054 - buildtools/trunk/gcc Message-ID: <200901262327.n0QNReRn018706@sheep.berlios.de> Author: mmlr Date: 2009-01-27 00:27:38 +0100 (Tue, 27 Jan 2009) New Revision: 29054 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29054&view=rev Modified: buildtools/trunk/gcc/libtool.m4 Log: Fix some missing definitions that apply to Haiku. Modified: buildtools/trunk/gcc/libtool.m4 =================================================================== --- buildtools/trunk/gcc/libtool.m4 2009-01-26 23:20:42 UTC (rev 29053) +++ buildtools/trunk/gcc/libtool.m4 2009-01-26 23:27:38 UTC (rev 29054) @@ -1598,7 +1598,7 @@ lt_cv_dlopen_libs= case $host_os in - beos*) + beos* | haiku* ) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes @@ -2047,7 +2047,7 @@ fi ;; -beos*) +beos* | haiku*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH @@ -2211,12 +2211,6 @@ hardcode_into_libs=yes ;; -haiku*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. @@ -2844,7 +2838,7 @@ lt_cv_deplibs_check_method=pass_all ;; -beos*) +beos* | haiku*) lt_cv_deplibs_check_method=pass_all ;; @@ -3116,7 +3110,7 @@ [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in -*-*-beos* | *-*-haiku* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin* | *-*-haiku*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*) @@ -5610,6 +5604,11 @@ gnu*) ;; + haiku*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + ;; + hpux9*) _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir' _LT_TAGVAR(hardcode_libdir_separator, $1)=: From korli at mail.berlios.de Tue Jan 27 00:35:13 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Tue, 27 Jan 2009 00:35:13 +0100 Subject: [Haiku-commits] r29055 - haiku/trunk/src/apps/installer Message-ID: <200901262335.n0QNZDKI023370@sheep.berlios.de> Author: korli Date: 2009-01-27 00:35:12 +0100 (Tue, 27 Jan 2009) New Revision: 29055 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29055&view=rev Modified: haiku/trunk/src/apps/installer/InstallerWindow.cpp Log: * removed the fancy border on the Installer background Modified: haiku/trunk/src/apps/installer/InstallerWindow.cpp =================================================================== --- haiku/trunk/src/apps/installer/InstallerWindow.cpp 2009-01-26 23:27:38 UTC (rev 29054) +++ haiku/trunk/src/apps/installer/InstallerWindow.cpp 2009-01-26 23:35:12 UTC (rev 29055) @@ -81,7 +81,7 @@ bounds.bottom += 1; bounds.right += 1; fBackBox = new BBox(bounds, NULL, B_FOLLOW_ALL, - B_WILL_DRAW | B_FRAME_EVENTS, B_FANCY_BORDER); + B_WILL_DRAW | B_FRAME_EVENTS, B_NO_BORDER); AddChild(fBackBox); BRect logoRect = fBackBox->Bounds(); From dlmcpaul at gmail.com Tue Jan 27 00:40:53 2009 From: dlmcpaul at gmail.com (David McPaul) Date: Tue, 27 Jan 2009 10:40:53 +1100 Subject: [Haiku-commits] r29051 - haiku/trunk/src/system/kernel/arch/x86 In-Reply-To: <200901262257.n0QMvomt016297@sheep.berlios.de> References: <200901262257.n0QMvomt016297@sheep.berlios.de> Message-ID: On 2009-01-27, korli at BerliOS wrote: > Author: korli > Date: 2009-01-26 23:57:49 +0100 (Mon, 26 Jan 2009) > New Revision: 29051 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29051&view=rev > > Modified: > haiku/trunk/src/system/kernel/arch/x86/arch_cpu.cpp > haiku/trunk/src/system/kernel/arch/x86/arch_smp.c > Log: > * now init SSE on all CPUs, as I noted cr4 wasn't set correctly > * this fixes the use of SSE instructions here on a dual core. Was SSE broken in general or only for multi-cpus? Stippi and I had problems with SSE4 code, is this likely to be related? -- Cheers David From umccullough at gmail.com Tue Jan 27 00:53:20 2009 From: umccullough at gmail.com (Urias McCullough) Date: Mon, 26 Jan 2009 15:53:20 -0800 Subject: [Haiku-commits] r29051 - haiku/trunk/src/system/kernel/arch/x86 In-Reply-To: References: <200901262257.n0QMvomt016297@sheep.berlios.de> Message-ID: <1e80d8750901261553k6f381114sa71a9d448f1f7fbb@mail.gmail.com> On Mon, Jan 26, 2009 at 3:40 PM, David McPaul wrote: > On 2009-01-27, korli at BerliOS wrote: >> Author: korli >> Date: 2009-01-26 23:57:49 +0100 (Mon, 26 Jan 2009) >> New Revision: 29051 >> ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29051&view=rev >> >> Modified: >> haiku/trunk/src/system/kernel/arch/x86/arch_cpu.cpp >> haiku/trunk/src/system/kernel/arch/x86/arch_smp.c >> Log: >> * now init SSE on all CPUs, as I noted cr4 wasn't set correctly >> * this fixes the use of SSE instructions here on a dual core. > > Was SSE broken in general or only for multi-cpus? > > Stippi and I had problems with SSE4 code, is this likely to be related? I personally have a pretty strong hunch that was causing my dnetc client to fail when running certain asm code on the second core of my c2d under Haiku - it would consistently crash with an "Illegal instruction" reproducible only when the second core was enabled and one of the threads was run on it. Also failed on AMD X2 with second core enabled. I had been told by the distributed.net devs that it sounded as if Haiku wasn't enabling SSE properly... now I actually believe them :) From mmlr at mail.berlios.de Tue Jan 27 00:55:30 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 27 Jan 2009 00:55:30 +0100 Subject: [Haiku-commits] r29056 - in buildtools/trunk/gcc/gcc: . config/arm config/m68k config/rs6000 Message-ID: <200901262355.n0QNtUct014877@sheep.berlios.de> Author: mmlr Date: 2009-01-27 00:55:25 +0100 (Tue, 27 Jan 2009) New Revision: 29056 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29056&view=rev Added: buildtools/trunk/gcc/gcc/config/arm/haiku.h buildtools/trunk/gcc/gcc/config/m68k/haiku.h buildtools/trunk/gcc/gcc/config/rs6000/haiku.h Modified: buildtools/trunk/gcc/gcc/config.gcc Log: Adding back m68k and ppc support. Adding stub arm support as well. Added: buildtools/trunk/gcc/gcc/config/arm/haiku.h =================================================================== --- buildtools/trunk/gcc/gcc/config/arm/haiku.h 2009-01-26 23:35:12 UTC (rev 29055) +++ buildtools/trunk/gcc/gcc/config/arm/haiku.h 2009-01-26 23:55:25 UTC (rev 29056) @@ -0,0 +1,76 @@ +/* Definitions for ARM running Haiku systems using ELF + Copyright (C) 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GCC is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING. If not, write to + the Free Software Foundation, 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +#undef TARGET_VERSION +#define TARGET_VERSION fprintf (stderr, " (ARM Haiku/ELF)"); + +/* Unsigned chars produces much better code than signed. */ +#define DEFAULT_SIGNED_CHAR 0 + +#undef TARGET_DEFAULT_FLOAT_ABI +#define TARGET_DEFAULT_FLOAT_ABI ARM_FLOAT_ABI_SOFT + +#undef TARGET_DEFAULT +#define TARGET_DEFAULT (0) + +#undef MULTILIB_DEFAULTS +#define MULTILIB_DEFAULTS \ + { "marm", "mlittle-endian", "msoft-float", "mno-thumb-interwork" } + +#undef SUBTARGET_CPU_DEFAULT +#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm920t + +#undef SIZE_TYPE +#define SIZE_TYPE "long unsigned int" + +#undef PTRDIFF_TYPE +#define PTRDIFF_TYPE "long int" + +#undef WCHAR_TYPE +#define WCHAR_TYPE "short unsigned int" + +#undef WCHAR_TYPE_SIZE +#define WCHAR_TYPE_SIZE 16 + +/* Now we define the strings used to build the spec file. */ + +#define TARGET_OS_CPP_BUILTINS() \ + do \ + { \ + builtin_define ("__BEOS__"); \ + builtin_define ("__HAIKU__"); \ + builtin_define ("__arm__"); \ + builtin_define ("__stdcall=__attribute__((__stdcall__))"); \ + builtin_define ("__cdecl=__attribute__((__cdecl__))"); \ + builtin_assert ("system=haiku"); \ + /* Haiku apparently doesn't support merging of symbols across shared \ + object boundaries. Hence we need to explicitly specify that \ + type_infos are not merged, so that they get compared by name \ + instead of by pointer. */ \ + builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \ + builtin_define ("__GXX_TYPEINFO_EQUALITY_INLINE=0");\ + } \ + while (0) + +/* If ELF is the default format, we should not use /lib/elf. */ + +#undef LINK_SPEC +#define LINK_SPEC "%{!o*:-o %b} -m armelf -shared -no-undefined -Bsymbolic %{nostart:-e 0}" Added: buildtools/trunk/gcc/gcc/config/m68k/haiku.h =================================================================== --- buildtools/trunk/gcc/gcc/config/m68k/haiku.h 2009-01-26 23:35:12 UTC (rev 29055) +++ buildtools/trunk/gcc/gcc/config/m68k/haiku.h 2009-01-26 23:55:25 UTC (rev 29056) @@ -0,0 +1,288 @@ +/* Definitions for Motorola 68k running Haiku + Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2002, 2003, 2004, 2007 + Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GCC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING. If not, write to +the Free Software Foundation, 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. */ + +#undef TARGET_VERSION +#define TARGET_VERSION fprintf (stderr, " (68k Haiku/ELF)"); + +/* Default target comes from config.gcc. */ + +#undef TARGET_DEFAULT +#ifdef TARGET_CPU_DEFAULT +#define TARGET_DEFAULT TARGET_CPU_DEFAULT +#else +#define TARGET_DEFAULT (MASK_BITFIELD|MASK_68881|MASK_68020) +#endif + +/* for 68k machines this only needs to be TRUE for the 68000 */ + +#undef STRICT_ALIGNMENT +#define STRICT_ALIGNMENT 0 + +/* Here are four prefixes that are used by asm_fprintf to + facilitate customization for alternate assembler syntaxes. + Machines with no likelihood of an alternate syntax need not + define these and need not use asm_fprintf. */ + +/* The prefix for register names. Note that REGISTER_NAMES + is supposed to include this prefix. Also note that this is NOT an + fprintf format string, it is a literal string */ + +#undef REGISTER_PREFIX +#define REGISTER_PREFIX "%" + +/* The prefix for local (compiler generated) labels. + These labels will not appear in the symbol table. */ + +#undef LOCAL_LABEL_PREFIX +#define LOCAL_LABEL_PREFIX "." + +/* The prefix to add to user-visible assembler symbols. */ + +#undef USER_LABEL_PREFIX +#define USER_LABEL_PREFIX "" + +#undef ASM_COMMENT_START +#define ASM_COMMENT_START "|" + +#undef SIZE_TYPE +#define SIZE_TYPE "long unsigned int" + +#undef PTRDIFF_TYPE +#define PTRDIFF_TYPE "long int" + +#undef WCHAR_TYPE +#define WCHAR_TYPE "short unsigned int" + +#undef WCHAR_TYPE_SIZE +#define WCHAR_TYPE_SIZE 16 + +/* Target OS builtins. */ + +#undef TARGET_OS_CPP_BUILTINS +#define TARGET_OS_CPP_BUILTINS() \ + do \ + { \ + builtin_define ("__BEOS__"); \ + builtin_define ("__HAIKU__"); \ + builtin_define ("__M68K__"); \ + builtin_define_std ("mc68000"); \ + builtin_define_std ("mc68020"); \ + builtin_define ("__stdcall=__attribute__((__stdcall__))"); \ + builtin_define ("__cdecl=__attribute__((__cdecl__))"); \ + builtin_assert ("system=haiku"); \ + /* Haiku apparently doesn't support merging of symbols across shared\ + object boundaries. Hence we need to explicitly specify that \ + type_infos are not merged, so that they get compared by name \ + instead of by pointer. */ \ + builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \ + builtin_define ("__GXX_TYPEINFO_EQUALITY_INLINE=0"); \ + } \ + while (0) + +#define TARGET_OBJFMT_CPP_BUILTINS() \ + do \ + { \ + builtin_define ("__ELF__"); \ + } \ + while (0) + +#undef CPP_SPEC +#if TARGET_DEFAULT & MASK_68881 +#define CPP_SPEC \ + "%{fPIC|fpic|fPIE|fpie:-D__PIC__ -D__pic__} %{!msoft-float:-D__HAVE_68881__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" +#else +#define CPP_SPEC \ + "%{fPIC|fpic|fPIE|fpie:-D__PIC__ -D__pic__} %{m68881:-D__HAVE_68881__} %{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" +#endif + +/* We override the ASM_SPEC from svr4.h because we must pass -m68040 down + to the assembler. */ +#undef ASM_SPEC +#define ASM_SPEC \ + "%{v:-V} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*} \ +%{m68040} %{m68060:-m68040}" + +/* Provide a LINK_SPEC appropriate for Haiku. Here we provide support + for the special GCC options -static and -shared, which allow us to + link things in one of these three modes by applying the appropriate + combinations of options at link-time. */ + +/* If ELF is the default format, we should not use /lib/elf. */ + +#undef LINK_SPEC +/*#define LINK_SPEC "%{!o*:-o %b} -m elf_m68k_haiku -shared -no-undefined -Bsymbolic %{nostart:-e 0}"*/ +#define LINK_SPEC "%{!o*:-o %b} -m m68kelf -shared -no-undefined -Bsymbolic %{nostart:-e 0}" + +/* XXX: not sure for the rest there... */ + +/* Currently, JUMP_TABLES_IN_TEXT_SECTION must be defined in order to + keep switch tables in the text section. */ + +#define JUMP_TABLES_IN_TEXT_SECTION 1 + +/* This is how to output an assembler line that says to advance the + location counter to a multiple of 2**LOG bytes. */ + +/* Use the default action for outputting the case label. */ +#undef ASM_OUTPUT_CASE_LABEL +#define ASM_RETURN_CASE_JUMP \ + do { \ + if (TARGET_COLDFIRE) \ + { \ + if (ADDRESS_REG_P (operands[0])) \ + return "jmp %%pc@(2,%0:l)"; \ + else \ + return "ext%.l %0\n\tjmp %%pc@(2,%0:l)"; \ + } \ + else \ + return "jmp %%pc@(2,%0:w)"; \ + } while (0) + +#undef ASM_OUTPUT_ALIGN +#define ASM_OUTPUT_ALIGN(FILE,LOG) \ + if ((LOG) > 0) \ + fprintf ((FILE), "%s%u\n", ALIGN_ASM_OP, 1 << (LOG)); + +/* If defined, a C expression whose value is a string containing the + assembler operation to identify the following data as uninitialized global + data. */ + +#define BSS_SECTION_ASM_OP "\t.section\t.bss" + +/* A C statement (sans semicolon) to output to the stdio stream + FILE the assembler definition of uninitialized global DECL named + NAME whose size is SIZE bytes and alignment is ALIGN bytes. + Try to use asm_output_aligned_bss to implement this macro. */ + +#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \ + asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN) + +/* Output assembler code to FILE to increment profiler label # LABELNO + for profiling a function entry. */ + +#undef FUNCTION_PROFILER +#define FUNCTION_PROFILER(FILE, LABELNO) \ +{ \ + asm_fprintf (FILE, "\tlea (%LLP%d,%Rpc),%Ra1\n", (LABELNO)); \ + if (flag_pic) \ + fprintf (FILE, "\tbsr.l _mcount at PLTPC\n"); \ + else \ + fprintf (FILE, "\tjbsr _mcount\n"); \ +} + +/* How to renumber registers for dbx and gdb. + On the Sun-3, the floating point registers have numbers + 18 to 25, not 16 to 23 as they do in the compiler. */ + +#define DBX_REGISTER_NUMBER(REGNO) ((REGNO) < 16 ? (REGNO) : (REGNO) + 2) + +/* Do not break .stabs pseudos into continuations. */ + +#define DBX_CONTIN_LENGTH 0 + +/* 1 if N is a possible register number for a function value. For + m68k/SVR4 allow d0, a0, or fp0 as return registers, for integral, + pointer, or floating types, respectively. Reject fp0 if not using + a 68881 coprocessor. */ + +#undef FUNCTION_VALUE_REGNO_P +#define FUNCTION_VALUE_REGNO_P(N) \ + ((N) == 0 || (N) == 8 || (TARGET_68881 && (N) == 16)) + +/* Define this to be true when FUNCTION_VALUE_REGNO_P is true for + more than one register. */ + +#undef NEEDS_UNTYPED_CALL +#define NEEDS_UNTYPED_CALL 1 + +/* Define how to generate (in the callee) the output value of a + function and how to find (in the caller) the value returned by a + function. VALTYPE is the data type of the value (as a tree). If + the precise function being called is known, FUNC is its + FUNCTION_DECL; otherwise, FUNC is 0. For m68k/SVR4 generate the + result in d0, a0, or fp0 as appropriate. */ + +#undef FUNCTION_VALUE +#define FUNCTION_VALUE(VALTYPE, FUNC) \ + (TREE_CODE (VALTYPE) == REAL_TYPE && TARGET_68881 \ + ? gen_rtx_REG (TYPE_MODE (VALTYPE), 16) \ + : (POINTER_TYPE_P (VALTYPE) \ + ? gen_rtx_REG (TYPE_MODE (VALTYPE), 8) \ + : gen_rtx_REG (TYPE_MODE (VALTYPE), 0))) + +/* For compatibility with the large body of existing code which does + not always properly declare external functions returning pointer + types, the m68k/SVR4 convention is to copy the value returned for + pointer functions from a0 to d0 in the function epilogue, so that + callers that have neglected to properly declare the callee can + still find the correct return value. */ + +#define FUNCTION_EXTRA_EPILOGUE(FILE, SIZE) \ +do { \ + if (current_function_returns_pointer \ + && ! find_equiv_reg (0, get_last_insn (), 0, 0, 0, 8, Pmode)) \ + asm_fprintf (FILE, "\tmove.l %Ra0,%Rd0\n"); \ +} while (0); + +/* Define how to find the value returned by a library function + assuming the value has mode MODE. + For m68k/SVR4 look for integer values in d0, pointer values in d0 + (returned in both d0 and a0), and floating values in fp0. */ + +#undef LIBCALL_VALUE +#define LIBCALL_VALUE(MODE) \ + ((((MODE) == SFmode || (MODE) == DFmode || (MODE) == XFmode) \ + && TARGET_68881) \ + ? gen_rtx_REG ((MODE), 16) \ + : gen_rtx_REG ((MODE), 0)) + +/* For m68k SVR4, structures are returned using the reentrant + technique. */ +#undef PCC_STATIC_STRUCT_RETURN +#define DEFAULT_PCC_STRUCT_RETURN 0 + +/* Finalize the trampoline by flushing the insn cache. */ + +#undef FINALIZE_TRAMPOLINE +#define FINALIZE_TRAMPOLINE(TRAMP) \ + emit_library_call (gen_rtx_SYMBOL_REF (Pmode, "__clear_cache"), \ + 0, VOIDmode, 2, TRAMP, Pmode, \ + plus_constant (TRAMP, TRAMPOLINE_SIZE), Pmode); + +/* Clear the instruction cache from `beg' to `end'. This makes an + inline system call to SYS_cacheflush. The arguments are as + follows: + + cacheflush (addr, scope, cache, len) + + addr - the start address for the flush + scope - the scope of the flush (see the cpush insn) + cache - which cache to flush (see the cpush insn) + len - a factor relating to the number of flushes to perform: + len/16 lines, or len/4096 pages. */ + +#define CLEAR_INSN_CACHE(BEG, END) \ +{ \ +extern void clear_caches(void *address, int length, unsigned long flags); \ + void *ptr = BEG; \ + int len = (END - BEG + 32); \ + clear_caches(ptr, len, 0x0005); \ +} Added: buildtools/trunk/gcc/gcc/config/rs6000/haiku.h =================================================================== --- buildtools/trunk/gcc/gcc/config/rs6000/haiku.h 2009-01-26 23:35:12 UTC (rev 29055) +++ buildtools/trunk/gcc/gcc/config/rs6000/haiku.h 2009-01-26 23:55:25 UTC (rev 29056) @@ -0,0 +1,77 @@ +/* Definitions for PowerPC running Haiku + Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005 + Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GCC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + + +#undef TARGET_VERSION +#define TARGET_VERSION fprintf (stderr, " (PowerPC Haiku/ELF)"); + +#undef SIZE_TYPE +#define SIZE_TYPE "long unsigned int" + +#undef PTRDIFF_TYPE +#define PTRDIFF_TYPE "long int" + +#undef WCHAR_TYPE +#define WCHAR_TYPE "short unsigned int" + +#undef WCHAR_TYPE_SIZE +#define WCHAR_TYPE_SIZE 16 + +/* long double is 128 bits wide; the documentation claims + LIBGCC2_LONG_DOUBLE_TYPE_SIZE to default to LONG_DOUBLE_TYPE_SIZE, but + it apparently does not */ +/*#undef LONG_DOUBLE_TYPE_SIZE +#define LONG_DOUBLE_TYPE_SIZE 128 +#undef LIBGCC2_LONG_DOUBLE_TYPE_SIZE +#define LIBGCC2_LONG_DOUBLE_TYPE_SIZE 128*/ + +#undef TARGET_OS_CPP_BUILTINS +#define TARGET_OS_CPP_BUILTINS() \ + do \ + { \ + builtin_define ("__BEOS__"); \ + builtin_define ("__HAIKU__"); \ + builtin_define ("__POWERPC__"); \ + builtin_define ("__powerpc__"); \ + builtin_define ("__stdcall=__attribute__((__stdcall__))"); \ + builtin_define ("__cdecl=__attribute__((__cdecl__))"); \ + builtin_assert ("system=haiku"); \ + builtin_assert ("cpu=powerpc"); \ + builtin_assert ("machine=powerpc"); \ + TARGET_OS_SYSV_CPP_BUILTINS (); \ + /* Haiku apparently doesn't support merging of symbols across shared \ + object boundaries. Hence we need to explicitly specify that \ + type_infos are not merged, so that they get compared by name \ + instead of by pointer. */ \ + builtin_define ("__GXX_MERGED_TYPEINFO_NAMES=0"); \ + builtin_define ("__GXX_TYPEINFO_EQUALITY_INLINE=0"); \ + } \ + while (0) + +/* Provide a LINK_SPEC appropriate for Haiku. Here we provide support + for the special GCC options -static and -shared, which allow us to + link things in one of these three modes by applying the appropriate + combinations of options at link-time. */ + +/* If ELF is the default format, we should not use /lib/elf. */ + +#undef LINK_SPEC +#define LINK_SPEC "%{!o*:-o %b} -m elf_ppc_haiku -shared -no-undefined -Bsymbolic %{nostart:-e 0}" Modified: buildtools/trunk/gcc/gcc/config.gcc =================================================================== --- buildtools/trunk/gcc/gcc/config.gcc 2009-01-26 23:35:12 UTC (rev 29055) +++ buildtools/trunk/gcc/gcc/config.gcc 2009-01-26 23:55:25 UTC (rev 29056) @@ -733,6 +733,12 @@ extra_parts="" use_collect2=yes ;; +arm*-*-haiku*) + tmake_file="${tmake_file} t-haiku arm/t-arm arm/t-arm-elf" + tm_file="dbxelf.h elfos.h haiku.h arm/elf.h arm/aout.h arm/haiku.h arm/arm.h" + tm_defines="USE_GAS" + use_fixproto=yes + ;; arm*-*-linux*) # ARM GNU/Linux with ELF tm_file="dbxelf.h elfos.h linux.h arm/elf.h arm/linux-gas.h arm/linux-elf.h" case $target in @@ -1638,6 +1644,11 @@ tm_defines="${tm_defines} MOTOROLA=1" extra_parts="crtbegin.o crtend.o" ;; +m68k-*-haiku*) + tmake_file="m68k/t-m68kbare m68k/t-crtstuff t-haiku" #?? + tm_file="${tm_file} dbxelf.h elfos.h haiku.h m68k/haiku.h" + tm_defines="MOTOROLA USE_GAS" + ;; mcore-*-elf) tm_file="dbxelf.h elfos.h svr4.h ${tm_file} mcore/mcore-elf.h" tmake_file=mcore/t-mcore @@ -1951,6 +1962,11 @@ extra_options="${extra_options} rs6000/sysv4.opt" tmake_file="rs6000/t-fprules rs6000/t-fprules-fpbit rs6000/t-ppcgas rs6000/t-ppccomm" ;; +powerpc-*-haiku*) + tmake_file="rs6000/t-fprules rs6000/t-ppcos rs6000/t-ppccomm t-haiku" + tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h haiku.h rs6000/haiku.h" + extra_options="${extra_options} rs6000/sysv4.opt" + ;; powerpc-*-rtems*) tm_file="${tm_file} dbxelf.h elfos.h svr4.h freebsd-spec.h rs6000/sysv4.h rs6000/eabi.h rs6000/e500.h rs6000/rtems.h rtems.h" extra_options="${extra_options} rs6000/sysv4.opt" From mmlr at mail.berlios.de Tue Jan 27 00:58:00 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 27 Jan 2009 00:58:00 +0100 Subject: [Haiku-commits] r29057 - haiku/trunk/build/scripts Message-ID: <200901262358.n0QNw0NA016998@sheep.berlios.de> Author: mmlr Date: 2009-01-27 00:57:59 +0100 (Tue, 27 Jan 2009) New Revision: 29057 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29057&view=rev Modified: haiku/trunk/build/scripts/build_cross_tools_gcc4 Log: The default include paths have been updated from be/ to os/ so copy correspondingly. Modified: haiku/trunk/build/scripts/build_cross_tools_gcc4 =================================================================== --- haiku/trunk/build/scripts/build_cross_tools_gcc4 2009-01-26 23:55:25 UTC (rev 29056) +++ haiku/trunk/build/scripts/build_cross_tools_gcc4 2009-01-26 23:57:59 UTC (rev 29057) @@ -113,7 +113,7 @@ done } -copy_headers $haikuSourceDir/headers/os $tmpIncludeDir/be +copy_headers $haikuSourceDir/headers/os $tmpIncludeDir/os copy_headers $haikuSourceDir/headers/posix $tmpIncludeDir/posix # configure gcc From mmlr at mail.berlios.de Tue Jan 27 01:16:40 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 27 Jan 2009 01:16:40 +0100 Subject: [Haiku-commits] r29058 - buildtools/trunk/gcc/libstdc++-v3 Message-ID: <200901270016.n0R0GeuD009544@sheep.berlios.de> Author: mmlr Date: 2009-01-27 01:16:28 +0100 (Tue, 27 Jan 2009) New Revision: 29058 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29058&view=rev Modified: buildtools/trunk/gcc/libstdc++-v3/configure Log: Add missing dlopen results to libstdc++ configure. Some combining. Modified: buildtools/trunk/gcc/libstdc++-v3/configure =================================================================== --- buildtools/trunk/gcc/libstdc++-v3/configure 2009-01-26 23:57:59 UTC (rev 29057) +++ buildtools/trunk/gcc/libstdc++-v3/configure 2009-01-27 00:16:28 UTC (rev 29058) @@ -4913,7 +4913,7 @@ lt_cv_deplibs_check_method=pass_all ;; -beos*) +beos* | haiku*) lt_cv_deplibs_check_method=pass_all ;; @@ -9177,7 +9177,7 @@ fi ;; -beos*) +beos* | haiku*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH @@ -9341,12 +9341,6 @@ hardcode_into_libs=yes ;; -haiku*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. @@ -9873,7 +9867,7 @@ lt_cv_dlopen_libs= case $host_os in - beos*) + beos* | haiku*) lt_cv_dlopen="load_add_on" lt_cv_dlopen_libs= lt_cv_dlopen_self=yes @@ -13103,7 +13097,7 @@ fi ;; -beos*) +beos* | haiku*) library_names_spec='${libname}${shared_ext}' dynamic_linker="$host_os ld.so" shlibpath_var=LIBRARY_PATH @@ -13266,12 +13260,6 @@ hardcode_into_libs=yes ;; -haiku*) - library_names_spec='${libname}${shared_ext}' - dynamic_linker="$host_os ld.so" - shlibpath_var=LIBRARY_PATH - ;; - hpux9* | hpux10* | hpux11*) # Give a soname corresponding to the major version so that dld.sl refuses to # link against other versions. From mmlr at mail.berlios.de Tue Jan 27 01:40:10 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 27 Jan 2009 01:40:10 +0100 Subject: [Haiku-commits] r29059 - buildtools/trunk/gcc/libstdc++-v3 Message-ID: <200901270040.n0R0eAej010368@sheep.berlios.de> Author: mmlr Date: 2009-01-27 01:40:00 +0100 (Tue, 27 Jan 2009) New Revision: 29059 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29059&view=rev Modified: buildtools/trunk/gcc/libstdc++-v3/configure Log: Adding autoconf generated haiku config. Taken from the patch produced by Aljen in ticket #2982. Modified: buildtools/trunk/gcc/libstdc++-v3/configure =================================================================== --- buildtools/trunk/gcc/libstdc++-v3/configure 2009-01-27 00:16:28 UTC (rev 29058) +++ buildtools/trunk/gcc/libstdc++-v3/configure 2009-01-27 00:40:00 UTC (rev 29059) @@ -85436,6 +85436,292 @@ fi ;; + *haiku*) + + + + + + + + + + + + + + + +for ac_header in nan.h ieeefp.h endian.h sys/isa_defs.h \ + machine/endian.h machine/param.h sys/machine.h sys/types.h \ + fp.h float.h endian.h inttypes.h locale.h float.h stdint.h +do +as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + { echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } +else + # Is the header compilable? +{ echo "$as_me:$LINENO: checking $ac_header usability" >&5 +echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +#include <$ac_header> +_ACEOF +rm -f conftest.$ac_objext +if { (ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_compile") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then + ac_header_compiler=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_compiler=no +fi + +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 +echo "${ECHO_T}$ac_header_compiler" >&6; } + +# Is the header present? +{ echo "$as_me:$LINENO: checking $ac_header presence" >&5 +echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; } +cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include <$ac_header> +_ACEOF +if { (ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } >/dev/null && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then + ac_header_preproc=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_header_preproc=no +fi + +rm -f conftest.err conftest.$ac_ext +{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 +echo "${ECHO_T}$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in + yes:no: ) + { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 +echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} + ac_header_preproc=yes + ;; + no:yes:* ) + { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 +echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 +echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 +echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 +echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 +echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} + { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 +echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} + + ;; +esac +{ echo "$as_me:$LINENO: checking for $ac_header" >&5 +echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; } +if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + eval "$as_ac_Header=\$ac_header_preproc" +fi +ac_res=`eval echo '${'$as_ac_Header'}'` + { echo "$as_me:$LINENO: result: $ac_res" >&5 +echo "${ECHO_T}$ac_res" >&6; } + +fi +if test `eval echo '${'$as_ac_Header'}'` = yes; then + cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + SECTION_FLAGS='-ffunction-sections -fdata-sections' + + + cat >>confdefs.h <<\_ACEOF +#define HAVE_INT64_T 1 +_ACEOF + + + cat >>confdefs.h <<\_ACEOF +#define HAVE_ACOSF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_ASINF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_ATANF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_ATAN2F 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_CEILF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_COPYSIGN 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_COPYSIGNF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_COSF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_COSHF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_EXPF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_FABSF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_FINITE 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_FINITEF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_FLOORF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_FMODF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_FREXPF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_HYPOT 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_HYPOTF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_ISINF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_ISINFF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_ISNAN 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_ISNANF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_LOGF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_LOG10F 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_MODFF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_SINF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_SINHF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_SQRTF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_TANF 1 +_ACEOF + + cat >>confdefs.h <<\_ACEOF +#define HAVE_TANHF 1 +_ACEOF + + ;; *-hpux*) From ingo_weinhold at gmx.de Tue Jan 27 03:32:21 2009 From: ingo_weinhold at gmx.de (Ingo Weinhold) Date: Tue, 27 Jan 2009 03:32:21 +0100 Subject: [Haiku-commits] r29054 - buildtools/trunk/gcc In-Reply-To: <200901262327.n0QNReRn018706@sheep.berlios.de> References: <200901262327.n0QNReRn018706@sheep.berlios.de> Message-ID: <20090127033221.631.3@knochen-vm.localdomain> On 2009-01-27 at 00:27:40 [+0100], mmlr at mail.berlios.de wrote: > Author: mmlr > Date: 2009-01-27 00:27:38 +0100 (Tue, 27 Jan 2009) > New Revision: 29054 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29054&view=rev > > Modified: > buildtools/trunk/gcc/libtool.m4 > Log: > Fix some missing definitions that apply to Haiku. I put quite a bit of effort in porting libtool to Haiku and would strongly recommend to regenerate the build system with a Haiku-patched libtool (optional package, patch available on HaikuPorts). The beos configuration in libtool hasn't been maintained for a while and Haiku is superior regarding POSIX support anyway. E.g. the last time I saw it the "load_add_on" method in libtool was broken, which I didn't care to fix, since Haiku sports a fully compatible dlopen(). CU, Ingo From axeld at pinc-software.de Tue Jan 27 10:25:18 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Tue, 27 Jan 2009 10:25:18 +0100 CET Subject: [Haiku-commits] r29051 - haiku/trunk/src/system/kernel/arch/x86 In-Reply-To: <200901262257.n0QMvomt016297@sheep.berlios.de> Message-ID: <1580717359-BeMail@zon> korli at BerliOS wrote: > Log: > * now init SSE on all CPUs, as I noted cr4 wasn't set correctly > * this fixes the use of SSE instructions here on a dual core. Doh! I've looked over that code so often, and just didn't see this... thanks J?r?me!!! Let's see if this fixes the VLC problems I had, too :-) Bye, Axel. From axeld at pinc-software.de Tue Jan 27 10:27:05 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Tue, 27 Jan 2009 10:27:05 +0100 CET Subject: [Haiku-commits] =?utf-8?q?r29056_-_in_buildtools/trunk/gcc/gcc=3A?= =?utf-8?q?_=2E_config/arm_config/m68k_config/rs6000?= In-Reply-To: <200901262355.n0QNtUct014877@sheep.berlios.de> Message-ID: <1687136553-BeMail@zon> mmlr at mail.berlios.de wrote: > + builtin_define ("__BEOS__"); \ Didn't we get rid of __BEOS__ already? > + builtin_define ("__HAIKU__"); \ > + builtin_define ("__arm__"); \ How about an upper case __ARM__ to match __INTEL__, and __PPC__? :-) Bye, Axel. From superstippi at gmx.de Tue Jan 27 11:31:48 2009 From: superstippi at gmx.de (Stephan Assmus) Date: Tue, 27 Jan 2009 11:31:48 +0100 Subject: [Haiku-commits] r29051 - haiku/trunk/src/system/kernel/arch/x86 In-Reply-To: References: <200901262257.n0QMvomt016297@sheep.berlios.de> Message-ID: <20090127113148.618.3@bepc.1233050895.fake> On 2009-01-27 at 11:08:34 [+0100], David McPaul wrote: > On 2009-01-27, korli at BerliOS wrote: > > Author: korli > > Date: 2009-01-26 23:57:49 +0100 (Mon, 26 Jan 2009) New Revision: 29051 > > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29051&view=rev > > > > Modified: > > haiku/trunk/src/system/kernel/arch/x86/arch_cpu.cpp > > haiku/trunk/src/system/kernel/arch/x86/arch_smp.c > > Log: > > * now init SSE on all CPUs, as I noted cr4 wasn't set correctly > > * this fixes the use of SSE instructions here on a dual core. > > Was SSE broken in general or only for multi-cpus? > > Stippi and I had problems with SSE4 code, is this likely to be related? It's possible, but that was on ZETA. On a dual core, though. Best regards, -Stephan From mmlr at mlotz.ch Tue Jan 27 13:40:36 2009 From: mmlr at mlotz.ch (Michael Lotz) Date: Tue, 27 Jan 2009 13:40:36 +0100 Subject: [Haiku-commits] r29056 - in buildtools/trunk/gcc/gcc: . config/arm config/m68k config/rs6000 In-Reply-To: <1687136553-BeMail@zon> References: <200901262355.n0QNtUct014877@sheep.berlios.de> <1687136553-BeMail@zon> Message-ID: <20090127123322.M12252@mlotz.ch> On Tue, 27 Jan 2009 10:27:05 +0100 CET, Axel D?rfler wrote > mmlr at mail.berlios.de wrote: >> + builtin_define ("__BEOS__"); > > Didn't we get rid of __BEOS__ already? Not in the cross-tools that were there previously at least (GCC 4.1.2). It's possible that the latest GCC2 package has it removed though. Ingo? >> + builtin_define ("__HAIKU__"); >> + builtin_define ("__arm__"); > > How about an upper case __ARM__ to match __INTEL__, and __PPC__? :-) Sure, I can certainly add that. I've seen that on PPC it's specified both in upper and in lower case (__powerpc__ and __POWERPC__ there), so I'll just add the upper case variant here too. Regards Michael From ingo_weinhold at gmx.de Tue Jan 27 14:57:50 2009 From: ingo_weinhold at gmx.de (Ingo Weinhold) Date: Tue, 27 Jan 2009 14:57:50 +0100 Subject: [Haiku-commits] r29056 - in buildtools/trunk/gcc/gcc: . config/arm config/m68k config/rs6000 In-Reply-To: <20090127123322.M12252@mlotz.ch> References: <200901262355.n0QNtUct014877@sheep.berlios.de> <1687136553-BeMail@zon> <20090127123322.M12252@mlotz.ch> Message-ID: <20090127145750.532.1@knochen-vm.localdomain> On 2009-01-27 at 13:40:36 [+0100], Michael Lotz wrote: > On Tue, 27 Jan 2009 10:27:05 +0100 CET, Axel D?rfler wrote > > mmlr at mail.berlios.de wrote: > >> + builtin_define ("__BEOS__"); > > > > Didn't we get rid of __BEOS__ already? > > Not in the cross-tools that were there previously at least (GCC 4.1.2). It's > possible that the latest GCC2 package has it removed though. Ingo? I didn't change that for gcc 4 yet. I planned to do that after updating it to a current version. Feel free to remove __BEOS__. A few places in the libgcc and libsupc++ might need adjusting, too -- grepping for __BEOS__ will turn them up. CU, Ingo From mmlr at mlotz.ch Tue Jan 27 15:41:03 2009 From: mmlr at mlotz.ch (Michael Lotz) Date: Tue, 27 Jan 2009 15:41:03 +0100 Subject: [Haiku-commits] r29056 - in buildtools/trunk/gcc/gcc: . config/arm config/m68k config/rs6000 In-Reply-To: <20090127145750.532.1@knochen-vm.localdomain> References: <200901262355.n0QNtUct014877@sheep.berlios.de> <1687136553-BeMail@zon> <20090127123322.M12252@mlotz.ch> <20090127145750.532.1@knochen-vm.localdomain> Message-ID: <20090127143758.M75452@mlotz.ch> On Tue, 27 Jan 2009 14:57:50 +0100, Ingo Weinhold wrote >On 2009-01-27 at 13:40:36 [+0100], Michael Lotz wrote: >> On Tue, 27 Jan 2009 10:27:05 +0100 CET, Axel D?rfler wrote >>> mmlr at mail.berlios.de wrote: >>>> + builtin_define ("__BEOS__"); >>> >>> Didn't we get rid of __BEOS__ already? >> >> Not in the cross-tools that were there previously at least (GCC 4.1.2). It's >> possible that the latest GCC2 package has it removed though. Ingo? > > I didn't change that for gcc 4 yet. I planned to do that after > updating it to a current version. Feel free to remove __BEOS__. A > few places in the libgcc and libsupc++ might need adjusting, too -- > grepping for __BEOS__ will turn them up. Ok, will do that today or tomorrow then. I see you've removed __BEOS__ from the GCC2 package already. Will rebuild the GCC4 package to have __BEOS__ removed as well when I get the time. Regards Michael From axeld at mail.berlios.de Tue Jan 27 18:35:15 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Tue, 27 Jan 2009 18:35:15 +0100 Subject: [Haiku-commits] r29060 - haiku/trunk/src/add-ons/kernel/busses/agp_gart Message-ID: <200901271735.n0RHZFpN015901@sheep.berlios.de> Author: axeld Date: 2009-01-27 18:35:13 +0100 (Tue, 27 Jan 2009) New Revision: 29060 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29060&view=rev Modified: haiku/trunk/src/add-ons/kernel/busses/agp_gart/intel_gart.cpp Log: * On i865, the i915_GTT_BASE is not available. For some reason, though, the method FreeBSD and Linux are using does not work here; I didn't find out why, but I've added a fallback method to use the known GTT base then. * This should fix #2764. Modified: haiku/trunk/src/add-ons/kernel/busses/agp_gart/intel_gart.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/busses/agp_gart/intel_gart.cpp 2009-01-27 00:40:00 UTC (rev 29059) +++ haiku/trunk/src/add-ons/kernel/busses/agp_gart/intel_gart.cpp 2009-01-27 17:35:13 UTC (rev 29060) @@ -1,5 +1,5 @@ /* - * Copyright 2008, Axel D?rfler, axeld at pinc-software.de. All rights reserved. + * Copyright 2008-2009, Axel D?rfler, axeld at pinc-software.de. * Distributed under the terms of the MIT License. */ @@ -81,7 +81,7 @@ size_t gtt_entries; size_t gtt_stolen_entries; - uint32 *registers; + vuint32 *registers; area_id registers_area; addr_t aperture_base; @@ -233,17 +233,6 @@ static status_t intel_map(intel_info &info) { - info.gtt_physical_base = get_pci_config(info.display, i915_GTT_BASE, 4); - - size_t gttSize, stolenSize; - determine_memory_sizes(info, gttSize, stolenSize); - - info.gtt_entries = gttSize / 4096; - info.gtt_stolen_entries = stolenSize / 4096; - - TRACE("GTT base %lx, size %lu, entries %lu, stolen %lu\n", info.gtt_physical_base, - gttSize, info.gtt_entries, stolenSize); - int fbIndex = 0; int mmioIndex = 1; if ((info.type & INTEL_TYPE_FAMILY_MASK) == INTEL_TYPE_9xx) { @@ -253,15 +242,6 @@ fbIndex = 2; } - AreaKeeper gttMapper; - info.gtt_area = gttMapper.Map("intel GMCH gtt", - (void *)info.gtt_physical_base, gttSize, B_ANY_KERNEL_ADDRESS, - B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA, (void **)&info.gtt_base); - if (gttMapper.InitCheck() < B_OK) { - dprintf("agp_intel: could not map GTT!\n"); - return info.gtt_area; - } - AreaKeeper mmioMapper; info.registers_area = mmioMapper.Map("intel GMCH mmio", (void *)info.display.u.h0.base_registers[mmioIndex], @@ -272,6 +252,11 @@ return info.registers_area; } + // make sure bus master, memory-mapped I/O, and frame buffer is enabled + set_pci_config(info.display, PCI_command, 2, + get_pci_config(info.display, PCI_command, 2) + | PCI_command_io | PCI_command_memory | PCI_command_master); + void *scratchAddress; AreaKeeper scratchCreator; info.scratch_area = scratchCreator.Create("intel GMCH scratch", @@ -286,14 +271,46 @@ if (get_memory_map(scratchAddress, B_PAGE_SIZE, &entry, 1) != B_OK) return B_ERROR; + if ((info.type & INTEL_TYPE_FAMILY_MASK) == INTEL_TYPE_9xx) + info.gtt_physical_base = get_pci_config(info.display, i915_GTT_BASE, 4); + else { + info.gtt_physical_base = read32(info.registers + + INTEL_PAGE_TABLE_CONTROL) & ~PAGE_TABLE_ENABLED; + if (info.gtt_physical_base == 0) { + // TODO: not sure how this is supposed to work under Linux/FreeBSD, + // but on my i865, this code is needed for Haiku. + dprintf("intel_gart: Use GTT address fallback.\n"); + info.gtt_physical_base = info.display.u.h0.base_registers[mmioIndex] + + i830_GTT_BASE; + } + } + + size_t gttSize, stolenSize; + determine_memory_sizes(info, gttSize, stolenSize); + + info.gtt_entries = gttSize / 4096; + info.gtt_stolen_entries = stolenSize / 4096; + + TRACE("GTT base %lx, size %lu, entries %lu, stolen %lu\n", info.gtt_physical_base, + gttSize, info.gtt_entries, stolenSize); + + AreaKeeper gttMapper; + info.gtt_area = gttMapper.Map("intel GMCH gtt", + (void *)info.gtt_physical_base, gttSize, B_ANY_KERNEL_ADDRESS, + B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA, (void **)&info.gtt_base); + if (gttMapper.InitCheck() < B_OK) { + dprintf("intel_gart: could not map GTT!\n"); + return info.gtt_area; + } + info.aperture_physical_base = info.display.u.h0.base_registers[fbIndex]; info.aperture_stolen_size = stolenSize; if (info.aperture_size == 0) info.aperture_size = info.display.u.h0.base_register_sizes[fbIndex]; - dprintf("intel_gart: detected %ld MB of stolen memory, aperture size %ld " - "MB, GTT size %ld KB\n", stolenSize >> 20, info.aperture_size >> 20, - gttSize >> 10); + dprintf("intel_gart: detected %ld MB of stolen memory, aperture " + "size %ld MB, GTT size %ld KB\n", (stolenSize + (1023 << 10)) >> 20, + info.aperture_size >> 20, gttSize >> 10); AreaKeeper apertureMapper; info.aperture_area = apertureMapper.Map("intel graphics aperture", @@ -348,7 +365,7 @@ INTEL_GRAPHICS_MEMORY_CONTROL, 2) | MEMORY_CONTROL_ENABLED; set_pci_config(sInfo.bridge, INTEL_GRAPHICS_MEMORY_CONTROL, 2, gmchControl); - write32(sInfo.registers + INTEL_PAGE_TABLE_CONTROL, + write32(sInfo.registers + INTEL_PAGE_TABLE_CONTROL, sInfo.gtt_physical_base | PAGE_TABLE_ENABLED); read32(sInfo.registers + INTEL_PAGE_TABLE_CONTROL); @@ -398,7 +415,7 @@ static status_t intel_bind_page(void *aperture, uint32 offset, addr_t physicalAddress) { - TRACE("bind_page(offset %lx, physical %lx)\n", offset, physicalAddress); + //TRACE("bind_page(offset %lx, physical %lx)\n", offset, physicalAddress); set_gtt_entry(sInfo, offset, physicalAddress); return B_OK; @@ -408,7 +425,7 @@ static status_t intel_unbind_page(void *aperture, uint32 offset) { - TRACE("unbind_page(offset %lx)\n", offset); + //TRACE("unbind_page(offset %lx)\n", offset); if (sInfo.scratch_page != 0) set_gtt_entry(sInfo, offset, sInfo.scratch_page); From stippi at mail.berlios.de Tue Jan 27 19:47:19 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Tue, 27 Jan 2009 19:47:19 +0100 Subject: [Haiku-commits] r29061 - haiku/trunk/src/servers/app Message-ID: <200901271847.n0RIlJ8i003062@sheep.berlios.de> Author: stippi Date: 2009-01-27 19:47:18 +0100 (Tue, 27 Jan 2009) New Revision: 29061 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29061&view=rev Modified: haiku/trunk/src/servers/app/FontCacheEntry.cpp Log: D'oh! The GlyphCache memory is already managed by the block allocator. There was no leak before and r29047 freed the memory twice. Sorry about that. Already feeling like getting old and there is proof left and right... Modified: haiku/trunk/src/servers/app/FontCacheEntry.cpp =================================================================== --- haiku/trunk/src/servers/app/FontCacheEntry.cpp 2009-01-27 17:35:13 UTC (rev 29060) +++ haiku/trunk/src/servers/app/FontCacheEntry.cpp 2009-01-27 18:47:18 UTC (rev 29061) @@ -49,18 +49,6 @@ memset(fGlyphs, 0, sizeof(fGlyphs)); } - ~GlyphCachePool() - { - for (int i = 0; i < 256; i++) { - GlyphCache** cache = fGlyphs[i]; - if (cache == NULL) - continue; - for (int j = 0; j < 256; j++) - delete cache[j]; - delete[] cache; - } - } - const GlyphCache* FindGlyph(uint16 glyphCode) const { unsigned msb = (glyphCode >> 8) & 0xFF; From mmlr at mail.berlios.de Tue Jan 27 20:31:14 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 27 Jan 2009 20:31:14 +0100 Subject: [Haiku-commits] r29062 - in buildtools/trunk/binutils: include intl Message-ID: <200901271931.n0RJVEp0007655@sheep.berlios.de> Author: mmlr Date: 2009-01-27 20:31:12 +0100 (Tue, 27 Jan 2009) New Revision: 29062 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29062&view=rev Modified: buildtools/trunk/binutils/include/binary-io.h buildtools/trunk/binutils/intl/loadmsgcat.c Log: These apply to Haiku as well. Fixes binutils build with current GCC2 package on Haiku. Modified: buildtools/trunk/binutils/include/binary-io.h =================================================================== --- buildtools/trunk/binutils/include/binary-io.h 2009-01-27 18:47:18 UTC (rev 29061) +++ buildtools/trunk/binutils/include/binary-io.h 2009-01-27 19:31:12 UTC (rev 29062) @@ -30,8 +30,8 @@ # define O_BINARY _O_BINARY # define O_TEXT _O_TEXT #endif -#ifdef __BEOS__ - /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */ +#if defined(__BEOS__) || defined(__HAIKU__) + /* BeOS 5 and Haiku R1 have O_BINARY and O_TEXT, but they have no effect. */ # undef O_BINARY # undef O_TEXT #endif Modified: buildtools/trunk/binutils/intl/loadmsgcat.c =================================================================== --- buildtools/trunk/binutils/intl/loadmsgcat.c 2009-01-27 18:47:18 UTC (rev 29061) +++ buildtools/trunk/binutils/intl/loadmsgcat.c 2009-01-27 19:31:12 UTC (rev 29062) @@ -480,8 +480,8 @@ # define O_BINARY _O_BINARY # define O_TEXT _O_TEXT #endif -#ifdef __BEOS__ - /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */ +#if defined(__BEOS__) || defined(__HAIKU__) + /* BeOS 5 and Haiku R1 have O_BINARY and O_TEXT, but they have no effect. */ # undef O_BINARY # undef O_TEXT #endif From korli at mail.berlios.de Tue Jan 27 21:14:55 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Tue, 27 Jan 2009 21:14:55 +0100 Subject: [Haiku-commits] r29063 - haiku/trunk/src/apps/soundrecorder Message-ID: <200901272014.n0RKEt31012989@sheep.berlios.de> Author: korli Date: 2009-01-27 21:14:55 +0100 (Tue, 27 Jan 2009) New Revision: 29063 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29063&view=rev Modified: haiku/trunk/src/apps/soundrecorder/RecorderWindow.cpp Log: * removed the background border Modified: haiku/trunk/src/apps/soundrecorder/RecorderWindow.cpp =================================================================== --- haiku/trunk/src/apps/soundrecorder/RecorderWindow.cpp 2009-01-27 19:31:12 UTC (rev 29062) +++ haiku/trunk/src/apps/soundrecorder/RecorderWindow.cpp 2009-01-27 20:14:55 UTC (rev 29063) @@ -242,20 +242,20 @@ BRect r(Bounds()); r.bottom = r.top + 175; BBox *background = new BBox(r, "_background", B_FOLLOW_LEFT_RIGHT | B_FOLLOW_TOP, - B_WILL_DRAW|B_FRAME_EVENTS|B_NAVIGABLE_JUMP, B_PLAIN_BORDER); + B_WILL_DRAW|B_FRAME_EVENTS|B_NAVIGABLE_JUMP, B_NO_BORDER); AddChild(background); r = background->Bounds(); - r.left = 2; - r.right = r.left + 37; + r.left = 0; + r.right = r.left + 35; r.bottom = r.top + 104; fVUView = new VUView(r, B_FOLLOW_LEFT|B_FOLLOW_TOP); background->AddChild(fVUView); r = background->Bounds(); - r.left = r.left + 40; + r.left = r.left + 38; r.bottom = r.top + 104; fScopeView = new ScopeView(r, B_FOLLOW_LEFT_RIGHT|B_FOLLOW_TOP); background->AddChild(fScopeView); @@ -731,7 +731,8 @@ entry_ref ref; pItem->Entry().GetRef(&ref); - saveMsg.AddPointer("sound list item", pItem); + if (saveMsg.AddPointer("sound list item", pItem) != B_OK) + fprintf(stderr, "failed to add pItem\n"); fSavePanel->SetSaveText(filename); fSavePanel->SetMessage(&saveMsg); fSavePanel->Show(); @@ -930,7 +931,7 @@ wave_struct header; header.riff.riff_id = FOURCC('R','I','F','F'); - header.riff.len = fRecSize + 36; + header.riff.len = fRecSize + sizeof(header) - 8; header.riff.wave_id = FOURCC('W','A','V','E'); header.format_chunk.fourcc = FOURCC('f','m','t',' '); header.format_chunk.len = sizeof(header.format); @@ -1305,7 +1306,7 @@ wave_struct header; header.riff.riff_id = FOURCC('R','I','F','F'); - header.riff.len = (frameSize * framesToWrite) + 36; + header.riff.len = (frameSize * framesToWrite) + sizeof(header) - 8; header.riff.wave_id = FOURCC('W','A','V','E'); header.format_chunk.fourcc = FOURCC('f','m','t',' '); header.format_chunk.len = sizeof(header.format); From julun at mail.berlios.de Tue Jan 27 22:03:33 2009 From: julun at mail.berlios.de (julun at BerliOS) Date: Tue, 27 Jan 2009 22:03:33 +0100 Subject: [Haiku-commits] r29064 - in haiku/trunk: headers/private/interface src/servers/app Message-ID: <200901272103.n0RL3Xgr019653@sheep.berlios.de> Author: julun Date: 2009-01-27 22:03:32 +0100 (Tue, 27 Jan 2009) New Revision: 29064 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29064&view=rev Modified: haiku/trunk/headers/private/interface/WindowInfo.h haiku/trunk/src/servers/app/Desktop.cpp Log: * extend Haiku specific client window info to include the tab height and border size Modified: haiku/trunk/headers/private/interface/WindowInfo.h =================================================================== --- haiku/trunk/headers/private/interface/WindowInfo.h 2009-01-27 20:14:55 UTC (rev 29063) +++ haiku/trunk/headers/private/interface/WindowInfo.h 2009-01-27 21:03:32 UTC (rev 29064) @@ -34,6 +34,8 @@ } _PACKED; struct client_window_info : window_info { + float tab_height; + float border_size; char name[1]; } _PACKED; Modified: haiku/trunk/src/servers/app/Desktop.cpp =================================================================== --- haiku/trunk/src/servers/app/Desktop.cpp 2009-01-27 20:14:55 UTC (rev 29063) +++ haiku/trunk/src/servers/app/Desktop.cpp 2009-01-27 21:03:32 UTC (rev 29064) @@ -2614,15 +2614,33 @@ window_info info; window->GetInfo(info); + float tabSize = 0.0; + float borderSize = 0.0; + ::Window* tmp = window->Window(); + if (tmp) { + BMessage message; + if (tmp->GetDecoratorSettings(&message)) { + BRect tabFrame; + message.FindRect("tab frame", &tabFrame); + tabSize = tabFrame.bottom - tabFrame.top; + message.FindFloat("border width", &borderSize); + } + } + + int32 decoratorInfo = 2 * sizeof(float); int32 length = window->Title() ? strlen(window->Title()) : 0; sender.StartMessage(B_OK); - sender.Attach(sizeof(window_info) + length + 1); + sender.Attach(sizeof(window_info) + decoratorInfo + length + 1); sender.Attach(&info, sizeof(window_info)); + sender.Attach(tabSize); + sender.Attach(borderSize); + if (length > 0) sender.Attach(window->Title(), length + 1); else sender.Attach('\0'); + sender.Flush(); } From julun at mail.berlios.de Tue Jan 27 22:04:11 2009 From: julun at mail.berlios.de (julun at BerliOS) Date: Tue, 27 Jan 2009 22:04:11 +0100 Subject: [Haiku-commits] r29065 - haiku/trunk/src/apps/screenshot Message-ID: <200901272104.n0RL4BQY019731@sheep.berlios.de> Author: julun Date: 2009-01-27 22:04:10 +0100 (Tue, 27 Jan 2009) New Revision: 29065 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29065&view=rev Modified: haiku/trunk/src/apps/screenshot/ScreenshotWindow.cpp Log: * make use of the now available decorator infos Modified: haiku/trunk/src/apps/screenshot/ScreenshotWindow.cpp =================================================================== --- haiku/trunk/src/apps/screenshot/ScreenshotWindow.cpp 2009-01-27 21:03:32 UTC (rev 29064) +++ haiku/trunk/src/apps/screenshot/ScreenshotWindow.cpp 2009-01-27 21:04:10 UTC (rev 29065) @@ -641,7 +641,7 @@ int32* tokens; int32 tokenCount; - status_t status = BPrivate::get_window_order(B_CURRENT_WORKSPACE, &tokens, + status_t status = BPrivate::get_window_order(current_workspace(), &tokens, &tokenCount); if (status != B_OK || !tokens || tokenCount < 1) return B_ERROR; @@ -656,14 +656,12 @@ frame->bottom = windowInfo->window_bottom; status = B_OK; - free(windowInfo); - if (fIncludeBorder) { - // TODO: that's wrong for windows without titlebar, change once - // we can access the decorator or get it via window info - frame->InsetBy(-5.0, -5.0); - frame->top -= 22.0; + float border = (windowInfo->border_size); + frame->InsetBy(-(border), -(border)); + frame->top -= windowInfo->tab_height; } + free(windowInfo); BRect screenFrame(BScreen(this).Frame()); if (frame->left < screenFrame.left) From mmu_man at mail.berlios.de Tue Jan 27 23:19:37 2009 From: mmu_man at mail.berlios.de (mmu_man at BerliOS) Date: Tue, 27 Jan 2009 23:19:37 +0100 Subject: [Haiku-commits] r29066 - in haiku/trunk/src/add-ons/media/media-add-ons: . finepix_webcam finepix_webcam/FinePixJpeg finepix_webcam/FinePixProducer finepix_webcam/FinePixUSBKit finepix_webcam/FinePixUSBKitTest Message-ID: <200901272219.n0RMJbtM027712@sheep.berlios.de> Author: mmu_man Date: 2009-01-27 23:19:35 +0100 (Tue, 27 Jan 2009) New Revision: 29066 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29066&view=rev Added: haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/ haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixJpeg/ haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixJpeg/FinePixJpeg.proj haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixJpeg/finepix-jpeg.c haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixJpeg/finepix-jpeg.h haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixProducer/ haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixProducer/AddOn.cpp haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixProducer/AddOn.h haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixProducer/FinePixProducer.proj haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixProducer/Producer.cpp haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixProducer/Producer.h haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixUSBKit/ haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixUSBKit/FinePix.cpp haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixUSBKit/FinePix.h haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixUSBKit/FinePix.proj haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixUSBKitTest/ haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixUSBKitTest/FinePixTest.cpp haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/FinePixUSBKitTest/FinePixTest.proj haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/LICENCE.txt haiku/trunk/src/add-ons/media/media-add-ons/finepix_webcam/ReadMe Log: This is the source for the FinePix webcam driver on http://bebits.com/app/4185 I have received permission from Oyvind Smestad to use the part he wrote under MIT licence, but some other parts are GPL sources from Linux. The plan is to merge the core part into usb_webcam, and use either the JPEG Translator or libjpeg to replace the GPLed jpeg decoding part. Here is what he said: From axeld at pinc-software.de Tue Jan 27 23:25:12 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Tue, 27 Jan 2009 23:25:12 +0100 CET Subject: [Haiku-commits] =?utf-8?q?r29064_-_in_haiku/trunk=3A_headers/priv?= =?utf-8?q?ate/interface_src/servers/app?= In-Reply-To: <200901272103.n0RL3Xgr019653@sheep.berlios.de> Message-ID: <48374179214-BeMail@zon> julun at BerliOS wrote: > + int32 decoratorInfo = 2 * sizeof(float); > int32 length = window->Title() ? strlen(window->Title()) : 0; > > sender.StartMessage(B_OK); > - sender.Attach(sizeof(window_info) + length + 1); > + sender.Attach(sizeof(window_info) + decoratorInfo + length + > 1); Wouldn't "sizeof(client_window_info) + length" be a bit less error prone? :-) Bye, Axel. From revol at free.fr Tue Jan 27 23:31:26 2009 From: revol at free.fr (=?utf-8?q?Fran=C3=A7ois?= Revol) Date: Tue, 27 Jan 2009 23:31:26 +0100 CET Subject: [Haiku-commits] =?utf-8?q?r29066_-_in_haiku/trunk/src/add-ons/med?= =?utf-8?q?ia/media-add-ons=3A_=2E_finepix=5Fwebcam_finepix=5Fwebcam/FineP?= =?utf-8?q?ixJpeg_finepix=5Fwebcam/FinePixProducer_finepix=5Fwebcam/FinePi?= =?utf-8?q?xUSBKit__finepix=5Fwebcam/FinePixUSBKitTest?= In-Reply-To: <200901272219.n0RMJbtM027712@sheep.berlios.de> Message-ID: <8628848184-BeMail@laptop> > Log: > This is the source for the FinePix webcam driver on http://bebits.com/app/4185 > > I have received permission from Oyvind Smestad to use the part he > wrote > under MIT licence, but some other parts are GPL sources from Linux. > The plan is to merge the core part into usb_webcam, and use either > the JPEG Translator or libjpeg to replace the GPLed jpeg decoding > part. > Here is what he said: > > From Oyvind Smestad (o.smestad AT gmail.com): svn in ZETA didn't want me to use the O strike (U+00D8)... Finally managed to fix the log with propget/propset from Linux :) Btw, it's version 0.1.1. I don't really have the time atm to merge it. Anyone has a supported model ? Fran?ois. From mmlr at mail.berlios.de Wed Jan 28 02:48:51 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Wed, 28 Jan 2009 02:48:51 +0100 Subject: [Haiku-commits] r29067 - buildtools/trunk/gcc/gcc/config Message-ID: <200901280148.n0S1mplr000253@sheep.berlios.de> Author: mmlr Date: 2009-01-28 02:48:49 +0100 (Wed, 28 Jan 2009) New Revision: 29067 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29067&view=rev Modified: buildtools/trunk/gcc/gcc/config/haiku.h Log: Add some more default include dirs for native compiler. Modified: buildtools/trunk/gcc/gcc/config/haiku.h =================================================================== --- buildtools/trunk/gcc/gcc/config/haiku.h 2009-01-27 22:19:35 UTC (rev 29066) +++ buildtools/trunk/gcc/gcc/config/haiku.h 2009-01-28 01:48:49 UTC (rev 29067) @@ -78,7 +78,10 @@ #define INCLUDE_DEFAULTS \ { \ { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \ + { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \ + { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1, 0, 0 }, \ { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, \ + { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0, 0 }, \ { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 }, \ { "/boot/develop/headers/os", 0, 0, 0, 0, 0 }, \ { "/boot/develop/headers/os/app", 0, 0, 0, 0, 0 }, \ @@ -143,7 +146,6 @@ { CROSS_INCLUDE_DIR "/os/be_apps/Deskbar", 0, 0, 0, 1, 0 }, \ { CROSS_INCLUDE_DIR "/os/be_apps/NetPositive", 0, 0, 0, 1, 0 }, \ { CROSS_INCLUDE_DIR "/os/be_apps/Tracker", 0, 0, 0, 1, 0 }, \ - { CROSS_INCLUDE_DIR "/os/net/netinet", 0, 0, 0, 1, 0 }, \ { CROSS_INCLUDE_DIR "/gnu", 0, 0, 0, 1, 0 }, \ { CROSS_INCLUDE_DIR "/cpp", 0, 0, 0, 1, 0 }, \ { CROSS_INCLUDE_DIR "/bsd", 0, 0, 0, 1, 0 }, \ From mmlr at mail.berlios.de Wed Jan 28 02:49:48 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Wed, 28 Jan 2009 02:49:48 +0100 Subject: [Haiku-commits] r29068 - in buildtools/trunk/gcc/gcc/config: arm i386 m68k rs6000 Message-ID: <200901280149.n0S1nmpO000358@sheep.berlios.de> Author: mmlr Date: 2009-01-28 02:49:45 +0100 (Wed, 28 Jan 2009) New Revision: 29068 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29068&view=rev Modified: buildtools/trunk/gcc/gcc/config/arm/haiku.h buildtools/trunk/gcc/gcc/config/i386/haiku.h buildtools/trunk/gcc/gcc/config/m68k/haiku.h buildtools/trunk/gcc/gcc/config/rs6000/haiku.h Log: Remove the __BEOS__ builtin define. Also add an uppercase __ARM__ for the ARM config. Modified: buildtools/trunk/gcc/gcc/config/arm/haiku.h =================================================================== --- buildtools/trunk/gcc/gcc/config/arm/haiku.h 2009-01-28 01:48:49 UTC (rev 29067) +++ buildtools/trunk/gcc/gcc/config/arm/haiku.h 2009-01-28 01:49:45 UTC (rev 29068) @@ -55,8 +55,8 @@ #define TARGET_OS_CPP_BUILTINS() \ do \ { \ - builtin_define ("__BEOS__"); \ builtin_define ("__HAIKU__"); \ + builtin_define ("__ARM__"); \ builtin_define ("__arm__"); \ builtin_define ("__stdcall=__attribute__((__stdcall__))"); \ builtin_define ("__cdecl=__attribute__((__cdecl__))"); \ Modified: buildtools/trunk/gcc/gcc/config/i386/haiku.h =================================================================== --- buildtools/trunk/gcc/gcc/config/i386/haiku.h 2009-01-28 01:48:49 UTC (rev 29067) +++ buildtools/trunk/gcc/gcc/config/i386/haiku.h 2009-01-28 01:49:45 UTC (rev 29068) @@ -46,7 +46,6 @@ #define TARGET_OS_CPP_BUILTINS() \ do \ { \ - builtin_define ("__BEOS__"); \ builtin_define ("__HAIKU__"); \ builtin_define ("__INTEL__"); \ builtin_define ("_X86_"); \ Modified: buildtools/trunk/gcc/gcc/config/m68k/haiku.h =================================================================== --- buildtools/trunk/gcc/gcc/config/m68k/haiku.h 2009-01-28 01:48:49 UTC (rev 29067) +++ buildtools/trunk/gcc/gcc/config/m68k/haiku.h 2009-01-28 01:49:45 UTC (rev 29068) @@ -80,7 +80,6 @@ #define TARGET_OS_CPP_BUILTINS() \ do \ { \ - builtin_define ("__BEOS__"); \ builtin_define ("__HAIKU__"); \ builtin_define ("__M68K__"); \ builtin_define_std ("mc68000"); \ Modified: buildtools/trunk/gcc/gcc/config/rs6000/haiku.h =================================================================== --- buildtools/trunk/gcc/gcc/config/rs6000/haiku.h 2009-01-28 01:48:49 UTC (rev 29067) +++ buildtools/trunk/gcc/gcc/config/rs6000/haiku.h 2009-01-28 01:49:45 UTC (rev 29068) @@ -47,7 +47,6 @@ #define TARGET_OS_CPP_BUILTINS() \ do \ { \ - builtin_define ("__BEOS__"); \ builtin_define ("__HAIKU__"); \ builtin_define ("__POWERPC__"); \ builtin_define ("__powerpc__"); \ From mmlr at mail.berlios.de Wed Jan 28 03:02:53 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Wed, 28 Jan 2009 03:02:53 +0100 Subject: [Haiku-commits] r29069 - haiku/trunk/build/scripts Message-ID: <200901280202.n0S22rB4002468@sheep.berlios.de> Author: mmlr Date: 2009-01-28 03:02:51 +0100 (Wed, 28 Jan 2009) New Revision: 29069 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29069&view=rev Modified: haiku/trunk/build/scripts/build_cross_tools_gcc4 Log: Forgot to update this reference when renaming be/ to os/. Modified: haiku/trunk/build/scripts/build_cross_tools_gcc4 =================================================================== --- haiku/trunk/build/scripts/build_cross_tools_gcc4 2009-01-28 01:49:45 UTC (rev 29068) +++ haiku/trunk/build/scripts/build_cross_tools_gcc4 2009-01-28 02:02:51 UTC (rev 29069) @@ -140,7 +140,7 @@ # remove the system headers from the installation dir # Only the ones from the source tree should be used. sysIncludeDir=$installDir/$haikuMachine/sys-include -rm -rf $sysIncludeDir/be $sysIncludeDir/posix +rm -rf $sysIncludeDir/os $sysIncludeDir/posix # remove the objects dir rm -rf $objDir From mmlr at mail.berlios.de Wed Jan 28 03:08:40 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Wed, 28 Jan 2009 03:08:40 +0100 Subject: [Haiku-commits] r29070 - haiku/trunk Message-ID: <200901280208.n0S28ePI002682@sheep.berlios.de> Author: mmlr Date: 2009-01-28 03:08:39 +0100 (Wed, 28 Jan 2009) New Revision: 29070 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29070&view=rev Modified: haiku/trunk/configure Log: The include-fixed directory is a normal default include dir on GCC4. Modified: haiku/trunk/configure =================================================================== --- haiku/trunk/configure 2009-01-28 02:02:51 UTC (rev 29069) +++ haiku/trunk/configure 2009-01-28 02:08:39 UTC (rev 29070) @@ -119,7 +119,8 @@ HAIKU_GCC_LIB_DIR=${gccdir} HAIKU_GCC_LIBGCC=${gccdir}/libgcc.a HAIKU_GCC_GLUE_CODE="crtbegin.o crtend.o" - HAIKU_GCC_HEADERS_DIR=${gccdir}/include + HAIKU_GCC_HEADERS_DIR="${gccdir}/include + ${gccdir}/include-fixed" HAIKU_GCC_LIBGCC_OBJECTS=`$HAIKU_AR t ${HAIKU_GCC_LIBGCC} | grep -v eabi.o` # Note: We filter out eabi.o. It's present in gcc's libgcc for PPC and # neither needed nor wanted. From mmlr at mail.berlios.de Wed Jan 28 04:07:54 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Wed, 28 Jan 2009 04:07:54 +0100 Subject: [Haiku-commits] r29071 - buildtools/trunk/gcc/gcc Message-ID: <200901280307.n0S37sin006122@sheep.berlios.de> Author: mmlr Date: 2009-01-28 04:07:50 +0100 (Wed, 28 Jan 2009) New Revision: 29071 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29071&view=rev Modified: buildtools/trunk/gcc/gcc/Makefile.in buildtools/trunk/gcc/gcc/configure Log: Don't blindly assume -lm presence. Add a check for the host and remove the -lm on Haiku so building should work natively. Modified: buildtools/trunk/gcc/gcc/Makefile.in =================================================================== --- buildtools/trunk/gcc/gcc/Makefile.in 2009-01-28 02:08:39 UTC (rev 29070) +++ buildtools/trunk/gcc/gcc/Makefile.in 2009-01-28 03:07:50 UTC (rev 29071) @@ -3265,7 +3265,7 @@ $(genprogmd:%=build/gen%$(build_exeext)): $(BUILD_RTL) $(BUILD_ERRORS) # These programs need libs over and above what they get from the above list. -build/genautomata$(build_exeext) : BUILD_LIBS += -lm +build/genautomata$(build_exeext) : BUILD_LIBS += @math_library@ # These programs are not linked with the MD reader. build/gengenrtl$(build_exeext) : $(BUILD_ERRORS) Modified: buildtools/trunk/gcc/gcc/configure =================================================================== --- buildtools/trunk/gcc/gcc/configure 2009-01-28 02:08:39 UTC (rev 29070) +++ buildtools/trunk/gcc/gcc/configure 2009-01-28 03:07:50 UTC (rev 29071) @@ -9064,6 +9064,15 @@ # -------- +# Configure -lm usage for host tools that need it +math_library="-lm" +case $host in + *-*-haiku*) + # no separate math library needed + math_library= + ;; +esac + # These libraries may be used by collect2. # We may need a special search path to get them linked. echo "$as_me:$LINENO: checking for collect2 libraries" >&5 @@ -24035,6 +24044,7 @@ s, at LTLIBOBJS@,$LTLIBOBJS,;t t /@language_hooks@/r $language_hooks s, at language_hooks@,,;t t +s, at math_library@,$math_library,;t t CEOF _ACEOF From revol at free.fr Wed Jan 28 09:16:07 2009 From: revol at free.fr (=?utf-8?q?Fran=C3=A7ois?= Revol) Date: Wed, 28 Jan 2009 09:16:07 +0100 CET Subject: [Haiku-commits] r29071 - buildtools/trunk/gcc/gcc In-Reply-To: <200901280307.n0S37sin006122@sheep.berlios.de> Message-ID: <915769260-BeMail@laptop> > Modified: buildtools/trunk/gcc/gcc/configure > =================================================================== > --- buildtools/trunk/gcc/gcc/configure 2009-01-28 02:08:39 UTC > (rev 29070) > +++ buildtools/trunk/gcc/gcc/configure 2009-01-28 03:07:50 UTC > (rev 29071) B_DONT_DO_THAT isn't there a configure.* to change ?? Fran?ois. From stippi at mail.berlios.de Wed Jan 28 09:40:45 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Wed, 28 Jan 2009 09:40:45 +0100 Subject: [Haiku-commits] r29072 - haiku/trunk/src/data/etc/keymaps Message-ID: <200901280840.n0S8ej6C015759@sheep.berlios.de> Author: stippi Date: 2009-01-28 09:40:45 +0100 (Wed, 28 Jan 2009) New Revision: 29072 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29072&view=rev Added: haiku/trunk/src/data/etc/keymaps/Latin-American.keymap Log: Added Latin-American keymap kindly provided by Francisco Castro. Thanks a lot! Added: haiku/trunk/src/data/etc/keymaps/Latin-American.keymap =================================================================== --- haiku/trunk/src/data/etc/keymaps/Latin-American.keymap 2009-01-28 03:07:50 UTC (rev 29071) +++ haiku/trunk/src/data/etc/keymaps/Latin-American.keymap 2009-01-28 08:40:45 UTC (rev 29072) @@ -0,0 +1,274 @@ +#!/bin/keymap -l +# +# Raw key numbering for 101 keyboard... +# [sys] [brk] +# 0x7e 0x7f +# [esc] [ f1] [ f2] [ f3] [ f4] [ f5] [ f6] [ f7] [ f8] [ f9] [f10] [f11] [f12] [prn] [scr] [pau] +# 0x01 0x02 0x03 0x04 0x05 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f 0x10 K E Y P A D K E Y S +# +# [ | ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 0 ] [ ' ] [que? ] [bck] [ins] [hme] [pup] [num] [ / ] [ * ] [ - ] +# 0x11 0x12 0x13 0x14 0x15 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f 0x20 0x21 0x22 0x23 0x24 0x25 +# +# [tab] [ q ] [ w ] [ e ] [ r ] [ t ] [ y ] [ u ] [ i ] [ o ] [ p ] [acu] [ + ] [ } ] [del] [end] [pdn] [ 7 ] [ 8 ] [ 9 ] [ + ] +# 0x26 0x27 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x3a +# +# [cap] [ a ] [ s ] [ d ] [ f ] [ g ] [ h ] [ j ] [ k ] [ l ] [enie][ { ] [ enter ] [ 4 ] [ 5 ] [ 6 ] +# 0x3b 0x3c 0x3d 0x3e 0x3f 0x40 0x41 0x42 0x43 0x44 0x45 0x46 0x47 0x48 0x49 0x4a +# +# [shift] [ z ] [ x ] [ c ] [ v ] [ b ] [ n ] [ m ] [ , ] [ . ] [ - ] [shift] [ up] [ 1 ] [ 2 ] [ 3 ] [ent] +# 0x4b 0x4c 0x4d 0x4e 0x4f 0x50 0x51 0x52 0x53 0x54 0x55 0x56 0x57 0x58 0x59 0x5a 0x5b +# +# [ctr] [cmd] [ space ] [cmd] [ctr] [lft] [dwn] [rgt] [ 0 ] [ . ] +# 0x5c 0x5d 0x5e 0x5f 0x60 0x61 0x62 0x63 0x64 0x65 +# +# NOTE: On a Microsoft Natural Keyboard: +# left option = 0x66 +# right option = 0x67 +# menu key = 0x68 +# NOTE: On an Apple Extended Keyboard: +# left option = 0x66 +# right option = 0x67 +# keypad '=' = 0x6a +# power key = 0x6b +Version = 3 +CapsLock = 0x3b +ScrollLock = 0x0f +NumLock = 0x22 +LShift = 0x4b +RShift = 0x56 +LCommand = 0x5d +RCommand = 0x60 +LControl = 0x5c +RControl = 0x00 +LOption = 0x66 +ROption = 0x5f +Menu = 0x68 +# +# Lock settings +# To set NumLock, do the following: +# LockSettings = NumLock +# +# To set everything, do the following: +# LockSettings = CapsLock NumLock ScrollLock +# +LockSettings = +# Legend: +# n = Normal +# s = Shift +# c = Control +# C = CapsLock +# o = Option +# Key n s c o os C Cs Co Cos +Key 0x00 = '' '' '' '' '' '' '' '' '' +Key 0x01 = 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b 0x1b +Key 0x02 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x03 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x04 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x05 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x06 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x07 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x08 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x09 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0a = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0b = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0c = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0d = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0e = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x0f = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x10 = 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 0x10 +Key 0x11 = '|' 0xc2b0 '' 0xc2ac '' '|' 0xc2b0 0xc2ac '' +Key 0x12 = '1' '!' '' '|' '' '1' '!' '|' '' +Key 0x13 = '2' '"' '' '@' '' '2' '"' '@' '' +Key 0x14 = '3' '#' '' '#' '' '3' '#' '#' '' +Key 0x15 = '4' '$' '' '~' '' '4' '$' '~' '' +Key 0x16 = '5' '%' '' 0xe282ac '' '5' '%' 0xe282ac '' +Key 0x17 = '6' '&' '' 0xc2ac '' '6' '&' 0xc2ac '' +Key 0x18 = '7' '/' '' '{' '' '7' '/' '{' '' +Key 0x19 = '8' '(' '' '[' '' '8' '(' '[' '' +Key 0x1a = '9' ')' '' ']' '' '9' ')' ']' '' +Key 0x1b = '0' '=' '' '}' '' '0' '=' '}' '' +Key 0x1c = '\'' '?' '' '\\' '' '\'' '?' '\\' '' +Key 0x1d = 0xc2bf 0xc2a1 '' '' '' 0xc2bf 0xc2a1 '' '' +Key 0x1e = 0x08 0x08 0x1f 0x08 0x08 0x08 0x08 0x08 0x08 +Key 0x1f = 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 0x05 +Key 0x20 = 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 0x01 +Key 0x21 = 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b 0x0b +Key 0x22 = '' '' '' '' '' '' '' '' '' +Key 0x23 = '/' '/' '/' '/' '/' '/' '/' '/' '/' +Key 0x24 = '*' '*' '*' '*' '*' '*' '*' '*' '*' +Key 0x25 = '-' '-' '-' '-' '-' '-' '-' '-' '-' +Key 0x26 = 0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09 +Key 0x27 = 'q' 'Q' 0x11 '@' '' 'Q' 'q' '@' '' +Key 0x28 = 'w' 'W' 0x17 ' ' '' 'W' 'w' ' ' '' +Key 0x29 = 'e' 'E' 0x05 0xe282ac '' 'E' 'e' 0xe282ac '' +Key 0x2a = 'r' 'R' 0x12 ' ' '' 'R' 'r' ' ' '' +Key 0x2b = 't' 'T' 0x14 ' ' '' 'T' 't' ' ' '' +Key 0x2c = 'y' 'Y' 0x19 ' ' '' 'Y' 'y' ' ' '' +Key 0x2d = 'u' 'U' 0x15 ' ' '' 'U' 'u' ' ' '' +Key 0x2e = 'i' 'I' 0x09 ' ' '' 'I' 'i' ' ' '' +Key 0x2f = 'o' 'O' 0x0f ' ' '' 'O' 'o' ' ' '' +Key 0x30 = 'p' 'P' 0x10 ' ' '' 'P' 'p' ' ' '' +Key 0x31 = 0xc2b4 0xc2a8 0x1b '' '' 0xc2b4 0xc2a8 '' '' +Key 0x32 = '+' '*' 0x1d '~' '' '+' '*' '~' '' +Key 0x33 = '}' ']' 0x1c '`' '' '}' ']' '`' '' +Key 0x34 = 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f 0x7f +Key 0x35 = 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 0x04 +Key 0x36 = 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c 0x0c +Key 0x37 = 0x01 '7' 0x01 0x01 '7' 0x01 '7' 0x01 '7' +Key 0x38 = 0x1e '8' 0x1e 0x1e '8' 0x1e '8' 0x1e '8' +Key 0x39 = 0x0b '9' 0x0b 0x0b '9' 0x0b '9' 0x0b '9' +Key 0x3a = '+' '+' '+' '+' '+' '+' '+' '+' '+' +Key 0x3b = '' '' '' '' '' '' '' '' '' +Key 0x3c = 'a' 'A' 0x01 ' ' '' 'A' 'a' ' ' '' +Key 0x3d = 's' 'S' 0x13 ' ' '' 'S' 's' ' ' '' +Key 0x3e = 'd' 'D' 0x04 ' ' '' 'D' 'd' ' ' '' +Key 0x3f = 'f' 'F' 0x06 ' ' '' 'F' 'f' ' ' '' +Key 0x40 = 'g' 'G' 0x07 ' ' '' 'G' 'g' ' ' '' +Key 0x41 = 'h' 'H' 0x08 ' ' '' 'H' 'h' ' ' '' +Key 0x42 = 'j' 'J' 0x0a ' ' '' 'J' 'j' ' ' '' +Key 0x43 = 'k' 'K' 0x0b ' ' '' 'K' 'k' ' ' '' +Key 0x44 = 'l' 'L' 0x0c ' ' '' 'L' 'l' ' ' '' +Key 0x45 = 0xc3b1 0xc391 '' ' ' '' 0xc391 0xc3b1 ' ' '' +Key 0x46 = '{' '[' '' '^' '' '{' '[' '^' '' +Key 0x47 = 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a +Key 0x48 = 0x1c '4' 0x1c 0x1c '4' 0x1c '4' 0x1c '4' +Key 0x49 = '' '5' '' '' '5' '' '5' '' '5' +Key 0x4a = 0x1d '6' 0x1d 0x1d '6' 0x1d '6' 0x1d '6' +Key 0x4b = '' '' '' '' '' '' '' '' '' +Key 0x4c = 'z' 'Z' 0x1a ' ' '' 'Z' 'z' ' ' '' +Key 0x4d = 'x' 'X' 0x18 ' ' '' 'X' 'x' ' ' '' +Key 0x4e = 'c' 'C' 0x03 ' ' '' 'C' 'c' ' ' '' +Key 0x4f = 'v' 'V' 0x16 ' ' '' 'V' 'v' ' ' '' +Key 0x50 = 'b' 'B' 0x02 ' ' '' 'B' 'b' ' ' '' +Key 0x51 = 'n' 'N' 0x0e ' ' '' 'N' 'n' ' ' '' +Key 0x52 = 'm' 'M' 0x0d ' ' '' 'M' 'm' ' ' '' +Key 0x53 = ',' ';' '' 0xe29480 '' ',' ';' 0xe29480 '' +Key 0x54 = '.' ':' '' 0xc2b7 '' '.' ':' 0xc2b7 '' +Key 0x55 = '-' '_' 0x1f ' ' '' '-' '_' ' ' '' +Key 0x56 = '' '' '' '' '' '' '' '' '' +Key 0x57 = 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e 0x1e +Key 0x58 = 0x04 '1' 0x04 0x04 '1' 0x04 '1' 0x04 '1' +Key 0x59 = 0x1f '2' 0x1f 0x1f '2' 0x1f '2' 0x1f '2' +Key 0x5a = 0x0c '3' 0x0c 0x0c '3' 0x0c '3' 0x0c '3' +Key 0x5b = 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a 0x0a +Key 0x5c = '' '' '' '' '' '' '' '' '' +Key 0x5d = '' '' '' '' '' '' '' '' '' +Key 0x5e = ' ' ' ' 0x00 ' ' ' ' ' ' ' ' ' ' ' ' +Key 0x5f = '' '' '' '' '' '' '' '' '' +Key 0x60 = '' '' '' '' '' '' '' '' '' +Key 0x61 = 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c 0x1c +Key 0x62 = 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f 0x1f +Key 0x63 = 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d 0x1d +Key 0x64 = 0x05 '0' 0x05 0x05 '0' 0x05 '0' 0x05 '0' +Key 0x65 = 0x7f '.' 0x7f 0x7f '.' 0x7f '.' 0x7f '.' +Key 0x66 = '' '' '' '' '' '' '' '' '' +Key 0x67 = '' '' '' '' '' '' '' '' '' +Key 0x68 = '' '' '' '' '' '' '' '' '' +Key 0x69 = '<' '>' 0x1c ' ' '' '<' '>' ' ' '' +Key 0x6a = '' '' '' '' '' '' '' '' '' +Key 0x6b = '' '' '' '' '' '' '' '' '' +Key 0x6c = '' '' '' '' '' '' '' '' '' +Key 0x6d = '' '' '' '' '' '' '' '' '' +Key 0x6e = '' '' '' '' '' '' '' '' '' +Key 0x6f = '' '' '' '' '' '' '' '' '' +Key 0x70 = '' '' '' '' '' '' '' '' '' +Key 0x71 = '' '' '' '' '' '' '' '' '' +Key 0x72 = '' '' '' '' '' '' '' '' '' +Key 0x73 = '' '' '' '' '' '' '' '' '' +Key 0x74 = '' '' '' '' '' '' '' '' '' +Key 0x75 = '' '' '' '' '' '' '' '' '' +Key 0x76 = '' '' '' '' '' '' '' '' '' +Key 0x77 = '' '' '' '' '' '' '' '' '' +Key 0x78 = '' '' '' '' '' '' '' '' '' +Key 0x79 = '' '' '' '' '' '' '' '' '' +Key 0x7a = '' '' '' '' '' '' '' '' '' +Key 0x7b = '' '' '' '' '' '' '' '' '' +Key 0x7c = '' '' '' '' '' '' '' '' '' +Key 0x7d = '' '' '' '' '' '' '' '' '' +Key 0x7e = '' '' '' '' '' '' '' '' '' +Key 0x7f = '' '' '' '' '' '' '' '' '' +Acute ' ' = 0xc2b4 +Acute 'A' = 0xc381 +Acute 'E' = 0xc389 +Acute 'I' = 0xc38d +Acute 'O' = 0xc393 +Acute 'U' = 0xc39a +Acute 'Y' = 0xc39d +Acute 'a' = 0xc3a1 +Acute 'e' = 0xc3a9 +Acute 'i' = 0xc3ad +Acute 'o' = 0xc3b3 +Acute 'u' = 0xc3ba +Acute 'y' = 0xc3bd +Acute '' = '' +Acute '' = '' +Acute '' = '' +AcuteTab = Normal Shift CapsLock CapsLock-Shift +Grave ' ' = '`' +Grave 'A' = 0xc380 +Grave 'E' = 0xc388 +Grave 'I' = 0xc38c +Grave 'O' = 0xc392 +Grave 'U' = 0xc399 +Grave 'a' = 0xc3a0 +Grave 'e' = 0xc3a8 +Grave 'i' = 0xc3ac +Grave 'o' = 0xc3b2 +Grave 'u' = 0xc3b9 +Grave '' = '' +Grave '' = '' +Grave '' = '' +Grave '' = '' +Grave '' = '' +GraveTab = Normal Shift CapsLock CapsLock-Shift +Circumflex ' ' = '^' +Circumflex 'A' = 0xc382 +Circumflex 'E' = 0xc38a +Circumflex 'I' = 0xc38e +Circumflex 'O' = 0xc394 +Circumflex 'U' = 0xc39b +Circumflex 'a' = 0xc3a2 +Circumflex 'e' = 0xc3aa +Circumflex 'i' = 0xc3ae +Circumflex 'o' = 0xc3b4 +Circumflex 'u' = 0xc3bb +Circumflex '' = '' +Circumflex '' = '' +Circumflex '' = '' +Circumflex '' = '' +Circumflex '' = '' +CircumflexTab = Option Option-Shift CapsLock-Option CapsLock-Option-Shift +Diaeresis ' ' = 0xc2a8 +Diaeresis 'A' = 0xc384 +Diaeresis 'E' = 0xc38b +Diaeresis 'I' = 0xc38f +Diaeresis 'O' = 0xc396 +Diaeresis 'U' = 0xc39c +Diaeresis 'Y' = 0xc5b8 +Diaeresis 'a' = 0xc3a4 +Diaeresis 'e' = 0xc3ab +Diaeresis 'i' = 0xc3af +Diaeresis 'o' = 0xc3b6 +Diaeresis 'u' = 0xc3bc +Diaeresis 'y' = 0xc3bf +Diaeresis '' = '' +Diaeresis '' = '' +Diaeresis '' = '' +DiaeresisTab = Normal Shift CapsLock CapsLock-Shift +Tilde ' ' = '~' +Tilde 'A' = 0xc383 +Tilde 'O' = 0xc395 +Tilde 'N' = 0xc391 +Tilde 'a' = 0xc3a3 +Tilde 'o' = 0xc3b5 +Tilde 'n' = 0xc3b1 +Tilde '' = '' +Tilde '' = '' +Tilde '' = '' +Tilde '' = '' +Tilde '' = '' +Tilde '' = '' +Tilde '' = '' +Tilde '' = '' +Tilde '' = '' +TildeTab = Option Option-Shift CapsLock-Option CapsLock-Option-Shift From mmlr at mlotz.ch Wed Jan 28 13:44:38 2009 From: mmlr at mlotz.ch (Michael Lotz) Date: Wed, 28 Jan 2009 13:44:38 +0100 Subject: [Haiku-commits] r29071 - buildtools/trunk/gcc/gcc In-Reply-To: <915769260-BeMail@laptop> References: <200901280307.n0S37sin006122@sheep.berlios.de> <915769260-BeMail@laptop> Message-ID: <20090128124201.M91157@mlotz.ch> On Wed, 28 Jan 2009 09:16:07 +0100 CET, Fran?ois Revol wrote > > Modified: buildtools/trunk/gcc/gcc/configure > > =================================================================== > > --- buildtools/trunk/gcc/gcc/configure 2009-01-28 02:08:39 UTC > > (rev 29070) > > +++ buildtools/trunk/gcc/gcc/configure 2009-01-28 03:07:50 UTC > > (rev 29071) > > B_DONT_DO_THAT > isn't there a configure.* to change ?? It's not that I intend to send that upstream, so I don't really want to make that effort. Regards Michael From mmlr at mail.berlios.de Wed Jan 28 14:05:20 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Wed, 28 Jan 2009 14:05:20 +0100 Subject: [Haiku-commits] r29073 - buildtools/trunk/gcc/mpfr Message-ID: <200901281305.n0SD5KDc003820@sheep.berlios.de> Author: mmlr Date: 2009-01-28 14:05:13 +0100 (Wed, 28 Jan 2009) New Revision: 29073 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29073&view=rev Modified: buildtools/trunk/gcc/mpfr/Makefile.in Log: This should fix running the get_patches script. I don't really know how this could previously have worked. I can just guess that on the platform it worked, the MPFR lib wasn't built because it was preinstalled. Modified: buildtools/trunk/gcc/mpfr/Makefile.in =================================================================== --- buildtools/trunk/gcc/mpfr/Makefile.in 2009-01-28 08:40:45 UTC (rev 29072) +++ buildtools/trunk/gcc/mpfr/Makefile.in 2009-01-28 13:05:13 UTC (rev 29073) @@ -1666,7 +1666,7 @@ get_patches.c: PATCHES get_patches.sh - ./get_patches.sh > $@ || rm -f $@ + $(srcdir)/get_patches.sh > $@ || rm -f $@ tune: $(MAKE) $(AM_MAKEFLAGS) tuneup$(EXEEXT) From mmlr at mlotz.ch Wed Jan 28 14:15:24 2009 From: mmlr at mlotz.ch (Michael Lotz) Date: Wed, 28 Jan 2009 14:15:24 +0100 Subject: [Haiku-commits] r29073 - buildtools/trunk/gcc/mpfr In-Reply-To: <200901281305.n0SD5KDc003820@sheep.berlios.de> References: <200901281305.n0SD5KDc003820@sheep.berlios.de> Message-ID: <20090128131308.M35476@mlotz.ch> On Wed, 28 Jan 2009 14:05:20 +0100, mmlr wrote > Author: mmlr > Date: 2009-01-28 14:05:13 +0100 (Wed, 28 Jan 2009) > New Revision: 29073 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29073&view=rev > > Modified: > buildtools/trunk/gcc/mpfr/Makefile.in > Log: Yes Fran?ois, I will patch the .ac as well later, but don't have the time right now :-P Regards Michael From anevilyak at mail.berlios.de Wed Jan 28 17:09:37 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Wed, 28 Jan 2009 17:09:37 +0100 Subject: [Haiku-commits] r29074 - haiku/trunk/src/preferences/devices Message-ID: <200901281609.n0SG9bC9025931@sheep.berlios.de> Author: anevilyak Date: 2009-01-28 17:09:36 +0100 (Wed, 28 Jan 2009) New Revision: 29074 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29074&view=rev Modified: haiku/trunk/src/preferences/devices/pci-header.awk Log: Add missing consts. This fixes the fact that on gcc 4.3, including pcihdr.h will result in several thousand warnings about deprecated implicit casts. Modified: haiku/trunk/src/preferences/devices/pci-header.awk =================================================================== --- haiku/trunk/src/preferences/devices/pci-header.awk 2009-01-28 13:05:13 UTC (rev 29073) +++ haiku/trunk/src/preferences/devices/pci-header.awk 2009-01-28 16:09:36 UTC (rev 29074) @@ -30,7 +30,7 @@ print "#endif" > ofile # and we start with vendors.. - print "\ntypedef struct _PCI_VENTABLE\n{\n\tunsigned short\tVenId ;\n\tchar *\tVenFull ;\n\tchar *\tVenShort ;\n} PCI_VENTABLE, *PPCI_VENTABLE ;\n" > ofile + print "\ntypedef struct _PCI_VENTABLE\n{\n\tunsigned short\tVenId ;\n\tconst char *\tVenFull ;\n\tconst char *\tVenShort ;\n} PCI_VENTABLE, *PPCI_VENTABLE ;\n" > ofile print "PCI_VENTABLE\tPciVenTable [] =\n{" > ofile } @@ -49,7 +49,7 @@ vendor = substr($0, 7) gsub( /\"/, "\\\"", vendor ) - printf formatting "\t{ 0x" vendorid ", \"" vendor "\" }" > ofile + printf formatting "\t{ 0x" vendorid ", \"" vendor "\", \"\" }" > ofile } # matches device @@ -129,7 +129,7 @@ if ( devicecount > 0 ) { - print "typedef struct _PCI_DEVTABLE\n{\n\tunsigned short VenId ;\n\tunsigned short DevId ;\n\tunsigned short\tSubVenId ;\n\tunsigned short\tSubDevId ;\n\tchar *\tChipDesc ;\n\tchar *\tChip;\n} PCI_DEVTABLE, *PPCI_DEVTABLE ;\n" > ofile + print "typedef struct _PCI_DEVTABLE\n{\n\tunsigned short VenId ;\n\tunsigned short DevId ;\n\tunsigned short\tSubVenId ;\n\tunsigned short\tSubDevId ;\n\tconst char *\tChipDesc ;\n\tconst char *\tChip;\n} PCI_DEVTABLE, *PPCI_DEVTABLE ;\n" > ofile print "PCI_DEVTABLE\tPciDevTable [] =\n{" > ofile for (i = 1; i <= devicecount; i++) { @@ -146,7 +146,7 @@ if ( classcount > 0 ) { print "typedef struct _PCI_CLASSCODETABLE\n{\n\tunsigned char BaseClass ;\n\tunsigned char SubClass ;\n\tunsigned char ProgIf ;" > ofile - print "\tchar *\t\tBaseDesc ;\n\tchar *\t\tSubDesc ;\n\tchar *\t\tProgDesc ;\n} PCI_CLASSCODETABLE, *PPCI_CLASSCODETABLE ;\n" > ofile + print "\tconst char *\t\tBaseDesc ;\n\tconst char *\t\tSubDesc ;\n\tconst char *\t\tProgDesc ;\n} PCI_CLASSCODETABLE, *PPCI_CLASSCODETABLE ;\n" > ofile print "PCI_CLASSCODETABLE PciClassCodeTable [] =\n{" > ofile currentclass = classes[1, 1] for (i = 1; i <= classcount; i++) { @@ -174,11 +174,11 @@ } # this is rather ugly, maybe we should include this in a seperate file, and pull it in ? - print "char *\tPciCommandFlags [] =\n{\n\t\"I/O Access\",\n\t\"Memory Access\",\n\t\"Bus Mastering\",\n\t\"Special Cycles\",\n\t\"Memory Write & Invalidate\",\n\t\"Palette Snoop\",\n\t\"Parity Errors\",\n\t\"Wait Cycles\",\n\t\"System Errors\",\n\t\"Fast Back-To-Back\",\n\t\"Reserved 10\",\n\t\"Reserved 11\",\n\t\"Reserved 12\",\n\t\"Reserved 13\",\n\t\"Reserved 14\",\n\t\"Reserved 15\"\n} ;\n" > ofile + print "const char *\tPciCommandFlags [] =\n{\n\t\"I/O Access\",\n\t\"Memory Access\",\n\t\"Bus Mastering\",\n\t\"Special Cycles\",\n\t\"Memory Write & Invalidate\",\n\t\"Palette Snoop\",\n\t\"Parity Errors\",\n\t\"Wait Cycles\",\n\t\"System Errors\",\n\t\"Fast Back-To-Back\",\n\t\"Reserved 10\",\n\t\"Reserved 11\",\n\t\"Reserved 12\",\n\t\"Reserved 13\",\n\t\"Reserved 14\",\n\t\"Reserved 15\"\n} ;\n" > ofile print "// Use this value for loop control during searching:\n#define PCI_COMMANDFLAGS_LEN (sizeof(PciCommandFlags)/sizeof(char *))\n" > ofile - print "char *\tPciStatusFlags [] =\n{\n\t\"Reserved 0\",\n\t\"Reserved 1\",\n\t\"Reserved 2\",\n\t\"Reserved 3\",\n\t\"Reserved 4\",\n\t\"66 MHz Capable\",\n\t\"User-Defined Features\",\n\t\"Fast Back-To-Back\",\n\t\"Data Parity Reported\",\n\t\"\",\n\t\"\",\n\t\"Signalled Target Abort\",\n\t\"Received Target Abort\",\n\t\"Received Master Abort\",\n\t\"Signalled System Error\",\n\t\"Detected Parity Error\"\n} ;\n" > ofile + print "const char *\tPciStatusFlags [] =\n{\n\t\"Reserved 0\",\n\t\"Reserved 1\",\n\t\"Reserved 2\",\n\t\"Reserved 3\",\n\t\"Reserved 4\",\n\t\"66 MHz Capable\",\n\t\"User-Defined Features\",\n\t\"Fast Back-To-Back\",\n\t\"Data Parity Reported\",\n\t\"\",\n\t\"\",\n\t\"Signalled Target Abort\",\n\t\"Received Target Abort\",\n\t\"Received Master Abort\",\n\t\"Signalled System Error\",\n\t\"Detected Parity Error\"\n} ;\n" > ofile print "// Use this value for loop control during searching:\n#define PCI_STATUSFLAGS_LEN (sizeof(PciStatusFlags)/sizeof(char *))\n" > ofile - print "char *\tPciDevSelFlags [] =\n{\n\t\"Fast Devsel Speed\",\n\t\"Medium Devsel Speed\",\n\t\"Slow Devsel Speed\",\n\t\"Reserved 9&10\"\n} ;\n" > ofile + print "const char *\tPciDevSelFlags [] =\n{\n\t\"Fast Devsel Speed\",\n\t\"Medium Devsel Speed\",\n\t\"Slow Devsel Speed\",\n\t\"Reserved 9&10\"\n} ;\n" > ofile print "// Use this value for loop control during searching:\n#define PCI_DEVSELFLAGS_LEN (sizeof(PciDevSelFlags)/sizeof(char *))\n\n" > ofile close(ofile) From mmlr at mail.berlios.de Wed Jan 28 17:10:00 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Wed, 28 Jan 2009 17:10:00 +0100 Subject: [Haiku-commits] r29075 - in buildtools/trunk/gcc: gcc mpfr Message-ID: <200901281610.n0SGA0C7025969@sheep.berlios.de> Author: mmlr Date: 2009-01-28 17:09:58 +0100 (Wed, 28 Jan 2009) New Revision: 29075 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29075&view=rev Modified: buildtools/trunk/gcc/gcc/configure.ac buildtools/trunk/gcc/mpfr/Makefile.am Log: Put the changes to the generated build files into their .ac/.am source. Modified: buildtools/trunk/gcc/gcc/configure.ac =================================================================== --- buildtools/trunk/gcc/gcc/configure.ac 2009-01-28 16:09:36 UTC (rev 29074) +++ buildtools/trunk/gcc/gcc/configure.ac 2009-01-28 16:09:58 UTC (rev 29075) @@ -945,6 +945,15 @@ # -------- +# Configure -lm usage for host tools that need it +math_library="-lm" +case $host in + *-*-haiku*) + # no separate math library needed + math_library= + ;; +esac + # These libraries may be used by collect2. # We may need a special search path to get them linked. AC_CACHE_CHECK(for collect2 libraries, gcc_cv_collect2_libs, Modified: buildtools/trunk/gcc/mpfr/Makefile.am =================================================================== --- buildtools/trunk/gcc/mpfr/Makefile.am 2009-01-28 16:09:36 UTC (rev 29074) +++ buildtools/trunk/gcc/mpfr/Makefile.am 2009-01-28 16:09:58 UTC (rev 29075) @@ -33,7 +33,7 @@ MAKEINFOFLAGS = --enable-encoding get_patches.c: PATCHES get_patches.sh - ./get_patches.sh > $@ || rm -f $@ + $(srcdir)/get_patches.sh > $@ || rm -f $@ # Do not add get_patches.c to CLEANFILES so that this file doesn't # need to be (re)built as long as no patches are applied. Anyway the From ingo_weinhold at gmx.de Wed Jan 28 16:30:16 2009 From: ingo_weinhold at gmx.de (Ingo Weinhold) Date: Wed, 28 Jan 2009 16:30:16 +0100 Subject: [Haiku-commits] r29071 - buildtools/trunk/gcc/gcc In-Reply-To: <20090128124201.M91157@mlotz.ch> References: <200901280307.n0S37sin006122@sheep.berlios.de> <915769260-BeMail@laptop> <20090128124201.M91157@mlotz.ch> Message-ID: <20090128163016.825.4@knochen-vm.localdomain> On 2009-01-28 at 13:44:38 [+0100], Michael Lotz wrote: > On Wed, 28 Jan 2009 09:16:07 +0100 CET, Fran?ois Revol wrote > > > Modified: buildtools/trunk/gcc/gcc/configure > > > =================================================================== > > > --- buildtools/trunk/gcc/gcc/configure 2009-01-28 02:08:39 UTC > > > (rev 29070) > > > +++ buildtools/trunk/gcc/gcc/configure 2009-01-28 03:07:50 UTC > > > (rev 29071) > > > > B_DONT_DO_THAT > > isn't there a configure.* to change ?? > > It's not that I intend to send that upstream, so I don't really want to make > that effort. It would be nice, if we could send the Haiku support patches upstream some day though. This would definitely save us work when updating to future gcc versions. CU, Ingo From mmlr at mail.berlios.de Wed Jan 28 17:53:09 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Wed, 28 Jan 2009 17:53:09 +0100 Subject: [Haiku-commits] r29076 - haiku/trunk Message-ID: <200901281653.n0SGr9D9030460@sheep.berlios.de> Author: mmlr Date: 2009-01-28 17:53:01 +0100 (Wed, 28 Jan 2009) New Revision: 29076 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29076&view=rev Modified: haiku/trunk/configure Log: Fix C++ header location. Modified: haiku/trunk/configure =================================================================== --- haiku/trunk/configure 2009-01-28 16:09:58 UTC (rev 29075) +++ haiku/trunk/configure 2009-01-28 16:53:01 UTC (rev 29076) @@ -133,7 +133,7 @@ haikuSharedLibStdCxx=`$HAIKU_CC -print-file-name=libstdc++.so` haikuStaticLibSupCxx=`$HAIKU_CC -print-file-name=libsupc++.a` haikuSharedLibSupCxx=`$HAIKU_CC -print-file-name=libsupc++.so` - local headers=$gccdir/../../../../include/c++/$haikuGCCVersion + local headers=$gccdir/../../../../$haikuGCCMachine/include/c++/$haikuGCCVersion haikuCxxHeadersDir=$headers for d in $haikuGCCMachine backward ext; do # Note: We need the line break, otherwise the line might become From mmlr at mail.berlios.de Wed Jan 28 18:31:32 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Wed, 28 Jan 2009 18:31:32 +0100 Subject: [Haiku-commits] r29077 - in buildtools/trunk/gcc/gcc: . config config/i386 Message-ID: <200901281731.n0SHVW2k006354@sheep.berlios.de> Author: mmlr Date: 2009-01-28 18:31:12 +0100 (Wed, 28 Jan 2009) New Revision: 29077 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29077&view=rev Added: buildtools/trunk/gcc/gcc/config/t-haiku Removed: buildtools/trunk/gcc/gcc/config/i386/t-haiku Modified: buildtools/trunk/gcc/gcc/config.gcc Log: Move t-haiku where it should be. It's shared for all platforms of course. Deleted: buildtools/trunk/gcc/gcc/config/i386/t-haiku Copied: buildtools/trunk/gcc/gcc/config/t-haiku (from rev 29073, buildtools/trunk/gcc/gcc/config/i386/t-haiku) Modified: buildtools/trunk/gcc/gcc/config.gcc =================================================================== --- buildtools/trunk/gcc/gcc/config.gcc 2009-01-28 16:53:01 UTC (rev 29076) +++ buildtools/trunk/gcc/gcc/config.gcc 2009-01-28 17:31:12 UTC (rev 29077) @@ -1128,7 +1128,7 @@ tmake_file="${tmake_file} i386/t-crtstuff" ;; i[34567]86-*-haiku*) - tmake_file='i386/t-haiku i386/t-crtpic' + tmake_file='t-haiku i386/t-crtpic' tm_file="${tm_file} i386/unix.h i386/att.h dbxelf.h elfos.h svr4.h haiku.h i386/haiku.h" extra_parts='crtbegin.o crtend.o' ;; From mmlr at mail.berlios.de Wed Jan 28 18:35:10 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Wed, 28 Jan 2009 18:35:10 +0100 Subject: [Haiku-commits] r29078 - buildtools/trunk/gcc/gcc/config Message-ID: <200901281735.n0SHZAeG010556@sheep.berlios.de> Author: mmlr Date: 2009-01-28 18:35:08 +0100 (Wed, 28 Jan 2009) New Revision: 29078 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29078&view=rev Modified: buildtools/trunk/gcc/gcc/config/t-haiku Log: Broke finding limits.h for the cross-compiler by removing that. For the native compile it's enough the set the NATIVE_SYSTEM_HEADER_DIR, but for cross compiling this is needed. Sorry for that, should've be more cautious when updating. Modified: buildtools/trunk/gcc/gcc/config/t-haiku =================================================================== --- buildtools/trunk/gcc/gcc/config/t-haiku 2009-01-28 17:31:12 UTC (rev 29077) +++ buildtools/trunk/gcc/gcc/config/t-haiku 2009-01-28 17:35:08 UTC (rev 29078) @@ -1,3 +1,4 @@ # There are system headers elsewhere, but these are the ones that # we are most likely to want to apply any fixes to. NATIVE_SYSTEM_HEADER_DIR = /boot/develop/headers/posix +LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/posix/limits.h ] \ No newline at end of file From julun at mail.berlios.de Wed Jan 28 20:51:18 2009 From: julun at mail.berlios.de (julun at BerliOS) Date: Wed, 28 Jan 2009 20:51:18 +0100 Subject: [Haiku-commits] r29079 - haiku/trunk/src/servers/app Message-ID: <200901281951.n0SJpItO005285@sheep.berlios.de> Author: julun Date: 2009-01-28 20:51:18 +0100 (Wed, 28 Jan 2009) New Revision: 29079 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29079&view=rev Modified: haiku/trunk/src/servers/app/Desktop.cpp Log: * use client_window_info as suggested by Axel Modified: haiku/trunk/src/servers/app/Desktop.cpp =================================================================== --- haiku/trunk/src/servers/app/Desktop.cpp 2009-01-28 17:35:08 UTC (rev 29078) +++ haiku/trunk/src/servers/app/Desktop.cpp 2009-01-28 19:51:18 UTC (rev 29079) @@ -2627,11 +2627,10 @@ } } - int32 decoratorInfo = 2 * sizeof(float); int32 length = window->Title() ? strlen(window->Title()) : 0; sender.StartMessage(B_OK); - sender.Attach(sizeof(window_info) + decoratorInfo + length + 1); + sender.Attach(sizeof(client_window_info) + length); sender.Attach(&info, sizeof(window_info)); sender.Attach(tabSize); sender.Attach(borderSize); From mmlr at mail.berlios.de Wed Jan 28 21:15:50 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Wed, 28 Jan 2009 21:15:50 +0100 Subject: [Haiku-commits] r29080 - in buildtools/trunk/gcc: gmp mpfr Message-ID: <200901282015.n0SKFo0e008372@sheep.berlios.de> Author: mmlr Date: 2009-01-28 21:15:42 +0100 (Wed, 28 Jan 2009) New Revision: 29080 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29080&view=rev Modified: buildtools/trunk/gcc/gmp/config.guess buildtools/trunk/gcc/gmp/config.sub buildtools/trunk/gcc/mpfr/config.guess buildtools/trunk/gcc/mpfr/config.sub Log: Updating config.guess and config.sub so the inline GMP and MPFR libs can be built under Haiku. Modified: buildtools/trunk/gcc/gmp/config.guess =================================================================== --- buildtools/trunk/gcc/gmp/config.guess 2009-01-28 19:51:18 UTC (rev 29079) +++ buildtools/trunk/gcc/gmp/config.guess 2009-01-28 20:15:42 UTC (rev 29080) @@ -1,790 +1,1529 @@ #! /bin/sh -# -# GMP config.guess wrapper. +# Attempt to guess a canonical system name. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, +# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 +# Free Software Foundation, Inc. +timestamp='2008-01-23' -# Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, -# Inc. +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. # -# This file is part of the GNU MP Library. +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. # -# The GNU MP Library is free software; you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published -# by the Free Software Foundation; either version 2.1 of the License, or (at -# your option) any later version. +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA +# 02110-1301, USA. # -# The GNU MP Library is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public -# License for more details. -# -# You should have received a copy of the GNU Lesser General Public License -# along with the GNU MP Library; see the file COPYING.LIB. If not, write to -# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, -# MA 02110-1301, USA. +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. -# Usage: config.guess +# Originally written by Per Bothner . +# Please send patches to . Submit a context +# diff and a properly formatted ChangeLog entry. # -# Print the host system CPU-VENDOR-OS. +# This script attempts to guess a canonical system name similar to +# config.sub. If it succeeds, it prints the system name on stdout, and +# exits with 0. Otherwise, it exits with 1. # -# configfsf.guess is run and its guess then sharpened up to take advantage -# of the finer grained CPU types that GMP knows. +# The plan is that this can be called by configure scripts if you +# don't specify an explicit build system type. +me=`echo "$0" | sed -e 's,.*/,,'` -# Expect to find configfsf.guess in the same directory as this config.guess -configfsf_guess="`echo \"$0\" | sed 's/config.guess$/configfsf.guess/'`" -if test "$configfsf_guess" = "$0"; then - echo "Cannot derive configfsf.guess from $0" 1>&2 - exit 1 -fi -if test -f "$configfsf_guess"; then - : -else - echo "$configfsf_guess not found" 1>&2 - exit 1 -fi +usage="\ +Usage: $0 [OPTION] -# Setup a $SHELL with which to run configfsf.guess, using the same -# $CONFIG_SHELL or /bin/sh as autoconf does when running config.guess -SHELL=${CONFIG_SHELL-/bin/sh} +Output the configuration name of the system \`$me' is run on. -# Identify ourselves on --version, --help or errors +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, +2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + if test $# != 0; then - echo "(GNU MP wrapped config.guess)" - $SHELL $configfsf_guess "$@" + echo "$me: too many arguments$help" >&2 exit 1 fi -guess_full=`$SHELL $configfsf_guess` -if test $? != 0; then - exit 1 -fi +trap 'exit 1' 1 2 15 -guess_cpu=`echo "$guess_full" | sed 's/-.*$//'` -guess_rest=`echo "$guess_full" | sed 's/^[^-]*//'` -exact_cpu= +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. -# ------------------------------------------------------------------------- -# The following should look at the current guess and probe the system to -# establish a better guess in exact_cpu. Leave exact_cpu empty if probes -# can't be done, or don't work. -# -# When a number of probes are done, test -z "$exact_cpu" can be used instead -# of putting each probe under an "else" of the preceeding. That can stop -# the code getting horribly nested and marching off the right side of the -# screen. +# Portable tmp directory creation inspired by the Autoconf team. -# Note that when a compile-and-link is done in one step we need to remove .o -# files, since lame C compilers generate these even when not asked. -# +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' -dummy=dummy-$$ -trap 'rm -f $dummy.c $dummy.o $dummy.core $dummy ${dummy}1.s ${dummy}2.c ; exit 1' 1 2 15 - -# Use $HOST_CC if defined. $CC may point to a cross-compiler -if test x"$CC_FOR_BUILD" = x; then - if test x"$HOST_CC" != x; then - CC_FOR_BUILD="$HOST_CC" - else - if test x"$CC" != x; then - CC_FOR_BUILD="$CC" - else - echo 'dummy(){}' >$dummy.c - for c in cc gcc c89 c99; do - ($c $dummy.c -c) >/dev/null 2>&1 - if test $? = 0; then - CC_FOR_BUILD="$c"; break - fi - done - rm -f $dummy.c $dummy.o - if test x"$CC_FOR_BUILD" = x; then - CC_FOR_BUILD=no_compiler_found - fi - fi - fi +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi at noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH fi +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown -case "$guess_full" in +# Note: order is significant - the case branches are not exclusive. -alpha-*-*) - # configfsf.guess detects exact alpha cpu types for OSF and GNU/Linux, but - # not for *BSD and other systems. We try to get an exact type for any - # plain "alpha" it leaves. - # - # configfsf.guess used to have a block of code not unlike this, but these - # days does its thing with Linux kernel /proc/cpuinfo or OSF psrinfo. - # - cat <$dummy.s - .data -Lformat: - .byte 37,100,45,37,120,10,0 # "%d-%x\n" - .text - .globl main - .align 4 - .ent main -main: - .frame \$30,16,\$26,0 - ldgp \$29,0(\$27) - .prologue 1 - .long 0x47e03d91 # implver \$17 - lda \$2,-1 - .long 0x47e20c21 # amask \$2,\$1 - lda \$16,Lformat - not \$1,\$18 - jsr \$26,printf - ldgp \$29,0(\$26) - mov 0,\$16 - jsr \$26,exit - .end main +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep __ELF__ >/dev/null + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + exit ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm:riscos:*:*|arm:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } EOF - $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null - if test "$?" = 0 ; then - case `./$dummy` in - 0-0) exact_cpu=alpha ;; - 1-0) exact_cpu=alphaev5 ;; - 1-1) exact_cpu=alphaev56 ;; - 1-101) exact_cpu=alphapca56 ;; - 2-303) exact_cpu=alphaev6 ;; - 2-307) exact_cpu=alphaev67 ;; - 2-1307) exact_cpu=alphaev68 ;; - esac - fi - rm -f $dummy.s $dummy.o $dummy - ;; + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include -ia64*-*-*) - # CPUID[3] bits 24 to 31 is the processor family. itanium2 is documented - # as 0x1f, plain itanium has been seen returning 0x07 on two systems, but - # haven't found any documentation on it as such. - # - # Defining both getcpuid and _getcpuid lets us ignore whether the system - # expects underscores or not. - # - # "unsigned long long" is always 64 bits, in fact on hpux in ilp32 mode - # (which is the default there), it's the only 64-bit type. - # - cat >${dummy}a.s <${dummy}b.c < -unsigned long long getcpuid (); -int -main () -{ - if (getcpuid(0LL) == 0x49656E69756E6547LL && getcpuid(1LL) == 0x6C65746ELL) - { - /* "GenuineIntel" */ - switch ((getcpuid(3LL) >> 24) & 0xFF) { - case 0x07: puts ("itanium"); break; - case 0x1F: puts ("itanium2"); break; - } - } - return 0; -} -EOF - if $CC_FOR_BUILD ${dummy}a.s ${dummy}b.c -o $dummy >/dev/null 2>&1; then - exact_cpu=`./$dummy` - fi - rm -f ${dummy}a.s ${dummy}a.o ${dummy}b.c ${dummy}b.o $dummy $dummy.core core - ;; + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[456]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c -mips-*-irix[6789]*) - # IRIX 6 and up always has a 64-bit mips cpu - exact_cpu=mips64 - ;; + #define _HPUX_SOURCE + #include + #include -m68k-*-*) - # NetBSD (and presumably other *BSD) "sysctl hw.model" gives for example - # hw.model = Apple Macintosh Quadra 610 (68040) - exact_cpu=`(sysctl hw.model) 2>/dev/null | sed -n 's/^.*\(680[012346]0\).*$/m\1/p'` - if test -z "$exact_cpu"; then - # Linux kernel 2.2 gives for example "CPU: 68020" (tabs in between). - exact_cpu=`sed -n 's/^CPU:.*\(680[012346]0\).*$/m\1/p' /proc/cpuinfo 2>/dev/null` - fi - if test -z "$exact_cpu"; then - # Try: movel #0,%d0; rts - # This is to check the compiler and our asm code works etc, before - # assuming failures below indicate cpu characteristics. - # .byte is used to avoid problems with assembler syntax variations. - # For testing, provoke failures by adding "illegal" possibly as - # ".byte 0x4A, 0xFC" - cat >$dummy.s </dev/null 2>&1; then + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); - # $SHELL -c is used to execute ./$dummy below, since (./$dummy) - # 2>/dev/null still prints the SIGILL message on some shells. - # - # Try: movel #0,%d0 - # rtd #0 - cat >$dummy.s </dev/null 2>&1; then - $SHELL -c ./$dummy >/dev/null 2>&1 - if test $? != 0; then - exact_cpu=m68000 # because rtd didn't work - fi - fi - # + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build - if test -z "$exact_cpu"; then - # Try: trapf - # movel #0,%d0 - # rts - # Another possibility for identifying 68000 and 68010 is the - # different value stored by "movem a0,(a0)+" - cat >$dummy.s </dev/null 2>&1; then - $SHELL -c ./$dummy >/dev/null 2>&1 - if test $? != 0; then - exact_cpu=m68010 # because trapf didn't work - fi - fi - fi + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 - if test -z "$exact_cpu"; then - # Try: bfffo %d1{0:31},%d0 - # movel #0,%d0 - # rts - cat >$dummy.s </dev/null) | + grep __LP64__ >/dev/null + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } EOF - if $CC_FOR_BUILD $dummy.s -o $dummy >/dev/null 2>&1; then - $SHELL -c ./$dummy >/dev/null 2>&1 - if test $? != 0; then - exact_cpu=m68360 # cpu32, because bfffo didn't work - fi - fi - fi + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd [... truncated: 3224 lines follow ...] From niels.reedijk at gmail.com Wed Jan 28 22:17:16 2009 From: niels.reedijk at gmail.com (Niels Reedijk) Date: Wed, 28 Jan 2009 22:17:16 +0100 Subject: [Haiku-commits] r29071 - buildtools/trunk/gcc/gcc In-Reply-To: <20090128124201.M91157@mlotz.ch> References: <200901280307.n0S37sin006122@sheep.berlios.de> <915769260-BeMail@laptop> <20090128124201.M91157@mlotz.ch> Message-ID: <507d86c0901281317p5e765727p36a27d014f8bdc7@mail.gmail.com> Hi, 2009/1/28 Michael Lotz : > On Wed, 28 Jan 2009 09:16:07 +0100 CET, Fran?ois Revol wrote >> > Modified: buildtools/trunk/gcc/gcc/configure >> > =================================================================== >> > --- buildtools/trunk/gcc/gcc/configure 2009-01-28 02:08:39 UTC >> > (rev 29070) >> > +++ buildtools/trunk/gcc/gcc/configure 2009-01-28 03:07:50 UTC >> > (rev 29071) >> >> B_DONT_DO_THAT >> isn't there a configure.* to change ?? > > It's not that I intend to send that upstream, so I don't really want to make > that effort. If you require any assistance like a public haiku git repository, let me know. Niels From mmlr at mail.berlios.de Wed Jan 28 22:23:07 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Wed, 28 Jan 2009 22:23:07 +0100 Subject: [Haiku-commits] r29081 - buildtools/trunk/gcc/gcc/config Message-ID: <200901282123.n0SLN72f015628@sheep.berlios.de> Author: mmlr Date: 2009-01-28 22:23:05 +0100 (Wed, 28 Jan 2009) New Revision: 29081 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29081&view=rev Modified: buildtools/trunk/gcc/gcc/config/t-haiku Log: Remove the extra /posix from the NATIVE_SYSTEM_HEADER_DIR since we override the limits test adding it again. Should fix native GCC4 compilation. Modified: buildtools/trunk/gcc/gcc/config/t-haiku =================================================================== --- buildtools/trunk/gcc/gcc/config/t-haiku 2009-01-28 20:15:42 UTC (rev 29080) +++ buildtools/trunk/gcc/gcc/config/t-haiku 2009-01-28 21:23:05 UTC (rev 29081) @@ -1,4 +1,4 @@ # There are system headers elsewhere, but these are the ones that # we are most likely to want to apply any fixes to. -NATIVE_SYSTEM_HEADER_DIR = /boot/develop/headers/posix +NATIVE_SYSTEM_HEADER_DIR = /boot/develop/headers LIMITS_H_TEST = [ -f $(SYSTEM_HEADER_DIR)/posix/limits.h ] \ No newline at end of file From mmlr at mail.berlios.de Wed Jan 28 23:24:15 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Wed, 28 Jan 2009 23:24:15 +0100 Subject: [Haiku-commits] r29082 - haiku/trunk Message-ID: <200901282224.n0SMOFXv023430@sheep.berlios.de> Author: mmlr Date: 2009-01-28 23:24:13 +0100 (Wed, 28 Jan 2009) New Revision: 29082 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29082&view=rev Modified: haiku/trunk/configure Log: Check the presence of the C++ header dir. The native and cross GCC4 do have different directory layouts and this way we can still use a native compiler as a cross compiler since we don't make the decision based on whether we are cross compiling or not. Modified: haiku/trunk/configure =================================================================== --- haiku/trunk/configure 2009-01-28 21:23:05 UTC (rev 29081) +++ haiku/trunk/configure 2009-01-28 22:24:13 UTC (rev 29082) @@ -133,7 +133,14 @@ haikuSharedLibStdCxx=`$HAIKU_CC -print-file-name=libstdc++.so` haikuStaticLibSupCxx=`$HAIKU_CC -print-file-name=libsupc++.a` haikuSharedLibSupCxx=`$HAIKU_CC -print-file-name=libsupc++.so` - local headers=$gccdir/../../../../$haikuGCCMachine/include/c++/$haikuGCCVersion + + local headers + if [ -d $gccdir/../../../../$haikuGCCMachine/include/c++/$haikuGCCVersion ]; then + headers=$gccdir/../../../../$haikuGCCMachine/include/c++/$haikuGCCVersion + else + headers=$gccdir/../../../../include/c++/$haikuGCCVersion + fi + haikuCxxHeadersDir=$headers for d in $haikuGCCMachine backward ext; do # Note: We need the line break, otherwise the line might become From mmlr at mail.berlios.de Wed Jan 28 23:57:03 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Wed, 28 Jan 2009 23:57:03 +0100 Subject: [Haiku-commits] r29083 - haiku/trunk/src/bin/network/ftpd Message-ID: <200901282257.n0SMv3am027318@sheep.berlios.de> Author: mmlr Date: 2009-01-28 23:57:02 +0100 (Wed, 28 Jan 2009) New Revision: 29083 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29083&view=rev Modified: haiku/trunk/src/bin/network/ftpd/ftpcmd.y Log: Revert the ftpd compile workaround as it apparently breaks on bison 2.3. Wonder why I got a report that it worked... Modified: haiku/trunk/src/bin/network/ftpd/ftpcmd.y =================================================================== --- haiku/trunk/src/bin/network/ftpd/ftpcmd.y 2009-01-28 22:24:13 UTC (rev 29082) +++ haiku/trunk/src/bin/network/ftpd/ftpcmd.y 2009-01-28 22:57:02 UTC (rev 29083) @@ -76,8 +76,6 @@ #include "extern.h" #include "pathnames.h" -#include "ftpcmd.h" - extern union sockunion data_dest, his_addr; extern int hostinfo; extern int logged_in; From anevilyak at mail.berlios.de Thu Jan 29 01:05:40 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Thu, 29 Jan 2009 01:05:40 +0100 Subject: [Haiku-commits] r29084 - haiku/trunk/src/kits/tracker Message-ID: <200901290005.n0T05ef0008884@sheep.berlios.de> Author: anevilyak Date: 2009-01-29 01:05:38 +0100 (Thu, 29 Jan 2009) New Revision: 29084 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29084&view=rev Modified: haiku/trunk/src/kits/tracker/PoseView.cpp Log: If the source and destination volumes of a drag and drop op do not match, default to copying unless the user has explicitly requested otherwise. TODO: visual indicator of which op is going to happen. -- M PoseView.cpp Modified: haiku/trunk/src/kits/tracker/PoseView.cpp =================================================================== --- haiku/trunk/src/kits/tracker/PoseView.cpp 2009-01-28 22:57:02 UTC (rev 29083) +++ haiku/trunk/src/kits/tracker/PoseView.cpp 2009-01-29 00:05:38 UTC (rev 29084) @@ -4449,9 +4449,17 @@ moveMode = kCreateRelativeLink; else if (createLink) moveMode = kCreateLink; - else + else { moveMode = kMoveSelectionTo; + entry_ref *srcRef = srcList->ItemAt(0); + BDirectory destDir (destEntry); + struct stat deststat; + destDir.GetStat(&deststat); + if (srcRef->device != deststat.st_dev) + moveMode = kCopySelectionTo; + } + FSMoveToFolder(srcList, destEntry, moveMode); return; } @@ -4595,8 +4603,16 @@ moveMode = kCreateRelativeLink; else if (createLink) moveMode = kCreateLink; - else + else { moveMode = kMoveSelectionTo; + entry_ref *srcRef = srcList->ItemAt(0); + BDirectory destDir (destEntry); + struct stat deststat; + destDir.GetStat(&deststat); + + if (srcRef->device != deststat.st_dev) + moveMode = kCopySelectionTo; + } FSMoveToFolder(srcList, destEntry, moveMode, pointList); } else { if (pointList) { From anevilyak at gmail.com Thu Jan 29 01:07:53 2009 From: anevilyak at gmail.com (Rene Gollent) Date: Wed, 28 Jan 2009 18:07:53 -0600 Subject: [Haiku-commits] r29084 - haiku/trunk/src/kits/tracker In-Reply-To: <200901290005.n0T05ef0008884@sheep.berlios.de> References: <200901290005.n0T05ef0008884@sheep.berlios.de> Message-ID: On Wed, Jan 28, 2009 at 6:05 PM, anevilyak at BerliOS wrote: > Author: anevilyak > Date: 2009-01-29 01:05:38 +0100 (Thu, 29 Jan 2009) > New Revision: 29084 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29084&view=rev > > Modified: > haiku/trunk/src/kits/tracker/PoseView.cpp And before anyone comments, yes, I realize that that code has some duplication, as that part of PoseView seriously needs some refactoring, but I don't have enough time to devote to that right now. Regards, Rene From mmlr at mail.berlios.de Thu Jan 29 02:25:26 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Thu, 29 Jan 2009 02:25:26 +0100 Subject: [Haiku-commits] r29085 - haiku/trunk/build/jam Message-ID: <200901290125.n0T1PQNB000310@sheep.berlios.de> Author: mmlr Date: 2009-01-29 02:25:23 +0100 (Thu, 29 Jan 2009) New Revision: 29085 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29085&view=rev Modified: haiku/trunk/build/jam/OptionalPackages Log: * Update the GCC4 package. This package has the builtin __BEOS__ define removed and also comes with proper default includes. * If installing GCC4 as part of a GCC2 based hybrid build, re-setup the gnupro link that is overwritten by the GCC4 package. Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-01-29 00:05:38 UTC (rev 29084) +++ haiku/trunk/build/jam/OptionalPackages 2009-01-29 01:25:23 UTC (rev 29085) @@ -268,10 +268,19 @@ if $(HAIKU_GCC_VERSION[1]) = 4 || $(isHybridBuild) = 1 { # gcc and binutils local baseURL = http://haiku.mlotz.ch ; - InstallOptionalHaikuImagePackage gcc-4.3.3-haiku-090125 - : $(baseURL)/gcc-4.3.3-haiku-090125.zip + InstallOptionalHaikuImagePackage gcc-4.3.3-haiku-090129 + : $(baseURL)/gcc-4.3.3-haiku-090129.zip : ; + + # Setup the proper gnupro symlink. Both packages provide one and on + # a GCC2 based hybrid the GCC4 package will overwrite the one present. + # Since we want to use GCC2 as the host compiler on a GCC2 base we have + # to correct this again. + if $(HAIKU_GCC_VERSION[1]) = 2 { + AddSymlinkToHaikuImage develop tools + : /boot/develop/tools/gcc-2.95.3-haiku-081024 : gnupro ; + } } } From mmlr at mail.berlios.de Thu Jan 29 03:26:23 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Thu, 29 Jan 2009 03:26:23 +0100 Subject: [Haiku-commits] r29086 - haiku/trunk/src/bin/network/ftpd Message-ID: <200901290226.n0T2QN1t007543@sheep.berlios.de> Author: mmlr Date: 2009-01-29 03:26:22 +0100 (Thu, 29 Jan 2009) New Revision: 29086 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29086&view=rev Modified: haiku/trunk/src/bin/network/ftpd/ftpcmd.y Log: Workaround that should not break on bison 2.3. Modified: haiku/trunk/src/bin/network/ftpd/ftpcmd.y =================================================================== --- haiku/trunk/src/bin/network/ftpd/ftpcmd.y 2009-01-29 01:25:23 UTC (rev 29085) +++ haiku/trunk/src/bin/network/ftpd/ftpcmd.y 2009-01-29 02:26:22 UTC (rev 29086) @@ -76,6 +76,10 @@ #include "extern.h" #include "pathnames.h" +#ifdef YYPULL +#include "ftpcmd.h" +#endif + extern union sockunion data_dest, his_addr; extern int hostinfo; extern int logged_in; From aldeck at mail.berlios.de Thu Jan 29 04:35:21 2009 From: aldeck at mail.berlios.de (aldeck at BerliOS) Date: Thu, 29 Jan 2009 04:35:21 +0100 Subject: [Haiku-commits] r29087 - in haiku/trunk: build/jam src/preferences src/preferences/tracker Message-ID: <200901290335.n0T3ZLLp012196@sheep.berlios.de> Author: aldeck Date: 2009-01-29 04:35:20 +0100 (Thu, 29 Jan 2009) New Revision: 29087 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29087&view=rev Added: haiku/trunk/src/preferences/tracker/ haiku/trunk/src/preferences/tracker/Jamfile haiku/trunk/src/preferences/tracker/TrackerPreferences.cpp haiku/trunk/src/preferences/tracker/TrackerPreferences.rdef Modified: haiku/trunk/build/jam/HaikuImage haiku/trunk/src/preferences/Jamfile Log: * Added a "launcher" for Tracker preferences, which are now accessible from the preferences menu/folder. See #2365 Modified: haiku/trunk/build/jam/HaikuImage =================================================================== --- haiku/trunk/build/jam/HaikuImage 2009-01-29 02:26:22 UTC (rev 29086) +++ haiku/trunk/build/jam/HaikuImage 2009-01-29 03:35:20 UTC (rev 29087) @@ -56,7 +56,7 @@ ; BEOS_PREFERENCES = Appearance Backgrounds DataTranslations E-mail FileTypes Fonts Keyboard Keymap Media Menu Mouse Network Printers Screen - ScreenSaver Sounds Time Touchpad VirtualMemory + ScreenSaver Sounds Time Touchpad Tracker VirtualMemory ; BEOS_DEMOS = BSnow Chart Clock $(X86_ONLY)Cortex FontDemo $(X86_ONLY)GLDirectMode $(X86_ONLY)GLTeapot Mandelbrot Pairs Modified: haiku/trunk/src/preferences/Jamfile =================================================================== --- haiku/trunk/src/preferences/Jamfile 2009-01-29 02:26:22 UTC (rev 29086) +++ haiku/trunk/src/preferences/Jamfile 2009-01-29 03:35:20 UTC (rev 29087) @@ -22,4 +22,5 @@ SubInclude HAIKU_TOP src preferences sounds ; SubInclude HAIKU_TOP src preferences time ; SubInclude HAIKU_TOP src preferences touchpad ; +SubInclude HAIKU_TOP src preferences tracker ; SubInclude HAIKU_TOP src preferences virtualmemory ; Added: haiku/trunk/src/preferences/tracker/Jamfile =================================================================== --- haiku/trunk/src/preferences/tracker/Jamfile 2009-01-29 02:26:22 UTC (rev 29086) +++ haiku/trunk/src/preferences/tracker/Jamfile 2009-01-29 03:35:20 UTC (rev 29087) @@ -0,0 +1,7 @@ +SubDir HAIKU_TOP src preferences tracker ; + +Preference Tracker : + TrackerPreferences.cpp + : be + : TrackerPreferences.rdef + ; Added: haiku/trunk/src/preferences/tracker/TrackerPreferences.cpp =================================================================== --- haiku/trunk/src/preferences/tracker/TrackerPreferences.cpp 2009-01-29 02:26:22 UTC (rev 29086) +++ haiku/trunk/src/preferences/tracker/TrackerPreferences.cpp 2009-01-29 03:35:20 UTC (rev 29087) @@ -0,0 +1,28 @@ +/* + * Copyright 2009, Haiku Inc. + * Distributed under the terms of the MIT License. + * + * Authors: + * Alexandre Deckner, alex at zappotek.com + */ + +#include +#include + + +int +main(int argc, char **argv) +{ + BApplication app("application/x-vnd.Haiku-TrackerPreferences"); + + // launch Tracker if it's not running + be_roster->Launch("application/x-vnd.Be-TRAK"); + + BMessage message; + message.what = B_EXECUTE_PROPERTY; + message.AddSpecifier("Preferences"); + + BMessenger("application/x-vnd.Be-TRAK").SendMessage(&message); + + return 0; +} Added: haiku/trunk/src/preferences/tracker/TrackerPreferences.rdef =================================================================== --- haiku/trunk/src/preferences/tracker/TrackerPreferences.rdef 2009-01-29 02:26:22 UTC (rev 29086) +++ haiku/trunk/src/preferences/tracker/TrackerPreferences.rdef 2009-01-29 03:35:20 UTC (rev 29087) @@ -0,0 +1,120 @@ + +resource app_signature "application/x-vnd.Haiku-TrackerPreferences"; + +resource app_version { + major = 1, + middle = 0, + minor = 0, + + /* 0 = development 1 = alpha 2 = beta + 3 = gamma 4 = golden master 5 = final */ + variety = 2, + + internal = 0, + + short_info = "Tracker Preferences Launcher", + long_info = "Tracker Preferences Launcher ?2009 Haiku" +}; + +resource app_flags B_SINGLE_LAUNCH; + +#ifdef HAIKU_TARGET_PLATFORM_HAIKU + +resource vector_icon { + $"6E636966120500040068020106023ECFFF0000000000003EFFFF486000474000" + $"00DDA771FEA97644020006033C0564379BD6B9B4043E12EF49C94948FD140087" + $"5B2FFFC58A50C4A97644020006023AA0B4B6910F3840E83C4EA54A20CC3C5E02" + $"00F4C597FFDAA47003D7A26E03DAA470020006033AC3B134D937B81B9A3E0BAC" + $"4B13774865BC00C28D59FFB6783BDCA26C3803A4703E020106023B46923A3AF8" + $"BC79A03DA299463C564592D600FDD6ABFFC48B540399632D03F8CCA102000602" + $"38586D38586DB9279239279249CD5B46BF4E00D4975BFFA06F40020016023AA1" + $"AE3A9018BAE9A13AAE8E491D7E4A50B500EDFFA505FF020016023228D0398DC3" + $"BD46803591CA48EEC34A35750091FFB5020016023A05CA3C319CBEA5C93C305F" + $"4A55B949E8F800FFFFE9020006023375F8391697BA971434E7134759DA498BDF" + $"00FFEA00FFFFB83017060BEA4B08335A3D594260525E4B61595B604DCD01C7B3" + $"5E425248464C4C4354380604AE302628262D24B418B63A222E2C2C0A05B639BC" + $"B92B372B36263426350605BA03342E38284030BF44B77141343E3838323A3436" + $"300608EEEE342E38323630BCFBBA973E3840304134BF44B77138284230C027B7" + $"0443363F3A38343A36363206033E5A224A26542A4A264C274C27592C06033BC5" + $"64B639C564B6395A305A22C48AB5CB592CC48AB5CB06156F6BEBB8BC03343038" + $"2A3036303E303A304232445234582A583C583846404A56425E345E4A5E444248" + $"3E4E424C425042525448584E4C4E604E563E545434543854B9B2C564B639C736" + $"B7B45A305A224A26542AC165B4740609BEFB02483E4E3EC431BF54513D523452" + $"36522EC564B639452749263D29353340314031C17ABADA463A4638463C444206" + $"0ADBDA0E4031C17ABADA4031303D3F3541333F37433846404A56425E345E4A5E" + $"4442463A463C46380606B60B32445234582A583C58384635413743333F303F06" + $"0BCFB83C5234522E52364E3E513DC431BF54484E424C425042525448584E4C4E" + $"604E563E545434543854B9B2C564B639C736B7B4C564B6390605BB033430382A" + $"3430353445273DB6954926C564B6394A264A26C165B4740204BE31B7FBBE31B7" + $"FBBE6BB89E3C32BE6EB958BDDCBB0FBC2FBC93BD1EBBE6BC2FBC93352F363135" + $"2F02063426B796B443BC88B5E9BE31B7FB3BB6C6BE31B7FB352F352F3631BC2F" + $"BC93BC2FBC93BADFBD862C3CB92D3C263C2632B4C7BC9D282A0204292CB6CE2C" + $"B65D2C28B8C728B83A28B9532931B65D31B6CE312BB8C72BB9532BB83A020430" + $"30B9D030B8EF302E322EB9BB2EBA9C3034B8EF34B9D034323232BA9C32B9BB0A" + $"06224C385738452C402C3C22380A04223C224C385738450A063451264A244B36" + $"54364634470A06243E244B264A2641344736460A042642264A345134480A0422" + $"38223C2C402C3C190A010100000A0001071001178402040A0200000A03010900" + $"0A020108000A05010A000A07010B000A04010C000A060105000A070106000A00" + $"01011001178402040A0B0101000A00020D0E1001178402040A09010E000A0A01" + $"0D000A000104000A0C0103000A000102000A00020F10000A0001111001178400" + $"040A0D0112000A0E0113000A0F0114000A100115000A11011600" +}; + +#else // HAIKU_TARGET_PLATFORM_HAIKU + +resource large_icon array { + $"FFFF000000FFFFFFFFFFFFFFFFFFFFFF0000000000000000000000FFFFFFFFFF" + $"FF00D9D9D900FFFFFFFFFFFFFFFF0000838383838383008383D9D900FFFFFFFF" + $"00D9D98383000000000000FFFF00838383838383838383010000D9D900FFFFFF" + $"00D9838383D9D9D9D9D9D90000AA00008383D9D9838383AAAA0183D900FFFFFF" + $"00D90083D9D9D983838383D9D900D9D901D9D9D9D9D983AAAA00AAD900FFFFFF" + $"00D900D90000D98383838383D9D9D9D900D9D9D9838383AAAAAA018300FFFFFF" + $"00D900D90083838383000083D90083D983008383838383AAAAAA01AA00FFFFFF" + $"0000D9D98383838383008383D9AA00D983008383838383AAAAAA01AA00FFFFFF" + $"FF0083AAAAAAAAD9D9838383D9AA00D983008383838383AAAAAA01AAD900FFFF" + $"FFAA00AAD983838383D9D9D9D90083D983008383838383AAAAAA01AA83D900FF" + $"FF00D9D98383D98383AAAAD98300D9D983008383830083AAAAAA0100AA83D900" + $"FF00D900D9D9AAAAAAAAAAD9AA00D9D983008383008383AAAAAA01FF00AAAA00" + $"00D9000000AAAAAAAAAAD9AAAA00D983AA0083AA008383AAAAAA00FFFF0000FF" + $"0000D900AAAA00000000D9AA0000AAAA008383AA008383AAAAAA00FFFFFFFFFF" + $"00FA00000000008383AAAA00AAAA0000838300AA00838383AAAAAA00FFFFFFFF" + $"00170FF8F8FA0000000000AAAAAAAAAA838300000083838383AAAA00FFFFFFFF" + $"00170F0F0FF81B000000AAAAAAAA00AA838301FFFF00000000AAAAAA00FFFFFF" + $"00170F3F3F0E0F3F3F3F0000AAAA00AA838300FFFFFFFFFFFF00AAAA00FFFFFF" + $"00170F3F3F3F3F0E0F0F3F1900AAAA00838300FFFFFFFFFFFFFF00AAAA00FFFF" + $"00170F3F3F3F3F3F3F3F0E180000000083AA00FFFFFFFFFFFF00D9AAAA000FFF" + $"00170F3F3F3F3F3F3F3F3F1700FFFF00838300FFFFFFFFFFFF00D9AAAA000F0E" + $"001C173F3F3F3F3F3F3F3F1700FFFF008383AA00FFFFFFFFFF000000000E0F0F" + $"001C17183F3F3F3F3F3F3F1700FFFF008383AA00FFFFFFFFFF0E0F0F0F0F0F0F" + $"00003F3F17173F3F3F3F3F1700FFFF008383AA00FFFFFFFFFFFFFFFFFFFFFFFF" + $"1BFF00003F3F17173F3F3F1700FFFF00838300FFFFFFFFFFFFFFFFFFFFFFFFFF" + $"1B1C00FF00003F3F17173F1700FFFF00838300FFFFFFFFFFFFFFFFFFFFFFFFFF" + $"1B0083AAAA0000003F3F171700FFFF00838300FFFFFFFFFFFFFFFFFFFFFFFFFF" + $"00AAAAAAAA000EFF00003F3F00FF0083838300FFFFFFFFFFFFFFFFFFFFFFFFFF" + $"FF000000000E0F0F0F0F000000FF008383AA000F0F0E0F0F0F0F0FFFFFFFFFFF" + $"FFFFFFFFFFFFFFFFFFFFFFFF00FFFF0000000E0F0F0F0F0F0FFFFFFFFFFFFFFF" + $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" +}; + +resource mini_icon array { + $"FF0000FFFFFFFFFF000000000000FFFF" + $"00D900000000FF008383D900838300FF" + $"00D98383838300D900D983AA00AA00FF" + $"00D900830083AAD9008383AAAA0000FF" + $"00AAAAAA83830083008383AAAA0000FF" + $"FF00008383AA008300830083AA008300" + $"0000000000AA0000AAAA0083AA000000" + $"00F800000000AAAAD90000D9AA00FFFF" + $"00F8F8F817170000D9000000D9AA01FF" + $"00173F3F3F3F1700D900FFFF00AA00FF" + $"00173F3F3F3F1700D900FFFF00AA000E" + $"00183F3F3F3F17008300FFFF0000000E" + $"0000003F3F3F17008300FFFFFFFFFFFF" + $"FF008300003F17008300FFFFFFFFFFFF" + $"00000000FF000083AA000F0E0F0FFFFF" + $"FFFFFFFFFFFFFF00000E0F0F0FFFFFFF" +}; + +#endif // HAIKU_TARGET_PLATFORM_HAIKU + From oruizdorantes at mail.berlios.de Thu Jan 29 23:06:52 2009 From: oruizdorantes at mail.berlios.de (oruizdorantes at BerliOS) Date: Thu, 29 Jan 2009 23:06:52 +0100 Subject: [Haiku-commits] r29088 - haiku/trunk/src/add-ons/kernel/drivers/bluetooth/h2/h2generic Message-ID: <200901292206.n0TM6qCM007670@sheep.berlios.de> Author: oruizdorantes Date: 2009-01-29 23:06:52 +0100 (Thu, 29 Jan 2009) New Revision: 29088 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29088&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/bluetooth/h2/h2generic/h2cfg.h Log: Publish transport driver in transport subfolder in devfs Modified: haiku/trunk/src/add-ons/kernel/drivers/bluetooth/h2/h2generic/h2cfg.h =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/bluetooth/h2/h2generic/h2cfg.h 2009-01-29 03:35:20 UTC (rev 29087) +++ haiku/trunk/src/add-ons/kernel/drivers/bluetooth/h2/h2generic/h2cfg.h 2009-01-29 22:06:52 UTC (rev 29088) @@ -39,7 +39,7 @@ #endif #define BLUETOOTH_DEVICE_DEVFS_NAME BLUETOOTH_DEVICE_TRANSPORT BLUETOOTH_DEVICE_NAME -#define BLUETOOTH_DEVICE_PATH "bluetooth/" BLUETOOTH_DEVICE_DEVFS_NAME +#define BLUETOOTH_DEVICE_PATH "bluetooth/" BLUETOOTH_DEVICE_TRANSPORT "/" BLUETOOTH_DEVICE_DEVFS_NAME #endif From oruizdorantes at mail.berlios.de Thu Jan 29 23:09:29 2009 From: oruizdorantes at mail.berlios.de (oruizdorantes at BerliOS) Date: Thu, 29 Jan 2009 23:09:29 +0100 Subject: [Haiku-commits] r29089 - haiku/trunk/src/servers/bluetooth Message-ID: <200901292209.n0TM9TXn007838@sheep.berlios.de> Author: oruizdorantes Date: 2009-01-29 23:09:28 +0100 (Thu, 29 Jan 2009) New Revision: 29089 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29089&view=rev Modified: haiku/trunk/src/servers/bluetooth/HCIDelegate.h Log: Styling Modified: haiku/trunk/src/servers/bluetooth/HCIDelegate.h =================================================================== --- haiku/trunk/src/servers/bluetooth/HCIDelegate.h 2009-01-29 22:06:52 UTC (rev 29088) +++ haiku/trunk/src/servers/bluetooth/HCIDelegate.h 2009-01-29 22:09:28 UTC (rev 29089) @@ -30,8 +30,7 @@ status = ioctl(fFD, GET_HCI_ID, &fHID, 0); printf("%s: hid retrieved %lx status=%ld\n", __FUNCTION__, fHID, status); - } - else { + } else { printf("%s: Device driver could not be opened %ld\n", __FUNCTION__, fHID); fHID = B_ERROR; @@ -72,7 +71,7 @@ status_t QueueCommand(raw_command rc, size_t size) { // TODO: this is suposed to queue the command in a queue so all - // are actually send to HW + // are actually send to HW to implement HCI FlowControl requeriments return IssueCommand(rc, size); } From oruizdorantes at mail.berlios.de Thu Jan 29 23:12:55 2009 From: oruizdorantes at mail.berlios.de (oruizdorantes at BerliOS) Date: Thu, 29 Jan 2009 23:12:55 +0100 Subject: [Haiku-commits] r29090 - haiku/trunk/src/servers/bluetooth Message-ID: <200901292212.n0TMCtV0008237@sheep.berlios.de> Author: oruizdorantes Date: 2009-01-29 23:12:54 +0100 (Thu, 29 Jan 2009) New Revision: 29090 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29090&view=rev Modified: haiku/trunk/src/servers/bluetooth/BluetoothServer.cpp haiku/trunk/src/servers/bluetooth/DeviceManager.cpp haiku/trunk/src/servers/bluetooth/DeviceManager.h Log: Clean a bit the devfs monitoring stuff. Now monitores the correct folder, and registers everything that is already present(hotplugging not tested) Modified: haiku/trunk/src/servers/bluetooth/BluetoothServer.cpp =================================================================== --- haiku/trunk/src/servers/bluetooth/BluetoothServer.cpp 2009-01-29 22:09:28 UTC (rev 29089) +++ haiku/trunk/src/servers/bluetooth/BluetoothServer.cpp 2009-01-29 22:12:54 UTC (rev 29090) @@ -77,7 +77,10 @@ void BluetoothServer::ReadyToRun(void) { - fDeviceManager->StartMonitoringDevice("bluetooth/h2generic"); + fDeviceManager->StartMonitoringDevice("bluetooth/h2"); + fDeviceManager->StartMonitoringDevice("bluetooth/h3"); + fDeviceManager->StartMonitoringDevice("bluetooth/h4"); + fDeviceManager->StartMonitoringDevice("bluetooth/h5"); // Launch the notifier thread if ( resume_thread(fEventListener) != B_OK ) { Modified: haiku/trunk/src/servers/bluetooth/DeviceManager.cpp =================================================================== --- haiku/trunk/src/servers/bluetooth/DeviceManager.cpp 2009-01-29 22:09:28 UTC (rev 29089) +++ haiku/trunk/src/servers/bluetooth/DeviceManager.cpp 2009-01-29 22:12:54 UTC (rev 29090) @@ -1,16 +1,3 @@ -/* -** Copyright 2004, the Haiku project. All rights reserved. -** Distributed under the terms of the Haiku License. -** -** -** Author : J?r?me Duval -** Original authors: Marcus Overhagen, Axel D?rfler -** -** Bluetooth adaptation: Oliver Ruiz Dorantes -** -*/ - - #include #include #include @@ -36,47 +23,57 @@ void -DeviceManager::MessageReceived(BMessage * msg) +DeviceManager::MessageReceived(BMessage* msg) { if (msg->what == B_NODE_MONITOR) { int32 opcode; if (msg->FindInt32("opcode", &opcode) == B_OK) { - switch (opcode) { - case B_ENTRY_CREATED: - case B_ENTRY_REMOVED: - case B_ENTRY_MOVED: - { - node_ref dir_nref; - const char *name; - BDirectory dir; + switch (opcode) { + case B_ENTRY_CREATED: + case B_ENTRY_MOVED: + { + entry_ref ref; + const char *name; + BDirectory dir; + + Output::Instance()->Post("Something new in the bus ... ", BLACKBOARD_DEVICEMANAGER); + + if ((msg->FindInt32("device", &ref.device)!=B_OK) + || (msg->FindInt64("directory", &ref.directory)!=B_OK) + || (msg->FindString("name", &name) != B_OK)) + return; + + Output::Instance()->Postf(BLACKBOARD_DEVICEMANAGER, " -> %s\n", name); + + ref.set_name(name); - (Output::Instance()->Post("Bus changing ...\n", BLACKBOARD_DEVICEMANAGER)); - - if ((msg->FindInt32("device", &dir_nref.device)!=B_OK) - || (msg->FindInt64("directory", &dir_nref.node)!=B_OK) - || (msg->FindString("name", &name) != B_OK)) - return; + // Check if the entry is a File or a directory + if (dir.SetTo(&ref) == B_OK) { + printf("%s: Entry %s is taken as a dir\n", __FUNCTION__, name); + node_ref nref; + dir.GetNodeRef(&nref); + AddDirectory(&nref); + + } else { + printf("%s: Entry %s is taken as a file\n", __FUNCTION__, name); + AddDevice(&ref); + } + } + break; + case B_ENTRY_REMOVED: + { + Output::Instance()->Post("Something removed from the bus ...\n", + BLACKBOARD_DEVICEMANAGER); - // Check if the entry is a File or a directory - if (dir.SetTo(&dir_nref) == B_OK) { - (Output::Instance()->Post(name, BLACKBOARD_DEVICEMANAGER)); - (Output::Instance()->Post(" adding folder...\n", BLACKBOARD_DEVICEMANAGER)); - AddDirectory(&dir_nref); - } else { - // Then it is a device! - // post it to server -// msg->what = BT_MSG_ADD_DEVICE; -// be_app_messenger.SendMessage(msg); -// (Output::Instance()->Post("New bluetooth device on bus ...\n", BLACKBOARD_DEVICEMANAGER)); - } - } - case B_STAT_CHANGED: - case B_ATTR_CHANGED: - case B_DEVICE_MOUNTED: - case B_DEVICE_UNMOUNTED: - default: - BLooper::MessageReceived(msg); + } break; + case B_STAT_CHANGED: + case B_ATTR_CHANGED: + case B_DEVICE_MOUNTED: + case B_DEVICE_UNMOUNTED: + default: + BLooper::MessageReceived(msg); + break; } } } @@ -87,43 +84,35 @@ DeviceManager::AddDirectory(node_ref *nref) { BDirectory directory(nref); - status_t status = directory.InitCheck(); - if (status != B_OK) { - (Output::Instance()->Post("AddDirectory::Initcheck Failed\n", BLACKBOARD_DEVICEMANAGER)); + status_t status = directory.InitCheck(); + if (status != B_OK) { + Output::Instance()->Post("AddDirectory::Initcheck Failed\n", BLACKBOARD_DEVICEMANAGER); return status; } status = watch_node(nref, B_WATCH_DIRECTORY, this); - if (status != B_OK) { - (Output::Instance()->Post("AddDirectory::watch_node Failed\n", BLACKBOARD_DEVICEMANAGER)); + if (status != B_OK) { + Output::Instance()->Post("AddDirectory::watch_node Failed\n", BLACKBOARD_DEVICEMANAGER); return status; } - BEntry entry; - while (directory.GetNextEntry(&entry, true) == B_OK) { - - // its suposed to be devices ... - entry_ref ref; - entry.GetRef(&ref); - BPath path(new BEntry(&ref)); - BString* str = new BString(path.Path()); - - BMessage* msg = new BMessage(BT_MSG_ADD_DEVICE); - msg->AddInt32("opcode", B_ENTRY_CREATED); - msg->AddInt32("device", nref->device); - msg->AddInt64("directory", nref->node); - msg->AddString("name", *str ); - - be_app_messenger.SendMessage(msg); - - - (Output::Instance()->Post( path.Path(), BLACKBOARD_DEVICEMANAGER)); - (Output::Instance()->Post(" Entry added\n", BLACKBOARD_DEVICEMANAGER)); +// BPath path(*nref); +// BString str(path.Path()); +// +// Output::Instance()->Postf(BLACKBOARD_DEVICEMANAGER, +// "Exploring entries in %s\n", str.String()); + entry_ref ref; + status_t error; + while ((error = directory.GetNextRef(&ref)) == B_OK) { + // its suposed to be devices ... + AddDevice(&ref); } - (Output::Instance()->Post("Finished exploring entries\n", BLACKBOARD_DEVICEMANAGER)); - return B_OK; + Output::Instance()->Postf(BLACKBOARD_DEVICEMANAGER, + "Finished exploring entries(%s)\n", strerror(error)); + + return (error == B_OK || error == B_ENTRY_NOT_FOUND)?B_OK:error; } @@ -131,7 +120,7 @@ DeviceManager::RemoveDirectory(node_ref* nref) { BDirectory directory(nref); - status_t status = directory.InitCheck(); + status_t status = directory.InitCheck(); if (status != B_OK) return status; @@ -140,7 +129,7 @@ return status; BEntry entry; - while (directory.GetNextEntry(&entry, true) == B_OK) { + while (directory.GetNextEntry(&entry, true) == B_OK) { entry_ref ref; entry.GetRef(&ref); BMessage msg(B_NODE_MONITOR); @@ -148,20 +137,38 @@ msg.AddInt32("device", nref->device); msg.AddInt64("directory", nref->node); msg.AddString("name", ref.name); - //addon->fDevice->Control(NULL, NULL, msg.what, &msg); + //addon->fDevice->Control(NULL, NULL, msg.what, &msg); } return B_OK; } -DeviceManager::DeviceManager() - : - fLock("device manager") +status_t +DeviceManager::AddDevice(entry_ref* ref) { + BPath path(ref); + BString* str = new BString(path.Path()); + + BMessage* msg = new BMessage(BT_MSG_ADD_DEVICE); + msg->AddInt32("opcode", B_ENTRY_CREATED); + msg->AddInt32("device", ref->device); + msg->AddInt64("directory", ref->directory); + + msg->AddString("name", *str ); + + Output::Instance()->Postf(BLACKBOARD_DEVICEMANAGER, "Device %s registered\n", path.Path()); + return be_app_messenger.SendMessage(msg); } +DeviceManager::DeviceManager() : + fLock("device manager") +{ + +} + + DeviceManager::~DeviceManager() { @@ -171,7 +178,6 @@ void DeviceManager::LoadState() { - if (!Lock()) return; Run(); @@ -182,11 +188,12 @@ void DeviceManager::SaveState() { + } -status_t -DeviceManager::StartMonitoringDevice(const char *device) +status_t +DeviceManager::StartMonitoringDevice(const char *device) { status_t err; @@ -195,135 +202,125 @@ BPath path("/dev"); /* Build the path */ - if ((err = path.Append(device)) != B_OK) { + if ((err = path.Append(device)) != B_OK) { printf("DeviceManager::StartMonitoringDevice BPath::Append() error %s: %s\n", path.Path(), strerror(err)); return err; } /* Check the path */ - if ((err = directory.SetTo(path.Path())) != B_OK) { - /* Entry not there ... */ - if (err != B_ENTRY_NOT_FOUND) { // something else we cannot handle - printf("DeviceManager::StartMonitoringDevice SetTo error %s: %s\n", path.Path(), strerror(err)); + if ((err = directory.SetTo(path.Path())) != B_OK) { + /* Entry not there ... */ + if (err != B_ENTRY_NOT_FOUND) { // something else we cannot handle + printf("DeviceManager::StartMonitoringDevice SetTo error %s: %s\n", path.Path(), strerror(err)); return err; } /* Create it */ if ((err = create_directory(path.Path(), S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)) != B_OK - || (err = directory.SetTo(path.Path())) != B_OK) { + || (err = directory.SetTo(path.Path())) != B_OK) { printf("DeviceManager::StartMonitoringDevice CreateDirectory error %s: %s\n", path.Path(), strerror(err)); return err; } } - - /* get noderef */ - if ((err = directory.GetNodeRef(&nref)) != B_OK) { - printf("DeviceManager::StartMonitoringDevice GetNodeRef error %s: %s\n", path.Path(), strerror(err)); + + // get noderef + if ((err = directory.GetNodeRef(&nref)) != B_OK) { + printf("DeviceManager::StartMonitoringDevice GetNodeRef error %s: %s\n", path.Path(), strerror(err)); return err; } - - // test if already monitored in any add-on - (Output::Instance()->Post(device, BLACKBOARD_DEVICEMANAGER)); - (Output::Instance()->Post(" Being monitorized\n", BLACKBOARD_DEVICEMANAGER)); - - bool alreadyMonitored = false; -#if 0 - HCIDelegate *tmphd = NULL; - int32 i = 0; + // start monitoring the root + status_t error = watch_node(&nref, B_WATCH_DIRECTORY, this); + if (error != B_OK) + return error; - // TODO!! ask the server if this needs to be monitored + Output::Instance()->Postf(BLACKBOARD_DEVICEMANAGER, "%s path being monitorized\n", path.Path()); - while ((tmphd = (HCIDelegate *)fDelegatesList.ItemAt(i++)) !=NULL) { + // We are monitoring the root we may have already directories inside + // to be monitored + entry_ref driverRef; + while ((error = directory.GetNextRef(&driverRef)) == B_OK) { - /* Find out the reference*/ - node_ref *dnref = (node_ref *)tmphd->fMonitoredRefs ; - if (*dnref == nref) { + // its suposed to be directories that needs to be monitored... + BNode driverNode(&driverRef); + node_ref driverNRef; + driverNode.GetNodeRef(&driverNRef); + AddDirectory(&driverNRef); + } + + Output::Instance()->Postf(BLACKBOARD_DEVICEMANAGER, "Finished exploring entries(%s)\n", strerror(error)); + +#if 0 + HCIDelegate *tmphd = NULL; + int32 i = 0; + + // TODO!! ask the server if this needs to be monitored + + while ((tmphd = (HCIDelegate *)fDelegatesList.ItemAt(i++)) !=NULL) { + + /* Find out the reference*/ + node_ref *dnref = (node_ref *)tmphd->fMonitoredRefs ; + if (*dnref == nref) { printf("StartMonitoringDevice already monitored\n"); alreadyMonitored = true; break; } - + } #endif - - // monitor if needed - if (!alreadyMonitored) { - if ((err = AddDirectory(&nref)) != B_OK) - return err; - } -/* // add addon in list - if (!fDeviceAddons.HasItem(addon)) - fDeviceAddons.AddItem(addon); - - // add dir ref in list - int32 j=0; - node_ref *dnref = NULL; - alreadyMonitored = false; // why rechecking? - while ((dnref = (node_ref *)addon->fMonitoredRefs.ItemAt(j++)) != NULL) { - if (*dnref == nref) { - alreadyMonitored = true; - break; - } - } - - if (!alreadyMonitored) { - addon->fMonitoredRefs.AddItem(new node_ref(nref)); - } -*/ return B_OK; } -status_t +status_t DeviceManager::StopMonitoringDevice(const char *device) { status_t err; node_ref nref; BDirectory directory; BPath path("/dev"); - if (((err = path.Append(device)) != B_OK) - || ((err = directory.SetTo(path.Path())) != B_OK) - || ((err = directory.GetNodeRef(&nref)) != B_OK)) + if (((err = path.Append(device)) != B_OK) + || ((err = directory.SetTo(path.Path())) != B_OK) + || ((err = directory.GetNodeRef(&nref)) != B_OK)) return err; - - // test if still monitored - bool stillMonitored = false; + + // test if still monitored + bool stillMonitored = false; /* - int32 i = 0; - while ((tmpaddon = (_BDeviceAddOn_ *)fDeviceAddons.ItemAt(i++)) !=NULL) { + int32 i = 0; + while ((tmpaddon = (_BDeviceAddOn_ *)fDeviceAddons.ItemAt(i++)) !=NULL) { if (addon == tmpaddon) continue; - + int32 j=0; - node_ref *dnref = NULL; - while ((dnref = (node_ref *)tmpaddon->fMonitoredRefs.ItemAt(j++)) != NULL) { - if (*dnref == nref) { + node_ref *dnref = NULL; + while ((dnref = (node_ref *)tmpaddon->fMonitoredRefs.ItemAt(j++)) != NULL) { + if (*dnref == nref) { stillMonitored = true; break; } } if (stillMonitored) - break; + break; } - + // remove from list - node_ref *dnref = NULL; + node_ref *dnref = NULL; int32 j=0; - while ((dnref = (node_ref *)addon->fMonitoredRefs.ItemAt(j)) != NULL) { - if (*dnref == nref) { + while ((dnref = (node_ref *)addon->fMonitoredRefs.ItemAt(j)) != NULL) { + if (*dnref == nref) { addon->fMonitoredRefs.RemoveItem(j); delete dnref; break; } j++; } - - // stop monitoring if needed + + // stop monitoring if needed if (!stillMonitored) { if ((err = RemoveDirectory(&nref, addon)) != B_OK) return err; - } -*/ + } +*/ return B_OK; } Modified: haiku/trunk/src/servers/bluetooth/DeviceManager.h =================================================================== --- haiku/trunk/src/servers/bluetooth/DeviceManager.h 2009-01-29 22:09:28 UTC (rev 29089) +++ haiku/trunk/src/servers/bluetooth/DeviceManager.h 2009-01-29 22:12:54 UTC (rev 29090) @@ -9,17 +9,12 @@ #define _DEVICE_MANAGER_H // Manager for devices monitoring - #include #include #include #include -/*#include -#include -#include -#include "TList.h" -*/ + class DeviceManager : public BLooper { public: DeviceManager(); @@ -28,14 +23,15 @@ void LoadState(); void SaveState(); - status_t StartMonitoringDevice(const char *device); - status_t StopMonitoringDevice(const char *device); + status_t StartMonitoringDevice(const char* device); + status_t StopMonitoringDevice(const char* device); void MessageReceived(BMessage *msg); private: - status_t AddDirectory(node_ref *nref); - status_t RemoveDirectory(node_ref *nref); + status_t AddDirectory(node_ref* nref); + status_t RemoveDirectory(node_ref* nref); + status_t AddDevice(entry_ref* nref); BLocker fLock; }; From anevilyak at mail.berlios.de Thu Jan 29 23:21:23 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Thu, 29 Jan 2009 23:21:23 +0100 Subject: [Haiku-commits] r29091 - haiku/trunk/src/kits/tracker Message-ID: <200901292221.n0TMLNkv009068@sheep.berlios.de> Author: anevilyak Date: 2009-01-29 23:21:22 +0100 (Thu, 29 Jan 2009) New Revision: 29091 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29091&view=rev Modified: haiku/trunk/src/kits/tracker/ContainerWindow.cpp haiku/trunk/src/kits/tracker/PoseView.cpp haiku/trunk/src/kits/tracker/PoseView.h Log: Fix a regression introduced with my previous commit where forcing Move would not always be respected. Modified: haiku/trunk/src/kits/tracker/ContainerWindow.cpp =================================================================== --- haiku/trunk/src/kits/tracker/ContainerWindow.cpp 2009-01-29 22:12:54 UTC (rev 29090) +++ haiku/trunk/src/kits/tracker/ContainerWindow.cpp 2009-01-29 22:21:22 UTC (rev 29091) @@ -1438,7 +1438,7 @@ if (model.InitCheck() != B_OK) break; - PoseView()->MoveSelectionInto(&model, this, false); + PoseView()->MoveSelectionInto(&model, this, false, true); break; } Modified: haiku/trunk/src/kits/tracker/PoseView.cpp =================================================================== --- haiku/trunk/src/kits/tracker/PoseView.cpp 2009-01-29 22:12:54 UTC (rev 29090) +++ haiku/trunk/src/kits/tracker/PoseView.cpp 2009-01-29 22:21:22 UTC (rev 29091) @@ -4347,21 +4347,21 @@ void BPoseView::MoveSelectionInto(Model *destFolder, BContainerWindow *srcWindow, - bool forceCopy, bool createLink, bool relativeLink) + bool forceCopy, bool forceMove, bool createLink, bool relativeLink) { uint32 buttons; BPoint loc; GetMouse(&loc, &buttons); MoveSelectionInto(destFolder, srcWindow, dynamic_cast(Window()), - buttons, loc, forceCopy, createLink, relativeLink); + buttons, loc, forceCopy, forceMove, createLink, relativeLink); } void BPoseView::MoveSelectionInto(Model *destFolder, BContainerWindow *srcWindow, BContainerWindow *destWindow, uint32 buttons, BPoint loc, bool forceCopy, - bool createLink, bool relativeLink) -{ + bool forceMove, bool createLink, bool relativeLink) +{ AutoLock lock(srcWindow); if (!lock) return; @@ -4387,6 +4387,7 @@ break; case kMoveSelectionTo: + forceMove = true; break; case kCopySelectionTo: @@ -4445,6 +4446,8 @@ uint32 moveMode; if (forceCopy) moveMode = kCopySelectionTo; + else if (forceMove) + moveMode = kMoveSelectionTo; else if (createRelativeLink) moveMode = kCreateRelativeLink; else if (createLink) @@ -4490,6 +4493,7 @@ uint32 buttons = (uint32)window->CurrentMessage()->FindInt32("buttons"); bool createLink = false; bool forceCopy = false; + bool forceMove = false; bool createRelativeLink = false; bool dropOnGrid = (modifiers() & B_COMMAND_KEY) != 0; @@ -4505,6 +4509,7 @@ break; case kMoveSelectionTo: + forceMove = true; break; case kCopySelectionTo: @@ -4599,6 +4604,8 @@ uint32 moveMode; if (forceCopy) moveMode = kCopySelectionTo; + else if (forceMove) + moveMode = kMoveSelectionTo; else if (createRelativeLink) moveMode = kCreateRelativeLink; else if (createLink) Modified: haiku/trunk/src/kits/tracker/PoseView.h =================================================================== --- haiku/trunk/src/kits/tracker/PoseView.h 2009-01-29 22:12:54 UTC (rev 29090) +++ haiku/trunk/src/kits/tracker/PoseView.h 2009-01-29 22:21:22 UTC (rev 29091) @@ -329,10 +329,10 @@ virtual void DragSelectionRect(BPoint, bool extendSelection); void MoveSelectionInto(Model *destFolder, BContainerWindow *srcWindow, - bool forceCopy, bool createLink = false, bool relativeLink = false); + bool forceCopy, bool forceMove = false, bool createLink = false, bool relativeLink = false); static void MoveSelectionInto(Model *destFolder, BContainerWindow *srcWindow, BContainerWindow *destWindow, uint32 buttons, BPoint loc, - bool forceCopy, bool createLink = false, bool relativeLink = false); + bool forceCopy, bool forceMove = false, bool createLink = false, bool relativeLink = false); bool UpdateDropTarget(BPoint, const BMessage *, bool trackingContextMenu); // return true if drop target changed From anevilyak at mail.berlios.de Fri Jan 30 00:49:58 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Fri, 30 Jan 2009 00:49:58 +0100 Subject: [Haiku-commits] r29092 - haiku/trunk/src/kits/tracker Message-ID: <200901292349.n0TNnwTF003454@sheep.berlios.de> Author: anevilyak Date: 2009-01-30 00:49:57 +0100 (Fri, 30 Jan 2009) New Revision: 29092 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29092&view=rev Modified: haiku/trunk/src/kits/tracker/PoseView.cpp Log: Refactor MoveSelectionTo a bit to reuse other code instead of duplicating most of it practically verbatim with different variable names. Modified: haiku/trunk/src/kits/tracker/PoseView.cpp =================================================================== --- haiku/trunk/src/kits/tracker/PoseView.cpp 2009-01-29 22:21:22 UTC (rev 29091) +++ haiku/trunk/src/kits/tracker/PoseView.cpp 2009-01-29 23:49:57 UTC (rev 29092) @@ -4488,147 +4488,8 @@ if (srcWindow != window && !TargetModel()->IsDropTarget()) return; - // if drop was done with control key or secondary button - // then we need to show a context menu for drop location uint32 buttons = (uint32)window->CurrentMessage()->FindInt32("buttons"); - bool createLink = false; - bool forceCopy = false; - bool forceMove = false; - bool createRelativeLink = false; - bool dropOnGrid = (modifiers() & B_COMMAND_KEY) != 0; - - if ((buttons & B_SECONDARY_MOUSE_BUTTON) || (modifiers() & B_CONTROL_KEY)) { - - switch (window->ShowDropContextMenu(dropPt)) { - case kCreateRelativeLink: - createRelativeLink = true; - break; - - case kCreateLink: - createLink = true; - break; - - case kMoveSelectionTo: - forceMove = true; - break; - - case kCopySelectionTo: - if (srcWindow == window) { - DuplicateSelection(&clickPt, &dropPt); - return; - } - forceCopy = true; - break; - - case kCancelButton: - default: - // user canceled context menu - return; - } - } - - if (!createLink && !createRelativeLink && srcWindow == window) { // dropped in same window - if (ViewMode() == kListMode) // can't move in list view - return; - - BPoint delta(dropPt - clickPt); - int32 count = fSelectionList->CountItems(); - for (int32 index = 0; index < count; index++) { - BPose *pose = fSelectionList->ItemAt(index); - - // remove pose from VSlist before changing location - // so that we "find" the correct pose to remove - // need to do this because bsearch uses top of pose - // to locate pose to remove - RemoveFromVSList(pose); - - BRect oldBounds(pose->CalcRect(this)); - BPoint location(pose->Location() + delta); - if (dropOnGrid) - location = PinToGrid(location, fGrid, fOffset); - - pose->MoveTo(location, this); - - RemoveFromExtent(oldBounds); - AddToExtent(pose->CalcRect(this)); - - // remove and reinsert pose to keep VSlist sorted - AddToVSList(pose); - } - } else { - AutoLock lock(srcWindow); - if (!lock) - return; - - // dropped from another window - // CopyTask will delete pointList - PoseList *selectionList = srcWindow->PoseView()->SelectionList(); - int32 count = selectionList->CountItems(); - BList *pointList = GetDropPointList(clickPt, dropPt, selectionList, - srcWindow->PoseView()->ViewMode() == kListMode, dropOnGrid); - - // perform asynch copy/move - forceCopy = forceCopy || (modifiers() & B_OPTION_KEY); - bool okToMove = true; - BEntry *destEntry = new BEntry(TargetModel()->EntryRef()); - bool destIsTrash = FSIsTrashDir(destEntry); - - // don't prompt if we're going to end up copying anyway - if (srcWindow->PoseView()->TargetModel()->IsQuery() - && !forceCopy - && !createLink - && !destIsTrash) { - srcWindow->UpdateIfNeeded(); - okToMove = (new BAlert("", kOkToMoveStr, "Cancel", "Move", NULL, - B_WIDTH_AS_USUAL, B_WARNING_ALERT))->Go() == 1; - } - - // can't copy items into the trash - if (forceCopy && destIsTrash) { - (new BAlert("", kNoCopyToTrashStr, "Cancel", NULL, NULL, - B_WIDTH_AS_USUAL, B_WARNING_ALERT))->Go(); - okToMove = false; - } - - // can't create symlinks into the trash - if ((createLink || createRelativeLink) && destIsTrash) { - (new BAlert("", kNoLinkToTrashStr, "Cancel", NULL, NULL, - B_WIDTH_AS_USUAL, B_WARNING_ALERT))->Go(); - okToMove = false; - } - - if (okToMove) { - // create dup Model list, dest Model for CopyTask - BObjectList *srcList = new BObjectList(count, true); - CopySelectionListToBListAsEntryRefs(selectionList, srcList); - uint32 moveMode; - if (forceCopy) - moveMode = kCopySelectionTo; - else if (forceMove) - moveMode = kMoveSelectionTo; - else if (createRelativeLink) - moveMode = kCreateRelativeLink; - else if (createLink) - moveMode = kCreateLink; - else { - moveMode = kMoveSelectionTo; - entry_ref *srcRef = srcList->ItemAt(0); - BDirectory destDir (destEntry); - struct stat deststat; - destDir.GetStat(&deststat); - - if (srcRef->device != deststat.st_dev) - moveMode = kCopySelectionTo; - } - FSMoveToFolder(srcList, destEntry, moveMode, pointList); - } else { - if (pointList) { - pointList->DoForEach(delete_point); - delete pointList; - } - delete destEntry; - } - } + MoveSelectionInto(TargetModel(), srcWindow, window, buttons, dropPt, false); } From anevilyak at mail.berlios.de Fri Jan 30 01:08:27 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Fri, 30 Jan 2009 01:08:27 +0100 Subject: [Haiku-commits] r29093 - haiku/trunk/src/kits/tracker Message-ID: <200901300008.n0U08RcD025492@sheep.berlios.de> Author: anevilyak Date: 2009-01-30 01:08:26 +0100 (Fri, 30 Jan 2009) New Revision: 29093 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29093&view=rev Modified: haiku/trunk/src/kits/tracker/FSUtils.cpp Log: Skip doing the preflight size calculation in cases where the requested FS operation will be instantaneous anyways. Modified: haiku/trunk/src/kits/tracker/FSUtils.cpp =================================================================== --- haiku/trunk/src/kits/tracker/FSUtils.cpp 2009-01-29 23:49:57 UTC (rev 29092) +++ haiku/trunk/src/kits/tracker/FSUtils.cpp 2009-01-30 00:08:26 UTC (rev 29093) @@ -538,7 +538,7 @@ static status_t InitCopy(uint32 moveMode, BObjectList *srcList, thread_id thread, BVolume *dstVol, BDirectory *destDir, entry_ref *destRef, - bool preflightNameCheck, int32 *collisionCount, ConflictCheckResult *preflightResult) + bool preflightNameCheck, bool needSizeCalculation, int32 *collisionCount, ConflictCheckResult *preflightResult) { if (dstVol->IsReadOnly()) { if (gStatusWindow) @@ -596,14 +596,16 @@ int32 totalItems = 0; off_t totalSize = 0; - if (CalcItemsAndSize(srcList, &totalItems, &totalSize) != B_OK) - return B_ERROR; + if (needSizeCalculation) { + if (CalcItemsAndSize(srcList, &totalItems, &totalSize) != B_OK) + return B_ERROR; - // check for free space before starting copy - if ((totalSize + (4 * kKBSize)) >= dstVol->FreeBytes()) { - (new BAlert("", kNoFreeSpace, "Cancel", 0, 0, - B_WIDTH_AS_USUAL, B_WARNING_ALERT))->Go(); - return B_ERROR; + // check for free space before starting copy + if ((totalSize + (4 * kKBSize)) >= dstVol->FreeBytes()) { + (new BAlert("", kNoFreeSpace, "Cancel", 0, 0, + B_WIDTH_AS_USUAL, B_WARNING_ALERT))->Go(); + return B_ERROR; + } } if (gStatusWindow) @@ -665,7 +667,7 @@ bool destIsTrash = false; BDirectory destDir; BDirectory *destDirToCheck = NULL; - bool needPreflightNameCheck = false; + bool needPreflightNameCheck = false; bool sourceIsReadOnly = volume.IsReadOnly(); volume.Unset(); @@ -711,6 +713,10 @@ if (moveMode == kMoveSelectionTo && sourceIsReadOnly) moveMode = kCopySelectionTo; + bool needSizeCalculation = true; + if ((moveMode == kMoveSelectionTo && srcVolumeDevice == destVolumeDevice) || destIsTrash) + needSizeCalculation = false; + // we need the undo object later on, so we create it no matter // if we really need it or not (it's very lightweight) MoveCopyUndo undo(srcList, destDir, pointList, moveMode); @@ -721,7 +727,7 @@ ConflictCheckResult conflictCheckResult = kPrompt; int32 collisionCount = 0; status_t result = InitCopy(moveMode, srcList, thread, &volume, destDirToCheck, - &destRef, needPreflightNameCheck, &collisionCount, &conflictCheckResult); + &destRef, needPreflightNameCheck, needSizeCalculation, &collisionCount, &conflictCheckResult); int32 count = srcList->CountItems(); if (result == B_OK) { From stippi at mail.berlios.de Fri Jan 30 23:26:59 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Fri, 30 Jan 2009 23:26:59 +0100 Subject: [Haiku-commits] r29094 - haiku/trunk/src/apps/codycam Message-ID: <200901302226.n0UMQxH7031513@sheep.berlios.de> Author: stippi Date: 2009-01-30 23:26:58 +0100 (Fri, 30 Jan 2009) New Revision: 29094 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29094&view=rev Modified: haiku/trunk/src/apps/codycam/CodyCam.cpp Log: Patch by Michael Kanis: * Switched CodyCam GUI to use Haiku layout management. Thanks a lot!! Modified: haiku/trunk/src/apps/codycam/CodyCam.cpp =================================================================== --- haiku/trunk/src/apps/codycam/CodyCam.cpp 2009-01-30 00:08:26 UTC (rev 29093) +++ haiku/trunk/src/apps/codycam/CodyCam.cpp 2009-01-30 22:26:58 UTC (rev 29094) @@ -6,6 +6,9 @@ #include #include +#include +#include +#include #include #include #include @@ -15,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -39,7 +43,7 @@ const int32 kButtonHeight = 15; const int32 kSliderViewRectHeight = 40; -static void ErrorAlert(const char* message, status_t err); +static void ErrorAlert(const char* message, status_t err, BWindow *window); static status_t AddTranslationItems(BMenu* intoMenu, uint32 fromType); #define CALL printf @@ -51,12 +55,22 @@ // Utility functions static void -ErrorAlert(const char* message, status_t err) +ErrorAlert(const char* message, status_t err, BWindow *window = NULL) { - (new BAlert("", message, "Quit"))->Go(); + BAlert *alert = new BAlert("", message, "OK"); + if (window != NULL) { + alert->MoveTo( + window->Frame().left + + window->Bounds().right / 2 - + alert->Bounds().right / 2, + window->Frame().top + + window->Bounds().bottom / 2 - + alert->Bounds().bottom / 2); + } + alert->Go(); printf("%s\n%s [%lx]", message, strerror(err), err); - be_app->PostMessage(B_QUIT_REQUESTED); +// be_app->PostMessage(B_QUIT_REQUESTED); } @@ -145,9 +159,9 @@ CodyCam::ReadyToRun() { /* create the window for the app */ - fWindow = new VideoWindow(BRect(28, 28, 28 + (WINDOW_SIZE_X - 1), - 28 + (WINDOW_SIZE_Y - 1)), (const char*)"CodyCam", B_TITLED_WINDOW, - B_NOT_RESIZABLE | B_NOT_ZOOMABLE, &fPort); + fWindow = new VideoWindow(BRect(28, 28, 28, 28), + (const char*) "CodyCam", B_TITLED_WINDOW, + B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS, &fPort); /* set up the node connections */ status_t status = _SetUpNodes(); @@ -243,14 +257,14 @@ /* find the media roster */ fMediaRoster = BMediaRoster::Roster(&status); if (status != B_OK) { - ErrorAlert("Can't find the media roster", status); + ErrorAlert("Can't find the media roster", status, fWindow); return status; } /* find the time source */ status = fMediaRoster->GetTimeSource(&fTimeSourceNode); if (status != B_OK) { - ErrorAlert("Can't get a time source", status); + ErrorAlert("Can't get a time source", status, fWindow); return status; } @@ -258,7 +272,7 @@ INFO("CodyCam acquiring VideoInput node\n"); status = fMediaRoster->GetVideoInput(&fProducerNode); if (status != B_OK) { - ErrorAlert("Can't find a video source. You need a webcam to use CodyCam.", status); + ErrorAlert("Can't find a video source. You need a webcam to use CodyCam.", status, fWindow); return status; } @@ -266,14 +280,14 @@ fVideoConsumer = new VideoConsumer("CodyCam", ((VideoWindow*)fWindow)->VideoView(), ((VideoWindow*)fWindow)->StatusLine(), NULL, 0); if (!fVideoConsumer) { - ErrorAlert("Can't create a video window", B_ERROR); + ErrorAlert("Can't create a video window", B_ERROR, fWindow); return B_ERROR; } /* register the node */ status = fMediaRoster->RegisterNode(fVideoConsumer); if (status != B_OK) { - ErrorAlert("Can't register the video window", status); + ErrorAlert("Can't register the video window", status, fWindow); return status; } fPort = fVideoConsumer->ControlPort(); @@ -284,7 +298,7 @@ B_MEDIA_RAW_VIDEO); if (status != B_OK || cnt < 1) { status = B_RESOURCE_UNAVAILABLE; - ErrorAlert("Can't find an available video stream", status); + ErrorAlert("Can't find an available video stream", status, fWindow); return status; } @@ -294,7 +308,7 @@ &cnt, B_MEDIA_RAW_VIDEO); if (status != B_OK || cnt < 1) { status = B_RESOURCE_UNAVAILABLE; - ErrorAlert("Can't find an available connection to the video window", status); + ErrorAlert("Can't find an available connection to the video window", status, fWindow); return status; } @@ -436,7 +450,6 @@ _SetUpSettings("codycam", ""); BMenuBar* menuBar = new BMenuBar(BRect(0, 0, 0, 0), "menu bar"); - AddChild(menuBar); BMenuItem* menuItem; BMenu* menu = new BMenu("File"); @@ -470,23 +483,15 @@ menuBar->AddItem(menu); /* give it a gray background view */ - BRect aRect; - aRect = Frame(); - aRect.OffsetTo(B_ORIGIN); - aRect.top += menuBar->Frame().Height() + 1; - fView = new BView(aRect, "Background View", B_FOLLOW_ALL, B_WILL_DRAW); - fView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); - AddChild(fView); - + fView = new BView("Background View", B_WILL_DRAW, NULL); + fView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); + /* add some controls */ _BuildCaptureControls(fView); - /* add another view to hold the video image */ - aRect = BRect(0, 0, VIDEO_SIZE_X - 1, VIDEO_SIZE_Y - 1); - aRect.OffsetBy((WINDOW_SIZE_X - VIDEO_SIZE_X) / 2, kYBuffer); - - fVideoView = new BView(aRect, "Video View", B_FOLLOW_ALL, B_WILL_DRAW); - fView->AddChild(fVideoView); + SetLayout(new BGroupLayout(B_VERTICAL)); + AddChild(menuBar); + AddChild(fView); Show(); } @@ -665,33 +670,23 @@ void VideoWindow::_BuildCaptureControls(BView* theView) { - BRect aFrame, theFrame; + // a view to hold the video image + fVideoView = new BView("Video View", B_WILL_DRAW); + fVideoView->SetExplicitMinSize(BSize(VIDEO_SIZE_X, VIDEO_SIZE_Y)); + fVideoView->SetExplicitMaxSize(BSize(VIDEO_SIZE_X, VIDEO_SIZE_Y)); - theFrame = theView->Bounds(); - theFrame.top += VIDEO_SIZE_Y + 2 * kYBuffer + 40; - theFrame.left += kXBuffer; - theFrame.right -= (WINDOW_SIZE_X / 2 + 5); - theFrame.bottom -= kXBuffer; + // Capture controls + fCaptureSetupBox = new BBox("Capture Controls", B_WILL_DRAW); + fCaptureSetupBox->SetLabel("Capture controls"); - fCaptureSetupBox = new BBox(theFrame, "Capture Controls", B_FOLLOW_ALL, B_WILL_DRAW); - fCaptureSetupBox->SetLabel("Capture Controls"); - theView->AddChild(fCaptureSetupBox); - - aFrame = fCaptureSetupBox->Bounds(); - aFrame.InsetBy(kXBuffer, kYBuffer); - aFrame.top += kYBuffer / 2; - aFrame.bottom = aFrame.top + kMenuHeight; - - fFileName = new BTextControl(aFrame, "File Name", "File Name:", + BGridLayout *controlsLayout = new BGridLayout(kXBuffer, 0); + controlsLayout->SetInsets(10, 15, 5, 5); + fCaptureSetupBox->SetLayout(controlsLayout); + + fFileName = new BTextControl("File Name", "File name:", fFilenameSetting->Value(), new BMessage(msg_filename)); - fFileName->SetTarget(BMessenger(NULL, this)); - fFileName->SetDivider(fFileName->Divider() - 30); - fCaptureSetupBox->AddChild(fFileName); - aFrame.top = aFrame.bottom + kYBuffer; - aFrame.bottom = aFrame.top + kMenuHeight; - fImageFormatMenu = new BPopUpMenu("Image Format Menu"); AddTranslationItems(fImageFormatMenu, B_TRANSLATOR_BITMAP); fImageFormatMenu->SetTargetForItems(this); @@ -705,13 +700,9 @@ else fImageFormatMenu->ItemAt(0)->SetMarked(true); - fImageFormatSelector = new BMenuField(aFrame, "Format", "Format:", fImageFormatMenu); - fImageFormatSelector->SetDivider(fImageFormatSelector->Divider() - 30); - fCaptureSetupBox->AddChild(fImageFormatSelector); + fImageFormatSelector = new BMenuField("Format", "Format:", + fImageFormatMenu, NULL); - aFrame.top = aFrame.bottom + kYBuffer; - aFrame.bottom = aFrame.top + kMenuHeight; - fCaptureRateMenu = new BPopUpMenu("Capture Rate Menu"); fCaptureRateMenu->AddItem(new BMenuItem("Every 15 seconds", new BMessage(msg_rate_15s))); fCaptureRateMenu->AddItem(new BMenuItem("Every 30 seconds", new BMessage(msg_rate_30s))); @@ -728,17 +719,20 @@ fCaptureRateMenu->AddItem(new BMenuItem("Never", new BMessage(msg_rate_never))); fCaptureRateMenu->SetTargetForItems(this); fCaptureRateMenu->FindItem(fCaptureRateSetting->Value())->SetMarked(true); - fCaptureRateSelector = new BMenuField(aFrame, "Rate", "Rate:", fCaptureRateMenu); - fCaptureRateSelector->SetDivider(fCaptureRateSelector->Divider() - 30); - fCaptureSetupBox->AddChild(fCaptureRateSelector); + fCaptureRateSelector = new BMenuField("Rate", "Rate:", + fCaptureRateMenu, NULL); - aFrame = theView->Bounds(); - aFrame.top += VIDEO_SIZE_Y + 2 * kYBuffer + 40; - aFrame.left += WINDOW_SIZE_X / 2 + 5; - aFrame.right -= kXBuffer; - aFrame.bottom -= kYBuffer; + controlsLayout->AddItem(fFileName->CreateLabelLayoutItem(), 0, 0); + controlsLayout->AddItem(fFileName->CreateTextViewLayoutItem(), 1, 0); + controlsLayout->AddItem(fImageFormatSelector->CreateLabelLayoutItem(), 0, 1); + controlsLayout->AddItem(fImageFormatSelector->CreateMenuBarLayoutItem(), 1, 1); + controlsLayout->AddItem(fCaptureRateSelector->CreateLabelLayoutItem(), 0, 2); + controlsLayout->AddItem(fCaptureRateSelector->CreateMenuBarLayoutItem(), 1, 2); + controlsLayout->AddItem(BSpaceLayoutItem::CreateGlue(), 0, 3, 2); - fFtpSetupBox = new BBox(aFrame, "Ftp Setup", B_FOLLOW_ALL, B_WILL_DRAW); + // FTP setup box + fFtpSetupBox = new BBox("Ftp Setup", B_WILL_DRAW); + fUploadClientMenu = new BPopUpMenu("Send to" B_UTF8_ELLIPSIS); for (int i = 0; kUploadClient[i]; i++) { BMessage *m = new BMessage(msg_upl_client); @@ -747,78 +741,74 @@ } fUploadClientMenu->SetTargetForItems(this); fUploadClientMenu->FindItem(fUploadClientSetting->Value())->SetMarked(true); - fUploadClientSelector = new BMenuField(aFrame, "UploadClient", "", fUploadClientMenu); - fUploadClientSelector->SetDivider(0.0); + fUploadClientSelector = new BMenuField("UploadClient", NULL, + fUploadClientMenu, NULL); - fFtpSetupBox->SetLabel(fUploadClientSelector); - theView->AddChild(fFtpSetupBox); + fFtpSetupBox->SetLabel("FTP"); + // this doesn't work with the layout manager +// fFtpSetupBox->SetLabel(fUploadClientSelector); +fUploadClientSelector->SetLabel("Type:"); - aFrame = fFtpSetupBox->Bounds(); - aFrame.InsetBy(kXBuffer,kYBuffer); - aFrame.top += kYBuffer/2; - aFrame.bottom = aFrame.top + kMenuHeight; - aFrame.right = aFrame.left + 160; + BGridLayout *ftpLayout = new BGridLayout(kXBuffer, 0); + ftpLayout->SetInsets(10, 15, 5, 5); + fFtpSetupBox->SetLayout(ftpLayout); - fServerName = new BTextControl(aFrame, "Server", "Server:", fServerSetting->Value(), - new BMessage(msg_server)); + fServerName = new BTextControl("Server", "Server:", + fServerSetting->Value(), new BMessage(msg_server)); fServerName->SetTarget(this); - fServerName->SetDivider(fServerName->Divider() - 30); - fFtpSetupBox->AddChild(fServerName); - aFrame.top = aFrame.bottom + kYBuffer; - aFrame.bottom = aFrame.top + kMenuHeight; - - fLoginId = new BTextControl(aFrame, "Login", "Login:", fLoginSetting->Value(), - new BMessage(msg_login)); + fLoginId = new BTextControl("Login", "Login:", + fLoginSetting->Value(), new BMessage(msg_login)); fLoginId->SetTarget(this); - fLoginId->SetDivider(fLoginId->Divider() - 30); - fFtpSetupBox->AddChild(fLoginId); - aFrame.top = aFrame.bottom + kYBuffer; - aFrame.bottom = aFrame.top + kMenuHeight; - - fPassword = new BTextControl(aFrame, "Password", "Password:", + fPassword = new BTextControl("Password", "Password:", fPasswordSetting->Value(), new BMessage(msg_password)); fPassword->SetTarget(this); - fPassword->SetDivider(fPassword->Divider() - 30); fPassword->TextView()->HideTyping(true); // BeOS HideTyping() seems broken, it empties the text fPassword->SetText(fPasswordSetting->Value()); - fFtpSetupBox->AddChild(fPassword); - aFrame.top = aFrame.bottom + kYBuffer; - aFrame.bottom = aFrame.top + kMenuHeight; - - fDirectory = new BTextControl(aFrame, "Directory", "Directory:", + fDirectory = new BTextControl("Directory", "Directory:", fDirectorySetting->Value(), new BMessage(msg_directory)); fDirectory->SetTarget(this); - fDirectory->SetDivider(fDirectory->Divider() - 30); - fFtpSetupBox->AddChild(fDirectory); - aFrame.top = aFrame.bottom + kYBuffer; - aFrame.bottom = aFrame.top + kMenuHeight; - - fPassiveFtp = new BCheckBox(aFrame, "Passive ftp", "Passive ftp", + fPassiveFtp = new BCheckBox("Passive ftp", "Passive FTP", new BMessage(msg_passiveftp)); fPassiveFtp->SetTarget(this); fPassiveFtp->SetValue(fPassiveFtpSetting->Value()); - fFtpSetupBox->AddChild(fPassiveFtp); - aFrame = theView->Bounds(); - aFrame.top += VIDEO_SIZE_Y + 2 * kYBuffer; - aFrame.left += kXBuffer; - aFrame.right -= kXBuffer; - aFrame.bottom = aFrame.top + kMenuHeight + 2 * kYBuffer; - - fStatusBox = new BBox(aFrame, "Status", B_FOLLOW_ALL, B_WILL_DRAW); - fStatusBox->SetLabel("Status"); - theView->AddChild(fStatusBox); - - aFrame = fStatusBox->Bounds(); - aFrame.InsetBy(kXBuffer, kYBuffer); - - fStatusLine = new BStringView(aFrame, "Status Line", "Waiting" B_UTF8_ELLIPSIS); - fStatusBox->AddChild(fStatusLine); + ftpLayout->AddItem(fUploadClientSelector->CreateLabelLayoutItem(), 0, 0); + ftpLayout->AddItem(fUploadClientSelector->CreateMenuBarLayoutItem(), 1, 0); + ftpLayout->AddItem(fServerName->CreateLabelLayoutItem(), 0, 1); + ftpLayout->AddItem(fServerName->CreateTextViewLayoutItem(), 1, 1); + ftpLayout->AddItem(fLoginId->CreateLabelLayoutItem(), 0, 2); + ftpLayout->AddItem(fLoginId->CreateTextViewLayoutItem(), 1, 2); + ftpLayout->AddItem(fPassword->CreateLabelLayoutItem(), 0, 3); + ftpLayout->AddItem(fPassword->CreateTextViewLayoutItem(), 1, 3); + ftpLayout->AddItem(fDirectory->CreateLabelLayoutItem(), 0, 4); + ftpLayout->AddItem(fDirectory->CreateTextViewLayoutItem(), 1, 4); + ftpLayout->AddView(fPassiveFtp, 0, 5, 2); + + fStatusLine = new BStringView("Status Line", "Waiting" B_UTF8_ELLIPSIS); + + BGroupLayout *groupLayout = new BGroupLayout(B_VERTICAL); + groupLayout->SetInsets(kXBuffer, kYBuffer, kXBuffer, kYBuffer); + + theView->SetLayout(groupLayout); + + theView->AddChild(BSpaceLayoutItem::CreateVerticalStrut(kYBuffer)); + theView->AddChild(BGroupLayoutBuilder(B_HORIZONTAL) + .Add(BSpaceLayoutItem::CreateHorizontalStrut(0.0)) + .Add(fVideoView) + .Add(BSpaceLayoutItem::CreateHorizontalStrut(0.0)) + ); + theView->AddChild(BSpaceLayoutItem::CreateVerticalStrut(kYBuffer)); + theView->AddChild(BGroupLayoutBuilder(B_HORIZONTAL, kXBuffer) + .Add(fCaptureSetupBox) + .Add(fFtpSetupBox) + ); + theView->AddChild(BSpaceLayoutItem::CreateVerticalStrut(kYBuffer)); + theView->AddChild(fStatusLine); } From anevilyak at mail.berlios.de Sat Jan 31 00:49:03 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Sat, 31 Jan 2009 00:49:03 +0100 Subject: [Haiku-commits] r29095 - haiku/trunk/src/kits/tracker Message-ID: <200901302349.n0UNn3PT028033@sheep.berlios.de> Author: anevilyak Date: 2009-01-31 00:49:02 +0100 (Sat, 31 Jan 2009) New Revision: 29095 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29095&view=rev Modified: haiku/trunk/src/kits/tracker/PoseView.cpp Log: Fix another regression preventing moving around icons. Fixes ticket #3393. Modified: haiku/trunk/src/kits/tracker/PoseView.cpp =================================================================== --- haiku/trunk/src/kits/tracker/PoseView.cpp 2009-01-30 22:26:58 UTC (rev 29094) +++ haiku/trunk/src/kits/tracker/PoseView.cpp 2009-01-30 23:49:02 UTC (rev 29095) @@ -4368,11 +4368,6 @@ ASSERT(srcWindow->PoseView()->TargetModel()); - // make sure source and destination folders are different - if (!createLink && (*srcWindow->PoseView()->TargetModel()->NodeRef() - == *destFolder->NodeRef())) - return; - bool createRelativeLink = relativeLink; if (((buttons & B_SECONDARY_MOUSE_BUTTON) || (modifiers() & B_CONTROL_KEY)) && destWindow) { @@ -4401,6 +4396,43 @@ } } + // make sure source and destination folders are different + if (!createLink && !createRelativeLink && (*srcWindow->PoseView()->TargetModel()->NodeRef() + == *destFolder->NodeRef())) { + BPoseView *targetView = srcWindow->PoseView(); + + if (targetView->ViewMode() == kListMode) // can't move in list view + return; + + + bool dropOnGrid = (modifiers() & B_COMMAND_KEY) != 0; + int32 count = targetView->fSelectionList->CountItems(); + for (int32 index = 0; index < count; index++) { + BPose *pose = targetView->fSelectionList->ItemAt(index); + + // remove pose from VSlist before changing location + // so that we "find" the correct pose to remove + // need to do this because bsearch uses top of pose + // to locate pose to remove + targetView->RemoveFromVSList(pose); + + BRect oldBounds(pose->CalcRect(targetView)); + if (dropOnGrid) + loc = targetView->PinToGrid(loc, targetView->fGrid, targetView->fOffset); + + pose->MoveTo(loc, targetView); + + targetView->RemoveFromExtent(oldBounds); + targetView->AddToExtent(pose->CalcRect(targetView)); + + // remove and reinsert pose to keep VSlist sorted + targetView->AddToVSList(pose); + } + + return; + } + + BEntry *destEntry = new BEntry(destFolder->EntryRef()); bool destIsTrash = FSIsTrashDir(destEntry); From anevilyak at mail.berlios.de Sat Jan 31 04:21:24 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Sat, 31 Jan 2009 04:21:24 +0100 Subject: [Haiku-commits] r29096 - haiku/trunk/src/kits/tracker Message-ID: <200901310321.n0V3LO80030075@sheep.berlios.de> Author: anevilyak Date: 2009-01-31 04:21:23 +0100 (Sat, 31 Jan 2009) New Revision: 29096 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29096&view=rev Modified: haiku/trunk/src/kits/tracker/PoseView.cpp Log: This should really fix #3393. Apparently I'm more sleep-deprived than I thought. Modified: haiku/trunk/src/kits/tracker/PoseView.cpp =================================================================== --- haiku/trunk/src/kits/tracker/PoseView.cpp 2009-01-30 23:49:02 UTC (rev 29095) +++ haiku/trunk/src/kits/tracker/PoseView.cpp 2009-01-31 03:21:23 UTC (rev 29096) @@ -4360,7 +4360,7 @@ void BPoseView::MoveSelectionInto(Model *destFolder, BContainerWindow *srcWindow, BContainerWindow *destWindow, uint32 buttons, BPoint loc, bool forceCopy, - bool forceMove, bool createLink, bool relativeLink) + bool forceMove, bool createLink, bool relativeLink, BPoint clickPt, bool dropOnGrid) { AutoLock lock(srcWindow); if (!lock) @@ -4404,8 +4404,7 @@ if (targetView->ViewMode() == kListMode) // can't move in list view return; - - bool dropOnGrid = (modifiers() & B_COMMAND_KEY) != 0; + BPoint delta = loc - clickPt; int32 count = targetView->fSelectionList->CountItems(); for (int32 index = 0; index < count; index++) { BPose *pose = targetView->fSelectionList->ItemAt(index); @@ -4415,19 +4414,19 @@ // need to do this because bsearch uses top of pose // to locate pose to remove targetView->RemoveFromVSList(pose); - + BPoint location (pose->Location() + delta); BRect oldBounds(pose->CalcRect(targetView)); if (dropOnGrid) - loc = targetView->PinToGrid(loc, targetView->fGrid, targetView->fOffset); + location = targetView->PinToGrid(location, targetView->fGrid, targetView->fOffset); - pose->MoveTo(loc, targetView); + pose->MoveTo(location, targetView); - targetView->RemoveFromExtent(oldBounds); - targetView->AddToExtent(pose->CalcRect(targetView)); + targetView->RemoveFromExtent(oldBounds); + targetView->AddToExtent(pose->CalcRect(targetView)); - // remove and reinsert pose to keep VSlist sorted - targetView->AddToVSList(pose); - } + // remove and reinsert pose to keep VSlist sorted + targetView->AddToVSList(pose); + } return; } @@ -4521,7 +4520,9 @@ return; uint32 buttons = (uint32)window->CurrentMessage()->FindInt32("buttons"); - MoveSelectionInto(TargetModel(), srcWindow, window, buttons, dropPt, false); + bool pinToGrid = (modifiers() & B_COMMAND_KEY) != 0; + MoveSelectionInto(TargetModel(), srcWindow, window, buttons, dropPt, + false, false, false, false, clickPt, pinToGrid); } From stippi at mail.berlios.de Sat Jan 31 11:09:14 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Sat, 31 Jan 2009 11:09:14 +0100 Subject: [Haiku-commits] r29097 - haiku/trunk/src/apps/icon-o-matic/import_export/svg Message-ID: <200901311009.n0VA9EjP014666@sheep.berlios.de> Author: stippi Date: 2009-01-31 11:09:14 +0100 (Sat, 31 Jan 2009) New Revision: 29097 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29097&view=rev Modified: haiku/trunk/src/apps/icon-o-matic/import_export/svg/SVGExporter.cpp Log: * Add more properties to the tag, version and XML namespaces. This should improve compatibility of the exported SVG files. Modified: haiku/trunk/src/apps/icon-o-matic/import_export/svg/SVGExporter.cpp =================================================================== --- haiku/trunk/src/apps/icon-o-matic/import_export/svg/SVGExporter.cpp 2009-01-31 03:21:23 UTC (rev 29096) +++ haiku/trunk/src/apps/icon-o-matic/import_export/svg/SVGExporter.cpp 2009-01-31 10:09:14 UTC (rev 29097) @@ -77,9 +77,13 @@ // image size if (ret >= B_OK) { - helper << "\n"; + << " color-interpolation=\"linearRGB\"\n" + << " xmlns:svg=\"http://www.w3.org/2000/svg\"" +// Should be needed when exporting inline images: +// << " xmlns:xlink=\"http://www.w3.org/1999/xlink\"" + << " xmlns=\"http://www.w3.org/2000/svg\">\n"; ret = write_line(stream, helper); } From host.haiku at gmx.de Sat Jan 31 14:18:55 2009 From: host.haiku at gmx.de (Karsten Heimrich) Date: Sat, 31 Jan 2009 14:18:55 +0100 Subject: [Haiku-commits] r29028 - haiku/trunk/src/kits/interface In-Reply-To: <200901252218.n0PMIj60026512@sheep.berlios.de> References: <200901252218.n0PMIj60026512@sheep.berlios.de> Message-ID: <49844FBF.8070808@gmx.de> Hi, korli at BerliOS schrieb: > Author: korli > Date: 2009-01-25 23:18:44 +0100 (Sun, 25 Jan 2009) > New Revision: 29028 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29028&view=rev > > Modified: > haiku/trunk/src/kits/interface/Control.cpp > haiku/trunk/src/kits/interface/TextControl.cpp > Log: > * BTextControl is kept navigable to be handled correctly by BControl::SetEnabled(). MakeFocus() transfers anyway the focus on its textview. > * BControl::SetEnabled() now calls SetFlags(), BTextControl::SetFlags() is then correctly called. > * BControl::SetEnabled() now uses fWantsNav to know if B_NAVIGABLE should be restored > > > //#define TRACE_TEXT_CONTROL > #ifdef TRACE_TEXT_CONTROL > +# include > # include > static int32 sFunctionDepth = -1; > # define CALLED(x...) FunctionTracer _ft("BTextControl", __FUNCTION__, \ > @@ -512,10 +511,7 @@ > if (flags & B_NAVIGABLE) > fText->SetFlags(fText->Flags() | B_NAVIGABLE); > } > - > - // Don't make this one navigable > - flags &= ~B_NAVIGABLE; This change will break SHIFT+TAB out of a text control. Just check FileTypes using backward TAB navigation. Regards, Karsten From julun at mail.berlios.de Sat Jan 31 14:32:57 2009 From: julun at mail.berlios.de (julun at BerliOS) Date: Sat, 31 Jan 2009 14:32:57 +0100 Subject: [Haiku-commits] r29098 - haiku/trunk/src/tests/kits/interface Message-ID: <200901311332.n0VDWv2Y020507@sheep.berlios.de> Author: julun Date: 2009-01-31 14:32:57 +0100 (Sat, 31 Jan 2009) New Revision: 29098 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29098&view=rev Added: haiku/trunk/src/tests/kits/interface/ScrollViewSetBorderTest.cpp Modified: haiku/trunk/src/tests/kits/interface/Jamfile Log: * Add test for BScrollView SetBorder, which exposes some problems using the layout version of that class. (drawing artefacts, wrong scrollbar placement) Modified: haiku/trunk/src/tests/kits/interface/Jamfile =================================================================== --- haiku/trunk/src/tests/kits/interface/Jamfile 2009-01-31 10:09:14 UTC (rev 29097) +++ haiku/trunk/src/tests/kits/interface/Jamfile 2009-01-31 13:32:57 UTC (rev 29098) @@ -47,7 +47,7 @@ RegionInclude.cpp RegionIntersect.cpp RegionOffsetBy.cpp - + : be $(TARGET_LIBSTDC++) ; @@ -141,6 +141,12 @@ : be ; +SimpleTest SetBorderScrollViewTest : + ScrollViewSetBorderTest.cpp + ScrollView.cpp + : be +; + SEARCH on [ FGristFiles ScrollView.cpp CheckBox.cpp ChannelSlider.cpp ChannelControl.cpp Slider.cpp Control.cpp ] = [ FDirName $(HAIKU_TOP) src kits interface ] ; @@ -153,4 +159,3 @@ SubInclude HAIKU_TOP src tests kits interface look ; SubInclude HAIKU_TOP src tests kits interface picture ; SubInclude HAIKU_TOP src tests kits interface pictureprint ; - Added: haiku/trunk/src/tests/kits/interface/ScrollViewSetBorderTest.cpp =================================================================== --- haiku/trunk/src/tests/kits/interface/ScrollViewSetBorderTest.cpp 2009-01-31 10:09:14 UTC (rev 29097) +++ haiku/trunk/src/tests/kits/interface/ScrollViewSetBorderTest.cpp 2009-01-31 13:32:57 UTC (rev 29098) @@ -0,0 +1,113 @@ +#include +#include +#include +#include +#include +#include +#include + + +class Window : public BWindow { +public: + Window() : BWindow(BRect(100, 100, 300, 300), "", B_TITLED_WINDOW, + B_NOT_RESIZABLE | B_NOT_ZOOMABLE | B_ASYNCHRONOUS_CONTROLS | + B_AUTO_UPDATE_SIZE_LIMITS | B_QUIT_ON_WINDOW_CLOSE) + { + BGroupLayout* base = new BGroupLayout(B_HORIZONTAL); + SetLayout(base); + + BView* view = new BView("", B_WILL_DRAW, NULL); + view->SetExplicitMinSize(BSize(B_SIZE_UNSET, 200)); + + fScrollView = new BScrollView("mit", view, B_NAVIGABLE_JUMP, true, + true, B_NO_BORDER); + + BView* view2 = new BView(BRect(0, 0, 200, 200), "", B_FOLLOW_ALL, + B_WILL_DRAW); + + fScrollView2 = new BScrollView("ohne", view2, B_FOLLOW_ALL, + B_NAVIGABLE_JUMP, true, true, B_NO_BORDER); + + BButton* one = new BButton("No Border", new BMessage('nobd')); + BButton* two = new BButton("Plain Border", new BMessage('plbd')); + BButton* three = new BButton("Fancy Border", new BMessage('fcbd')); + + base->AddView(BGroupLayoutBuilder(B_VERTICAL, 5.0) + .Add(fScrollView) + .Add(fScrollView2) + .AddGroup(B_HORIZONTAL, 5.0) + .Add(one) + .Add(two) + .Add(three) + .End() + .SetInsets(10.0, 10.0, 10.0, 10.0)); + + PrintToStream(); + } + + void MessageReceived(BMessage* message) + { + switch(message->what) { + case 'nobd': + fScrollView->SetBorder(B_NO_BORDER); + fScrollView2->SetBorder(B_NO_BORDER); + + PrintToStream(); + break; + + case 'plbd': + fScrollView->SetBorder(B_PLAIN_BORDER); + fScrollView2->SetBorder(B_PLAIN_BORDER); + + PrintToStream(); + break; + + case 'fcbd': + fScrollView->SetBorder(B_FANCY_BORDER); + fScrollView2->SetBorder(B_FANCY_BORDER); + + PrintToStream(); + break; + + default: + BWindow::MessageReceived(message); + break; + } + } + + void PrintToStream() + { + BView* view = fScrollView->Target(); + BView* view2 = fScrollView->Target(); + + view->Bounds().PrintToStream(); + view->Frame().PrintToStream(); + + view2->Bounds().PrintToStream(); + view2->Frame().PrintToStream(); + } + +private: + BScrollView* fScrollView; + BScrollView* fScrollView2; +}; + + +class Application : public BApplication { +public: + Application() : BApplication("application/x-vnd.scrollview") {} + ~Application() {} + + void ReadyToRun() + { + Window* win = new Window(); + win->Show(); + } +}; + + +int main(int argc, char* argv[]) +{ + Application app; + return app.Run(); +} From anevilyak at mail.berlios.de Sat Jan 31 16:38:35 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Sat, 31 Jan 2009 16:38:35 +0100 Subject: [Haiku-commits] r29099 - haiku/trunk/src/kits/tracker Message-ID: <200901311538.n0VFcZdE005335@sheep.berlios.de> Author: anevilyak Date: 2009-01-31 16:38:35 +0100 (Sat, 31 Jan 2009) New Revision: 29099 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29099&view=rev Modified: haiku/trunk/src/kits/tracker/PoseView.h Log: Unbreak build. Modified: haiku/trunk/src/kits/tracker/PoseView.h =================================================================== --- haiku/trunk/src/kits/tracker/PoseView.h 2009-01-31 13:32:57 UTC (rev 29098) +++ haiku/trunk/src/kits/tracker/PoseView.h 2009-01-31 15:38:35 UTC (rev 29099) @@ -332,7 +332,8 @@ bool forceCopy, bool forceMove = false, bool createLink = false, bool relativeLink = false); static void MoveSelectionInto(Model *destFolder, BContainerWindow *srcWindow, BContainerWindow *destWindow, uint32 buttons, BPoint loc, - bool forceCopy, bool forceMove = false, bool createLink = false, bool relativeLink = false); + bool forceCopy, bool forceMove = false, bool createLink = false, bool relativeLink = false, + BPoint clickPt = BPoint(0, 0), bool pinToGrid = false); bool UpdateDropTarget(BPoint, const BMessage *, bool trackingContextMenu); // return true if drop target changed From anevilyak at mail.berlios.de Sat Jan 31 17:04:12 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Sat, 31 Jan 2009 17:04:12 +0100 Subject: [Haiku-commits] r29100 - in haiku/trunk: build/jam src/add-ons/mail_daemon/inbound_protocols/imap src/add-ons/mail_daemon/inbound_protocols/pop3 src/add-ons/mail_daemon/outbound_protocols/smtp Message-ID: <200901311604.n0VG4C4c008235@sheep.berlios.de> Author: anevilyak Date: 2009-01-31 17:04:12 +0100 (Sat, 31 Jan 2009) New Revision: 29100 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29100&view=rev Modified: haiku/trunk/build/jam/OptionalPackages haiku/trunk/src/add-ons/mail_daemon/inbound_protocols/imap/Jamfile haiku/trunk/src/add-ons/mail_daemon/inbound_protocols/pop3/Jamfile haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp/Jamfile Log: Update OpenSSL package to 0.9.8j and relocate it to /boot/common. Thanks to Matt Madia and Scott McCreary for the patches! This closes ticket #2640. Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-01-31 15:38:35 UTC (rev 29099) +++ haiku/trunk/build/jam/OptionalPackages 2009-01-31 16:04:12 UTC (rev 29100) @@ -378,9 +378,9 @@ Echo "No optional package OpenSSL available for $(TARGET_ARCH)" ; } else { local baseURL = http://haiku-files.org/files/optional-packages ; - InstallOptionalHaikuImagePackage openssl-0.9.8g-gcc2-2008-03-28 - : $(baseURL)/openssl-0.9.8g-gcc2-2008-03-28.zip - : home + InstallOptionalHaikuImagePackage openssl-0.9.8j-gcc2-2009-01-28 + : $(baseURL)/openssl-0.9.8j-gcc2-2009-01-28.zip + : ; } } Modified: haiku/trunk/src/add-ons/mail_daemon/inbound_protocols/imap/Jamfile =================================================================== --- haiku/trunk/src/add-ons/mail_daemon/inbound_protocols/imap/Jamfile 2009-01-31 15:38:35 UTC (rev 29099) +++ haiku/trunk/src/add-ons/mail_daemon/inbound_protocols/imap/Jamfile 2009-01-31 16:04:12 UTC (rev 29100) @@ -14,7 +14,7 @@ if $(USE_SSL) { SubDirC++Flags -DUSE_SSL ; if ! $(SSL_DIR) { - sslDir = [ FDirName $(HAIKU_OUTPUT_DIR) cross-ssl config ] ; + sslDir = [ FDirName $(HAIKU_OUTPUT_DIR) cross-ssl common ] ; } else { sslDir = $(SSL_DIR) ; } Modified: haiku/trunk/src/add-ons/mail_daemon/inbound_protocols/pop3/Jamfile =================================================================== --- haiku/trunk/src/add-ons/mail_daemon/inbound_protocols/pop3/Jamfile 2009-01-31 15:38:35 UTC (rev 29099) +++ haiku/trunk/src/add-ons/mail_daemon/inbound_protocols/pop3/Jamfile 2009-01-31 16:04:12 UTC (rev 29100) @@ -16,7 +16,7 @@ if $(USE_SSL) { SubDirC++Flags -DUSE_SSL ; if ! $(SSL_DIR) { - sslDir = [ FDirName $(HAIKU_OUTPUT_DIR) cross-ssl config ] ; + sslDir = [ FDirName $(HAIKU_OUTPUT_DIR) cross-ssl common ] ; } else { sslDir = $(SSL_DIR) ; } Modified: haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp/Jamfile =================================================================== --- haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp/Jamfile 2009-01-31 15:38:35 UTC (rev 29099) +++ haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp/Jamfile 2009-01-31 16:04:12 UTC (rev 29100) @@ -14,7 +14,7 @@ if $(USE_SSL) { SubDirC++Flags -DUSE_SSL ; if ! $(SSL_DIR) { - sslDir = [ FDirName $(HAIKU_OUTPUT_DIR) cross-ssl config ] ; + sslDir = [ FDirName $(HAIKU_OUTPUT_DIR) cross-ssl common ] ; } else { sslDir = $(SSL_DIR) ; } From humdingerb at googlemail.com Sat Jan 31 19:46:44 2009 From: humdingerb at googlemail.com (Humdinger) Date: Sat, 31 Jan 2009 19:46:44 +0100 Subject: [Haiku-commits] r29007 - haiku/trunk/src/apps/terminal In-Reply-To: <200901251129.n0PBTeGJ018646@sheep.berlios.de> References: <200901251129.n0PBTeGJ018646@sheep.berlios.de> Message-ID: <49849C94.8010200@googlemail.com> stippi at BerliOS wrote: > Author: stippi > Date: 2009-01-25 12:29:39 +0100 (Sun, 25 Jan 2009) > New Revision: 29007 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29007&view=rev > > Modified: > haiku/trunk/src/apps/terminal/TermView.cpp > haiku/trunk/src/apps/terminal/TermView.h > Log: > Applied patch by Clemens Zeidler which gives the Terminal a nice context > menu with additional options when dropping files from Tracker into the > Terminal. Thanks a lot, Clemens! Nice enhancement. Although the first context menu item "Insert Path" isn't exactly correct as it inserts path+filename. So, what would be the correct term for that? "Location" perhaps? Not sure... Regards, Humdinger -- --=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=- Deutsche Haiku News @ http://www.haiku-gazette.de From superstippi at gmx.de Sat Jan 31 20:06:55 2009 From: superstippi at gmx.de (Stephan Assmus) Date: Sat, 31 Jan 2009 20:06:55 +0100 Subject: [Haiku-commits] r29007 - haiku/trunk/src/apps/terminal In-Reply-To: <49849C94.8010200@googlemail.com> References: <200901251129.n0PBTeGJ018646@sheep.berlios.de> <49849C94.8010200@googlemail.com> Message-ID: <20090131200655.6400.2@bepc.1233406687.fake> Humdinger wrote: > stippi at BerliOS wrote: > > Author: stippi > > Date: 2009-01-25 12:29:39 +0100 (Sun, 25 Jan 2009) New Revision: 29007 > > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29007&view=rev > > > > Modified: > > haiku/trunk/src/apps/terminal/TermView.cpp > > haiku/trunk/src/apps/terminal/TermView.h > > Log: > > Applied patch by Clemens Zeidler which gives the Terminal a nice > > context menu with additional options when dropping files from Tracker > > into the Terminal. Thanks a lot, Clemens! > > Nice enhancement. > Although the first context menu item "Insert Path" isn't exactly correct > as it inserts path+filename. So, what would be the correct term for that? > "Location" perhaps? Not sure... The "path to the file" includes the file's name. So the name of the menu entry is IMHO correct. Best regards, -Stephan From stippi at mail.berlios.de Sat Jan 31 21:11:35 2009 From: stippi at mail.berlios.de (stippi at BerliOS) Date: Sat, 31 Jan 2009 21:11:35 +0100 Subject: [Haiku-commits] r29101 - haiku/trunk/src/servers/app Message-ID: <200901312011.n0VKBZA8018548@sheep.berlios.de> Author: stippi Date: 2009-01-31 21:11:34 +0100 (Sat, 31 Jan 2009) New Revision: 29101 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29101&view=rev Modified: haiku/trunk/src/servers/app/Window.cpp Log: Exclude any dirty regions from scrolling or copybitting. The previous behavior, which was also the BeOS behavior IIRC, has annoyed me a bit as an application developer. It wasn't possible to avoid display artifacts, if for example scrolling a view which needed to be redrawn at the same time. It sounds strange, but makes perfect sense for the situation I have here. Modified: haiku/trunk/src/servers/app/Window.cpp =================================================================== --- haiku/trunk/src/servers/app/Window.cpp 2009-01-31 16:04:12 UTC (rev 29100) +++ haiku/trunk/src/servers/app/Window.cpp 2009-01-31 20:11:34 UTC (rev 29101) @@ -439,6 +439,7 @@ // is used directly) region->IntersectWith(&VisibleContentRegion()); if (region->CountRects() > 0) { + // Constrain to content region at destination region->OffsetBy(xOffset, yOffset); region->IntersectWith(&fVisibleContentRegion); if (region->CountRects() > 0) { @@ -448,7 +449,16 @@ // the part which we can copy is not dirty newDirty->Exclude(region); - fDrawingEngine->CopyRegion(region, xOffset, yOffset); + BRegion* copyRegion = fRegionPool.GetRegion(*region); + if (copyRegion != NULL) { + copyRegion->Exclude(&fPendingUpdateSession->DirtyRegion()); + copyRegion->Exclude(&fCurrentUpdateSession->DirtyRegion()); + copyRegion->Exclude(&fDirtyRegion); + fDrawingEngine->CopyRegion(copyRegion, xOffset, yOffset); + fRegionPool.Recycle(copyRegion); + } else { + fDrawingEngine->CopyRegion(region, xOffset, yOffset); + } // move along the already dirty regions that are common // with the region that we could copy From humdingerb at googlemail.com Sat Jan 31 22:16:18 2009 From: humdingerb at googlemail.com (Humdinger) Date: Sat, 31 Jan 2009 22:16:18 +0100 Subject: [Haiku-commits] r29007 - haiku/trunk/src/apps/terminal In-Reply-To: <20090131200655.6400.2@bepc.1233406687.fake> References: <200901251129.n0PBTeGJ018646@sheep.berlios.de> <49849C94.8010200@googlemail.com> <20090131200655.6400.2@bepc.1233406687.fake> Message-ID: <4984BFA2.9050404@googlemail.com> Stephan Assmus wrote: > Humdinger wrote: >> Although the first context menu item "Insert Path" isn't exactly correct >> as it inserts path+filename. So, what would be the correct term for that? >> "Location" perhaps? Not sure... > > The "path to the file" includes the file's name. So the name of the menu > entry is IMHO correct. Since I can't think of something better, I guess it's OK. Just wanted to point it out. In the "Get Info" panel, for example, under "Path:" you'll find the path to the folder containing the file. Anyway, it's no biggie, only a bit of a murky definition (on apparently every platform). Regards, Humdinger -- --=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=- Deutsche Haiku News @ http://www.haiku-gazette.de From julun at mail.berlios.de Sat Jan 31 22:21:24 2009 From: julun at mail.berlios.de (julun at BerliOS) Date: Sat, 31 Jan 2009 22:21:24 +0100 Subject: [Haiku-commits] r29102 - haiku/trunk/src/tests/kits/interface Message-ID: <200901312121.n0VLLOUf023224@sheep.berlios.de> Author: julun Date: 2009-01-31 22:21:24 +0100 (Sat, 31 Jan 2009) New Revision: 29102 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29102&view=rev Modified: haiku/trunk/src/tests/kits/interface/ScrollViewSetBorderTest.cpp Log: * fix typo * make the target a bit more visible Modified: haiku/trunk/src/tests/kits/interface/ScrollViewSetBorderTest.cpp =================================================================== --- haiku/trunk/src/tests/kits/interface/ScrollViewSetBorderTest.cpp 2009-01-31 20:11:34 UTC (rev 29101) +++ haiku/trunk/src/tests/kits/interface/ScrollViewSetBorderTest.cpp 2009-01-31 21:21:24 UTC (rev 29102) @@ -17,6 +17,7 @@ SetLayout(base); BView* view = new BView("", B_WILL_DRAW, NULL); + view->SetViewColor(255, 0, 0, 255); view->SetExplicitMinSize(BSize(B_SIZE_UNSET, 200)); fScrollView = new BScrollView("mit", view, B_NAVIGABLE_JUMP, true, @@ -24,6 +25,7 @@ BView* view2 = new BView(BRect(0, 0, 200, 200), "", B_FOLLOW_ALL, B_WILL_DRAW); + view2->SetViewColor(255, 0, 0, 255); fScrollView2 = new BScrollView("ohne", view2, B_FOLLOW_ALL, B_NAVIGABLE_JUMP, true, true, B_NO_BORDER); @@ -78,7 +80,7 @@ void PrintToStream() { BView* view = fScrollView->Target(); - BView* view2 = fScrollView->Target(); + BView* view2 = fScrollView2->Target(); view->Bounds().PrintToStream(); view->Frame().PrintToStream(); From julun at mail.berlios.de Sat Jan 31 22:27:51 2009 From: julun at mail.berlios.de (julun at BerliOS) Date: Sat, 31 Jan 2009 22:27:51 +0100 Subject: [Haiku-commits] r29103 - in haiku/trunk: headers/os/interface src/kits/interface Message-ID: <200901312127.n0VLRpQ3023561@sheep.berlios.de> Author: julun Date: 2009-01-31 22:27:50 +0100 (Sat, 31 Jan 2009) New Revision: 29103 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29103&view=rev Modified: haiku/trunk/headers/os/interface/ScrollView.h haiku/trunk/src/kits/interface/ScrollView.cpp Log: * refactor _Init and DoLayout to share some code * DoLayout did not work as expected, after the call the scrollbars would have an 1px offset inside the target * the target needs to be resized while setting a new border, otherwise it would overlap the border and give some drawing artefacts - I'm still unsure if the behavior change introduced with the layout stuff is nice Modified: haiku/trunk/headers/os/interface/ScrollView.h =================================================================== --- haiku/trunk/headers/os/interface/ScrollView.h 2009-01-31 21:21:24 UTC (rev 29102) +++ haiku/trunk/headers/os/interface/ScrollView.h 2009-01-31 21:27:50 UTC (rev 29103) @@ -92,6 +92,8 @@ BRect _InnerFrame() const; BSize _ComputeSize(BSize targetSize) const; BRect _ComputeFrame(BRect targetRect) const; + void _AlignScrollBars(bool horizontal, bool vertical, + BRect targetFrame); static BRect _ComputeFrame(BRect frame, bool horizontal, bool vertical, border_style border); Modified: haiku/trunk/src/kits/interface/ScrollView.cpp =================================================================== --- haiku/trunk/src/kits/interface/ScrollView.cpp 2009-01-31 21:21:24 UTC (rev 29102) +++ haiku/trunk/src/kits/interface/ScrollView.cpp 2009-01-31 21:27:50 UTC (rev 29103) @@ -115,39 +115,19 @@ } if (horizontal) { - BRect rect = targetFrame; - rect.top = rect.bottom + 1; - rect.bottom = rect.top + B_H_SCROLL_BAR_HEIGHT; - if (fBorder != B_NO_BORDER || vertical) { - // extend scrollbar so that it overlaps one pixel with vertical scrollbar - rect.right++; - } - if (fBorder != B_NO_BORDER) { - // the scrollbar draws part of the surrounding frame on the left - rect.left--; - } - fHorizontalScrollBar = new BScrollBar(rect, "_HSB_", fTarget, 0, 1000, - B_HORIZONTAL); + fHorizontalScrollBar = new BScrollBar(BRect(0, 0, 14, 14), "_HSB_", + fTarget, 0, 1000, B_HORIZONTAL); AddChild(fHorizontalScrollBar); } if (vertical) { - BRect rect = targetFrame; - rect.left = rect.right + 1; - rect.right = rect.left + B_V_SCROLL_BAR_WIDTH; - if (fBorder != B_NO_BORDER || horizontal) { - // extend scrollbar so that it overlaps one pixel with vertical scrollbar - rect.bottom++; - } - if (fBorder != B_NO_BORDER) { - // the scrollbar draws part of the surrounding frame on the left - rect.top--; - } - fVerticalScrollBar = new BScrollBar(rect, "_VSB_", fTarget, 0, 1000, - B_VERTICAL); + fVerticalScrollBar = new BScrollBar(BRect(0, 0, 14, 14), "_VSB_", + fTarget, 0, 1000, B_VERTICAL); AddChild(fVerticalScrollBar); } + _AlignScrollBars(horizontal, vertical, targetFrame); + fPreviousWidth = uint16(Bounds().Width()); fPreviousHeight = uint16(Bounds().Height()); } @@ -283,6 +263,18 @@ if (fBorder == border) return; + if (Flags() & B_SUPPORTS_LAYOUT) { + fBorder = border; + SetFlags(_ModifyFlags(Flags(), border)); + + DoLayout(); + + BRect bounds(Bounds()); + Invalidate(BRect(bounds.LeftTop(), bounds.RightBottom())); + Invalidate(BRect(bounds.LeftBottom(), bounds.RightBottom())); + return; + } + float offset = _BorderSize() - _BorderSize(border); float resize = 2 * offset; @@ -388,7 +380,7 @@ if (target != NULL) { target->MoveTo(_BorderSize(), _BorderSize()); BRect innerFrame = _InnerFrame(); - target->ResizeTo(innerFrame.Width(), innerFrame.Height()); + target->ResizeTo(innerFrame.Width() - 1, innerFrame.Height() - 1); target->TargetedByScrollView(this); AddChild(target, ChildAt(0)); @@ -559,6 +551,49 @@ } +void +BScrollView::_AlignScrollBars(bool horizontal, bool vertical, BRect targetFrame) +{ + if (horizontal) { + BRect rect = targetFrame; + rect.top = rect.bottom + 1; + rect.bottom = rect.top + B_H_SCROLL_BAR_HEIGHT; + if (fBorder != B_NO_BORDER || vertical) { + // extend scrollbar so that it overlaps one pixel with vertical + // scrollbar + rect.right++; + } + + if (fBorder != B_NO_BORDER) { + // the scrollbar draws part of the surrounding frame on the left + rect.left--; + } + + fHorizontalScrollBar->MoveTo(rect.left, rect.top); + fHorizontalScrollBar->ResizeTo(rect.Width(), rect.Height()); + } + + if (vertical) { + BRect rect = targetFrame; + rect.left = rect.right + 1; + rect.right = rect.left + B_V_SCROLL_BAR_WIDTH; + if (fBorder != B_NO_BORDER || horizontal) { + // extend scrollbar so that it overlaps one pixel with vertical + // scrollbar + rect.bottom++; + } + + if (fBorder != B_NO_BORDER) { + // the scrollbar draws part of the surrounding frame on the left + rect.top--; + } + + fVerticalScrollBar->MoveTo(rect.left, rect.top); + fVerticalScrollBar->ResizeTo(rect.Width(), rect.Height()); + } +} + + /*! This static method is used to calculate the frame that the ScrollView will cover depending on the frame of its target and which border style is used. @@ -690,8 +725,7 @@ if (!(Flags() & B_SUPPORTS_LAYOUT)) return; - // If the user set a layout, we let the base class version call its - // hook. + // If the user set a layout, we let the base class version call its hook. if (GetLayout()) { BView::DoLayout(); return; @@ -706,17 +740,8 @@ //BLayoutUtils::AlignInFrame(fTarget, fTarget->Bounds()); } - if (fHorizontalScrollBar != NULL) { - fHorizontalScrollBar->MoveTo(innerFrame.left, innerFrame.bottom); - fHorizontalScrollBar->ResizeTo(innerFrame.Width(), - fHorizontalScrollBar->Bounds().Height()); - } - - if (fVerticalScrollBar != NULL) { - fVerticalScrollBar->MoveTo(innerFrame.right, innerFrame.top); - fVerticalScrollBar->ResizeTo(fVerticalScrollBar->Bounds().Width(), - innerFrame.Height()); - } + _AlignScrollBars(fHorizontalScrollBar != NULL, fVerticalScrollBar != NULL, + innerFrame); } From anevilyak at mail.berlios.de Sat Jan 31 22:48:29 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Sat, 31 Jan 2009 22:48:29 +0100 Subject: [Haiku-commits] r29104 - haiku/trunk/src/kits/tracker Message-ID: <200901312148.n0VLmTrU025366@sheep.berlios.de> Author: anevilyak Date: 2009-01-31 22:48:29 +0100 (Sat, 31 Jan 2009) New Revision: 29104 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29104&view=rev Modified: haiku/trunk/src/kits/tracker/PoseView.cpp Log: Compute the point list for the destination items. This fixes a problem reported by BGA where dropped items in large icon mode weren't being dropped onto the location of the pointer, but rather the first available grid slot. Modified: haiku/trunk/src/kits/tracker/PoseView.cpp =================================================================== --- haiku/trunk/src/kits/tracker/PoseView.cpp 2009-01-31 21:27:50 UTC (rev 29103) +++ haiku/trunk/src/kits/tracker/PoseView.cpp 2009-01-31 21:48:29 UTC (rev 29104) @@ -4470,6 +4470,8 @@ if (okToMove) { PoseList *selectionList = srcWindow->PoseView()->SelectionList(); + BList *pointList = destWindow->PoseView()->GetDropPointList(clickPt, loc, selectionList, + srcWindow->PoseView()->ViewMode() == kListMode, dropOnGrid); BObjectList *srcList = new BObjectList( selectionList->CountItems(), true); CopySelectionListToBListAsEntryRefs(selectionList, srcList); @@ -4494,7 +4496,7 @@ moveMode = kCopySelectionTo; } - FSMoveToFolder(srcList, destEntry, moveMode); + FSMoveToFolder(srcList, destEntry, moveMode, pointList); return; } From umccullough at gmail.com Sat Jan 31 23:37:42 2009 From: umccullough at gmail.com (Urias McCullough) Date: Sat, 31 Jan 2009 14:37:42 -0800 Subject: [Haiku-commits] r29007 - haiku/trunk/src/apps/terminal In-Reply-To: <4984BFA2.9050404@googlemail.com> References: <200901251129.n0PBTeGJ018646@sheep.berlios.de> <49849C94.8010200@googlemail.com> <20090131200655.6400.2@bepc.1233406687.fake> <4984BFA2.9050404@googlemail.com> Message-ID: <1e80d8750901311437r2592faf6x726c857eb85fbdd2@mail.gmail.com> On Sat, Jan 31, 2009 at 1:16 PM, Humdinger wrote: > Stephan Assmus wrote: >> Humdinger wrote: >>> Although the first context menu item "Insert Path" isn't exactly correct >>> as it inserts path+filename. So, what would be the correct term for that? >>> "Location" perhaps? Not sure... >> >> The "path to the file" includes the file's name. So the name of the menu >> entry is IMHO correct. > > Since I can't think of something better, I guess it's OK. > Just wanted to point it out. In the "Get Info" panel, for example, under "Path:" you'll > find the path to the folder containing the file. > Anyway, it's no biggie, only a bit of a murky definition (on apparently every platform). Semantics i suppose. IMO, the filename is part of the "Path" - for example, a symlink to a file is a different path to the same file - even though the filename is different... it's the file contents that you're providing the path to, not just the directory the file resides in. It's like saying the address to someone's house ends on a street without specifying the actually house address :) As a user, I expect the filename to be part of the actual path. From humdingerb at googlemail.com Sat Jan 31 23:45:52 2009 From: humdingerb at googlemail.com (Humdinger) Date: Sat, 31 Jan 2009 23:45:52 +0100 Subject: [Haiku-commits] r29007 - haiku/trunk/src/apps/terminal In-Reply-To: <1e80d8750901311437r2592faf6x726c857eb85fbdd2@mail.gmail.com> References: <200901251129.n0PBTeGJ018646@sheep.berlios.de> <49849C94.8010200@googlemail.com> <20090131200655.6400.2@bepc.1233406687.fake> <4984BFA2.9050404@googlemail.com> <1e80d8750901311437r2592faf6x726c857eb85fbdd2@mail.gmail.com> Message-ID: <4984D4A0.20805@googlemail.com> Urias McCullough wrote: > Semantics i suppose. Sure. > It's like saying the address to someone's house ends on a street > without specifying the actually house address :) From another POV it's like saying the path to your house includes your house. > As a user, I expect the filename to be part of the actual path. Then you'd have to include it in the Get Info panel under "Path:"... :) I don't mind terribly, just wanted to point it out... Regards, Humdinger -- --=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=- Deutsche Haiku News @ http://www.haiku-gazette.de From humdingerb at mail.berlios.de Sat Jan 31 23:55:53 2009 From: humdingerb at mail.berlios.de (humdingerb at mail.berlios.de) Date: Sat, 31 Jan 2009 23:55:53 +0100 Subject: [Haiku-commits] r29105 - in haiku/trunk/docs/userguide/en: . applications Message-ID: <200901312255.n0VMtr0i002469@sheep.berlios.de> Author: humdingerb Date: 2009-01-31 23:55:49 +0100 (Sat, 31 Jan 2009) New Revision: 29105 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=29105&view=rev Added: haiku/trunk/docs/userguide/en/bash-scripting.html Modified: haiku/trunk/docs/userguide/en/applications.html haiku/trunk/docs/userguide/en/applications/apps-codycam.html haiku/trunk/docs/userguide/en/applications/apps-deskcalc.html haiku/trunk/docs/userguide/en/applications/apps-terminal.html haiku/trunk/docs/userguide/en/contents.html haiku/trunk/docs/userguide/en/filesystem-layout.html haiku/trunk/docs/userguide/en/tracker.html Log: * Added input tolerance of DeskCalc, moved Terminal function to end of list * Added CodyCam to list of apps in applications.html * Added aligning tip for icons to tracker.html * Added a few tips for working in Terminal * Added a topic on scripting, linking to online resources * Described function of UserBootscript an shutdown scripts Modified: haiku/trunk/docs/userguide/en/applications/apps-codycam.html =================================================================== --- haiku/trunk/docs/userguide/en/applications/apps-codycam.html 2009-01-31 21:48:29 UTC (rev 29104) +++ haiku/trunk/docs/userguide/en/applications/apps-codycam.html 2009-01-31 22:55:49 UTC (rev 29105) @@ -41,7 +41,7 @@ - +
    Deskbar:Applications
    Location:/boot/beos/apps/CodyCam
    Settings:~/config/settings/???
    Settings:~/config/settings/codycam

    With CodyCam you take pictures at a specified interval from a connected webcam or any other video-in device and save it via FTP.

    Modified: haiku/trunk/docs/userguide/en/applications/apps-deskcalc.html =================================================================== --- haiku/trunk/docs/userguide/en/applications/apps-deskcalc.html 2009-01-31 21:48:29 UTC (rev 29104) +++ haiku/trunk/docs/userguide/en/applications/apps-deskcalc.html 2009-01-31 22:55:49 UTC (rev 29105) @@ -49,22 +49,26 @@
  • DeskCalc understands much more than its simple keypad suggests.
    Besides the operators +, -, *, /, %, ^ and the constants pi and e the following math functions are supported:
    acos, asin, atan, atan2, ceil, cos, cosh, exp, floor, log, log10, pow, sin, sinh, sqrt, tan, tanh.

  • -
  • DeskCalc can be used in Terminal. Just put the expression in double quotes, like this:

    -
    ~> DeskCalc "sin(45)*(cos(12)+3.45)"
    -3.6536554673202546181795194727005826674359494735820338441084848
  • -
  • Right-clicking offers a menu to open a simple options dialog:

    +
  • When it comes to user input, DeskCalc is quite tolerant:
    +/, :, \ are all interpreted as division operators,
    +*, x are valid symbols for multiplication.
    +Also, be aware that . and , are both considered floating points, which means you mustn't use them as 1000 separators.

  • +
  • Right-clicking offers these options:

    Auto Num Lockautomatically activates the number block when launching DeskCalc
    Audio Feedbackplays a sound when showing a result
    Show Keypadhides the keypad when deactivated
  • -
  • You can resize the calculator until it fits your needs and then put it as Replicant onto the Desktop via drag&drop of the symbol in the bottom right corner. Make sure "Show Replicants" is activated in the Deskbar.

  • -
  • The keypad can be colored with a drag&drop from any color well, e.g. from Icon-O-Matic.

  • +
  • You can resize the calculator until it fits your needs and then put it as Replicant onto the Desktop via drag&drop of the symbol in the bottom right corner. Make sure Show Replicants is activated in the Deskbar.

  • +
  • The keypad can be colored with a drag&drop from any color well, e.g. from Icon-O-Matic.

  • You can move up and down in a history of past calculations with the CURSOR-UP/DOWN keys.

  • You can select DeskCalc's contents and drag&drop it into any application. Or you drop it into a Tracker window or onto the Desktop and a text file with that clipping is created there.

    Even better, the reverse is also possible:
    Create clippings as described at various stages of your calculation and go back to them by drag&dropping them back into DeskCalc.
    Or you drag&drop a calculation directly out of an email onto DeskCalc.

  • +
  • DeskCalc can be used in Terminal. Just put the expression in double quotes, like this:

    +
    ~> DeskCalc "sin(45)*(cos(12)+3.45)"
    +3.6536554673202546181795194727005826674359494735820338441084848
Modified: haiku/trunk/docs/userguide/en/applications/apps-terminal.html =================================================================== --- haiku/trunk/docs/userguide/en/applications/apps-terminal.html 2009-01-31 21:48:29 UTC (rev 29104) +++ haiku/trunk/docs/userguide/en/applications/apps-terminal.html 2009-01-31 22:55:49 UTC (rev 29105) @@ -5,7 +5,7 @@ + + + + Bash and Scripting + + + + + +
+

+ Contents +     + Previous: Preferences +

+
+ +
+ +

"Scripting" is the technique of automating procedures by stringing together commands and saving it all as text files, so called "scripts". Every time you run such a script, the commands are processed one after the other just like they would if you entered them into the Terminal by hand.
+Scripts can range from simply executing a few commands in a specific order to sophisticated pieces of code that solve complex tasks.

+ +

The Bash

+

Since scripts rely naturally a lot on the shell they are interpreted by, you should first familiarize yourself with the BASH that's used by Haiku. There are many resources online as it's a widely used shell. One nice document is Johan Jansson's Introduction to bash - a tutorial for bash under BeOS.

+ +

The Scripting Bible

+

After you've learned a few basics about working in the shell, it's time to slowly ease yourself into the world of scripting. Again, you'll find loads of tutorials and reference material online as well as in bookstores. A very nice introduction that's practically tailor-made for Haiku is the online available Scripting Chapter (PDF, 900kb) of Scot Hacker's BeOS Bible.

+ +

Scripts in Haiku

+

In Haiku, the system makes of course also use of scripting. Booting and shutting down are typical scripting procedures. These defined sequences can be augmented by the user with certain user scripts.
+If they don't exist already, you'll have to create the needed files yourself. Otherwise simply add your commands where in the process you want them to be executed.

+ +

The UserBootscript

+

/boot/home/config/boot/UserBootscript will be executed after the system has finished its boot process. For example, you could launch a number of programs that would then be automatically started on every boot up:

+
# Start LaunchBox
+/boot/beos/apps/LaunchBox &
+
+# Start Workspaces Applet
+/boot/beos/apps/Workspaces &
+

Remember to end a command with an "&" to start it as a background process, or the script will halt until that command has finished (in this case: the launched app was closed again).

+ +

The UserShutdownScript

+

/boot/home/config/boot/UserShutdownScript will be executed as the first step in the shutdown process. If the script returns a non-zero exit status, the shutdown is aborted.

+ +

The UserShutdownFinishScript

+

/boot/home/config/boot/UserShutdownFinishScript is executed as the last step in the shutdown process. Note, that most parts of the system have terminated by the time this script is executed.

+ + +
+ +
+

+ Contents +     + Previous: Preferences +

+
+ + + Modified: haiku/trunk/docs/userguide/en/contents.html =================================================================== --- haiku/trunk/docs/userguide/en/contents.html 2009-01-31 21:48:29 UTC (rev 29104) +++ haiku/trunk/docs/userguide/en/contents.html 2009-01-31 22:55:49 UTC (rev 29105) @@ -5,7 +5,7 @@ +
Bash and ScriptingLearn of some interesting scripts in the system and about online resources for working in the shell and scripting.
Modified: haiku/trunk/docs/userguide/en/filesystem-layout.html =================================================================== --- haiku/trunk/docs/userguide/en/filesystem-layout.html 2009-01-31 21:48:29 UTC (rev 29104) +++ haiku/trunk/docs/userguide/en/filesystem-layout.html 2009-01-31 22:55:49 UTC (rev 29105) @@ -89,7 +89,7 @@ Complements the system's /boot/beos/bin/ folder and holds all your command line programs. ~/config/boot/  -This folder holds the UserBootscript which is executed after the system has booted up and the UserShutdownscript which will be executed before the system does all the necessary things to safely shut down. +This folder is the place for User Scripts that are executed before or after the system boots up or shuts down. ~/config/fonts/  Simply copy a TrueType or Postscript font into this folder and its usable right away. Modified: haiku/trunk/docs/userguide/en/tracker.html =================================================================== --- haiku/trunk/docs/userguide/en/tracker.html 2009-01-31 21:48:29 UTC (rev 29104) +++ haiku/trunk/docs/userguide/en/tracker.html 2009-01-31 22:55:49 UTC (rev 29105) @@ -75,6 +75,7 @@
  • Clean Up (ALT+K) - Aligns all icons to an invisible grid. Hold down SHIFT and the menu becomes Clean Up All which additionally sorts all icons alphabetically.
  • Select... (SHIFT+ALT+A) - Select files according to a regular expression.
  • +

    Sometimes you just want to rearrange a few icons without doing a complete Clean Up (ALT+K). In that case, you select these icons and start to drag them to their new location. Before you drop them there, keep ALT pressed until you've released the mouse button. This will align the icons to the invisible grid.

    The rest of the functions are pretty self-explanatory, leaving the Tracker preferences.

    Tracker preferences