From marcusoverhagen at mail.berlios.de Tue Sep 1 00:40:36 2009 From: marcusoverhagen at mail.berlios.de (marcusoverhagen at mail.berlios.de) Date: Tue, 1 Sep 2009 00:40:36 +0200 Subject: [Haiku-commits] r32876 - haiku/trunk/src/add-ons/kernel/generic/ata_adapter Message-ID: <200908312240.n7VMea3P024016@sheep.berlios.de> Author: marcusoverhagen Date: 2009-09-01 00:40:33 +0200 (Tue, 01 Sep 2009) New Revision: 32876 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32876&view=rev Modified: haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c Log: rename PCI-IDE into PCI-ATA Modified: haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c =================================================================== --- haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-08-31 20:39:54 UTC (rev 32875) +++ haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-08-31 22:40:33 UTC (rev 32876) @@ -4,10 +4,7 @@ */ /* - Generic IDE adapter library. - - The correct name would be ATA adapter, but I chose the old name as it's - more widely known. + Generic ATA adapter library. */ #include @@ -325,7 +322,7 @@ uint8 channel_index; status_t res; - TRACE("PCI-IDE: init channel...\n"); + TRACE("PCI-ATA: init channel...\n"); #if 0 if (1 /* debug */){ @@ -336,7 +333,7 @@ sDeviceManager->get_attr_uint8(node, PCI_DEVICE_FUNCTION_ITEM, &function, true); sDeviceManager->get_attr_uint16(node, PCI_DEVICE_VENDOR_ID_ITEM, &vendorID, true); sDeviceManager->get_attr_uint16(node, PCI_DEVICE_DEVICE_ID_ITEM, &deviceID, true); - TRACE("PCI-IDE: bus %3d, device %2d, function %2d: vendor %04x, device %04x\n", + TRACE("PCI-ATA: bus %3d, device %2d, function %2d: vendor %04x, device %04x\n", bus, device, function, vendorID, deviceID); } #endif @@ -360,7 +357,7 @@ goto err; } - TRACE("PCI-IDE: channel index %d\n", channel_index); + TRACE("PCI-ATA: channel index %d\n", channel_index); channel->node = node; channel->pci = controller->pci; @@ -373,7 +370,7 @@ channel->dmaing = false; channel->inthand = inthand; - TRACE("PCI-IDE: bus master base %#x\n", channel->bus_master_base); + TRACE("PCI-ATA: bus master base %#x\n", channel->bus_master_base); // PRDT must be contiguous, dword-aligned and must not cross 64K boundary prdt_size = (ATA_ADAPTER_MAX_SG_COUNT * sizeof( prd_entry ) + (B_PAGE_SIZE - 1)) & ~(B_PAGE_SIZE - 1); @@ -397,7 +394,7 @@ goto err3; } - TRACE("PCI-IDE: init channel done\n"); + TRACE("PCI-ATA: init channel done\n"); // disable interrupts ata_adapter_write_device_control(channel, ATA_DEVICE_CONTROL_BIT3 | ATA_DEVICE_CONTROL_DISABLE_INTS); @@ -496,22 +493,22 @@ command_block_base = 0x1f0; control_block_base = 0x3f6; intnum = 14; - TRACE("PCI-IDE: Controller in legacy mode: cmd %#x, ctrl %#x, irq %d\n", + TRACE("PCI-ATA: Controller in legacy mode: cmd %#x, ctrl %#x, irq %d\n", command_block_base, control_block_base, intnum); } else if (supports_compatibility_mode && channel_index == 1 && (api & ATA_API_PRIMARY_NATIVE) == 0) { command_block_base = 0x170; control_block_base = 0x376; intnum = 15; - TRACE("PCI-IDE: Controller in legacy mode: cmd %#x, ctrl %#x, irq %d\n", + TRACE("PCI-ATA: Controller in legacy mode: cmd %#x, ctrl %#x, irq %d\n", command_block_base, control_block_base, intnum); } else { if (command_block_base == 0 || control_block_base == 0) { - TRACE("PCI-IDE: Command/Control Block base is not configured\n"); + TRACE("PCI-ATA: Command/Control Block base is not configured\n"); return B_ERROR; } if (intnum == 0 || intnum == 0xff) { - TRACE("PCI-IDE: Interrupt is not configured\n"); + TRACE("PCI-ATA: Interrupt is not configured\n"); return B_ERROR; } @@ -519,7 +516,7 @@ // to be aligned at 4 bytes, so only 3f4h/374h can be specified; thus // PCI IDE defines that control block starts at offset 2 control_block_base += 2; - TRACE("PCI-IDE: Controller in native mode: cmd %#x, ctrl %#x, irq %d\n", + TRACE("PCI-ATA: Controller in native mode: cmd %#x, ctrl %#x, irq %d\n", command_block_base, control_block_base, intnum); } @@ -534,7 +531,7 @@ // better were to use a controller lock, but this had to be done in the IDE // bus manager, and I don't see any reason to add extra code for old // simplex controllers - TRACE("PCI-IDE: Simplex controller - disabling DMA of secondary channel\n"); + TRACE("PCI-ATA: Simplex controller - disabling DMA of secondary channel\n"); controller_can_dma = false; } } @@ -579,17 +576,17 @@ #if 0 pcicmd = pci->read_pci_config(node, PCI_command, 2); - TRACE("PCI-IDE: adapter init: pcicmd old setting 0x%04x\n", pcicmd); + TRACE("PCI-ATA: adapter init: pcicmd old setting 0x%04x\n", pcicmd); if ((pcicmd & PCI_command_io) == 0) { - TRACE("PCI-IDE: adapter init: enabling io decoder\n"); + TRACE("PCI-ATA: adapter init: enabling io decoder\n"); pcicmd |= PCI_command_io; } if ((pcicmd & PCI_command_master) == 0) { - TRACE("PCI-IDE: adapter init: enabling bus mastering\n"); + TRACE("PCI-ATA: adapter init: enabling bus mastering\n"); pcicmd |= PCI_command_master; } pci->write_pci_config(node, PCI_command, 2, pcicmd); - TRACE("PCI-IDE: adapter init: pcicmd new setting 0x%04x\n", pci->read_pci_config(node, PCI_command, 2)); + TRACE("PCI-ATA: adapter init: pcicmd new setting 0x%04x\n", pci->read_pci_config(node, PCI_command, 2)); #endif controller->node = node; @@ -684,7 +681,7 @@ SHOW_FLOW0( 3, "" ); if (bus_master_base == 0) { - TRACE("PCI-IDE: Controller detection failed! bus master base not configured\n"); + TRACE("PCI-ATA: Controller detection failed! bus master base not configured\n"); return B_ERROR; } From marcusoverhagen at mail.berlios.de Tue Sep 1 00:43:11 2009 From: marcusoverhagen at mail.berlios.de (marcusoverhagen at mail.berlios.de) Date: Tue, 1 Sep 2009 00:43:11 +0200 Subject: [Haiku-commits] r32877 - haiku/trunk/src/add-ons/kernel/generic/ata_adapter Message-ID: <200908312243.n7VMhBBP026065@sheep.berlios.de> Author: marcusoverhagen Date: 2009-09-01 00:43:10 +0200 (Tue, 01 Sep 2009) New Revision: 32877 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32877&view=rev Modified: haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c Log: Modified bus mastering enable code, but remains disabled because it crashes. Modified: haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c =================================================================== --- haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-08-31 22:40:33 UTC (rev 32876) +++ haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-08-31 22:43:10 UTC (rev 32877) @@ -558,7 +558,8 @@ pci_device *device; ata_adapter_controller_info *controller; uint16 bus_master_base; -// uint16 pcicmd; + uint16 pcicmdOld; + uint16 pcicmdNew; // get device data if (sDeviceManager->get_attr_uint16(node, ATA_ADAPTER_BUS_MASTER_BASE, &bus_master_base, false) != B_OK) @@ -575,18 +576,20 @@ return B_NO_MEMORY; #if 0 - pcicmd = pci->read_pci_config(node, PCI_command, 2); - TRACE("PCI-ATA: adapter init: pcicmd old setting 0x%04x\n", pcicmd); - if ((pcicmd & PCI_command_io) == 0) { + pcicmdOld = pcicmdNew = pci->read_pci_config(node, PCI_command, 2); + if ((pcicmdNew & PCI_command_io) == 0) { TRACE("PCI-ATA: adapter init: enabling io decoder\n"); - pcicmd |= PCI_command_io; + pcicmdNew |= PCI_command_io; } - if ((pcicmd & PCI_command_master) == 0) { + if ((pcicmdNew & PCI_command_master) == 0) { TRACE("PCI-ATA: adapter init: enabling bus mastering\n"); - pcicmd |= PCI_command_master; + pcicmdNew |= PCI_command_master; } - pci->write_pci_config(node, PCI_command, 2, pcicmd); - TRACE("PCI-ATA: adapter init: pcicmd new setting 0x%04x\n", pci->read_pci_config(node, PCI_command, 2)); + if (pcicmdOld != pcicmdNew) { + pci->write_pci_config(node, PCI_command, 2, pcicmdNew); + TRACE("PCI-ATA: adapter init: pcicmd old 0x%04x, new 0x%04x\n", + pcicmdOld, pcicmdNew); + } #endif controller->node = node; From marcusoverhagen at mail.berlios.de Tue Sep 1 01:25:38 2009 From: marcusoverhagen at mail.berlios.de (marcusoverhagen at mail.berlios.de) Date: Tue, 1 Sep 2009 01:25:38 +0200 Subject: [Haiku-commits] r32878 - haiku/trunk/src/add-ons/kernel/generic/ata_adapter Message-ID: <200908312325.n7VNPclC019597@sheep.berlios.de> Author: marcusoverhagen Date: 2009-09-01 01:25:35 +0200 (Tue, 01 Sep 2009) New Revision: 32878 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32878&view=rev Modified: haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c Log: Enable busmaserting ans io decoder if not already done by the BIOS. Modified: haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c =================================================================== --- haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-08-31 22:43:10 UTC (rev 32877) +++ haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-08-31 23:25:35 UTC (rev 32878) @@ -482,6 +482,8 @@ device_node **node, bool supports_compatibility_mode) { uint8 api; + uint16 pcicmdOld; + uint16 pcicmdNew; SHOW_FLOW0( 3, "" ); @@ -520,6 +522,24 @@ command_block_base, control_block_base, intnum); } + + // this should be done in ata_adapter_init_controller but there is crashes + pcicmdOld = pcicmdNew = pci->read_pci_config(pci_device, PCI_command, 2); + if ((pcicmdNew & PCI_command_io) == 0) { + TRACE("PCI-ATA: enabling io decoder\n"); + pcicmdNew |= PCI_command_io; + } + if ((pcicmdNew & PCI_command_master) == 0) { + TRACE("PCI-ATA: enabling bus mastering\n"); + pcicmdNew |= PCI_command_master; + } + if (pcicmdOld != pcicmdNew) { + pci->write_pci_config(pci_device, PCI_command, 2, pcicmdNew); + TRACE("PCI-ATA: pcicmd old 0x%04x, new 0x%04x\n", + pcicmdOld, pcicmdNew); + } + + if (supports_compatibility_mode) { // read status of primary(!) channel to detect simplex uint8 status = pci->read_io_8(pci_device, bus_master_base From mmlr at mail.berlios.de Tue Sep 1 05:37:22 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 1 Sep 2009 05:37:22 +0200 Subject: [Haiku-commits] r32879 - haiku/trunk/src/system/kernel/device_manager Message-ID: <200909010337.n813bM61031049@sheep.berlios.de> Author: mmlr Date: 2009-09-01 05:37:20 +0200 (Tue, 01 Sep 2009) New Revision: 32879 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32879&view=rev Modified: haiku/trunk/src/system/kernel/device_manager/IOScheduler.cpp Log: The block size wasn't initialized, causing usages of an IOScheduler without a DMAResource not to work. Modified: haiku/trunk/src/system/kernel/device_manager/IOScheduler.cpp =================================================================== --- haiku/trunk/src/system/kernel/device_manager/IOScheduler.cpp 2009-08-31 23:25:35 UTC (rev 32878) +++ haiku/trunk/src/system/kernel/device_manager/IOScheduler.cpp 2009-09-01 03:37:20 UTC (rev 32879) @@ -102,6 +102,7 @@ fOperationArray(NULL), fAllocatedRequestOwners(NULL), fRequestOwners(NULL), + fBlockSize(0), fPendingOperations(0) { mutex_init(&fLock, "I/O scheduler"); From mmlr at mail.berlios.de Tue Sep 1 10:46:40 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 1 Sep 2009 10:46:40 +0200 Subject: [Haiku-commits] r32880 - haiku/trunk/src/system/kernel Message-ID: <200909010846.n818keVi011970@sheep.berlios.de> Author: mmlr Date: 2009-09-01 10:46:39 +0200 (Tue, 01 Sep 2009) New Revision: 32880 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32880&view=rev Modified: haiku/trunk/src/system/kernel/heap.cpp Log: Fix errors in maintaining the area list due to assumptions that are only true for the page list but not the area one. Since multiple pages can be allocated at once, even an area that is not at the top of the list can become empty. In such a case the area list would previously have lost entries. Also because we can remove more than one page from any area, not just the top one, we may need to move forward in the list so that it stays ordered by free pages. +alphabranch Modified: haiku/trunk/src/system/kernel/heap.cpp =================================================================== --- haiku/trunk/src/system/kernel/heap.cpp 2009-09-01 03:37:20 UTC (rev 32879) +++ haiku/trunk/src/system/kernel/heap.cpp 2009-09-01 08:46:39 UTC (rev 32880) @@ -1,5 +1,5 @@ /* - * Copyright 2008, Michael Lotz, mmlr at mlotz.ch. + * Copyright 2008-2009, Michael Lotz, mmlr at mlotz.ch. * Distributed under the terms of the MIT License. * * Copyright 2002-2006, Axel D?rfler, axeld at pinc-software.de. @@ -1193,10 +1193,35 @@ if (area->free_page_count == 0) { // the area is now full so we remove it from the area list - heap->areas = area->next; + if (area->prev) + area->prev->next = area->next; if (area->next) - area->next->prev = NULL; + area->next->prev = area->prev; + if (heap->areas == area) + heap->areas = area->next; area->next = area->prev = NULL; + } else { + // we might need to move forward in the area list + if (area->prev && area->prev->free_page_count > area->free_page_count) { + // move ourselfs so the list stays ordered + heap_area *insert = area->prev; + while (insert->prev + && insert->prev->free_page_count > area->free_page_count) + insert = insert->prev; + + if (area->prev) + area->prev->next = area->next; + if (area->next) + area->next->prev = area->prev; + + area->prev = insert->prev; + area->next = insert; + if (area->prev) + area->prev->next = area; + if (heap->areas == insert) + heap->areas = area; + insert->prev = area; + } } } From axeld at mail.berlios.de Tue Sep 1 11:53:43 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Tue, 1 Sep 2009 11:53:43 +0200 Subject: [Haiku-commits] r32881 - haiku/trunk/src/servers/app/drawing Message-ID: <200909010953.n819rhS8023467@sheep.berlios.de> Author: axeld Date: 2009-09-01 11:53:41 +0200 (Tue, 01 Sep 2009) New Revision: 32881 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32881&view=rev Modified: haiku/trunk/src/servers/app/drawing/AccelerantHWInterface.cpp haiku/trunk/src/servers/app/drawing/AccelerantHWInterface.h haiku/trunk/src/servers/app/drawing/BitmapHWInterface.cpp haiku/trunk/src/servers/app/drawing/BitmapHWInterface.h haiku/trunk/src/servers/app/drawing/DWindowHWInterface.cpp haiku/trunk/src/servers/app/drawing/DWindowHWInterface.h haiku/trunk/src/servers/app/drawing/HWInterface.cpp haiku/trunk/src/servers/app/drawing/HWInterface.h haiku/trunk/src/servers/app/drawing/ViewHWInterface.cpp haiku/trunk/src/servers/app/drawing/ViewHWInterface.h Log: * Cleanup, no functional change. +alphabranch Modified: haiku/trunk/src/servers/app/drawing/AccelerantHWInterface.cpp =================================================================== --- haiku/trunk/src/servers/app/drawing/AccelerantHWInterface.cpp 2009-09-01 08:46:39 UTC (rev 32880) +++ haiku/trunk/src/servers/app/drawing/AccelerantHWInterface.cpp 2009-09-01 09:53:41 UTC (rev 32881) @@ -14,6 +14,26 @@ #include "AccelerantHWInterface.h" +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + #include "AccelerantBuffer.h" #include "MallocBuffer.h" #include "Overlay.h" @@ -23,25 +43,7 @@ #include "ServerProtocol.h" #include "SystemPalette.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - using std::nothrow; @@ -56,14 +58,6 @@ #define OFFSCREEN_BACK_BUFFER 0 -// This call updates the frame buffer used by the on-screen KDL -extern "C" status_t _kern_frame_buffer_update(void *baseAddress, - int32 width, int32 height, int32 depth, int32 bytesPerRow); - -// This call retrieves the system's safemode options -extern "C" status_t _kern_get_safemode_option(const char* parameter, - char* buffer, size_t* _size); - const int32 kDefaultParamsCount = 64; @@ -157,7 +151,7 @@ memset(&fSyncToken, 0, sizeof(sync_token)); } -// destructor + AccelerantHWInterface::~AccelerantHWInterface() { delete fBackBuffer; @@ -170,8 +164,7 @@ } -/*! - \brief Opens the first available graphics device and initializes it +/*! \brief Opens the first available graphics device and initializes it \return B_OK on success or an appropriate error message on failure. */ status_t @@ -203,8 +196,7 @@ } -/*! - \brief Opens a graphics device for read-write access +/*! \brief Opens a graphics device for read-write access \param deviceNumber Number identifying which graphics card to open (1 for first card) \return The file descriptor for the opened graphics device @@ -341,12 +333,17 @@ fAccAcquireEngine = (acquire_engine)fAccelerantHook(B_ACQUIRE_ENGINE, NULL); fAccReleaseEngine = (release_engine)fAccelerantHook(B_RELEASE_ENGINE, NULL); fAccSyncToToken = (sync_to_token)fAccelerantHook(B_SYNC_TO_TOKEN, NULL); - fAccGetModeCount = (accelerant_mode_count)fAccelerantHook(B_ACCELERANT_MODE_COUNT, NULL); + fAccGetModeCount + = (accelerant_mode_count)fAccelerantHook(B_ACCELERANT_MODE_COUNT, NULL); fAccGetModeList = (get_mode_list)fAccelerantHook(B_GET_MODE_LIST, NULL); - fAccGetFrameBufferConfig = (get_frame_buffer_config)fAccelerantHook(B_GET_FRAME_BUFFER_CONFIG, NULL); - fAccSetDisplayMode = (set_display_mode)fAccelerantHook(B_SET_DISPLAY_MODE, NULL); - fAccGetDisplayMode = (get_display_mode)fAccelerantHook(B_GET_DISPLAY_MODE, NULL); - fAccGetPixelClockLimits = (get_pixel_clock_limits)fAccelerantHook(B_GET_PIXEL_CLOCK_LIMITS, NULL); + fAccGetFrameBufferConfig = (get_frame_buffer_config)fAccelerantHook( + B_GET_FRAME_BUFFER_CONFIG, NULL); + fAccSetDisplayMode + = (set_display_mode)fAccelerantHook(B_SET_DISPLAY_MODE, NULL); + fAccGetDisplayMode + = (get_display_mode)fAccelerantHook(B_GET_DISPLAY_MODE, NULL); + fAccGetPixelClockLimits = (get_pixel_clock_limits)fAccelerantHook( + B_GET_PIXEL_CLOCK_LIMITS, NULL); if (!fAccAcquireEngine || !fAccReleaseEngine || !fAccGetFrameBufferConfig || !fAccGetModeCount || !fAccGetModeList || !fAccSetDisplayMode @@ -355,43 +352,57 @@ } // optional - fAccGetTimingConstraints = (get_timing_constraints)fAccelerantHook(B_GET_TIMING_CONSTRAINTS, NULL); - fAccProposeDisplayMode = (propose_display_mode)fAccelerantHook(B_PROPOSE_DISPLAY_MODE, NULL); - fAccGetPreferredDisplayMode = (get_preferred_display_mode)fAccelerantHook(B_GET_PREFERRED_DISPLAY_MODE, NULL); - fAccGetMonitorInfo = (get_monitor_info)fAccelerantHook(B_GET_MONITOR_INFO, NULL); + fAccGetTimingConstraints = (get_timing_constraints)fAccelerantHook( + B_GET_TIMING_CONSTRAINTS, NULL); + fAccProposeDisplayMode = (propose_display_mode)fAccelerantHook( + B_PROPOSE_DISPLAY_MODE, NULL); + fAccGetPreferredDisplayMode = (get_preferred_display_mode)fAccelerantHook( + B_GET_PREFERRED_DISPLAY_MODE, NULL); + fAccGetMonitorInfo + = (get_monitor_info)fAccelerantHook(B_GET_MONITOR_INFO, NULL); fAccGetEDIDInfo = (get_edid_info)fAccelerantHook(B_GET_EDID_INFO, NULL); // cursor - fAccSetCursorShape = (set_cursor_shape)fAccelerantHook(B_SET_CURSOR_SHAPE, NULL); + fAccSetCursorShape + = (set_cursor_shape)fAccelerantHook(B_SET_CURSOR_SHAPE, NULL); fAccMoveCursor = (move_cursor)fAccelerantHook(B_MOVE_CURSOR, NULL); fAccShowCursor = (show_cursor)fAccelerantHook(B_SHOW_CURSOR, NULL); // dpms - fAccDPMSCapabilities = (dpms_capabilities)fAccelerantHook(B_DPMS_CAPABILITIES, NULL); + fAccDPMSCapabilities + = (dpms_capabilities)fAccelerantHook(B_DPMS_CAPABILITIES, NULL); fAccDPMSMode = (dpms_mode)fAccelerantHook(B_DPMS_MODE, NULL); fAccSetDPMSMode = (set_dpms_mode)fAccelerantHook(B_SET_DPMS_MODE, NULL); // overlay fAccOverlayCount = (overlay_count)fAccelerantHook(B_OVERLAY_COUNT, NULL); - fAccOverlaySupportedSpaces = (overlay_supported_spaces)fAccelerantHook(B_OVERLAY_SUPPORTED_SPACES, NULL); - fAccOverlaySupportedFeatures = (overlay_supported_features)fAccelerantHook(B_OVERLAY_SUPPORTED_FEATURES, NULL); - fAccAllocateOverlayBuffer = (allocate_overlay_buffer)fAccelerantHook(B_ALLOCATE_OVERLAY_BUFFER, NULL); - fAccReleaseOverlayBuffer = (release_overlay_buffer)fAccelerantHook(B_RELEASE_OVERLAY_BUFFER, NULL); - fAccGetOverlayConstraints = (get_overlay_constraints)fAccelerantHook(B_GET_OVERLAY_CONSTRAINTS, NULL); - fAccAllocateOverlay = (allocate_overlay)fAccelerantHook(B_ALLOCATE_OVERLAY, NULL); - fAccReleaseOverlay = (release_overlay)fAccelerantHook(B_RELEASE_OVERLAY, NULL); - fAccConfigureOverlay = (configure_overlay)fAccelerantHook(B_CONFIGURE_OVERLAY, NULL); + fAccOverlaySupportedSpaces = (overlay_supported_spaces)fAccelerantHook( + B_OVERLAY_SUPPORTED_SPACES, NULL); + fAccOverlaySupportedFeatures = (overlay_supported_features)fAccelerantHook( + B_OVERLAY_SUPPORTED_FEATURES, NULL); + fAccAllocateOverlayBuffer = (allocate_overlay_buffer)fAccelerantHook( + B_ALLOCATE_OVERLAY_BUFFER, NULL); + fAccReleaseOverlayBuffer = (release_overlay_buffer)fAccelerantHook( + B_RELEASE_OVERLAY_BUFFER, NULL); + fAccGetOverlayConstraints = (get_overlay_constraints)fAccelerantHook( + B_GET_OVERLAY_CONSTRAINTS, NULL); + fAccAllocateOverlay + = (allocate_overlay)fAccelerantHook(B_ALLOCATE_OVERLAY, NULL); + fAccReleaseOverlay + = (release_overlay)fAccelerantHook(B_RELEASE_OVERLAY, NULL); + fAccConfigureOverlay + = (configure_overlay)fAccelerantHook(B_CONFIGURE_OVERLAY, NULL); return B_OK; } -// Shutdown + status_t AccelerantHWInterface::Shutdown() { if (fAccelerantHook) { - uninit_accelerant UninitAccelerant = (uninit_accelerant) - fAccelerantHook(B_UNINIT_ACCELERANT, NULL); + uninit_accelerant UninitAccelerant + = (uninit_accelerant)fAccelerantHook(B_UNINIT_ACCELERANT, NULL); if (UninitAccelerant) UninitAccelerant(); } @@ -424,11 +435,14 @@ // compute some random equality score // TODO: check if these scores make sense - int32 diff = 1000 * abs(mode.timing.h_display - compareMode.timing.h_display) + int32 diff + = 1000 * abs(mode.timing.h_display - compareMode.timing.h_display) + 1000 * abs(mode.timing.v_display - compareMode.timing.v_display) + abs(mode.timing.h_total * mode.timing.v_total - - compareMode.timing.h_total * compareMode.timing.v_total) / 100 - + abs(mode.timing.pixel_clock - compareMode.timing.pixel_clock) / 100 + - compareMode.timing.h_total * compareMode.timing.v_total) + / 100 + + abs(mode.timing.pixel_clock - compareMode.timing.pixel_clock) + / 100 + (int32)(500 * fabs(aspectRatio - compareAspectRatio)) + 100 * abs(mode.space - compareMode.space); @@ -449,8 +463,7 @@ } -/*! - This method is used for the initial mode set only - because that one +/*! This method is used for the initial mode set only - because that one should really not fail. Basically we try to set all modes as found in the mode list the driver returned, but we start with the one that best fits the originally @@ -594,7 +607,7 @@ if (fDisplayMode.space == B_RGB15) depth = 15; - _kern_frame_buffer_update(fFrameBufferConfig.frame_buffer, + _kern_frame_buffer_update((addr_t)fFrameBufferConfig.frame_buffer, fFrontBuffer->Width(), fFrontBuffer->Height(), depth, fFrameBufferConfig.bytes_per_row); #endif @@ -683,7 +696,7 @@ void -AccelerantHWInterface::GetMode(display_mode *mode) +AccelerantHWInterface::GetMode(display_mode* mode) { if (mode && LockParallelAccess()) { *mode = fDisplayMode; @@ -728,7 +741,7 @@ status_t -AccelerantHWInterface::GetDeviceInfo(accelerant_device_info *info) +AccelerantHWInterface::GetDeviceInfo(accelerant_device_info* info) { get_accelerant_device_info GetAccelerantDeviceInfo = (get_accelerant_device_info)fAccelerantHook( @@ -751,7 +764,7 @@ status_t -AccelerantHWInterface::GetModeList(display_mode** _modes, uint32 *_count) +AccelerantHWInterface::GetModeList(display_mode** _modes, uint32* _count) { AutoReadLocker _(this); @@ -778,41 +791,42 @@ status_t -AccelerantHWInterface::GetPixelClockLimits(display_mode *mode, uint32 *low, - uint32 *high) +AccelerantHWInterface::GetPixelClockLimits(display_mode *mode, uint32* _low, + uint32* _high) { - AutoReadLocker _(this); - - if (!mode || !low || !high) + if (mode == NULL || _low == NULL || _high == NULL) return B_BAD_VALUE; - return fAccGetPixelClockLimits(mode, low, high); + AutoReadLocker _(this); + return fAccGetPixelClockLimits(mode, _low, _high); } status_t -AccelerantHWInterface::GetTimingConstraints(display_timing_constraints *dtc) +AccelerantHWInterface::GetTimingConstraints( + display_timing_constraints* constraints) { + if (constraints == NULL) + return B_BAD_VALUE; + AutoReadLocker _(this); - if (!dtc) - return B_BAD_VALUE; - if (fAccGetTimingConstraints) - return fAccGetTimingConstraints(dtc); + return fAccGetTimingConstraints(constraints); return B_UNSUPPORTED; } status_t -AccelerantHWInterface::ProposeMode(display_mode *candidate, - const display_mode *_low, const display_mode *_high) +AccelerantHWInterface::ProposeMode(display_mode* candidate, + const display_mode* _low, const display_mode* _high) { + if (candidate == NULL || _low == NULL || _high == NULL) + return B_BAD_VALUE; + AutoReadLocker _(this); - if (candidate == NULL || _low == NULL || _high == NULL) - return B_BAD_VALUE; if (fAccProposeDisplayMode == NULL) return B_UNSUPPORTED; @@ -1022,7 +1036,7 @@ status_t -AccelerantHWInterface::SetDPMSMode(const uint32 &state) +AccelerantHWInterface::SetDPMSMode(uint32 state) { AutoWriteLocker _(this); @@ -1032,7 +1046,7 @@ return fAccSetDPMSMode(state); } -// DPMSMode + uint32 AccelerantHWInterface::DPMSMode() { @@ -1044,7 +1058,7 @@ return fAccDPMSMode(); } -// DPMSCapabilities + uint32 AccelerantHWInterface::DPMSCapabilities() { @@ -1058,7 +1072,7 @@ status_t -AccelerantHWInterface::GetAccelerantPath(BString &string) +AccelerantHWInterface::GetAccelerantPath(BString& string) { image_info info; status_t status = get_image_info(fAccelerantImage, &info); @@ -1069,7 +1083,7 @@ status_t -AccelerantHWInterface::GetDriverPath(BString &string) +AccelerantHWInterface::GetDriverPath(BString& string) { // TODO: this currently assumes that the accelerant's clone info // is always the path name of its driver (that's the case for @@ -1082,7 +1096,7 @@ if (getCloneInfo == NULL) return B_NOT_SUPPORTED; - getCloneInfo((void *)path); + getCloneInfo((void*)path); string.SetTo(path); return B_OK; } @@ -1330,7 +1344,7 @@ void -AccelerantHWInterface::MoveCursorTo(const float& x, const float& y) +AccelerantHWInterface::MoveCursorTo(float x, float y) { HWInterface::MoveCursorTo(x, y); // if (LockExclusiveAccess()) { @@ -1343,15 +1357,14 @@ // #pragma mark - buffer access - -RenderingBuffer * +RenderingBuffer* AccelerantHWInterface::FrontBuffer() const { return fFrontBuffer; } -RenderingBuffer * +RenderingBuffer* AccelerantHWInterface::BackBuffer() const { return fBackBuffer; Modified: haiku/trunk/src/servers/app/drawing/AccelerantHWInterface.h =================================================================== --- haiku/trunk/src/servers/app/drawing/AccelerantHWInterface.h 2009-09-01 08:46:39 UTC (rev 32880) +++ haiku/trunk/src/servers/app/drawing/AccelerantHWInterface.h 2009-09-01 09:53:41 UTC (rev 32881) @@ -1,5 +1,5 @@ /* - * Copyright 2005-2008, Haiku. + * Copyright 2005-2009, Haiku. * Distributed under the terms of the MIT License. * * Authors: @@ -27,43 +27,44 @@ virtual status_t Initialize(); virtual status_t Shutdown(); - virtual status_t SetMode(const display_mode &mode); - virtual void GetMode(display_mode *mode); + virtual status_t SetMode(const display_mode& mode); + virtual void GetMode(display_mode* mode); - virtual status_t GetDeviceInfo(accelerant_device_info *info); - virtual status_t GetFrameBufferConfig(frame_buffer_config& config); + virtual status_t GetDeviceInfo(accelerant_device_info* info); + virtual status_t GetFrameBufferConfig( + frame_buffer_config& config); - virtual status_t GetModeList(display_mode **mode_list, - uint32 *count); - virtual status_t GetPixelClockLimits(display_mode *mode, - uint32 *low, uint32 *high); - virtual status_t GetTimingConstraints(display_timing_constraints *dtc); - virtual status_t ProposeMode(display_mode *candidate, - const display_mode *low, - const display_mode *high); + virtual status_t GetModeList(display_mode** _modeList, + uint32* _count); + virtual status_t GetPixelClockLimits(display_mode* mode, + uint32* _low, uint32* _high); + virtual status_t GetTimingConstraints(display_timing_constraints* + constraints); + virtual status_t ProposeMode(display_mode* candidate, + const display_mode* low, + const display_mode* high); virtual status_t GetPreferredMode(display_mode* mode); virtual status_t GetMonitorInfo(monitor_info* info); virtual sem_id RetraceSemaphore(); - virtual status_t WaitForRetrace(bigtime_t timeout = B_INFINITE_TIMEOUT); + virtual status_t WaitForRetrace( + bigtime_t timeout = B_INFINITE_TIMEOUT); - virtual status_t SetDPMSMode(const uint32 &state); + virtual status_t SetDPMSMode(uint32 state); virtual uint32 DPMSMode(); virtual uint32 DPMSCapabilities(); - virtual status_t GetAccelerantPath(BString &path); - virtual status_t GetDriverPath(BString &path); + virtual status_t GetAccelerantPath(BString& path); + virtual status_t GetDriverPath(BString& path); // query for available hardware accleration virtual uint32 AvailableHWAcceleration() const; // accelerated drawing virtual void CopyRegion(const clipping_rect* sortedRectList, - uint32 count, - int32 xOffset, int32 yOffset); + uint32 count, int32 xOffset, int32 yOffset); virtual void FillRegion(/*const*/ BRegion& region, - const rgb_color& color, - bool autoSync); + const rgb_color& color, bool autoSync); virtual void InvertRegion(/*const*/ BRegion& region); virtual void Sync(); @@ -86,8 +87,7 @@ // cursor handling virtual void SetCursor(ServerCursor* cursor); virtual void SetCursorVisible(bool visible); - virtual void MoveCursorTo(const float& x, - const float& y); + virtual void MoveCursorTo(float x, float y); // frame buffer access virtual RenderingBuffer* FrontBuffer() const; @@ -100,86 +100,87 @@ virtual void _DrawCursor(IntRect area) const; private: - int _OpenGraphicsDevice(int deviceNumber); - status_t _OpenAccelerant(int device); - status_t _SetupDefaultHooks(); - status_t _UpdateModeList(); - status_t _UpdateFrameBufferConfig(); - void _RegionToRectParams(/*const*/ BRegion* region, + int _OpenGraphicsDevice(int deviceNumber); + status_t _OpenAccelerant(int device); + status_t _SetupDefaultHooks(); + status_t _UpdateModeList(); + status_t _UpdateFrameBufferConfig(); + void _RegionToRectParams(/*const*/ BRegion* region, uint32* count) const; - void _CopyRegion(const clipping_rect* sortedRectList, + void _CopyRegion(const clipping_rect* sortedRectList, uint32 count, int32 xOffset, int32 yOffset, bool inBackBuffer); - uint32 _NativeColor(const rgb_color& color) const; - status_t _FindBestMode(const display_mode& compareMode, + uint32 _NativeColor(const rgb_color& color) const; + status_t _FindBestMode(const display_mode& compareMode, float compareAspectRatio, display_mode& modeFound, int32 *_diff = NULL) const; - status_t _SetFallbackMode(display_mode& mode) const; - void _SetSystemPalette(); - void _SetGrayscalePalette(); + status_t _SetFallbackMode(display_mode& mode) const; + void _SetSystemPalette(); + void _SetGrayscalePalette(); - int fCardFD; - image_id fAccelerantImage; - GetAccelerantHook fAccelerantHook; - engine_token *fEngineToken; - sync_token fSyncToken; +private: + int fCardFD; + image_id fAccelerantImage; + GetAccelerantHook fAccelerantHook; + engine_token* fEngineToken; + sync_token fSyncToken; - // required hooks - guaranteed to be valid - acquire_engine fAccAcquireEngine; - release_engine fAccReleaseEngine; - sync_to_token fAccSyncToToken; - accelerant_mode_count fAccGetModeCount; - get_mode_list fAccGetModeList; - get_frame_buffer_config fAccGetFrameBufferConfig; - set_display_mode fAccSetDisplayMode; - get_display_mode fAccGetDisplayMode; - get_pixel_clock_limits fAccGetPixelClockLimits; + // required hooks - guaranteed to be valid + acquire_engine fAccAcquireEngine; + release_engine fAccReleaseEngine; + sync_to_token fAccSyncToToken; + accelerant_mode_count fAccGetModeCount; + get_mode_list fAccGetModeList; + get_frame_buffer_config fAccGetFrameBufferConfig; + set_display_mode fAccSetDisplayMode; + get_display_mode fAccGetDisplayMode; + get_pixel_clock_limits fAccGetPixelClockLimits; - // optional accelerant hooks - get_timing_constraints fAccGetTimingConstraints; - propose_display_mode fAccProposeDisplayMode; - get_preferred_display_mode fAccGetPreferredDisplayMode; - get_monitor_info fAccGetMonitorInfo; - get_edid_info fAccGetEDIDInfo; - fill_rectangle fAccFillRect; - invert_rectangle fAccInvertRect; - screen_to_screen_blit fAccScreenBlit; - set_cursor_shape fAccSetCursorShape; - move_cursor fAccMoveCursor; - show_cursor fAccShowCursor; - - // dpms hooks - dpms_capabilities fAccDPMSCapabilities; - dpms_mode fAccDPMSMode; - set_dpms_mode fAccSetDPMSMode; + // optional accelerant hooks + get_timing_constraints fAccGetTimingConstraints; + propose_display_mode fAccProposeDisplayMode; + get_preferred_display_mode fAccGetPreferredDisplayMode; + get_monitor_info fAccGetMonitorInfo; + get_edid_info fAccGetEDIDInfo; + fill_rectangle fAccFillRect; + invert_rectangle fAccInvertRect; + screen_to_screen_blit fAccScreenBlit; + set_cursor_shape fAccSetCursorShape; + move_cursor fAccMoveCursor; + show_cursor fAccShowCursor; - // overlay hooks - overlay_count fAccOverlayCount; - overlay_supported_spaces fAccOverlaySupportedSpaces; - overlay_supported_features fAccOverlaySupportedFeatures; - allocate_overlay_buffer fAccAllocateOverlayBuffer; - release_overlay_buffer fAccReleaseOverlayBuffer; - get_overlay_constraints fAccGetOverlayConstraints; - allocate_overlay fAccAllocateOverlay; - release_overlay fAccReleaseOverlay; - configure_overlay fAccConfigureOverlay; + // dpms hooks + dpms_capabilities fAccDPMSCapabilities; + dpms_mode fAccDPMSMode; + set_dpms_mode fAccSetDPMSMode; - frame_buffer_config fFrameBufferConfig; - int fModeCount; - display_mode* fModeList; + // overlay hooks + overlay_count fAccOverlayCount; + overlay_supported_spaces fAccOverlaySupportedSpaces; + overlay_supported_features fAccOverlaySupportedFeatures; + allocate_overlay_buffer fAccAllocateOverlayBuffer; + release_overlay_buffer fAccReleaseOverlayBuffer; + get_overlay_constraints fAccGetOverlayConstraints; + allocate_overlay fAccAllocateOverlay; + release_overlay fAccReleaseOverlay; + configure_overlay fAccConfigureOverlay; - RenderingBuffer* fBackBuffer; - AccelerantBuffer* fFrontBuffer; - bool fOffscreenBackBuffer; + frame_buffer_config fFrameBufferConfig; + int fModeCount; + display_mode* fModeList; - display_mode fDisplayMode; - bool fInitialModeSwitch; + RenderingBuffer* fBackBuffer; + AccelerantBuffer* fFrontBuffer; + bool fOffscreenBackBuffer; -mutable fill_rect_params* fRectParams; -mutable uint32 fRectParamsCount; -mutable blit_params* fBlitParams; -mutable uint32 fBlitParamsCount; + display_mode fDisplayMode; + bool fInitialModeSwitch; + + mutable fill_rect_params* fRectParams; + mutable uint32 fRectParamsCount; + mutable blit_params* fBlitParams; + mutable uint32 fBlitParamsCount; }; #endif // ACCELERANT_HW_INTERFACE_H Modified: haiku/trunk/src/servers/app/drawing/BitmapHWInterface.cpp =================================================================== --- haiku/trunk/src/servers/app/drawing/BitmapHWInterface.cpp 2009-09-01 08:46:39 UTC (rev 32880) +++ haiku/trunk/src/servers/app/drawing/BitmapHWInterface.cpp 2009-09-01 09:53:41 UTC (rev 32881) @@ -1,5 +1,5 @@ /* - * Copyright 2002-2005, Haiku. + * Copyright 2002-2009, Haiku. * Distributed under the terms of the MIT License. * * Authors: @@ -23,9 +23,10 @@ BitmapHWInterface::BitmapHWInterface(ServerBitmap* bitmap) - : HWInterface(false, false), - fBackBuffer(NULL), - fFrontBuffer(new(nothrow) BitmapBuffer(bitmap)) + : + HWInterface(false, false), + fBackBuffer(NULL), + fFrontBuffer(new(nothrow) BitmapBuffer(bitmap)) { } @@ -54,8 +55,7 @@ if (fFrontBuffer->ColorSpace() != B_RGB32 && fFrontBuffer->ColorSpace() != B_RGBA32) { BBitmap* backBitmap = new BBitmap(fFrontBuffer->Bounds(), - B_BITMAP_NO_SERVER_LINK, - B_RGBA32); + B_BITMAP_NO_SERVER_LINK, B_RGBA32); fBackBuffer = new BBitmapBuffer(backBitmap); ret = fBackBuffer->InitCheck(); @@ -66,10 +66,8 @@ // import the current contents of the bitmap // into the back bitmap backBitmap->ImportBits(fFrontBuffer->Bits(), - fFrontBuffer->BitsLength(), - fFrontBuffer->BytesPerRow(), - 0, - fFrontBuffer->ColorSpace()); + fFrontBuffer->BitsLength(), fFrontBuffer->BytesPerRow(), 0, + fFrontBuffer->ColorSpace()); } } @@ -85,23 +83,22 @@ status_t -BitmapHWInterface::SetMode(const display_mode &mode) +BitmapHWInterface::SetMode(const display_mode& mode) { return B_UNSUPPORTED; } void -BitmapHWInterface::GetMode(display_mode *mode) +BitmapHWInterface::GetMode(display_mode* mode) { - if (mode) { + if (mode != NULL) memset(mode, 0, sizeof(display_mode)); - } } status_t -BitmapHWInterface::GetDeviceInfo(accelerant_device_info *info) +BitmapHWInterface::GetDeviceInfo(accelerant_device_info* info) { return B_UNSUPPORTED; } @@ -120,77 +117,79 @@ return B_UNSUPPORTED; } -// GetPixelClockLimits + status_t -BitmapHWInterface::GetPixelClockLimits(display_mode *mode, uint32 *low, uint32 *high) +BitmapHWInterface::GetPixelClockLimits(display_mode* mode, uint32* low, + uint32* high) { return B_UNSUPPORTED; } -// GetPixelClockLimits + status_t -BitmapHWInterface::GetTimingConstraints(display_timing_constraints *dtc) +BitmapHWInterface::GetTimingConstraints(display_timing_constraints* constraints) { return B_UNSUPPORTED; } -// ProposeMode + status_t -BitmapHWInterface::ProposeMode(display_mode *candidate, const display_mode *low, const display_mode *high) +BitmapHWInterface::ProposeMode(display_mode* candidate, const display_mode* low, + const display_mode* high) { return B_UNSUPPORTED; } -// RetraceSemaphore + sem_id BitmapHWInterface::RetraceSemaphore() { return B_ERROR; } -// WaitForRetrace + status_t BitmapHWInterface::WaitForRetrace(bigtime_t timeout) { return B_UNSUPPORTED; } -// SetDPMSMode + status_t -BitmapHWInterface::SetDPMSMode(const uint32 &state) +BitmapHWInterface::SetDPMSMode(uint32 state) { return B_UNSUPPORTED; } -// DPMSMode + uint32 BitmapHWInterface::DPMSMode() { return 0; } -// DPMSCapabilities + uint32 BitmapHWInterface::DPMSCapabilities() { return 0; } -// FrontBuffer -RenderingBuffer * + +RenderingBuffer* BitmapHWInterface::FrontBuffer() const { return fFrontBuffer; } -// BackBuffer -RenderingBuffer * + +RenderingBuffer* BitmapHWInterface::BackBuffer() const { return fBackBuffer; } -// IsDoubleBuffered + bool BitmapHWInterface::IsDoubleBuffered() const { @@ -200,5 +199,3 @@ return HWInterface::IsDoubleBuffered(); } - - Modified: haiku/trunk/src/servers/app/drawing/BitmapHWInterface.h =================================================================== --- haiku/trunk/src/servers/app/drawing/BitmapHWInterface.h 2009-09-01 08:46:39 UTC (rev 32880) +++ haiku/trunk/src/servers/app/drawing/BitmapHWInterface.h 2009-09-01 09:53:41 UTC (rev 32881) @@ -1,5 +1,5 @@ /* - * Copyright 2005, Haiku. + * Copyright 2005-2009, Haiku. * Distributed under the terms of the MIT License. * * Authors: @@ -18,7 +18,7 @@ class BitmapHWInterface : public HWInterface { - public: +public: BitmapHWInterface(ServerBitmap* bitmap); virtual ~BitmapHWInterface(); @@ -26,25 +26,28 @@ virtual status_t Shutdown(); // overwrite all the meaningless functions with empty code - virtual status_t SetMode(const display_mode &mode); - virtual void GetMode(display_mode *mode); - - virtual status_t GetDeviceInfo(accelerant_device_info *info); - virtual status_t GetFrameBufferConfig(frame_buffer_config& config); + virtual status_t SetMode(const display_mode& mode); + virtual void GetMode(display_mode* mode); - virtual status_t GetModeList(display_mode **mode_list, - uint32 *count); - virtual status_t GetPixelClockLimits(display_mode *mode, - uint32 *low, uint32 *high); - virtual status_t GetTimingConstraints(display_timing_constraints *dtc); - virtual status_t ProposeMode(display_mode *candidate, - const display_mode *low, - const display_mode *high); - + virtual status_t GetDeviceInfo(accelerant_device_info* info); + virtual status_t GetFrameBufferConfig( + frame_buffer_config& config); + + virtual status_t GetModeList(display_mode** _modeList, + uint32* _count); + virtual status_t GetPixelClockLimits(display_mode* mode, + uint32* _low, uint32* _high); + virtual status_t GetTimingConstraints(display_timing_constraints* + constraints); + virtual status_t ProposeMode(display_mode* candidate, + const display_mode* low, + const display_mode* high); + virtual sem_id RetraceSemaphore(); - virtual status_t WaitForRetrace(bigtime_t timeout = B_INFINITE_TIMEOUT); - - virtual status_t SetDPMSMode(const uint32 &state); + virtual status_t WaitForRetrace( + bigtime_t timeout = B_INFINITE_TIMEOUT); + + virtual status_t SetDPMSMode(uint32 state); virtual uint32 DPMSMode(); virtual uint32 DPMSCapabilities(); @@ -54,8 +57,8 @@ virtual bool IsDoubleBuffered() const; private: - BBitmapBuffer* fBackBuffer; - BitmapBuffer* fFrontBuffer; + BBitmapBuffer* fBackBuffer; + BitmapBuffer* fFrontBuffer; }; #endif // BITMAP_HW_INTERFACE_H Modified: haiku/trunk/src/servers/app/drawing/DWindowHWInterface.cpp =================================================================== --- haiku/trunk/src/servers/app/drawing/DWindowHWInterface.cpp 2009-09-01 08:46:39 UTC (rev 32880) +++ haiku/trunk/src/servers/app/drawing/DWindowHWInterface.cpp 2009-09-01 09:53:41 UTC (rev 32881) @@ -1,16 +1,20 @@ /* - * Copyright 2001-2005, Haiku. + * Copyright 2001-2009, Haiku. * Distributed under the terms of the MIT License. * * Authors: * DarkWyrm - * Michael Lotz -* Stephan A?mus + * Michael Lotz + * Stephan A?mus */ -/** BView/BDirectWindow/Accelerant combination HWInterface - implementation */ +/*! BView/BDirectWindow/Accelerant combination HWInterface implementation +*/ + + +#include "DWindowHWInterface.h" + #include #include #include @@ -45,7 +49,6 @@ #include "ServerCursor.h" #include "UpdateQueue.h" -#include "DWindowHWInterface.h" #ifdef DEBUG_DRIVER_MODULE # include @@ -54,13 +57,14 @@ # define STRACE(x) ; #endif + const unsigned char kEmptyCursor[] = { 16, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; -// run_app_thread + static int32 run_app_thread(void* cookie) { @@ -74,8 +78,9 @@ //#define INPUTSERVER_TEST_MODE 1 + class DView : public BView { - public: +public: DView(BRect bounds); virtual ~DView(); @@ -87,10 +92,10 @@ }; class DWindow : public BWindow { - public: +public: DWindow(BRect frame, - DWindowHWInterface* interface, - DWindowBuffer* buffer); + DWindowHWInterface* interface, + DWindowBuffer* buffer); virtual ~DWindow(); virtual bool QuitRequested(); @@ -99,26 +104,28 @@ virtual void FrameMoved(BPoint newOffset); - private: +private: DWindowHWInterface* fHWInterface; DWindowBuffer* fBuffer; }; class DirectMessageFilter : public BMessageFilter { - public: - DirectMessageFilter(DView* view); +public: + DirectMessageFilter(DView* view); - virtual filter_result Filter(BMessage *message, BHandler **_target); + virtual filter_result Filter(BMessage *message, BHandler** _target); [... truncated: 2198 lines follow ...] From stippi at mail.berlios.de Tue Sep 1 12:02:27 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Tue, 1 Sep 2009 12:02:27 +0200 Subject: [Haiku-commits] r32882 - in haiku/branches/releases/r1alpha1/src: add-ons/kernel/generic/ata_adapter servers/app/drawing system/kernel system/kernel/device_manager Message-ID: <200909011002.n81A2Rjt026301@sheep.berlios.de> Author: stippi Date: 2009-09-01 12:02:18 +0200 (Tue, 01 Sep 2009) New Revision: 32882 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32882&view=rev Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c haiku/branches/releases/r1alpha1/src/servers/app/drawing/AccelerantHWInterface.cpp haiku/branches/releases/r1alpha1/src/servers/app/drawing/AccelerantHWInterface.h haiku/branches/releases/r1alpha1/src/servers/app/drawing/BitmapHWInterface.cpp haiku/branches/releases/r1alpha1/src/servers/app/drawing/BitmapHWInterface.h haiku/branches/releases/r1alpha1/src/servers/app/drawing/DWindowHWInterface.cpp haiku/branches/releases/r1alpha1/src/servers/app/drawing/DWindowHWInterface.h haiku/branches/releases/r1alpha1/src/servers/app/drawing/HWInterface.cpp haiku/branches/releases/r1alpha1/src/servers/app/drawing/HWInterface.h haiku/branches/releases/r1alpha1/src/servers/app/drawing/ViewHWInterface.cpp haiku/branches/releases/r1alpha1/src/servers/app/drawing/ViewHWInterface.h haiku/branches/releases/r1alpha1/src/system/kernel/device_manager/IOScheduler.cpp haiku/branches/releases/r1alpha1/src/system/kernel/heap.cpp Log: Merged changes r32876, r32879, r32880 and r32881 from trunk. Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-09-01 09:53:41 UTC (rev 32881) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-09-01 10:02:18 UTC (rev 32882) @@ -4,10 +4,7 @@ */ /* - Generic IDE adapter library. - - The correct name would be ATA adapter, but I chose the old name as it's - more widely known. + Generic ATA adapter library. */ #include @@ -325,7 +322,7 @@ uint8 channel_index; status_t res; - TRACE("PCI-IDE: init channel...\n"); + TRACE("PCI-ATA: init channel...\n"); #if 0 if (1 /* debug */){ @@ -336,7 +333,7 @@ sDeviceManager->get_attr_uint8(node, PCI_DEVICE_FUNCTION_ITEM, &function, true); sDeviceManager->get_attr_uint16(node, PCI_DEVICE_VENDOR_ID_ITEM, &vendorID, true); sDeviceManager->get_attr_uint16(node, PCI_DEVICE_DEVICE_ID_ITEM, &deviceID, true); - TRACE("PCI-IDE: bus %3d, device %2d, function %2d: vendor %04x, device %04x\n", + TRACE("PCI-ATA: bus %3d, device %2d, function %2d: vendor %04x, device %04x\n", bus, device, function, vendorID, deviceID); } #endif @@ -360,7 +357,7 @@ goto err; } - TRACE("PCI-IDE: channel index %d\n", channel_index); + TRACE("PCI-ATA: channel index %d\n", channel_index); channel->node = node; channel->pci = controller->pci; @@ -373,7 +370,7 @@ channel->dmaing = false; channel->inthand = inthand; - TRACE("PCI-IDE: bus master base %#x\n", channel->bus_master_base); + TRACE("PCI-ATA: bus master base %#x\n", channel->bus_master_base); // PRDT must be contiguous, dword-aligned and must not cross 64K boundary prdt_size = (ATA_ADAPTER_MAX_SG_COUNT * sizeof( prd_entry ) + (B_PAGE_SIZE - 1)) & ~(B_PAGE_SIZE - 1); @@ -397,7 +394,7 @@ goto err3; } - TRACE("PCI-IDE: init channel done\n"); + TRACE("PCI-ATA: init channel done\n"); // disable interrupts ata_adapter_write_device_control(channel, ATA_DEVICE_CONTROL_BIT3 | ATA_DEVICE_CONTROL_DISABLE_INTS); @@ -496,22 +493,22 @@ command_block_base = 0x1f0; control_block_base = 0x3f6; intnum = 14; - TRACE("PCI-IDE: Controller in legacy mode: cmd %#x, ctrl %#x, irq %d\n", + TRACE("PCI-ATA: Controller in legacy mode: cmd %#x, ctrl %#x, irq %d\n", command_block_base, control_block_base, intnum); } else if (supports_compatibility_mode && channel_index == 1 && (api & ATA_API_PRIMARY_NATIVE) == 0) { command_block_base = 0x170; control_block_base = 0x376; intnum = 15; - TRACE("PCI-IDE: Controller in legacy mode: cmd %#x, ctrl %#x, irq %d\n", + TRACE("PCI-ATA: Controller in legacy mode: cmd %#x, ctrl %#x, irq %d\n", command_block_base, control_block_base, intnum); } else { if (command_block_base == 0 || control_block_base == 0) { - TRACE("PCI-IDE: Command/Control Block base is not configured\n"); + TRACE("PCI-ATA: Command/Control Block base is not configured\n"); return B_ERROR; } if (intnum == 0 || intnum == 0xff) { - TRACE("PCI-IDE: Interrupt is not configured\n"); + TRACE("PCI-ATA: Interrupt is not configured\n"); return B_ERROR; } @@ -519,7 +516,7 @@ // to be aligned at 4 bytes, so only 3f4h/374h can be specified; thus // PCI IDE defines that control block starts at offset 2 control_block_base += 2; - TRACE("PCI-IDE: Controller in native mode: cmd %#x, ctrl %#x, irq %d\n", + TRACE("PCI-ATA: Controller in native mode: cmd %#x, ctrl %#x, irq %d\n", command_block_base, control_block_base, intnum); } @@ -534,7 +531,7 @@ // better were to use a controller lock, but this had to be done in the IDE // bus manager, and I don't see any reason to add extra code for old // simplex controllers - TRACE("PCI-IDE: Simplex controller - disabling DMA of secondary channel\n"); + TRACE("PCI-ATA: Simplex controller - disabling DMA of secondary channel\n"); controller_can_dma = false; } } @@ -579,17 +576,17 @@ #if 0 pcicmd = pci->read_pci_config(node, PCI_command, 2); - TRACE("PCI-IDE: adapter init: pcicmd old setting 0x%04x\n", pcicmd); + TRACE("PCI-ATA: adapter init: pcicmd old setting 0x%04x\n", pcicmd); if ((pcicmd & PCI_command_io) == 0) { - TRACE("PCI-IDE: adapter init: enabling io decoder\n"); + TRACE("PCI-ATA: adapter init: enabling io decoder\n"); pcicmd |= PCI_command_io; } if ((pcicmd & PCI_command_master) == 0) { - TRACE("PCI-IDE: adapter init: enabling bus mastering\n"); + TRACE("PCI-ATA: adapter init: enabling bus mastering\n"); pcicmd |= PCI_command_master; } pci->write_pci_config(node, PCI_command, 2, pcicmd); - TRACE("PCI-IDE: adapter init: pcicmd new setting 0x%04x\n", pci->read_pci_config(node, PCI_command, 2)); + TRACE("PCI-ATA: adapter init: pcicmd new setting 0x%04x\n", pci->read_pci_config(node, PCI_command, 2)); #endif controller->node = node; @@ -684,7 +681,7 @@ SHOW_FLOW0( 3, "" ); if (bus_master_base == 0) { - TRACE("PCI-IDE: Controller detection failed! bus master base not configured\n"); + TRACE("PCI-ATA: Controller detection failed! bus master base not configured\n"); return B_ERROR; } Modified: haiku/branches/releases/r1alpha1/src/servers/app/drawing/AccelerantHWInterface.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/servers/app/drawing/AccelerantHWInterface.cpp 2009-09-01 09:53:41 UTC (rev 32881) +++ haiku/branches/releases/r1alpha1/src/servers/app/drawing/AccelerantHWInterface.cpp 2009-09-01 10:02:18 UTC (rev 32882) @@ -14,6 +14,26 @@ #include "AccelerantHWInterface.h" +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + #include "AccelerantBuffer.h" #include "MallocBuffer.h" #include "Overlay.h" @@ -23,25 +43,7 @@ #include "ServerProtocol.h" #include "SystemPalette.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - using std::nothrow; @@ -56,14 +58,6 @@ #define OFFSCREEN_BACK_BUFFER 0 -// This call updates the frame buffer used by the on-screen KDL -extern "C" status_t _kern_frame_buffer_update(void *baseAddress, - int32 width, int32 height, int32 depth, int32 bytesPerRow); - -// This call retrieves the system's safemode options -extern "C" status_t _kern_get_safemode_option(const char* parameter, - char* buffer, size_t* _size); - const int32 kDefaultParamsCount = 64; @@ -157,7 +151,7 @@ memset(&fSyncToken, 0, sizeof(sync_token)); } -// destructor + AccelerantHWInterface::~AccelerantHWInterface() { delete fBackBuffer; @@ -170,8 +164,7 @@ } -/*! - \brief Opens the first available graphics device and initializes it +/*! \brief Opens the first available graphics device and initializes it \return B_OK on success or an appropriate error message on failure. */ status_t @@ -203,8 +196,7 @@ } -/*! - \brief Opens a graphics device for read-write access +/*! \brief Opens a graphics device for read-write access \param deviceNumber Number identifying which graphics card to open (1 for first card) \return The file descriptor for the opened graphics device @@ -341,12 +333,17 @@ fAccAcquireEngine = (acquire_engine)fAccelerantHook(B_ACQUIRE_ENGINE, NULL); fAccReleaseEngine = (release_engine)fAccelerantHook(B_RELEASE_ENGINE, NULL); fAccSyncToToken = (sync_to_token)fAccelerantHook(B_SYNC_TO_TOKEN, NULL); - fAccGetModeCount = (accelerant_mode_count)fAccelerantHook(B_ACCELERANT_MODE_COUNT, NULL); + fAccGetModeCount + = (accelerant_mode_count)fAccelerantHook(B_ACCELERANT_MODE_COUNT, NULL); fAccGetModeList = (get_mode_list)fAccelerantHook(B_GET_MODE_LIST, NULL); - fAccGetFrameBufferConfig = (get_frame_buffer_config)fAccelerantHook(B_GET_FRAME_BUFFER_CONFIG, NULL); - fAccSetDisplayMode = (set_display_mode)fAccelerantHook(B_SET_DISPLAY_MODE, NULL); - fAccGetDisplayMode = (get_display_mode)fAccelerantHook(B_GET_DISPLAY_MODE, NULL); - fAccGetPixelClockLimits = (get_pixel_clock_limits)fAccelerantHook(B_GET_PIXEL_CLOCK_LIMITS, NULL); + fAccGetFrameBufferConfig = (get_frame_buffer_config)fAccelerantHook( + B_GET_FRAME_BUFFER_CONFIG, NULL); + fAccSetDisplayMode + = (set_display_mode)fAccelerantHook(B_SET_DISPLAY_MODE, NULL); + fAccGetDisplayMode + = (get_display_mode)fAccelerantHook(B_GET_DISPLAY_MODE, NULL); + fAccGetPixelClockLimits = (get_pixel_clock_limits)fAccelerantHook( + B_GET_PIXEL_CLOCK_LIMITS, NULL); if (!fAccAcquireEngine || !fAccReleaseEngine || !fAccGetFrameBufferConfig || !fAccGetModeCount || !fAccGetModeList || !fAccSetDisplayMode @@ -355,43 +352,57 @@ } // optional - fAccGetTimingConstraints = (get_timing_constraints)fAccelerantHook(B_GET_TIMING_CONSTRAINTS, NULL); - fAccProposeDisplayMode = (propose_display_mode)fAccelerantHook(B_PROPOSE_DISPLAY_MODE, NULL); - fAccGetPreferredDisplayMode = (get_preferred_display_mode)fAccelerantHook(B_GET_PREFERRED_DISPLAY_MODE, NULL); - fAccGetMonitorInfo = (get_monitor_info)fAccelerantHook(B_GET_MONITOR_INFO, NULL); + fAccGetTimingConstraints = (get_timing_constraints)fAccelerantHook( + B_GET_TIMING_CONSTRAINTS, NULL); + fAccProposeDisplayMode = (propose_display_mode)fAccelerantHook( + B_PROPOSE_DISPLAY_MODE, NULL); + fAccGetPreferredDisplayMode = (get_preferred_display_mode)fAccelerantHook( + B_GET_PREFERRED_DISPLAY_MODE, NULL); + fAccGetMonitorInfo + = (get_monitor_info)fAccelerantHook(B_GET_MONITOR_INFO, NULL); fAccGetEDIDInfo = (get_edid_info)fAccelerantHook(B_GET_EDID_INFO, NULL); // cursor - fAccSetCursorShape = (set_cursor_shape)fAccelerantHook(B_SET_CURSOR_SHAPE, NULL); + fAccSetCursorShape + = (set_cursor_shape)fAccelerantHook(B_SET_CURSOR_SHAPE, NULL); fAccMoveCursor = (move_cursor)fAccelerantHook(B_MOVE_CURSOR, NULL); fAccShowCursor = (show_cursor)fAccelerantHook(B_SHOW_CURSOR, NULL); // dpms - fAccDPMSCapabilities = (dpms_capabilities)fAccelerantHook(B_DPMS_CAPABILITIES, NULL); + fAccDPMSCapabilities + = (dpms_capabilities)fAccelerantHook(B_DPMS_CAPABILITIES, NULL); fAccDPMSMode = (dpms_mode)fAccelerantHook(B_DPMS_MODE, NULL); fAccSetDPMSMode = (set_dpms_mode)fAccelerantHook(B_SET_DPMS_MODE, NULL); // overlay fAccOverlayCount = (overlay_count)fAccelerantHook(B_OVERLAY_COUNT, NULL); - fAccOverlaySupportedSpaces = (overlay_supported_spaces)fAccelerantHook(B_OVERLAY_SUPPORTED_SPACES, NULL); - fAccOverlaySupportedFeatures = (overlay_supported_features)fAccelerantHook(B_OVERLAY_SUPPORTED_FEATURES, NULL); - fAccAllocateOverlayBuffer = (allocate_overlay_buffer)fAccelerantHook(B_ALLOCATE_OVERLAY_BUFFER, NULL); - fAccReleaseOverlayBuffer = (release_overlay_buffer)fAccelerantHook(B_RELEASE_OVERLAY_BUFFER, NULL); - fAccGetOverlayConstraints = (get_overlay_constraints)fAccelerantHook(B_GET_OVERLAY_CONSTRAINTS, NULL); - fAccAllocateOverlay = (allocate_overlay)fAccelerantHook(B_ALLOCATE_OVERLAY, NULL); - fAccReleaseOverlay = (release_overlay)fAccelerantHook(B_RELEASE_OVERLAY, NULL); - fAccConfigureOverlay = (configure_overlay)fAccelerantHook(B_CONFIGURE_OVERLAY, NULL); + fAccOverlaySupportedSpaces = (overlay_supported_spaces)fAccelerantHook( + B_OVERLAY_SUPPORTED_SPACES, NULL); + fAccOverlaySupportedFeatures = (overlay_supported_features)fAccelerantHook( + B_OVERLAY_SUPPORTED_FEATURES, NULL); + fAccAllocateOverlayBuffer = (allocate_overlay_buffer)fAccelerantHook( + B_ALLOCATE_OVERLAY_BUFFER, NULL); + fAccReleaseOverlayBuffer = (release_overlay_buffer)fAccelerantHook( + B_RELEASE_OVERLAY_BUFFER, NULL); + fAccGetOverlayConstraints = (get_overlay_constraints)fAccelerantHook( + B_GET_OVERLAY_CONSTRAINTS, NULL); + fAccAllocateOverlay + = (allocate_overlay)fAccelerantHook(B_ALLOCATE_OVERLAY, NULL); + fAccReleaseOverlay + = (release_overlay)fAccelerantHook(B_RELEASE_OVERLAY, NULL); + fAccConfigureOverlay + = (configure_overlay)fAccelerantHook(B_CONFIGURE_OVERLAY, NULL); return B_OK; } -// Shutdown + status_t AccelerantHWInterface::Shutdown() { if (fAccelerantHook) { - uninit_accelerant UninitAccelerant = (uninit_accelerant) - fAccelerantHook(B_UNINIT_ACCELERANT, NULL); + uninit_accelerant UninitAccelerant + = (uninit_accelerant)fAccelerantHook(B_UNINIT_ACCELERANT, NULL); if (UninitAccelerant) UninitAccelerant(); } @@ -424,11 +435,14 @@ // compute some random equality score // TODO: check if these scores make sense - int32 diff = 1000 * abs(mode.timing.h_display - compareMode.timing.h_display) + int32 diff + = 1000 * abs(mode.timing.h_display - compareMode.timing.h_display) + 1000 * abs(mode.timing.v_display - compareMode.timing.v_display) + abs(mode.timing.h_total * mode.timing.v_total - - compareMode.timing.h_total * compareMode.timing.v_total) / 100 - + abs(mode.timing.pixel_clock - compareMode.timing.pixel_clock) / 100 + - compareMode.timing.h_total * compareMode.timing.v_total) + / 100 + + abs(mode.timing.pixel_clock - compareMode.timing.pixel_clock) + / 100 + (int32)(500 * fabs(aspectRatio - compareAspectRatio)) + 100 * abs(mode.space - compareMode.space); @@ -449,8 +463,7 @@ } -/*! - This method is used for the initial mode set only - because that one +/*! This method is used for the initial mode set only - because that one should really not fail. Basically we try to set all modes as found in the mode list the driver returned, but we start with the one that best fits the originally @@ -594,7 +607,7 @@ if (fDisplayMode.space == B_RGB15) depth = 15; - _kern_frame_buffer_update(fFrameBufferConfig.frame_buffer, + _kern_frame_buffer_update((addr_t)fFrameBufferConfig.frame_buffer, fFrontBuffer->Width(), fFrontBuffer->Height(), depth, fFrameBufferConfig.bytes_per_row); #endif @@ -683,7 +696,7 @@ void -AccelerantHWInterface::GetMode(display_mode *mode) +AccelerantHWInterface::GetMode(display_mode* mode) { if (mode && LockParallelAccess()) { *mode = fDisplayMode; @@ -728,7 +741,7 @@ status_t -AccelerantHWInterface::GetDeviceInfo(accelerant_device_info *info) +AccelerantHWInterface::GetDeviceInfo(accelerant_device_info* info) { get_accelerant_device_info GetAccelerantDeviceInfo = (get_accelerant_device_info)fAccelerantHook( @@ -751,7 +764,7 @@ status_t -AccelerantHWInterface::GetModeList(display_mode** _modes, uint32 *_count) +AccelerantHWInterface::GetModeList(display_mode** _modes, uint32* _count) { AutoReadLocker _(this); @@ -778,41 +791,42 @@ status_t -AccelerantHWInterface::GetPixelClockLimits(display_mode *mode, uint32 *low, - uint32 *high) +AccelerantHWInterface::GetPixelClockLimits(display_mode *mode, uint32* _low, + uint32* _high) { - AutoReadLocker _(this); - - if (!mode || !low || !high) + if (mode == NULL || _low == NULL || _high == NULL) return B_BAD_VALUE; - return fAccGetPixelClockLimits(mode, low, high); + AutoReadLocker _(this); + return fAccGetPixelClockLimits(mode, _low, _high); } status_t -AccelerantHWInterface::GetTimingConstraints(display_timing_constraints *dtc) +AccelerantHWInterface::GetTimingConstraints( + display_timing_constraints* constraints) { + if (constraints == NULL) + return B_BAD_VALUE; + AutoReadLocker _(this); - if (!dtc) - return B_BAD_VALUE; - if (fAccGetTimingConstraints) - return fAccGetTimingConstraints(dtc); + return fAccGetTimingConstraints(constraints); return B_UNSUPPORTED; } status_t -AccelerantHWInterface::ProposeMode(display_mode *candidate, - const display_mode *_low, const display_mode *_high) +AccelerantHWInterface::ProposeMode(display_mode* candidate, + const display_mode* _low, const display_mode* _high) { + if (candidate == NULL || _low == NULL || _high == NULL) + return B_BAD_VALUE; + AutoReadLocker _(this); - if (candidate == NULL || _low == NULL || _high == NULL) - return B_BAD_VALUE; if (fAccProposeDisplayMode == NULL) return B_UNSUPPORTED; @@ -1022,7 +1036,7 @@ status_t -AccelerantHWInterface::SetDPMSMode(const uint32 &state) +AccelerantHWInterface::SetDPMSMode(uint32 state) { AutoWriteLocker _(this); @@ -1032,7 +1046,7 @@ return fAccSetDPMSMode(state); } -// DPMSMode + uint32 AccelerantHWInterface::DPMSMode() { @@ -1044,7 +1058,7 @@ return fAccDPMSMode(); } -// DPMSCapabilities + uint32 AccelerantHWInterface::DPMSCapabilities() { @@ -1058,7 +1072,7 @@ status_t -AccelerantHWInterface::GetAccelerantPath(BString &string) +AccelerantHWInterface::GetAccelerantPath(BString& string) { image_info info; status_t status = get_image_info(fAccelerantImage, &info); @@ -1069,7 +1083,7 @@ status_t -AccelerantHWInterface::GetDriverPath(BString &string) +AccelerantHWInterface::GetDriverPath(BString& string) { // TODO: this currently assumes that the accelerant's clone info // is always the path name of its driver (that's the case for @@ -1082,7 +1096,7 @@ if (getCloneInfo == NULL) return B_NOT_SUPPORTED; - getCloneInfo((void *)path); + getCloneInfo((void*)path); string.SetTo(path); return B_OK; } @@ -1330,7 +1344,7 @@ void -AccelerantHWInterface::MoveCursorTo(const float& x, const float& y) +AccelerantHWInterface::MoveCursorTo(float x, float y) { HWInterface::MoveCursorTo(x, y); // if (LockExclusiveAccess()) { @@ -1343,15 +1357,14 @@ // #pragma mark - buffer access - -RenderingBuffer * +RenderingBuffer* AccelerantHWInterface::FrontBuffer() const { return fFrontBuffer; } -RenderingBuffer * +RenderingBuffer* AccelerantHWInterface::BackBuffer() const { return fBackBuffer; Modified: haiku/branches/releases/r1alpha1/src/servers/app/drawing/AccelerantHWInterface.h =================================================================== --- haiku/branches/releases/r1alpha1/src/servers/app/drawing/AccelerantHWInterface.h 2009-09-01 09:53:41 UTC (rev 32881) +++ haiku/branches/releases/r1alpha1/src/servers/app/drawing/AccelerantHWInterface.h 2009-09-01 10:02:18 UTC (rev 32882) @@ -1,5 +1,5 @@ /* - * Copyright 2005-2008, Haiku. + * Copyright 2005-2009, Haiku. * Distributed under the terms of the MIT License. * * Authors: @@ -27,43 +27,44 @@ virtual status_t Initialize(); virtual status_t Shutdown(); - virtual status_t SetMode(const display_mode &mode); - virtual void GetMode(display_mode *mode); + virtual status_t SetMode(const display_mode& mode); + virtual void GetMode(display_mode* mode); - virtual status_t GetDeviceInfo(accelerant_device_info *info); - virtual status_t GetFrameBufferConfig(frame_buffer_config& config); + virtual status_t GetDeviceInfo(accelerant_device_info* info); + virtual status_t GetFrameBufferConfig( + frame_buffer_config& config); - virtual status_t GetModeList(display_mode **mode_list, - uint32 *count); - virtual status_t GetPixelClockLimits(display_mode *mode, - uint32 *low, uint32 *high); - virtual status_t GetTimingConstraints(display_timing_constraints *dtc); - virtual status_t ProposeMode(display_mode *candidate, - const display_mode *low, - const display_mode *high); + virtual status_t GetModeList(display_mode** _modeList, + uint32* _count); + virtual status_t GetPixelClockLimits(display_mode* mode, + uint32* _low, uint32* _high); + virtual status_t GetTimingConstraints(display_timing_constraints* + constraints); + virtual status_t ProposeMode(display_mode* candidate, + const display_mode* low, + const display_mode* high); virtual status_t GetPreferredMode(display_mode* mode); virtual status_t GetMonitorInfo(monitor_info* info); virtual sem_id RetraceSemaphore(); - virtual status_t WaitForRetrace(bigtime_t timeout = B_INFINITE_TIMEOUT); + virtual status_t WaitForRetrace( + bigtime_t timeout = B_INFINITE_TIMEOUT); - virtual status_t SetDPMSMode(const uint32 &state); + virtual status_t SetDPMSMode(uint32 state); virtual uint32 DPMSMode(); virtual uint32 DPMSCapabilities(); - virtual status_t GetAccelerantPath(BString &path); - virtual status_t GetDriverPath(BString &path); + virtual status_t GetAccelerantPath(BString& path); + virtual status_t GetDriverPath(BString& path); // query for available hardware accleration virtual uint32 AvailableHWAcceleration() const; // accelerated drawing virtual void CopyRegion(const clipping_rect* sortedRectList, - uint32 count, - int32 xOffset, int32 yOffset); + uint32 count, int32 xOffset, int32 yOffset); virtual void FillRegion(/*const*/ BRegion& region, - const rgb_color& color, - bool autoSync); + const rgb_color& color, bool autoSync); virtual void InvertRegion(/*const*/ BRegion& region); virtual void Sync(); @@ -86,8 +87,7 @@ // cursor handling virtual void SetCursor(ServerCursor* cursor); virtual void SetCursorVisible(bool visible); - virtual void MoveCursorTo(const float& x, - const float& y); + virtual void MoveCursorTo(float x, float y); // frame buffer access virtual RenderingBuffer* FrontBuffer() const; @@ -100,86 +100,87 @@ virtual void _DrawCursor(IntRect area) const; private: - int _OpenGraphicsDevice(int deviceNumber); - status_t _OpenAccelerant(int device); - status_t _SetupDefaultHooks(); - status_t _UpdateModeList(); - status_t _UpdateFrameBufferConfig(); - void _RegionToRectParams(/*const*/ BRegion* region, + int _OpenGraphicsDevice(int deviceNumber); + status_t _OpenAccelerant(int device); + status_t _SetupDefaultHooks(); + status_t _UpdateModeList(); + status_t _UpdateFrameBufferConfig(); + void _RegionToRectParams(/*const*/ BRegion* region, uint32* count) const; - void _CopyRegion(const clipping_rect* sortedRectList, + void _CopyRegion(const clipping_rect* sortedRectList, uint32 count, int32 xOffset, int32 yOffset, bool inBackBuffer); - uint32 _NativeColor(const rgb_color& color) const; - status_t _FindBestMode(const display_mode& compareMode, + uint32 _NativeColor(const rgb_color& color) const; + status_t _FindBestMode(const display_mode& compareMode, float compareAspectRatio, display_mode& modeFound, int32 *_diff = NULL) const; - status_t _SetFallbackMode(display_mode& mode) const; - void _SetSystemPalette(); - void _SetGrayscalePalette(); + status_t _SetFallbackMode(display_mode& mode) const; + void _SetSystemPalette(); + void _SetGrayscalePalette(); - int fCardFD; - image_id fAccelerantImage; - GetAccelerantHook fAccelerantHook; - engine_token *fEngineToken; - sync_token fSyncToken; +private: + int fCardFD; + image_id fAccelerantImage; + GetAccelerantHook fAccelerantHook; + engine_token* fEngineToken; + sync_token fSyncToken; - // required hooks - guaranteed to be valid - acquire_engine fAccAcquireEngine; - release_engine fAccReleaseEngine; - sync_to_token fAccSyncToToken; - accelerant_mode_count fAccGetModeCount; - get_mode_list fAccGetModeList; - get_frame_buffer_config fAccGetFrameBufferConfig; - set_display_mode fAccSetDisplayMode; - get_display_mode fAccGetDisplayMode; - get_pixel_clock_limits fAccGetPixelClockLimits; + // required hooks - guaranteed to be valid + acquire_engine fAccAcquireEngine; + release_engine fAccReleaseEngine; + sync_to_token fAccSyncToToken; + accelerant_mode_count fAccGetModeCount; + get_mode_list fAccGetModeList; + get_frame_buffer_config fAccGetFrameBufferConfig; + set_display_mode fAccSetDisplayMode; + get_display_mode fAccGetDisplayMode; + get_pixel_clock_limits fAccGetPixelClockLimits; - // optional accelerant hooks - get_timing_constraints fAccGetTimingConstraints; - propose_display_mode fAccProposeDisplayMode; - get_preferred_display_mode fAccGetPreferredDisplayMode; - get_monitor_info fAccGetMonitorInfo; - get_edid_info fAccGetEDIDInfo; - fill_rectangle fAccFillRect; - invert_rectangle fAccInvertRect; - screen_to_screen_blit fAccScreenBlit; - set_cursor_shape fAccSetCursorShape; - move_cursor fAccMoveCursor; - show_cursor fAccShowCursor; - - // dpms hooks - dpms_capabilities fAccDPMSCapabilities; - dpms_mode fAccDPMSMode; - set_dpms_mode fAccSetDPMSMode; + // optional accelerant hooks + get_timing_constraints fAccGetTimingConstraints; + propose_display_mode fAccProposeDisplayMode; + get_preferred_display_mode fAccGetPreferredDisplayMode; + get_monitor_info fAccGetMonitorInfo; + get_edid_info fAccGetEDIDInfo; + fill_rectangle fAccFillRect; + invert_rectangle fAccInvertRect; + screen_to_screen_blit fAccScreenBlit; + set_cursor_shape fAccSetCursorShape; + move_cursor fAccMoveCursor; + show_cursor fAccShowCursor; - // overlay hooks - overlay_count fAccOverlayCount; - overlay_supported_spaces fAccOverlaySupportedSpaces; - overlay_supported_features fAccOverlaySupportedFeatures; - allocate_overlay_buffer fAccAllocateOverlayBuffer; - release_overlay_buffer fAccReleaseOverlayBuffer; - get_overlay_constraints fAccGetOverlayConstraints; - allocate_overlay fAccAllocateOverlay; - release_overlay fAccReleaseOverlay; - configure_overlay fAccConfigureOverlay; + // dpms hooks + dpms_capabilities fAccDPMSCapabilities; + dpms_mode fAccDPMSMode; + set_dpms_mode fAccSetDPMSMode; - frame_buffer_config fFrameBufferConfig; - int fModeCount; - display_mode* fModeList; + // overlay hooks + overlay_count fAccOverlayCount; + overlay_supported_spaces fAccOverlaySupportedSpaces; + overlay_supported_features fAccOverlaySupportedFeatures; + allocate_overlay_buffer fAccAllocateOverlayBuffer; + release_overlay_buffer fAccReleaseOverlayBuffer; + get_overlay_constraints fAccGetOverlayConstraints; + allocate_overlay fAccAllocateOverlay; + release_overlay fAccReleaseOverlay; + configure_overlay fAccConfigureOverlay; - RenderingBuffer* fBackBuffer; - AccelerantBuffer* fFrontBuffer; - bool fOffscreenBackBuffer; + frame_buffer_config fFrameBufferConfig; + int fModeCount; + display_mode* fModeList; - display_mode fDisplayMode; - bool fInitialModeSwitch; + RenderingBuffer* fBackBuffer; + AccelerantBuffer* fFrontBuffer; + bool fOffscreenBackBuffer; -mutable fill_rect_params* fRectParams; -mutable uint32 fRectParamsCount; -mutable blit_params* fBlitParams; -mutable uint32 fBlitParamsCount; + display_mode fDisplayMode; + bool fInitialModeSwitch; + + mutable fill_rect_params* fRectParams; + mutable uint32 fRectParamsCount; + mutable blit_params* fBlitParams; + mutable uint32 fBlitParamsCount; }; #endif // ACCELERANT_HW_INTERFACE_H Modified: haiku/branches/releases/r1alpha1/src/servers/app/drawing/BitmapHWInterface.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/servers/app/drawing/BitmapHWInterface.cpp 2009-09-01 09:53:41 UTC (rev 32881) +++ haiku/branches/releases/r1alpha1/src/servers/app/drawing/BitmapHWInterface.cpp 2009-09-01 10:02:18 UTC (rev 32882) @@ -1,5 +1,5 @@ /* - * Copyright 2002-2005, Haiku. + * Copyright 2002-2009, Haiku. * Distributed under the terms of the MIT License. * * Authors: @@ -23,9 +23,10 @@ BitmapHWInterface::BitmapHWInterface(ServerBitmap* bitmap) - : HWInterface(false, false), - fBackBuffer(NULL), - fFrontBuffer(new(nothrow) BitmapBuffer(bitmap)) + : + HWInterface(false, false), + fBackBuffer(NULL), + fFrontBuffer(new(nothrow) BitmapBuffer(bitmap)) { } @@ -54,8 +55,7 @@ if (fFrontBuffer->ColorSpace() != B_RGB32 && fFrontBuffer->ColorSpace() != B_RGBA32) { BBitmap* backBitmap = new BBitmap(fFrontBuffer->Bounds(), - B_BITMAP_NO_SERVER_LINK, - B_RGBA32); + B_BITMAP_NO_SERVER_LINK, B_RGBA32); fBackBuffer = new BBitmapBuffer(backBitmap); ret = fBackBuffer->InitCheck(); @@ -66,10 +66,8 @@ // import the current contents of the bitmap // into the back bitmap backBitmap->ImportBits(fFrontBuffer->Bits(), - fFrontBuffer->BitsLength(), - fFrontBuffer->BytesPerRow(), - 0, - fFrontBuffer->ColorSpace()); + fFrontBuffer->BitsLength(), fFrontBuffer->BytesPerRow(), 0, + fFrontBuffer->ColorSpace()); } } @@ -85,23 +83,22 @@ status_t -BitmapHWInterface::SetMode(const display_mode &mode) +BitmapHWInterface::SetMode(const display_mode& mode) { return B_UNSUPPORTED; } void -BitmapHWInterface::GetMode(display_mode *mode) +BitmapHWInterface::GetMode(display_mode* mode) { - if (mode) { + if (mode != NULL) memset(mode, 0, sizeof(display_mode)); - } } status_t -BitmapHWInterface::GetDeviceInfo(accelerant_device_info *info) +BitmapHWInterface::GetDeviceInfo(accelerant_device_info* info) { return B_UNSUPPORTED; } @@ -120,77 +117,79 @@ return B_UNSUPPORTED; } -// GetPixelClockLimits + status_t -BitmapHWInterface::GetPixelClockLimits(display_mode *mode, uint32 *low, uint32 *high) +BitmapHWInterface::GetPixelClockLimits(display_mode* mode, uint32* low, + uint32* high) { return B_UNSUPPORTED; } -// GetPixelClockLimits + status_t -BitmapHWInterface::GetTimingConstraints(display_timing_constraints *dtc) +BitmapHWInterface::GetTimingConstraints(display_timing_constraints* constraints) { return B_UNSUPPORTED; } -// ProposeMode + status_t -BitmapHWInterface::ProposeMode(display_mode *candidate, const display_mode *low, const display_mode *high) +BitmapHWInterface::ProposeMode(display_mode* candidate, const display_mode* low, + const display_mode* high) { return B_UNSUPPORTED; } -// RetraceSemaphore + sem_id BitmapHWInterface::RetraceSemaphore() { return B_ERROR; } -// WaitForRetrace + status_t BitmapHWInterface::WaitForRetrace(bigtime_t timeout) { return B_UNSUPPORTED; } -// SetDPMSMode + status_t -BitmapHWInterface::SetDPMSMode(const uint32 &state) +BitmapHWInterface::SetDPMSMode(uint32 state) { return B_UNSUPPORTED; } -// DPMSMode + uint32 BitmapHWInterface::DPMSMode() { return 0; } -// DPMSCapabilities + uint32 BitmapHWInterface::DPMSCapabilities() { return 0; } -// FrontBuffer -RenderingBuffer * + +RenderingBuffer* BitmapHWInterface::FrontBuffer() const { return fFrontBuffer; } -// BackBuffer -RenderingBuffer * + +RenderingBuffer* BitmapHWInterface::BackBuffer() const { return fBackBuffer; } -// IsDoubleBuffered + bool BitmapHWInterface::IsDoubleBuffered() const { @@ -200,5 +199,3 @@ return HWInterface::IsDoubleBuffered(); } - - Modified: haiku/branches/releases/r1alpha1/src/servers/app/drawing/BitmapHWInterface.h =================================================================== --- haiku/branches/releases/r1alpha1/src/servers/app/drawing/BitmapHWInterface.h 2009-09-01 09:53:41 UTC (rev 32881) +++ haiku/branches/releases/r1alpha1/src/servers/app/drawing/BitmapHWInterface.h 2009-09-01 10:02:18 UTC (rev 32882) @@ -1,5 +1,5 @@ /* - * Copyright 2005, Haiku. + * Copyright 2005-2009, Haiku. * Distributed under the terms of the MIT License. * * Authors: @@ -18,7 +18,7 @@ class BitmapHWInterface : public HWInterface { - public: +public: BitmapHWInterface(ServerBitmap* bitmap); virtual ~BitmapHWInterface(); @@ -26,25 +26,28 @@ virtual status_t Shutdown(); // overwrite all the meaningless functions with empty code - virtual status_t SetMode(const display_mode &mode); - virtual void GetMode(display_mode *mode); - - virtual status_t GetDeviceInfo(accelerant_device_info *info); - virtual status_t GetFrameBufferConfig(frame_buffer_config& config); + virtual status_t SetMode(const display_mode& mode); + virtual void GetMode(display_mode* mode); - virtual status_t GetModeList(display_mode **mode_list, - uint32 *count); - virtual status_t GetPixelClockLimits(display_mode *mode, - uint32 *low, uint32 *high); - virtual status_t GetTimingConstraints(display_timing_constraints *dtc); - virtual status_t ProposeMode(display_mode *candidate, [... truncated: 2399 lines follow ...] From axeld at mail.berlios.de Tue Sep 1 12:16:21 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Tue, 1 Sep 2009 12:16:21 +0200 Subject: [Haiku-commits] r32883 - in haiku/trunk: build/jam src/add-ons/kernel/file_systems src/add-ons/kernel/file_systems/ntfs Message-ID: <200909011016.n81AGLlv030244@sheep.berlios.de> Author: axeld Date: 2009-09-01 12:16:21 +0200 (Tue, 01 Sep 2009) New Revision: 32883 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32883&view=rev Modified: haiku/trunk/build/jam/HaikuImage haiku/trunk/src/add-ons/kernel/file_systems/Jamfile haiku/trunk/src/add-ons/kernel/file_systems/ntfs/Jamfile Log: * Removed the GPL_ONLY stuff from ntfs and reiserfs in trunk as well. Modified: haiku/trunk/build/jam/HaikuImage =================================================================== --- haiku/trunk/build/jam/HaikuImage 2009-09-01 10:02:18 UTC (rev 32882) +++ haiku/trunk/build/jam/HaikuImage 2009-09-01 10:16:21 UTC (rev 32883) @@ -80,7 +80,7 @@ SYSTEM_LIBS = libalm.so libbe.so libbsd.so libbnetapi.so libdebug.so libdevice.so libfluidsynth.so libfreetype.so libgame.so libGL.so libgnu.so libilmimf.so libjpeg.so liblinprog.so liblpsolve55.so libmail.so libmedia.so - libmidi.so libmidi2.so libnetwork.so libpng.so libroot.so + libmidi.so libmidi2.so libnetwork.so libpng.so libroot.so libscreensaver.so libtextencoding.so libtracker.so libtranslation.so libz.so $(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++) @@ -159,8 +159,7 @@ $(IDE_ONLY)ide scsi config_manager agp_gart usb firewire $(X86_ONLY)acpi ; SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs cdda ext2 fat iso9660 nfs attribute_overlay - write_overlay $(GPL_ONLY)ntfs $(GPL_ONLY)reiserfs ; -#googlefs ; + write_overlay ntfs reiserfs ; #googlefs # modules Modified: haiku/trunk/src/add-ons/kernel/file_systems/Jamfile =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/Jamfile 2009-09-01 10:02:18 UTC (rev 32882) +++ haiku/trunk/src/add-ons/kernel/file_systems/Jamfile 2009-09-01 10:16:21 UTC (rev 32883) @@ -7,11 +7,10 @@ SubInclude HAIKU_TOP src add-ons kernel file_systems googlefs ; SubInclude HAIKU_TOP src add-ons kernel file_systems iso9660 ; SubInclude HAIKU_TOP src add-ons kernel file_systems nfs ; +SubInclude HAIKU_TOP src add-ons kernel file_systems ntfs ; SubInclude HAIKU_TOP src add-ons kernel file_systems ramfs ; +SubInclude HAIKU_TOP src add-ons kernel file_systems reiserfs ; SubInclude HAIKU_TOP src add-ons kernel file_systems udf ; SubInclude HAIKU_TOP src add-ons kernel file_systems userlandfs ; -SubIncludeGPL HAIKU_TOP src add-ons kernel file_systems ntfs ; -SubIncludeGPL HAIKU_TOP src add-ons kernel file_systems reiserfs ; - SubInclude HAIKU_TOP src add-ons kernel file_systems layers ; Modified: haiku/trunk/src/add-ons/kernel/file_systems/ntfs/Jamfile =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/ntfs/Jamfile 2009-09-01 10:02:18 UTC (rev 32882) +++ haiku/trunk/src/add-ons/kernel/file_systems/ntfs/Jamfile 2009-09-01 10:16:21 UTC (rev 32883) @@ -23,5 +23,5 @@ kernel_cpp.cpp ] = [ FDirName $(HAIKU_TOP) src system kernel util ] ; -SubIncludeGPL HAIKU_TOP src add-ons kernel file_systems ntfs libntfs ; +SubInclude HAIKU_TOP src add-ons kernel file_systems ntfs libntfs ; From axeld at mail.berlios.de Tue Sep 1 12:33:11 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Tue, 1 Sep 2009 12:33:11 +0200 Subject: [Haiku-commits] r32884 - haiku/branches/releases/r1alpha1/src/tests/system/libroot/posix Message-ID: <200909011033.n81AXBK5004020@sheep.berlios.de> Author: axeld Date: 2009-09-01 12:33:09 +0200 (Tue, 01 Sep 2009) New Revision: 32884 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32884&view=rev Modified: haiku/branches/releases/r1alpha1/src/tests/system/libroot/posix/dirent_test.cpp Log: * Fixed dirent_test build. Modified: haiku/branches/releases/r1alpha1/src/tests/system/libroot/posix/dirent_test.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/tests/system/libroot/posix/dirent_test.cpp 2009-09-01 10:16:21 UTC (rev 32883) +++ haiku/branches/releases/r1alpha1/src/tests/system/libroot/posix/dirent_test.cpp 2009-09-01 10:33:09 UTC (rev 32884) @@ -1,12 +1,13 @@ /* - * Copyright 2008, Axel D?rfler, axeld at pinc-software.de. + * Copyright 2008-2009, Axel D?rfler, axeld at pinc-software.de. * Distributed under the terms of the MIT License. */ + #include #include -#include +//#include int @@ -21,7 +22,7 @@ printf("Entry: dev %ld, ino %Ld, name \"%s\"\n", dirent->d_dev, dirent->d_ino, dirent->d_name); - printf(" left: %u, next: %d\n", dir->entries_left, dir->next_entry); +// printf(" left: %u, next: %d\n", dir->entries_left, dir->next_entry); } closedir(dir); From stippi at mail.berlios.de Tue Sep 1 13:42:11 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Tue, 1 Sep 2009 13:42:11 +0200 Subject: [Haiku-commits] r32885 - haiku/trunk/build/jam Message-ID: <200909011142.n81BgBTH000912@sheep.berlios.de> Author: stippi Date: 2009-09-01 13:42:09 +0200 (Tue, 01 Sep 2009) New Revision: 32885 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32885&view=rev Modified: haiku/trunk/build/jam/OptionalBuildFeatures haiku/trunk/build/jam/OptionalPackageDependencies haiku/trunk/build/jam/OptionalPackages Log: Patch by scottmc with small fixes by myself: Updated to use all the new alpha1 packages. I have not yet done throughrough testing myself. I figured that trunk should also use the newest packages. Modified: haiku/trunk/build/jam/OptionalBuildFeatures =================================================================== --- haiku/trunk/build/jam/OptionalBuildFeatures 2009-09-01 10:33:09 UTC (rev 32884) +++ haiku/trunk/build/jam/OptionalBuildFeatures 2009-09-01 11:42:09 UTC (rev 32885) @@ -12,7 +12,7 @@ } local baseURL = http://haiku-files.org/files/optional-packages ; -HAIKU_OPENSSL_PACKAGE = openssl-0.9.8k-gcc2-haiku-2009-05-10 ; +HAIKU_OPENSSL_PACKAGE = openssl-0.9.8k-r1a1-x86-gcc2-2009-08-30 ; HAIKU_OPENSSL_URL = $(baseURL)/$(HAIKU_OPENSSL_PACKAGE).zip ; if $(HAIKU_BUILD_FEATURE_SSL) { Modified: haiku/trunk/build/jam/OptionalPackageDependencies =================================================================== --- haiku/trunk/build/jam/OptionalPackageDependencies 2009-09-01 10:33:09 UTC (rev 32884) +++ haiku/trunk/build/jam/OptionalPackageDependencies 2009-09-01 11:42:09 UTC (rev 32885) @@ -12,3 +12,5 @@ OptionalPackageDependencies LibLayout : DevelopmentBase ; OptionalPackageDependencies NetSurf : OpenSSL ; OptionalPackageDependencies OpenSSH : OpenSSL ; +OptionalPackageDependencies Mercurial : Python ; +OptionalPackageDependencies Git : Expat Curl OpenSSL ; Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-09-01 10:33:09 UTC (rev 32884) +++ haiku/trunk/build/jam/OptionalPackages 2009-09-01 11:42:09 UTC (rev 32885) @@ -23,16 +23,20 @@ # CDRecord - the command line CD writing tools # Clockwerk - native audio/video compositing # CLucene - indexed file search +# Curl - a client that groks URLs # CVS - the version control system # Development - more complete dev environment (including autotools) # DevelopmentBase - basic development environment (gcc, headers, libs,...) # DevelopmentMin - development headers, libs, tools, from sources only +# Expat - XML parsing libraries # Firefox - the webbrowser +# Git - the distributed version control system # KeymapSwitcher - Desktop utility # LibIconv - text encoding conversion library # LibLayout - GCC2 package needed by some BeOS apps to compile # LibXML2 - the XML support libary # Links - the web browser +# Mercurial - the distributed version control system # Nano - the command line text editor # Neon - support libraries used for example by SVN # NetSurf - the web browser @@ -62,8 +66,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package APR available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage apr-1.3.5-x86-gcc2-2009-07-05 - : $(baseURL)/apr-1.3.5-x86-gcc2-2009-07-05.zip + InstallOptionalHaikuImagePackage apr-1.3.8-r1a1-x86-gcc2-2009-08-29 + : $(baseURL)/apr-1.3.8-r1a1-x86-gcc2-2009-08-29.zip : ; } @@ -75,8 +79,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package APR-util available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage apr-util-1.3.7-x86-gcc2-2009-07-05 - : $(baseURL)/apr-util-1.3.7-x86-gcc2-2009-07-05.zip + InstallOptionalHaikuImagePackage apr-util-1.3.9-r1a1-x86-gcc2-2009-08-29 + : $(baseURL)/apr-util-1.3.9-r1a1-x86-gcc2-2009-08-29.zip : ; } @@ -191,8 +195,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package CDRecord available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage cdrecord-2.01.01a59-x86-gcc2-2009-05-26 - : $(baseURL)/cdrecord-2.01.01a59-x86-gcc2-2009-05-26.zip + InstallOptionalHaikuImagePackage cdrecord-2.01.01a63-r1a1-x86-gcc2-2009-08-28 + : $(baseURL)/cdrecord-2.01.01a63-r1a1-x86-gcc2-2009-08-28.zip : ; } @@ -237,13 +241,27 @@ } +# Curl +if [ IsOptionalHaikuImagePackageAdded Expat ] { + if $(TARGET_ARCH) != x86 { + Echo "No optional package Curl available for $(TARGET_ARCH)" ; + } else { + InstallOptionalHaikuImagePackage curl-7.19.6-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/curl-7.19.6-r1a1-x86-gcc2-2009-08-30.zip + + : + ; + } +} + + # CVS if [ IsOptionalHaikuImagePackageAdded CVS ] { if $(TARGET_ARCH) != x86 { Echo "No optional package CVS available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage cvs-1.12.13-x86-gcc2-2009-07-06 - : $(baseURL)/cvs-1.12.13-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage cvs-1.12.13-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/cvs-1.12.13-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -253,14 +271,14 @@ # Development if [ IsOptionalHaikuImagePackageAdded Development ] && $(TARGET_ARCH) = x86 { # autotools - InstallOptionalHaikuImagePackage autoconf-2.63-gcc2-2008-11-05 - : $(baseURL)/autoconf-2.63-gcc2-2008-11-05.zip ; - InstallOptionalHaikuImagePackage automake-1.10.1-gcc2-2008-11-06 - : $(baseURL)/automake-1.10.1-gcc2-2008-11-06.zip ; - InstallOptionalHaikuImagePackage libtool-2.2.6a-gcc2-2008-11-09 - : $(baseURL)/libtool-2.2.6a-gcc2-2008-11-09.zip ; - InstallOptionalHaikuImagePackage texinfo-4.13a-gcc2-2008-11-09 - : $(baseURL)/texinfo-4.13a-gcc2-2008-11-09.zip ; + InstallOptionalHaikuImagePackage autoconf-2.64-r1a1-x86-gcc2-2009-08-27 + : $(baseURL)/autoconf-2.64-r1a1-x86-gcc2-2009-08-27.zip ; + InstallOptionalHaikuImagePackage automake-1.11-r1a1-x86-gcc2-2009-08-27 + : $(baseURL)/automake-1.11-r1a1-x86-gcc2-2009-08-27.zip ; + InstallOptionalHaikuImagePackage libtool-2.2.6a-r1a1-x86-gcc2-2009-08-28 + : $(baseURL)/libtool-2.2.6a-r1a1-x86-gcc2-2009-08-28.zip ; + InstallOptionalHaikuImagePackage texinfo-4.13a-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/texinfo-4.13a-r1a1-x86-gcc2-2009-08-30.zip ; } @@ -269,13 +287,13 @@ && $(TARGET_ARCH) = x86 { # gcc and binutils if $(HAIKU_GCC_VERSION[1]) = 2 || $(isHybridBuild) { - InstallOptionalHaikuImagePackage gcc-2.95.3-x86-gcc2-2009-06-29 - : $(baseURL)/gcc-2.95.3-x86-gcc2-2009-06-29.zip ; + InstallOptionalHaikuImagePackage gcc-2.95.3-r1a1-x86-gcc2-2009-08-26 + : $(baseURL)/gcc-2.95.3-r1a1-x86-gcc2-2009-08-26.zip ; } if $(HAIKU_GCC_VERSION[1]) = 4 || $(isHybridBuild) { - InstallOptionalHaikuImagePackage gcc-4.3.3-x86-gcc4-2009-06-29-2 - : $(baseURL)/gcc-4.3.3-x86-gcc4-2009-06-29-2.zip ; + InstallOptionalHaikuImagePackage gcc-4.3.3-r1a1-x86-gcc4-2009-06-29 + : $(baseURL)/gcc-4.3.3-r1a1-x86-gcc4-2009-06-29.zip ; # symlink cpp to g++'s headers AddSymlinkToHaikuImage develop abi x86 gcc4 headers @@ -283,14 +301,14 @@ } # other commonly used tools - InstallOptionalHaikuImagePackage bison-2.4.1-x86-gcc2-2009-07-05 - : $(baseURL)/bison-2.4.1-x86-gcc2-2009-07-05.zip ; - InstallOptionalHaikuImagePackage m4-1.4.12-gcc2-2008-11-04 - : $(baseURL)/m4-1.4.12-gcc2-2008-11-04.zip ; - InstallOptionalHaikuImagePackage flex-2.5.35-x86-gcc2-2009-08-17 - : $(baseURL)/flex-2.5.35-x86-gcc2-2009-08-17.zip ; - InstallOptionalHaikuImagePackage jam-2.5-x86-gcc2-2009-05-26 - : $(baseURL)/jam-2.5-x86-gcc2-2009-05-26.zip ; + InstallOptionalHaikuImagePackage bison-2.4.1-r1a1-x86-gcc2-2009-08-31 + : $(baseURL)/bison-2.4.1-r1a1-x86-gcc2-2009-08-31.zip ; + InstallOptionalHaikuImagePackage m4-1.4.13-r1a1-x86-gcc2-2009-08-28 + : $(baseURL)/m4-1.4.13-r1a1-x86-gcc2-2009-08-28.zip ; + InstallOptionalHaikuImagePackage flex-2.5.35-r1a1-x86-gcc2-2009-08-31 + : $(baseURL)/flex-2.5.35-r1a1-x86-gcc2-2009-08-31.zip ; + InstallOptionalHaikuImagePackage jam-2.5-r1a1-x86-gcc2-2009-08-31 + : $(baseURL)/jam-2.5-r1a1-x86-gcc2-2009-08-31.zip ; } @@ -396,6 +414,19 @@ } +# Expat +if [ IsOptionalHaikuImagePackageAdded Expat ] { + if $(TARGET_ARCH) != x86 { + Echo "No optional package Expat available for $(TARGET_ARCH)" ; + } else { + InstallOptionalHaikuImagePackage expat-2.0.1-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/expat-2.0.1-r1a1-x86-gcc2-2009-08-30.zip + : + ; + } +} + + # Firefox web browser if [ IsOptionalHaikuImagePackageAdded Firefox ] { if $(TARGET_ARCH) != x86 { @@ -419,6 +450,19 @@ } +# Git +if [ IsOptionalHaikuImagePackageAdded Git ] { + if $(TARGET_ARCH) != x86 { + Echo "No optional package Git available for $(TARGET_ARCH)" ; + } else { + InstallOptionalHaikuImagePackage git-1.6.4.2-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/git-1.6.4.2-r1a1-x86-gcc2-2009-08-30.zip + : + ; + } +} + + # KeymapSwitcher if [ IsOptionalHaikuImagePackageAdded KeymapSwitcher ] { if $(TARGET_ARCH) != x86 { @@ -476,8 +520,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package LibXML2 available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage libxml2-2.7.3-x86-gcc2-2009-07-06 - : $(baseURL)/libxml2-2.7.3-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage libxml2-2.7.3-git-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/libxml2-2.7.3-git-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -501,13 +545,26 @@ } +# Mercurial +if [ IsOptionalHaikuImagePackageAdded Mercurial ] { + if $(TARGET_ARCH) != x86 { + Echo "No optional package Mercurial available for $(TARGET_ARCH)" ; + } else { + InstallOptionalHaikuImagePackage mercurial-1.3.1-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/mercurial-1.3.1-r1a1-x86-gcc2-2009-08-30.zip + : + ; + } +} + + # Nano if [ IsOptionalHaikuImagePackageAdded Nano ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Nano available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage nano-2.0.9-x86-gcc2-2009-07-06 - : $(baseURL)/nano-2.0.9-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage nano-2.0.9-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/nano-2.0.9-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -519,8 +576,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Neon available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage neon-0.28.5-x86-gcc2-2009-07-06 - : $(baseURL)/neon-0.28.5-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage neon-0.28.6-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/neon-0.28.6-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -568,8 +625,8 @@ "variable to be set!" ; } - InstallOptionalHaikuImagePackage openssh-5.2p1-x86-gcc2-2009-05-27 - : $(baseURL)/openssh-5.2p1-x86-gcc2-2009-05-27.zip + InstallOptionalHaikuImagePackage openssh-5.2p1-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/openssh-5.2p1-r1a1-x86-gcc2-2009-08-30.zip : ; @@ -599,8 +656,8 @@ } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) { Echo "No optional package P7zip available for gcc4" ; } else { - InstallOptionalHaikuImagePackage p7zip-4.65-x86-gcc2-2009-05-24 - : $(baseURL)/p7zip-4.65-x86-gcc2-2009-05-24.zip + InstallOptionalHaikuImagePackage p7zip-9.04-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/p7zip-9.04-r1a1-x86-gcc2-2009-08-30.zip : ; @@ -658,8 +715,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Python available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage python-2.6.2-x86-gcc2-2009-07-12 - : $(baseURL)/python-2.6.2-x86-gcc2-2009-07-12.zip + InstallOptionalHaikuImagePackage python-2.6.2-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/python-2.6.2-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -671,8 +728,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Rsync available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage rsync-3.0.6-x86-gcc2-2009-05-26 - : $(baseURL)/rsync-3.0.6-x86-gcc2-2009-05-26.zip + InstallOptionalHaikuImagePackage rsync-3.0.6-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/rsync-3.0.6-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -684,8 +741,9 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package SQLite available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage sqlite-3.6.16-x86-gcc2-2009-07-06 - : $(baseURL)/sqlite-3.6.16-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage sqlite-3.6.17-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/sqlite-3.6.17-r1a1-x86-gcc2-2009-08-30.zip + : ; } @@ -697,8 +755,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Subversion available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage subversion-1.6.2-x86-gcc2-2009-05-20 - : $(baseURL)/subversion-1.6.2-x86-gcc2-2009-05-20.zip + InstallOptionalHaikuImagePackage subversion-1.6.5-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/subversion-1.6.5-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -872,8 +930,9 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Yasm available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage yasm-0.8.0-x86-gcc2-2009-07-06 - : $(baseURL)/yasm-0.8.0-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage yasm-0.8.0-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/yasm-0.8.0-r1a1-x86-gcc2-2009-08-30.zip + : ; } From stippi at mail.berlios.de Tue Sep 1 13:43:37 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Tue, 1 Sep 2009 13:43:37 +0200 Subject: [Haiku-commits] r32886 - haiku/branches/releases/r1alpha1/build/jam Message-ID: <200909011143.n81BhbFb001247@sheep.berlios.de> Author: stippi Date: 2009-09-01 13:43:35 +0200 (Tue, 01 Sep 2009) New Revision: 32886 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32886&view=rev Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalBuildFeatures haiku/branches/releases/r1alpha1/build/jam/OptionalPackageDependencies haiku/branches/releases/r1alpha1/build/jam/OptionalPackages Log: Merged r32885 from trunk. Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalBuildFeatures =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/OptionalBuildFeatures 2009-09-01 11:42:09 UTC (rev 32885) +++ haiku/branches/releases/r1alpha1/build/jam/OptionalBuildFeatures 2009-09-01 11:43:35 UTC (rev 32886) @@ -12,7 +12,7 @@ } local baseURL = http://haiku-files.org/files/optional-packages ; -HAIKU_OPENSSL_PACKAGE = openssl-0.9.8k-gcc2-haiku-2009-05-10 ; +HAIKU_OPENSSL_PACKAGE = openssl-0.9.8k-r1a1-x86-gcc2-2009-08-30 ; HAIKU_OPENSSL_URL = $(baseURL)/$(HAIKU_OPENSSL_PACKAGE).zip ; if $(HAIKU_BUILD_FEATURE_SSL) { Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackageDependencies =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/OptionalPackageDependencies 2009-09-01 11:42:09 UTC (rev 32885) +++ haiku/branches/releases/r1alpha1/build/jam/OptionalPackageDependencies 2009-09-01 11:43:35 UTC (rev 32886) @@ -12,3 +12,5 @@ OptionalPackageDependencies LibLayout : DevelopmentBase ; OptionalPackageDependencies NetSurf : OpenSSL ; OptionalPackageDependencies OpenSSH : OpenSSL ; +OptionalPackageDependencies Mercurial : Python ; +OptionalPackageDependencies Git : Expat Curl OpenSSL ; Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackages =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-01 11:42:09 UTC (rev 32885) +++ haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-01 11:43:35 UTC (rev 32886) @@ -23,16 +23,20 @@ # CDRecord - the command line CD writing tools # Clockwerk - native audio/video compositing # CLucene - indexed file search +# Curl - a client that groks URLs # CVS - the version control system # Development - more complete dev environment (including autotools) # DevelopmentBase - basic development environment (gcc, headers, libs,...) # DevelopmentMin - development headers, libs, tools, from sources only +# Expat - XML parsing libraries # Firefox - the webbrowser +# Git - the distributed version control system # KeymapSwitcher - Desktop utility # LibIconv - text encoding conversion library # LibLayout - GCC2 package needed by some BeOS apps to compile # LibXML2 - the XML support libary # Links - the web browser +# Mercurial - the distributed version control system # Nano - the command line text editor # Neon - support libraries used for example by SVN # NetSurf - the web browser @@ -81,8 +85,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package APR available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage apr-1.3.5-x86-gcc2-2009-07-05 - : $(baseURL)/apr-1.3.5-x86-gcc2-2009-07-05.zip + InstallOptionalHaikuImagePackage apr-1.3.8-r1a1-x86-gcc2-2009-08-29 + : $(baseURL)/apr-1.3.8-r1a1-x86-gcc2-2009-08-29.zip : ; } @@ -94,8 +98,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package APR-util available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage apr-util-1.3.7-x86-gcc2-2009-07-05 - : $(baseURL)/apr-util-1.3.7-x86-gcc2-2009-07-05.zip + InstallOptionalHaikuImagePackage apr-util-1.3.9-r1a1-x86-gcc2-2009-08-29 + : $(baseURL)/apr-util-1.3.9-r1a1-x86-gcc2-2009-08-29.zip : ; } @@ -210,8 +214,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package CDRecord available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage cdrecord-2.01.01a59-x86-gcc2-2009-05-26 - : $(baseURL)/cdrecord-2.01.01a59-x86-gcc2-2009-05-26.zip + InstallOptionalHaikuImagePackage cdrecord-2.01.01a63-r1a1-x86-gcc2-2009-08-28 + : $(baseURL)/cdrecord-2.01.01a63-r1a1-x86-gcc2-2009-08-28.zip : ; } @@ -256,13 +260,27 @@ } +# Curl +if [ IsOptionalHaikuImagePackageAdded Expat ] { + if $(TARGET_ARCH) != x86 { + Echo "No optional package Curl available for $(TARGET_ARCH)" ; + } else { + InstallOptionalHaikuImagePackage curl-7.19.6-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/curl-7.19.6-r1a1-x86-gcc2-2009-08-30.zip + + : + ; + } +} + + # CVS if [ IsObsoleteOptionalHaikuImagePackageAdded CVS ] { if $(TARGET_ARCH) != x86 { Echo "No optional package CVS available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage cvs-1.12.13-x86-gcc2-2009-07-06 - : $(baseURL)/cvs-1.12.13-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage cvs-1.12.13-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/cvs-1.12.13-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -272,14 +290,14 @@ # Development if [ IsOptionalHaikuImagePackageAdded Development ] && $(TARGET_ARCH) = x86 { # autotools - InstallOptionalHaikuImagePackage autoconf-2.63-gcc2-2008-11-05 - : $(baseURL)/autoconf-2.63-gcc2-2008-11-05.zip ; - InstallOptionalHaikuImagePackage automake-1.10.1-gcc2-2008-11-06 - : $(baseURL)/automake-1.10.1-gcc2-2008-11-06.zip ; - InstallOptionalHaikuImagePackage libtool-2.2.6a-gcc2-2008-11-09 - : $(baseURL)/libtool-2.2.6a-gcc2-2008-11-09.zip ; - InstallOptionalHaikuImagePackage texinfo-4.13a-gcc2-2008-11-09 - : $(baseURL)/texinfo-4.13a-gcc2-2008-11-09.zip ; + InstallOptionalHaikuImagePackage autoconf-2.64-r1a1-x86-gcc2-2009-08-27 + : $(baseURL)/autoconf-2.64-r1a1-x86-gcc2-2009-08-27.zip ; + InstallOptionalHaikuImagePackage automake-1.11-r1a1-x86-gcc2-2009-08-27 + : $(baseURL)/automake-1.11-r1a1-x86-gcc2-2009-08-27.zip ; + InstallOptionalHaikuImagePackage libtool-2.2.6a-r1a1-x86-gcc2-2009-08-28 + : $(baseURL)/libtool-2.2.6a-r1a1-x86-gcc2-2009-08-28.zip ; + InstallOptionalHaikuImagePackage texinfo-4.13a-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/texinfo-4.13a-r1a1-x86-gcc2-2009-08-30.zip ; ObsoleteOptionalPackageWarning autoconf ; ObsoleteOptionalPackageWarning automake ; @@ -307,14 +325,14 @@ } # other commonly used tools - InstallOptionalHaikuImagePackage bison-2.4.1-x86-gcc2-2009-07-05 - : $(baseURL)/bison-2.4.1-x86-gcc2-2009-07-05.zip ; - InstallOptionalHaikuImagePackage m4-1.4.12-gcc2-2008-11-04 - : $(baseURL)/m4-1.4.12-gcc2-2008-11-04.zip ; - InstallOptionalHaikuImagePackage flex-2.5.35-x86-gcc2-2009-08-17 - : $(baseURL)/flex-2.5.35-x86-gcc2-2009-08-17.zip ; - InstallOptionalHaikuImagePackage jam-2.5-x86-gcc2-2009-05-26 - : $(baseURL)/jam-2.5-x86-gcc2-2009-05-26.zip ; + InstallOptionalHaikuImagePackage bison-2.4.1-r1a1-x86-gcc2-2009-08-31 + : $(baseURL)/bison-2.4.1-r1a1-x86-gcc2-2009-08-31.zip ; + InstallOptionalHaikuImagePackage m4-1.4.13-r1a1-x86-gcc2-2009-08-28 + : $(baseURL)/m4-1.4.13-r1a1-x86-gcc2-2009-08-28.zip ; + InstallOptionalHaikuImagePackage flex-2.5.35-r1a1-x86-gcc2-2009-08-31 + : $(baseURL)/flex-2.5.35-r1a1-x86-gcc2-2009-08-31.zip ; + InstallOptionalHaikuImagePackage jam-2.5-r1a1-x86-gcc2-2009-08-31 + : $(baseURL)/jam-2.5-r1a1-x86-gcc2-2009-08-31.zip ; } @@ -420,6 +438,19 @@ } +# Expat +if [ IsOptionalHaikuImagePackageAdded Expat ] { + if $(TARGET_ARCH) != x86 { + Echo "No optional package Expat available for $(TARGET_ARCH)" ; + } else { + InstallOptionalHaikuImagePackage expat-2.0.1-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/expat-2.0.1-r1a1-x86-gcc2-2009-08-30.zip + : + ; + } +} + + # Firefox web browser if [ IsObsoleteOptionalHaikuImagePackageAdded Firefox ] { if $(TARGET_ARCH) != x86 { @@ -443,6 +474,19 @@ } +# Git +if [ IsOptionalHaikuImagePackageAdded Git ] { + if $(TARGET_ARCH) != x86 { + Echo "No optional package Git available for $(TARGET_ARCH)" ; + } else { + InstallOptionalHaikuImagePackage git-1.6.4.2-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/git-1.6.4.2-r1a1-x86-gcc2-2009-08-30.zip + : + ; + } +} + + # KeymapSwitcher if [ IsObsoleteOptionalHaikuImagePackageAdded KeymapSwitcher ] { if $(TARGET_ARCH) != x86 { @@ -500,8 +544,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package LibXML2 available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage libxml2-2.7.3-x86-gcc2-2009-07-06 - : $(baseURL)/libxml2-2.7.3-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage libxml2-2.7.3-git-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/libxml2-2.7.3-git-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -525,13 +569,26 @@ } +# Mercurial +if [ IsOptionalHaikuImagePackageAdded Mercurial ] { + if $(TARGET_ARCH) != x86 { + Echo "No optional package Mercurial available for $(TARGET_ARCH)" ; + } else { + InstallOptionalHaikuImagePackage mercurial-1.3.1-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/mercurial-1.3.1-r1a1-x86-gcc2-2009-08-30.zip + : + ; + } +} + + # Nano if [ IsObsoleteOptionalHaikuImagePackageAdded Nano ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Nano available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage nano-2.0.9-x86-gcc2-2009-07-06 - : $(baseURL)/nano-2.0.9-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage nano-2.0.9-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/nano-2.0.9-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -543,8 +600,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Neon available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage neon-0.28.5-x86-gcc2-2009-07-06 - : $(baseURL)/neon-0.28.5-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage neon-0.28.6-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/neon-0.28.6-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -592,8 +649,8 @@ "variable to be set!" ; } - InstallOptionalHaikuImagePackage openssh-5.2p1-x86-gcc2-2009-05-27 - : $(baseURL)/openssh-5.2p1-x86-gcc2-2009-05-27.zip + InstallOptionalHaikuImagePackage openssh-5.2p1-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/openssh-5.2p1-r1a1-x86-gcc2-2009-08-30.zip : ; @@ -623,8 +680,8 @@ } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) { Echo "No optional package P7zip available for gcc4" ; } else { - InstallOptionalHaikuImagePackage p7zip-4.65-x86-gcc2-2009-05-24 - : $(baseURL)/p7zip-4.65-x86-gcc2-2009-05-24.zip + InstallOptionalHaikuImagePackage p7zip-9.04-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/p7zip-9.04-r1a1-x86-gcc2-2009-08-30.zip : ; @@ -682,8 +739,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Python available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage python-2.6.2-x86-gcc2-2009-07-12 - : $(baseURL)/python-2.6.2-x86-gcc2-2009-07-12.zip + InstallOptionalHaikuImagePackage python-2.6.2-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/python-2.6.2-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -695,8 +752,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Rsync available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage rsync-3.0.6-x86-gcc2-2009-05-26 - : $(baseURL)/rsync-3.0.6-x86-gcc2-2009-05-26.zip + InstallOptionalHaikuImagePackage rsync-3.0.6-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/rsync-3.0.6-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -708,8 +765,9 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package SQLite available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage sqlite-3.6.16-x86-gcc2-2009-07-06 - : $(baseURL)/sqlite-3.6.16-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage sqlite-3.6.17-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/sqlite-3.6.17-r1a1-x86-gcc2-2009-08-30.zip + : ; } @@ -721,8 +779,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Subversion available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage subversion-1.6.2-x86-gcc2-2009-05-20 - : $(baseURL)/subversion-1.6.2-x86-gcc2-2009-05-20.zip + InstallOptionalHaikuImagePackage subversion-1.6.5-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/subversion-1.6.5-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -896,8 +954,9 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Yasm available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage yasm-0.8.0-x86-gcc2-2009-07-06 - : $(baseURL)/yasm-0.8.0-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage yasm-0.8.0-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/yasm-0.8.0-r1a1-x86-gcc2-2009-08-30.zip + : ; } From axeld at pinc-software.de Tue Sep 1 13:55:06 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Tue, 01 Sep 2009 13:55:06 +0200 CEST Subject: [Haiku-commits] r32733 - haiku/trunk/src/apps/terminal In-Reply-To: <20090831173126.459.1@knochen-vm.localdomain> Message-ID: <16744630587-BeMail@zon> Ingo Weinhold wrote: > Future Intel 64/IA-32 processor families might not have that > property (I haven't read that this is a general architecture property > that > won't change at least), and I believe the atomic_*() implementations > for > other architectures (e.g. PPC) do not create memory barriers at all. Indeed, you're right, although I don't think they can easily change the "lock" behaviour on x86, as that potentially breaks existing code. Bye, Axel. From revol at free.fr Tue Sep 1 14:09:28 2009 From: revol at free.fr (=?utf-8?q?Fran=C3=A7ois?= Revol) Date: Tue, 01 Sep 2009 14:09:28 +0200 CEST Subject: [Haiku-commits] r32733 - haiku/trunk/src/apps/terminal In-Reply-To: <16744630587-BeMail@zon> Message-ID: <4019713688-BeMail@laptop> > Ingo Weinhold wrote: > > Future Intel 64/IA-32 processor families might not have that > > property (I haven't read that this is a general architecture > > property > > that > > won't change at least), and I believe the atomic_*() > > implementations > > for > > other architectures (e.g. PPC) do not create memory barriers at > > all. > > Indeed, you're right, although I don't think they can easily change > the > "lock" behaviour on x86, as that potentially breaks existing code. I already added some barrier ops to the kernel some time ago to remove hardcoded x86 ones from a driver: http://dev.haiku-os.org/changeset/25183 We can easily include those in libroot too if needed. Fran?ois. From axeld at mail.berlios.de Tue Sep 1 14:49:24 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Tue, 1 Sep 2009 14:49:24 +0200 Subject: [Haiku-commits] r32887 - in haiku/branches/releases/r1alpha1: headers/os/drivers src/add-ons/kernel/generic Message-ID: <200909011249.n81CnONM020000@sheep.berlios.de> Author: axeld Date: 2009-09-01 14:49:23 +0200 (Tue, 01 Sep 2009) New Revision: 32887 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32887&view=rev Removed: haiku/branches/releases/r1alpha1/headers/os/drivers/atomizer.h haiku/branches/releases/r1alpha1/src/add-ons/kernel/generic/atomizer/ Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/generic/Jamfile Log: * Removed unused atomizer module (it wasn't even on the image). * Since it's usefulness it at least questionable, I wouldn't mind removing it from trunk as well -- we can resurrect always it if the need arises. Deleted: haiku/branches/releases/r1alpha1/headers/os/drivers/atomizer.h Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/generic/Jamfile =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/generic/Jamfile 2009-09-01 11:43:35 UTC (rev 32886) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/generic/Jamfile 2009-09-01 12:49:23 UTC (rev 32887) @@ -1,7 +1,6 @@ SubDir HAIKU_TOP src add-ons kernel generic ; SubInclude HAIKU_TOP src add-ons kernel generic ata_adapter ; -SubInclude HAIKU_TOP src add-ons kernel generic atomizer ; SubInclude HAIKU_TOP src add-ons kernel generic dpc ; SubInclude HAIKU_TOP src add-ons kernel generic ide_adapter ; SubInclude HAIKU_TOP src add-ons kernel generic locked_pool ; From axeld at mail.berlios.de Tue Sep 1 15:00:17 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Tue, 1 Sep 2009 15:00:17 +0200 Subject: [Haiku-commits] r32888 - haiku/trunk/src/apps/powerstatus Message-ID: <200909011300.n81D0HdX024835@sheep.berlios.de> Author: axeld Date: 2009-09-01 15:00:17 +0200 (Tue, 01 Sep 2009) New Revision: 32888 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32888&view=rev Modified: haiku/trunk/src/apps/powerstatus/PowerStatusView.cpp Log: * PowerStatus now checks if full_capacity is valid, based on a patch by tqh. This closes bug #4305. +alphabranch Modified: haiku/trunk/src/apps/powerstatus/PowerStatusView.cpp =================================================================== --- haiku/trunk/src/apps/powerstatus/PowerStatusView.cpp 2009-09-01 12:49:23 UTC (rev 32887) +++ haiku/trunk/src/apps/powerstatus/PowerStatusView.cpp 2009-09-01 13:00:17 UTC (rev 32888) @@ -332,7 +332,9 @@ _GetBatteryInfo(&fBatteryInfo, fBatteryID); - fPercent = (100 * fBatteryInfo.capacity) / fBatteryInfo.full_capacity; + if (fBatteryInfo.full_capacity != 0) + fPercent = (100 * fBatteryInfo.capacity) / fBatteryInfo.full_capacity; + fTimeLeft = fBatteryInfo.time_left; if ((fBatteryInfo.state & BATTERY_CHARGING) != 0) fOnline = true; From axeld at mail.berlios.de Tue Sep 1 15:19:23 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Tue, 1 Sep 2009 15:19:23 +0200 Subject: [Haiku-commits] r32889 - haiku/trunk/src/tests/system/libroot/posix Message-ID: <200909011319.n81DJNmU029442@sheep.berlios.de> Author: axeld Date: 2009-09-01 15:19:22 +0200 (Tue, 01 Sep 2009) New Revision: 32889 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32889&view=rev Modified: haiku/trunk/src/tests/system/libroot/posix/dirent_test.cpp Log: * Applied dirent_test build fix in trunk as well. Modified: haiku/trunk/src/tests/system/libroot/posix/dirent_test.cpp =================================================================== --- haiku/trunk/src/tests/system/libroot/posix/dirent_test.cpp 2009-09-01 13:00:17 UTC (rev 32888) +++ haiku/trunk/src/tests/system/libroot/posix/dirent_test.cpp 2009-09-01 13:19:22 UTC (rev 32889) @@ -1,14 +1,13 @@ /* - * Copyright 2008, Axel D?rfler, axeld at pinc-software.de. + * Copyright 2008-2009, Axel D?rfler, axeld at pinc-software.de. * Distributed under the terms of the MIT License. */ + #include #include -#include - int main(int argc, char** argv) { @@ -21,7 +20,7 @@ printf("Entry: dev %ld, ino %Ld, name \"%s\"\n", dirent->d_dev, dirent->d_ino, dirent->d_name); - printf(" left: %u, next: %d\n", dir->entries_left, dir->next_entry); + //printf(" left: %u, next: %d\n", dir->entries_left, dir->next_entry); } closedir(dir); From axeld at mail.berlios.de Tue Sep 1 15:23:07 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Tue, 1 Sep 2009 15:23:07 +0200 Subject: [Haiku-commits] r32890 - in haiku/trunk/src/system/kernel: disk_device_manager fs Message-ID: <200909011323.n81DN72U030490@sheep.berlios.de> Author: axeld Date: 2009-09-01 15:23:05 +0200 (Tue, 01 Sep 2009) New Revision: 32890 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32890&view=rev Modified: haiku/trunk/src/system/kernel/disk_device_manager/KPartition.cpp haiku/trunk/src/system/kernel/fs/vfs.cpp Log: * Cleanup, no functional change. + alphabranch Modified: haiku/trunk/src/system/kernel/disk_device_manager/KPartition.cpp =================================================================== --- haiku/trunk/src/system/kernel/disk_device_manager/KPartition.cpp 2009-09-01 13:19:22 UTC (rev 32889) +++ haiku/trunk/src/system/kernel/disk_device_manager/KPartition.cpp 2009-09-01 13:23:05 UTC (rev 32890) @@ -1,23 +1,24 @@ /* * Copyright 2009, Bryce Groff, bgroff at hawaii.edu. - * Copyright 2004-2008, Haiku, Inc. All rights reserved. + * Copyright 2004-2009, Axel D?rfler, axeld at pinc-software.de. * Copyright 2003-2009, Ingo Weinhold, ingo_weinhold at gmx.de. * * Distributed under the terms of the MIT License. */ +#include + #include #include #include #include #include -#include #include #include #include -#include +#include #include #include @@ -25,40 +26,46 @@ #include #include #include -#include #include #include #include +#include #include #include #include "UserDataWriter.h" + using namespace std; + // debugging //#define DBG(x) #define DBG(x) x #define OUT dprintf -// ListenerSet + struct KPartition::ListenerSet : VectorSet {}; -// constructor + +int32 KPartition::sNextID = 0; + + KPartition::KPartition(partition_id id) - : fPartitionData(), - fChildren(), - fDevice(NULL), - fParent(NULL), - fDiskSystem(NULL), - fDiskSystemPriority(-1), - fListeners(NULL), - fChangeFlags(0), - fChangeCounter(0), - fAlgorithmData(0), - fReferenceCount(0), - fObsolete(false), - fPublishedName(NULL) + : + fPartitionData(), + fChildren(), + fDevice(NULL), + fParent(NULL), + fDiskSystem(NULL), + fDiskSystemPriority(-1), + fListeners(NULL), + fChangeFlags(0), + fChangeCounter(0), + fAlgorithmData(0), + fReferenceCount(0), + fObsolete(false), + fPublishedName(NULL) { fPartitionData.id = id >= 0 ? id : _NextID(); fPartitionData.offset = 0; @@ -81,7 +88,7 @@ fPartitionData.content_cookie = NULL; } -// destructor + KPartition::~KPartition() { delete fListeners; @@ -93,18 +100,18 @@ free(fPartitionData.content_parameters); } -// Register + void KPartition::Register() { fReferenceCount++; } -// Unregister + void KPartition::Unregister() { - KDiskDeviceManager *manager = KDiskDeviceManager::Default(); + KDiskDeviceManager* manager = KDiskDeviceManager::Default(); ManagerLocker locker(manager); fReferenceCount--; if (IsObsolete() && fReferenceCount == 0) { @@ -113,28 +120,28 @@ } } -// CountReferences + int32 KPartition::CountReferences() const { return fReferenceCount; } -// MarkObsolete + void KPartition::MarkObsolete() { fObsolete = true; } -// IsObsolete + bool KPartition::IsObsolete() const { return fObsolete; } -// PrepareForRemoval + bool KPartition::PrepareForRemoval() { @@ -148,16 +155,16 @@ return result; } -// PrepareForDeletion + bool KPartition::PrepareForDeletion() { return true; } -// Open + status_t -KPartition::Open(int flags, int *fd) +KPartition::Open(int flags, int* fd) { if (!fd) return B_BAD_VALUE; @@ -176,7 +183,7 @@ return B_OK; } -// PublishDevice + status_t KPartition::PublishDevice() { @@ -217,7 +224,7 @@ return B_OK; } -// UnpublishDevice + status_t KPartition::UnpublishDevice() { @@ -238,7 +245,6 @@ } -// RepublishDevice status_t KPartition::RepublishDevice() { @@ -281,7 +287,6 @@ } -// IsPublished bool KPartition::IsPublished() const { @@ -289,7 +294,6 @@ } -// SetBusy void KPartition::SetBusy(bool busy) { @@ -300,15 +304,13 @@ } -// IsBusy bool KPartition::IsBusy() const { - return (fPartitionData.flags & B_PARTITION_BUSY); + return (fPartitionData.flags & B_PARTITION_BUSY) != 0; } -// IsBusy bool KPartition::IsBusy(bool includeDescendants) { @@ -326,7 +328,6 @@ } -// CheckAndMarkBusy bool KPartition::CheckAndMarkBusy(bool includeDescendants) { @@ -339,7 +340,6 @@ } -// MarkBusy void KPartition::MarkBusy(bool includeDescendants) { @@ -358,7 +358,6 @@ } -// UnmarkBusy void KPartition::UnmarkBusy(bool includeDescendants) { @@ -377,7 +376,6 @@ } -// SetOffset void KPartition::SetOffset(off_t offset) { @@ -387,14 +385,14 @@ } } -// Offset + off_t KPartition::Offset() const { return fPartitionData.offset; } -// SetSize + void KPartition::SetSize(off_t size) { @@ -404,14 +402,14 @@ } } -// Size + off_t KPartition::Size() const { return fPartitionData.size; } -// SetContentSize + void KPartition::SetContentSize(off_t size) { @@ -421,14 +419,14 @@ } } -// ContentSize + off_t KPartition::ContentSize() const { return fPartitionData.content_size; } -// SetBlockSize + void KPartition::SetBlockSize(uint32 blockSize) { @@ -438,14 +436,14 @@ } } -// BlockSize + uint32 KPartition::BlockSize() const { return fPartitionData.block_size; } -// SetIndex + void KPartition::SetIndex(int32 index) { @@ -455,14 +453,14 @@ } } -// Index + int32 KPartition::Index() const { return fPartitionData.index; } -// SetStatus + void KPartition::SetStatus(uint32 status) { @@ -472,21 +470,21 @@ } } -// Status + uint32 KPartition::Status() const { return fPartitionData.status; } -// IsUninitialized + bool KPartition::IsUninitialized() const { - return (Status() == B_PARTITION_UNINITIALIZED); + return Status() == B_PARTITION_UNINITIALIZED; } -// SetFlags + void KPartition::SetFlags(uint32 flags) { @@ -496,7 +494,7 @@ } } -// AddFlags + void KPartition::AddFlags(uint32 flags) { @@ -506,7 +504,7 @@ } } -// ClearFlags + void KPartition::ClearFlags(uint32 flags) { @@ -516,118 +514,118 @@ } } -// Flags + uint32 KPartition::Flags() const { return fPartitionData.flags; } -// ContainsFileSystem + bool KPartition::ContainsFileSystem() const { - return (fPartitionData.flags & B_PARTITION_FILE_SYSTEM); + return (fPartitionData.flags & B_PARTITION_FILE_SYSTEM) != 0; } -// ContainsPartitioningSystem + bool KPartition::ContainsPartitioningSystem() const { - return (fPartitionData.flags & B_PARTITION_PARTITIONING_SYSTEM); + return (fPartitionData.flags & B_PARTITION_PARTITIONING_SYSTEM) != 0; } -// IsReadOnly + bool KPartition::IsReadOnly() const { - return (fPartitionData.flags & B_PARTITION_READ_ONLY); + return (fPartitionData.flags & B_PARTITION_READ_ONLY) != 0; } -// IsMounted + bool KPartition::IsMounted() const { - return (fPartitionData.flags & B_PARTITION_MOUNTED); + return (fPartitionData.flags & B_PARTITION_MOUNTED) != 0; } -// IsDevice + bool KPartition::IsDevice() const { - return (fPartitionData.flags & B_PARTITION_IS_DEVICE); + return (fPartitionData.flags & B_PARTITION_IS_DEVICE) != 0; } -// SetName + status_t -KPartition::SetName(const char *name) +KPartition::SetName(const char* name) { status_t error = set_string(fPartitionData.name, name); FireNameChanged(fPartitionData.name); return error; } -// Name -const char * + +const char* KPartition::Name() const { return fPartitionData.name; } -// SetContentName + status_t -KPartition::SetContentName(const char *name) +KPartition::SetContentName(const char* name) { status_t error = set_string(fPartitionData.content_name, name); FireContentNameChanged(fPartitionData.content_name); return error; } -// ContentName -const char * + +const char* KPartition::ContentName() const { return fPartitionData.content_name; } -// SetType + status_t -KPartition::SetType(const char *type) +KPartition::SetType(const char* type) { status_t error = set_string(fPartitionData.type, type); FireTypeChanged(fPartitionData.type); return error; } -// Type -const char * + +const char* KPartition::Type() const { return fPartitionData.type; } -// ContentType -const char * + +const char* KPartition::ContentType() const { return fPartitionData.content_type; } -// PartitionData -partition_data * + +partition_data* KPartition::PartitionData() { return &fPartitionData; } -// PartitionData -const partition_data * + +const partition_data* KPartition::PartitionData() const { return &fPartitionData; } -// SetID + void KPartition::SetID(partition_id id) { @@ -637,7 +635,7 @@ } } -// ID + partition_id KPartition::ID() const { @@ -646,7 +644,7 @@ status_t -KPartition::GetFileName(char *buffer, size_t size) const +KPartition::GetFileName(char* buffer, size_t size) const { // If the parent is the device, the name is the index of the partition. if (Parent() == NULL || Parent()->IsDevice()) { @@ -669,7 +667,7 @@ status_t -KPartition::GetPath(KPath *path) const +KPartition::GetPath(KPath* path) const { // For a KDiskDevice this version is never invoked, so the check for // Parent() is correct. @@ -691,7 +689,6 @@ } -// SetVolumeID void KPartition::SetVolumeID(dev_t volumeID) { @@ -705,16 +702,16 @@ } } -// VolumeID + dev_t KPartition::VolumeID() const { return fPartitionData.volume; } -// SetMountCookie + void -KPartition::SetMountCookie(void *cookie) +KPartition::SetMountCookie(void* cookie) { if (fPartitionData.mount_cookie != cookie) { fPartitionData.mount_cookie = cookie; @@ -722,22 +719,22 @@ } } -// MountCookie -void * + +void* KPartition::MountCookie() const { return fPartitionData.mount_cookie; } -// Mount + status_t -KPartition::Mount(uint32 mountFlags, const char *parameters) +KPartition::Mount(uint32 mountFlags, const char* parameters) { // not implemented return B_ERROR; } -// Unmount + status_t KPartition::Unmount() { @@ -745,72 +742,72 @@ return B_ERROR; } -// SetParameters + status_t -KPartition::SetParameters(const char *parameters) +KPartition::SetParameters(const char* parameters) { status_t error = set_string(fPartitionData.parameters, parameters); FireParametersChanged(fPartitionData.parameters); return error; } -// Parameters -const char * + +const char* KPartition::Parameters() const { return fPartitionData.parameters; } -// SetContentParameters + status_t -KPartition::SetContentParameters(const char *parameters) +KPartition::SetContentParameters(const char* parameters) { status_t error = set_string(fPartitionData.content_parameters, parameters); FireContentParametersChanged(fPartitionData.content_parameters); return error; } -// ContentParameters -const char * + +const char* KPartition::ContentParameters() const { return fPartitionData.content_parameters; } -// SetDevice + void -KPartition::SetDevice(KDiskDevice *device) +KPartition::SetDevice(KDiskDevice* device) { fDevice = device; - if (fDevice && fDevice->IsReadOnlyMedia()) + if (fDevice != NULL && fDevice->IsReadOnlyMedia()) AddFlags(B_PARTITION_READ_ONLY); } -// Device -KDiskDevice * + +KDiskDevice* KPartition::Device() const { return fDevice; } -// SetParent + void -KPartition::SetParent(KPartition *parent) +KPartition::SetParent(KPartition* parent) { // Must be called in a {Add,Remove}Child() only! fParent = parent; } -// Parent -KPartition * + +KPartition* KPartition::Parent() const { return fParent; } -// AddChild + status_t -KPartition::AddChild(KPartition *partition, int32 index) +KPartition::AddChild(KPartition* partition, int32 index) { // check parameters int32 count = fPartitionData.child_count; @@ -818,8 +815,9 @@ index = count; if (index < 0 || index > count || !partition) return B_BAD_VALUE; + // add partition - KDiskDeviceManager *manager = KDiskDeviceManager::Default(); + KDiskDeviceManager* manager = KDiskDeviceManager::Default(); if (ManagerLocker locker = manager) { status_t error = fChildren.Insert(partition, index); if (error != B_OK) @@ -847,10 +845,9 @@ } -// CreateChild status_t KPartition::CreateChild(partition_id id, int32 index, off_t offset, off_t size, - KPartition **_child) + KPartition** _child) { // check parameters int32 count = fPartitionData.child_count; @@ -860,8 +857,8 @@ return B_BAD_VALUE; // create and add partition - KPartition *child = new(nothrow) KPartition(id); - if (!child) + KPartition* child = new(std::nothrow) KPartition(id); + if (child == NULL) return B_NO_MEMORY; child->SetOffset(offset); @@ -879,15 +876,15 @@ } -// RemoveChild bool KPartition::RemoveChild(int32 index) { if (index < 0 || index >= fPartitionData.child_count) return false; - KDiskDeviceManager *manager = KDiskDeviceManager::Default(); + + KDiskDeviceManager* manager = KDiskDeviceManager::Default(); if (ManagerLocker locker = manager) { - KPartition *partition = fChildren.ElementAt(index); + KPartition* partition = fChildren.ElementAt(index); PartitionRegistrar _(partition); if (!partition || !manager->PartitionRemoved(partition) || !fChildren.Erase(index)) { @@ -905,9 +902,9 @@ return false; } -// RemoveChild + bool -KPartition::RemoveChild(KPartition *child) +KPartition::RemoveChild(KPartition* child) { if (child) { int32 index = fChildren.IndexOf(child); @@ -917,7 +914,7 @@ return false; } -// RemoveAllChildren + bool KPartition::RemoveAllChildren() { @@ -929,41 +926,41 @@ return true; } -// ChildAt -KPartition * + +KPartition* KPartition::ChildAt(int32 index) const { - return (index >= 0 && index < fChildren.Count() - ? fChildren.ElementAt(index) : NULL); + return index >= 0 && index < fChildren.Count() + ? fChildren.ElementAt(index) : NULL; } -// CountChildren + int32 KPartition::CountChildren() const { return fPartitionData.child_count; } -// CountDescendants + int32 KPartition::CountDescendants() const { int32 count = 1; - for (int32 i = 0; KPartition *child = ChildAt(i); i++) + for (int32 i = 0; KPartition* child = ChildAt(i); i++) count += child->CountDescendants(); return count; } -// VisitEachDescendant -KPartition * -KPartition::VisitEachDescendant(KPartitionVisitor *visitor) + +KPartition* +KPartition::VisitEachDescendant(KPartitionVisitor* visitor) { if (!visitor) return NULL; if (visitor->VisitPre(this)) return this; - for (int32 i = 0; KPartition *child = ChildAt(i); i++) { - if (KPartition *result = child->VisitEachDescendant(visitor)) + for (int32 i = 0; KPartition* child = ChildAt(i); i++) { + if (KPartition* result = child->VisitEachDescendant(visitor)) return result; } if (visitor->VisitPost(this)) @@ -972,9 +969,8 @@ } -// SetDiskSystem void -KPartition::SetDiskSystem(KDiskSystem *diskSystem, float priority) +KPartition::SetDiskSystem(KDiskSystem* diskSystem, float priority) { // unload former disk system if (fDiskSystem) { @@ -985,8 +981,10 @@ } // set and load new one fDiskSystem = diskSystem; - if (fDiskSystem) - fDiskSystem->Load(); // can't fail, since it's already loaded + if (fDiskSystem) { + fDiskSystem->Load(); + // can't fail, since it's already loaded + } // update concerned partition flags if (fDiskSystem) { fPartitionData.content_type = fDiskSystem->PrettyName(); @@ -1000,8 +998,8 @@ FireDiskSystemChanged(fDiskSystem); } -// DiskSystem -KDiskSystem * + +KDiskSystem* KPartition::DiskSystem() const { return fDiskSystem; @@ -1015,16 +1013,15 @@ } -// ParentDiskSystem -KDiskSystem * +KDiskSystem* KPartition::ParentDiskSystem() const { - return (Parent() ? Parent()->DiskSystem() : NULL); + return Parent() ? Parent()->DiskSystem() : NULL; } -// SetCookie + void -KPartition::SetCookie(void *cookie) +KPartition::SetCookie(void* cookie) { if (fPartitionData.cookie != cookie) { fPartitionData.cookie = cookie; @@ -1032,16 +1029,16 @@ } } -// Cookie -void * + +void* KPartition::Cookie() const { return fPartitionData.cookie; } -// SetContentCookie + void -KPartition::SetContentCookie(void *cookie) +KPartition::SetContentCookie(void* cookie) { if (fPartitionData.content_cookie != cookie) { fPartitionData.content_cookie = cookie; @@ -1049,16 +1046,16 @@ } } -// ContentCookie -void * + +void* KPartition::ContentCookie() const { return fPartitionData.content_cookie; } -// AddListener + bool -KPartition::AddListener(KPartitionListener *listener) +KPartition::AddListener(KPartitionListener* listener) { if (!listener) return false; @@ -1069,12 +1066,12 @@ return false; } // add listener - return (fListeners->Insert(listener) == B_OK); + return fListeners->Insert(listener) == B_OK; } -// RemoveListener + bool -KPartition::RemoveListener(KPartitionListener *listener) +KPartition::RemoveListener(KPartitionListener* listener) { if (!listener || !fListeners) return false; @@ -1087,7 +1084,7 @@ return result; } -// Changed + void KPartition::Changed(uint32 flags, uint32 clearFlags) { @@ -1098,21 +1095,21 @@ Parent()->Changed(B_PARTITION_CHANGED_DESCENDANTS); } -// SetChangeFlags + void KPartition::SetChangeFlags(uint32 flags) { fChangeFlags = flags; } -// ChangeFlags + uint32 KPartition::ChangeFlags() const { return fChangeFlags; } -// ChangeCounter + int32 KPartition::ChangeCounter() const { @@ -1120,7 +1117,6 @@ [... truncated: 389 lines follow ...] From axeld at mail.berlios.de Tue Sep 1 15:59:36 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Tue, 1 Sep 2009 15:59:36 +0200 Subject: [Haiku-commits] r32891 - haiku/trunk/src/system/kernel/disk_device_manager Message-ID: <200909011359.n81DxaRR009049@sheep.berlios.de> Author: axeld Date: 2009-09-01 15:59:36 +0200 (Tue, 01 Sep 2009) New Revision: 32891 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32891&view=rev Modified: haiku/trunk/src/system/kernel/disk_device_manager/KPartition.cpp Log: * Quick fix to send notifications on mount/unmount/initialize. * This closes #2081. +alphabranch Modified: haiku/trunk/src/system/kernel/disk_device_manager/KPartition.cpp =================================================================== --- haiku/trunk/src/system/kernel/disk_device_manager/KPartition.cpp 2009-09-01 13:23:05 UTC (rev 32890) +++ haiku/trunk/src/system/kernel/disk_device_manager/KPartition.cpp 2009-09-01 13:59:36 UTC (rev 32891) @@ -15,6 +15,7 @@ #include #include +#include #include #include #include @@ -692,14 +693,28 @@ void KPartition::SetVolumeID(dev_t volumeID) { - if (fPartitionData.volume != volumeID) { - fPartitionData.volume = volumeID; - FireVolumeIDChanged(volumeID); - if (VolumeID() >= 0) - AddFlags(B_PARTITION_MOUNTED); - else - ClearFlags(B_PARTITION_MOUNTED); - } + if (fPartitionData.volume == volumeID) + return; + + fPartitionData.volume = volumeID; + FireVolumeIDChanged(volumeID); + if (VolumeID() >= 0) + AddFlags(B_PARTITION_MOUNTED); + else + ClearFlags(B_PARTITION_MOUNTED); + + KDiskDeviceManager* manager = KDiskDeviceManager::Default(); + + char messageBuffer[512]; + KMessage message; + message.SetTo(messageBuffer, sizeof(messageBuffer), B_DEVICE_UPDATE); + message.AddInt32("event", volumeID >= 0 + ? B_DEVICE_PARTITION_MOUNTED : B_DEVICE_PARTITION_UNMOUNTED); + message.AddInt32("id", ID()); + if (volumeID >= 0) + message.AddInt32("volume", volumeID); + + manager->Notify(message, B_DEVICE_REQUEST_MOUNTING); } @@ -996,6 +1011,16 @@ } // notify listeners FireDiskSystemChanged(fDiskSystem); + + KDiskDeviceManager* manager = KDiskDeviceManager::Default(); + + char messageBuffer[512]; + KMessage message; + message.SetTo(messageBuffer, sizeof(messageBuffer), B_DEVICE_UPDATE); + message.AddInt32("event", B_DEVICE_PARTITION_INITIALIZED); + message.AddInt32("id", ID()); + + manager->Notify(message, B_DEVICE_REQUEST_PARTITION); } From stippi at mail.berlios.de Tue Sep 1 16:30:23 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Tue, 1 Sep 2009 16:30:23 +0200 Subject: [Haiku-commits] r32892 - in haiku/branches/releases/r1alpha1/src: apps/powerstatus system/kernel/disk_device_manager system/kernel/fs Message-ID: <200909011430.n81EUNIn015545@sheep.berlios.de> Author: stippi Date: 2009-09-01 16:30:20 +0200 (Tue, 01 Sep 2009) New Revision: 32892 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32892&view=rev Modified: haiku/branches/releases/r1alpha1/src/apps/powerstatus/PowerStatusView.cpp haiku/branches/releases/r1alpha1/src/system/kernel/disk_device_manager/KPartition.cpp haiku/branches/releases/r1alpha1/src/system/kernel/fs/vfs.cpp Log: Merged changes r32888, r32890 and r32891 from trunk. Modified: haiku/branches/releases/r1alpha1/src/apps/powerstatus/PowerStatusView.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/apps/powerstatus/PowerStatusView.cpp 2009-09-01 13:59:36 UTC (rev 32891) +++ haiku/branches/releases/r1alpha1/src/apps/powerstatus/PowerStatusView.cpp 2009-09-01 14:30:20 UTC (rev 32892) @@ -332,7 +332,9 @@ _GetBatteryInfo(&fBatteryInfo, fBatteryID); - fPercent = (100 * fBatteryInfo.capacity) / fBatteryInfo.full_capacity; + if (fBatteryInfo.full_capacity != 0) + fPercent = (100 * fBatteryInfo.capacity) / fBatteryInfo.full_capacity; + fTimeLeft = fBatteryInfo.time_left; if ((fBatteryInfo.state & BATTERY_CHARGING) != 0) fOnline = true; Modified: haiku/branches/releases/r1alpha1/src/system/kernel/disk_device_manager/KPartition.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/system/kernel/disk_device_manager/KPartition.cpp 2009-09-01 13:59:36 UTC (rev 32891) +++ haiku/branches/releases/r1alpha1/src/system/kernel/disk_device_manager/KPartition.cpp 2009-09-01 14:30:20 UTC (rev 32892) @@ -1,23 +1,25 @@ /* * Copyright 2009, Bryce Groff, bgroff at hawaii.edu. - * Copyright 2004-2008, Haiku, Inc. All rights reserved. + * Copyright 2004-2009, Axel D?rfler, axeld at pinc-software.de. * Copyright 2003-2009, Ingo Weinhold, ingo_weinhold at gmx.de. * * Distributed under the terms of the MIT License. */ +#include + #include #include #include #include #include -#include +#include #include #include #include -#include +#include #include #include @@ -25,40 +27,46 @@ #include #include #include -#include #include #include #include +#include #include #include #include "UserDataWriter.h" + using namespace std; + // debugging //#define DBG(x) #define DBG(x) x #define OUT dprintf -// ListenerSet + struct KPartition::ListenerSet : VectorSet {}; -// constructor + +int32 KPartition::sNextID = 0; + + KPartition::KPartition(partition_id id) - : fPartitionData(), - fChildren(), - fDevice(NULL), - fParent(NULL), - fDiskSystem(NULL), - fDiskSystemPriority(-1), - fListeners(NULL), - fChangeFlags(0), - fChangeCounter(0), - fAlgorithmData(0), - fReferenceCount(0), - fObsolete(false), - fPublishedName(NULL) + : + fPartitionData(), + fChildren(), + fDevice(NULL), + fParent(NULL), + fDiskSystem(NULL), + fDiskSystemPriority(-1), + fListeners(NULL), + fChangeFlags(0), + fChangeCounter(0), + fAlgorithmData(0), + fReferenceCount(0), + fObsolete(false), + fPublishedName(NULL) { fPartitionData.id = id >= 0 ? id : _NextID(); fPartitionData.offset = 0; @@ -81,7 +89,7 @@ fPartitionData.content_cookie = NULL; } -// destructor + KPartition::~KPartition() { delete fListeners; @@ -93,18 +101,18 @@ free(fPartitionData.content_parameters); } -// Register + void KPartition::Register() { fReferenceCount++; } -// Unregister + void KPartition::Unregister() { - KDiskDeviceManager *manager = KDiskDeviceManager::Default(); + KDiskDeviceManager* manager = KDiskDeviceManager::Default(); ManagerLocker locker(manager); fReferenceCount--; if (IsObsolete() && fReferenceCount == 0) { @@ -113,28 +121,28 @@ } } -// CountReferences + int32 KPartition::CountReferences() const { return fReferenceCount; } -// MarkObsolete + void KPartition::MarkObsolete() { fObsolete = true; } -// IsObsolete + bool KPartition::IsObsolete() const { return fObsolete; } -// PrepareForRemoval + bool KPartition::PrepareForRemoval() { @@ -148,16 +156,16 @@ return result; } -// PrepareForDeletion + bool KPartition::PrepareForDeletion() { return true; } -// Open + status_t -KPartition::Open(int flags, int *fd) +KPartition::Open(int flags, int* fd) { if (!fd) return B_BAD_VALUE; @@ -176,7 +184,7 @@ return B_OK; } -// PublishDevice + status_t KPartition::PublishDevice() { @@ -217,7 +225,7 @@ return B_OK; } -// UnpublishDevice + status_t KPartition::UnpublishDevice() { @@ -238,7 +246,6 @@ } -// RepublishDevice status_t KPartition::RepublishDevice() { @@ -281,7 +288,6 @@ } -// IsPublished bool KPartition::IsPublished() const { @@ -289,7 +295,6 @@ } -// SetBusy void KPartition::SetBusy(bool busy) { @@ -300,15 +305,13 @@ } -// IsBusy bool KPartition::IsBusy() const { - return (fPartitionData.flags & B_PARTITION_BUSY); + return (fPartitionData.flags & B_PARTITION_BUSY) != 0; } -// IsBusy bool KPartition::IsBusy(bool includeDescendants) { @@ -326,7 +329,6 @@ } -// CheckAndMarkBusy bool KPartition::CheckAndMarkBusy(bool includeDescendants) { @@ -339,7 +341,6 @@ } -// MarkBusy void KPartition::MarkBusy(bool includeDescendants) { @@ -358,7 +359,6 @@ } -// UnmarkBusy void KPartition::UnmarkBusy(bool includeDescendants) { @@ -377,7 +377,6 @@ } -// SetOffset void KPartition::SetOffset(off_t offset) { @@ -387,14 +386,14 @@ } } -// Offset + off_t KPartition::Offset() const { return fPartitionData.offset; } -// SetSize + void KPartition::SetSize(off_t size) { @@ -404,14 +403,14 @@ } } -// Size + off_t KPartition::Size() const { return fPartitionData.size; } -// SetContentSize + void KPartition::SetContentSize(off_t size) { @@ -421,14 +420,14 @@ } } -// ContentSize + off_t KPartition::ContentSize() const { return fPartitionData.content_size; } -// SetBlockSize + void KPartition::SetBlockSize(uint32 blockSize) { @@ -438,14 +437,14 @@ } } -// BlockSize + uint32 KPartition::BlockSize() const { return fPartitionData.block_size; } -// SetIndex + void KPartition::SetIndex(int32 index) { @@ -455,14 +454,14 @@ } } -// Index + int32 KPartition::Index() const { return fPartitionData.index; } -// SetStatus + void KPartition::SetStatus(uint32 status) { @@ -472,21 +471,21 @@ } } -// Status + uint32 KPartition::Status() const { return fPartitionData.status; } -// IsUninitialized + bool KPartition::IsUninitialized() const { - return (Status() == B_PARTITION_UNINITIALIZED); + return Status() == B_PARTITION_UNINITIALIZED; } -// SetFlags + void KPartition::SetFlags(uint32 flags) { @@ -496,7 +495,7 @@ } } -// AddFlags + void KPartition::AddFlags(uint32 flags) { @@ -506,7 +505,7 @@ } } -// ClearFlags + void KPartition::ClearFlags(uint32 flags) { @@ -516,118 +515,118 @@ } } -// Flags + uint32 KPartition::Flags() const { return fPartitionData.flags; } -// ContainsFileSystem + bool KPartition::ContainsFileSystem() const { - return (fPartitionData.flags & B_PARTITION_FILE_SYSTEM); + return (fPartitionData.flags & B_PARTITION_FILE_SYSTEM) != 0; } -// ContainsPartitioningSystem + bool KPartition::ContainsPartitioningSystem() const { - return (fPartitionData.flags & B_PARTITION_PARTITIONING_SYSTEM); + return (fPartitionData.flags & B_PARTITION_PARTITIONING_SYSTEM) != 0; } -// IsReadOnly + bool KPartition::IsReadOnly() const { - return (fPartitionData.flags & B_PARTITION_READ_ONLY); + return (fPartitionData.flags & B_PARTITION_READ_ONLY) != 0; } -// IsMounted + bool KPartition::IsMounted() const { - return (fPartitionData.flags & B_PARTITION_MOUNTED); + return (fPartitionData.flags & B_PARTITION_MOUNTED) != 0; } -// IsDevice + bool KPartition::IsDevice() const { - return (fPartitionData.flags & B_PARTITION_IS_DEVICE); + return (fPartitionData.flags & B_PARTITION_IS_DEVICE) != 0; } -// SetName + status_t -KPartition::SetName(const char *name) +KPartition::SetName(const char* name) { status_t error = set_string(fPartitionData.name, name); FireNameChanged(fPartitionData.name); return error; } -// Name -const char * + +const char* KPartition::Name() const { return fPartitionData.name; } -// SetContentName + status_t -KPartition::SetContentName(const char *name) +KPartition::SetContentName(const char* name) { status_t error = set_string(fPartitionData.content_name, name); FireContentNameChanged(fPartitionData.content_name); return error; } -// ContentName -const char * + +const char* KPartition::ContentName() const { return fPartitionData.content_name; } -// SetType + status_t -KPartition::SetType(const char *type) +KPartition::SetType(const char* type) { status_t error = set_string(fPartitionData.type, type); FireTypeChanged(fPartitionData.type); return error; } -// Type -const char * + +const char* KPartition::Type() const { return fPartitionData.type; } -// ContentType -const char * + +const char* KPartition::ContentType() const { return fPartitionData.content_type; } -// PartitionData -partition_data * + +partition_data* KPartition::PartitionData() { return &fPartitionData; } -// PartitionData -const partition_data * + +const partition_data* KPartition::PartitionData() const { return &fPartitionData; } -// SetID + void KPartition::SetID(partition_id id) { @@ -637,7 +636,7 @@ } } -// ID + partition_id KPartition::ID() const { @@ -646,7 +645,7 @@ status_t -KPartition::GetFileName(char *buffer, size_t size) const +KPartition::GetFileName(char* buffer, size_t size) const { // If the parent is the device, the name is the index of the partition. if (Parent() == NULL || Parent()->IsDevice()) { @@ -669,7 +668,7 @@ status_t -KPartition::GetPath(KPath *path) const +KPartition::GetPath(KPath* path) const { // For a KDiskDevice this version is never invoked, so the check for // Parent() is correct. @@ -691,30 +690,43 @@ } -// SetVolumeID void KPartition::SetVolumeID(dev_t volumeID) { - if (fPartitionData.volume != volumeID) { - fPartitionData.volume = volumeID; - FireVolumeIDChanged(volumeID); - if (VolumeID() >= 0) - AddFlags(B_PARTITION_MOUNTED); - else - ClearFlags(B_PARTITION_MOUNTED); - } + if (fPartitionData.volume == volumeID) + return; + + fPartitionData.volume = volumeID; + FireVolumeIDChanged(volumeID); + if (VolumeID() >= 0) + AddFlags(B_PARTITION_MOUNTED); + else + ClearFlags(B_PARTITION_MOUNTED); + + KDiskDeviceManager* manager = KDiskDeviceManager::Default(); + + char messageBuffer[512]; + KMessage message; + message.SetTo(messageBuffer, sizeof(messageBuffer), B_DEVICE_UPDATE); + message.AddInt32("event", volumeID >= 0 + ? B_DEVICE_PARTITION_MOUNTED : B_DEVICE_PARTITION_UNMOUNTED); + message.AddInt32("id", ID()); + if (volumeID >= 0) + message.AddInt32("volume", volumeID); + + manager->Notify(message, B_DEVICE_REQUEST_MOUNTING); } -// VolumeID + dev_t KPartition::VolumeID() const { return fPartitionData.volume; } -// SetMountCookie + void -KPartition::SetMountCookie(void *cookie) +KPartition::SetMountCookie(void* cookie) { if (fPartitionData.mount_cookie != cookie) { fPartitionData.mount_cookie = cookie; @@ -722,22 +734,22 @@ } } -// MountCookie -void * + +void* KPartition::MountCookie() const { return fPartitionData.mount_cookie; } -// Mount + status_t -KPartition::Mount(uint32 mountFlags, const char *parameters) +KPartition::Mount(uint32 mountFlags, const char* parameters) { // not implemented return B_ERROR; } -// Unmount + status_t KPartition::Unmount() { @@ -745,72 +757,72 @@ return B_ERROR; } -// SetParameters + status_t -KPartition::SetParameters(const char *parameters) +KPartition::SetParameters(const char* parameters) { status_t error = set_string(fPartitionData.parameters, parameters); FireParametersChanged(fPartitionData.parameters); return error; } -// Parameters -const char * + +const char* KPartition::Parameters() const { return fPartitionData.parameters; } -// SetContentParameters + status_t -KPartition::SetContentParameters(const char *parameters) +KPartition::SetContentParameters(const char* parameters) { status_t error = set_string(fPartitionData.content_parameters, parameters); FireContentParametersChanged(fPartitionData.content_parameters); return error; } -// ContentParameters -const char * + +const char* KPartition::ContentParameters() const { return fPartitionData.content_parameters; } -// SetDevice + void -KPartition::SetDevice(KDiskDevice *device) +KPartition::SetDevice(KDiskDevice* device) { fDevice = device; - if (fDevice && fDevice->IsReadOnlyMedia()) + if (fDevice != NULL && fDevice->IsReadOnlyMedia()) AddFlags(B_PARTITION_READ_ONLY); } -// Device -KDiskDevice * + +KDiskDevice* KPartition::Device() const { return fDevice; } -// SetParent + void -KPartition::SetParent(KPartition *parent) +KPartition::SetParent(KPartition* parent) { // Must be called in a {Add,Remove}Child() only! fParent = parent; } -// Parent -KPartition * + +KPartition* KPartition::Parent() const { return fParent; } -// AddChild + status_t -KPartition::AddChild(KPartition *partition, int32 index) +KPartition::AddChild(KPartition* partition, int32 index) { // check parameters int32 count = fPartitionData.child_count; @@ -818,8 +830,9 @@ index = count; if (index < 0 || index > count || !partition) return B_BAD_VALUE; + // add partition - KDiskDeviceManager *manager = KDiskDeviceManager::Default(); + KDiskDeviceManager* manager = KDiskDeviceManager::Default(); if (ManagerLocker locker = manager) { status_t error = fChildren.Insert(partition, index); if (error != B_OK) @@ -847,10 +860,9 @@ } -// CreateChild status_t KPartition::CreateChild(partition_id id, int32 index, off_t offset, off_t size, - KPartition **_child) + KPartition** _child) { // check parameters int32 count = fPartitionData.child_count; @@ -860,8 +872,8 @@ return B_BAD_VALUE; // create and add partition - KPartition *child = new(nothrow) KPartition(id); - if (!child) + KPartition* child = new(std::nothrow) KPartition(id); + if (child == NULL) return B_NO_MEMORY; child->SetOffset(offset); @@ -879,15 +891,15 @@ } -// RemoveChild bool KPartition::RemoveChild(int32 index) { if (index < 0 || index >= fPartitionData.child_count) return false; - KDiskDeviceManager *manager = KDiskDeviceManager::Default(); + + KDiskDeviceManager* manager = KDiskDeviceManager::Default(); if (ManagerLocker locker = manager) { - KPartition *partition = fChildren.ElementAt(index); + KPartition* partition = fChildren.ElementAt(index); PartitionRegistrar _(partition); if (!partition || !manager->PartitionRemoved(partition) || !fChildren.Erase(index)) { @@ -905,9 +917,9 @@ return false; } -// RemoveChild + bool -KPartition::RemoveChild(KPartition *child) +KPartition::RemoveChild(KPartition* child) { if (child) { int32 index = fChildren.IndexOf(child); @@ -917,7 +929,7 @@ return false; } -// RemoveAllChildren + bool KPartition::RemoveAllChildren() { @@ -929,41 +941,41 @@ return true; } -// ChildAt -KPartition * + +KPartition* KPartition::ChildAt(int32 index) const { - return (index >= 0 && index < fChildren.Count() - ? fChildren.ElementAt(index) : NULL); + return index >= 0 && index < fChildren.Count() + ? fChildren.ElementAt(index) : NULL; } -// CountChildren + int32 KPartition::CountChildren() const { return fPartitionData.child_count; } -// CountDescendants + int32 KPartition::CountDescendants() const { int32 count = 1; - for (int32 i = 0; KPartition *child = ChildAt(i); i++) + for (int32 i = 0; KPartition* child = ChildAt(i); i++) count += child->CountDescendants(); return count; } -// VisitEachDescendant -KPartition * -KPartition::VisitEachDescendant(KPartitionVisitor *visitor) + +KPartition* +KPartition::VisitEachDescendant(KPartitionVisitor* visitor) { if (!visitor) return NULL; if (visitor->VisitPre(this)) return this; - for (int32 i = 0; KPartition *child = ChildAt(i); i++) { - if (KPartition *result = child->VisitEachDescendant(visitor)) + for (int32 i = 0; KPartition* child = ChildAt(i); i++) { + if (KPartition* result = child->VisitEachDescendant(visitor)) return result; } if (visitor->VisitPost(this)) @@ -972,9 +984,8 @@ } -// SetDiskSystem void -KPartition::SetDiskSystem(KDiskSystem *diskSystem, float priority) +KPartition::SetDiskSystem(KDiskSystem* diskSystem, float priority) { // unload former disk system if (fDiskSystem) { @@ -985,8 +996,10 @@ } // set and load new one fDiskSystem = diskSystem; - if (fDiskSystem) - fDiskSystem->Load(); // can't fail, since it's already loaded + if (fDiskSystem) { + fDiskSystem->Load(); + // can't fail, since it's already loaded + } // update concerned partition flags if (fDiskSystem) { fPartitionData.content_type = fDiskSystem->PrettyName(); @@ -998,10 +1011,20 @@ } // notify listeners FireDiskSystemChanged(fDiskSystem); + + KDiskDeviceManager* manager = KDiskDeviceManager::Default(); + + char messageBuffer[512]; + KMessage message; + message.SetTo(messageBuffer, sizeof(messageBuffer), B_DEVICE_UPDATE); + message.AddInt32("event", B_DEVICE_PARTITION_INITIALIZED); + message.AddInt32("id", ID()); + + manager->Notify(message, B_DEVICE_REQUEST_PARTITION); } -// DiskSystem -KDiskSystem * + +KDiskSystem* KPartition::DiskSystem() const { return fDiskSystem; @@ -1015,16 +1038,15 @@ } -// ParentDiskSystem -KDiskSystem * +KDiskSystem* KPartition::ParentDiskSystem() const { - return (Parent() ? Parent()->DiskSystem() : NULL); + return Parent() ? Parent()->DiskSystem() : NULL; } -// SetCookie + void -KPartition::SetCookie(void *cookie) +KPartition::SetCookie(void* cookie) { if (fPartitionData.cookie != cookie) { fPartitionData.cookie = cookie; @@ -1032,16 +1054,16 @@ } } -// Cookie -void * + +void* KPartition::Cookie() const { return fPartitionData.cookie; } -// SetContentCookie + void -KPartition::SetContentCookie(void *cookie) +KPartition::SetContentCookie(void* cookie) { if (fPartitionData.content_cookie != cookie) { fPartitionData.content_cookie = cookie; @@ -1049,16 +1071,16 @@ } } -// ContentCookie -void * + +void* KPartition::ContentCookie() const { return fPartitionData.content_cookie; } -// AddListener + [... truncated: 446 lines follow ...] From mattmadia at gmail.com Tue Sep 1 16:38:19 2009 From: mattmadia at gmail.com (mattmadia at gmail.com) Date: Tue, 01 Sep 2009 07:38:19 -0700 (PDT) Subject: [Haiku-commits] r1alpha1-BOM: r32892 ...failed C++ /objects/haiku/_arch_/release/system/kernel/disk_device_manager/KPartition.o ... Message-ID: <4a9d31db.21d7720a.20f3.7f8e@mx.google.com> Host Machine : FreeBSD 7.2-RELEASE-p2 i386 Host Machine 32|64bit : 32bit use-xattr : True use-32bit : False Architectures Tested : x86gcc2hybrid Targets Affected & Last Known Good Revision : | | x86gcc2hybrid:@alpha-cd:32892 x86gcc2hybrid:@alpha-raw:32892 x86gcc2hybrid:@alpha-vmware:32892 Log Snippet : AddTargetVariableToScript1 /BOM/haiku/haiku/generated.x86gcc2hybrid/haiku.image-init-vars InitScript1 /BOM/haiku/haiku/generated.x86gcc2hybrid/haiku.image-make-dirs CreateContainerMakeDirectoriesScript1 /BOM/haiku/haiku/generated.x86gcc2hybrid/haiku.image-make-dirs AppendToContainerMakeDirectoriesScriptAttributes haiku.image-make-dirs-attributes-dummy-home/config/settings/printers/Preview AppendToContainerMakeDirectoriesScriptAttributes haiku.image-make-dirs-attributes-dummy-home/config/settings/printers/Save as PDF InitScript1 /BOM/haiku/haiku/generated.x86gcc2hybrid/haiku.image-copy-files BuildHaikuImageUserGroupFile /BOM/haiku/haiku/generated.x86gcc2hybrid/objects/common/group BuildHaikuImageUserGroupFile /BOM/haiku/haiku/generated.x86gcc2hybrid/objects/common/passwd AppendToContainerCopyFilesScript haiku.image-copy-files-dummy-system/etc C++ /BOM/haiku/haiku/generated.x86gcc2hybrid/objects/haiku/x86/release/system/kernel/disk_device_manager/KPartition.o /BOM/haiku/haiku/src/system/kernel/disk_device_manager/KPartition.cpp:52: `int32 BPrivate::DiskDevice::KPartition::sNextID' is not a static member of `class BPrivate::DiskDevice::KPartition' /BOM/haiku/haiku/src/system/kernel/disk_device_manager/KPartition.cpp: In function `static int32 BPrivate::DiskDevice::KPartition::_NextID()': /BOM/haiku/haiku/src/system/kernel/disk_device_manager/KPartition.cpp:1583: `sNextID' undeclared (first use this function) /BOM/haiku/haiku/src/system/kernel/disk_device_manager/KPartition.cpp:1583: (Each undeclared identifier is reported only once /BOM/haiku/haiku/src/system/kernel/disk_device_manager/KPartition.cpp:1583: for each function it appears in.) cc1plus: warnings being treated as errors /BOM/haiku/haiku/src/system/kernel/disk_device_manager/KPartition.cpp:1584: warning: control reaches end of non-void function `BPrivate::DiskDevice::KPartition::_NextID()' /BOM/haiku/haiku/generated.x86gcc2/cross-tools/bin/i586-pc-haiku-gcc -c "/BOM/haiku/haiku/src/system/kernel/disk_device_manager/KPartition.cpp" -O -Wall -Wno-trigraphs -Wno-multichar -pipe -nostdinc -DHAIKU_INCLUDE_PATENTED_CODE=0 -D_ZETA_USING_DEPRECATED_API_=1 -D_ZETA_TS_FIND_DIR_=1 -Werror -pipe -finline -fno-builtin -fno-exceptions -DBOCHS_DEBUG_HACK=0 -fno-pic -D_KERNEL_MODE -D__HAIKU__ -DHAIKU_DISTRO_COMPATIBILITY_DEFAULT -D__INTEL__ -DARCH_x86 -DBOOT_ARCHIVE_IMAGE_OFFSET=300 -D_BEOS_R5_COMPATIBLE_ -DHAIKU_TARGET_PLATFORM_HAIKU -I/BOM/haiku/haiku/build/user_config_headers -I/BOM/haiku/haiku/build/config_headers -I/BOM/haiku/haiku/src/system/kernel/disk_device_manager -I/BOM/haiku/haiku/generated.x86gcc2hybrid/objects/common/system/kernel/disk_device_manager -I/BOM/haiku/haiku/generated.x86gcc2hybrid/objects/freebsd/x86/common/system/kernel/disk_device_manager -I/BOM/haiku/haiku/generated.x86gcc2hybrid/objects/haiku/x86/common/system/kernel/disk_device_manager -I/BOM/haiku/haiku/src/system/kernel/disk_device_manager/jobs -I/BOM/haiku/haiku/src/kits/storage/disk_device -I- -I/BOM/haiku/haiku/headers/private/kernel/boot/platform/bios_ia32 -I/BOM/haiku/haiku/headers/private/kernel/disk_device_manager -I/BOM/haiku/haiku/headers/private/kernel -I/BOM/haiku/haiku/headers/private/kernel/fs -I/BOM/haiku/haiku/headers/private/kernel/util -I/BOM/haiku/haiku/headers/private/shared -I/BOM/haiku/haiku/headers/private/storage -I/BOM/haiku/haiku/headers/private/. -I/BOM/haiku/haiku/headers/private/kernel -I/BOM/haiku/haiku/headers/private/libroot -I/BOM/haiku/haiku/headers/private/kernel/boot/platform/bios_ia32 -I/BOM/haiku/haiku/headers/private/kernel/arch/x86 -I/BOM/haiku/haiku/headers/private/. -I/BOM/haiku/haiku/headers/private/system -I/BOM/haiku/haiku/headers/private/system/arch/x86 -I/BOM/haiku/haiku/headers/cpp -I/BOM/haiku/haiku/headers/build/gcc-2.95.3 -I/BOM/haiku/haiku/headers -I/BOM/haiku/haiku/headers/posix -I/BOM/haiku/haiku/headers/glibc -I/BOM/haiku/haiku/headers/os -I/BOM/haiku/haiku/headers/os/add-ons -I/BOM/haiku/haiku/headers/os/add-ons/file_system -I/BOM/haiku/haiku/headers/os/add-ons/graphics -I/BOM/haiku/haiku/headers/os/add-ons/input_server -I/BOM/haiku/haiku/headers/os/add-ons/registrar -I/BOM/haiku/haiku/headers/os/add-ons/screen_saver -I/BOM/haiku/haiku/headers/os/add-ons/tracker -I/BOM/haiku/haiku/headers/os/app -I/BOM/haiku/haiku/headers/os/device -I/BOM/haiku/haiku/headers/os/drivers -I/BOM/haiku/haiku/headers/os/game -I/BOM/haiku/haiku/headers/os/interface -I/BOM/haiku/haiku/headers/os/kernel -I/BOM/haiku/haiku/headers/os/media -I/BOM/haiku/haiku/headers/os/mail -I/BOM/haiku/haiku/headers/os/midi -I/BOM/haiku/haiku/headers/os/midi2 -I/BOM/haiku/haiku/headers/os/net -I/BOM/haiku/haiku/headers/os/opengl -I/BOM/haiku/haiku/headers/os/storage -I/BOM/haiku/haiku/headers/os/support -I/BOM/haiku/haiku/headers/os/translation -I/BOM/haiku/haiku/headers/private/. -o "/BOM/haiku/haiku/generated.x86gcc2hybrid/objects/haiku/x86/release/system/kernel/disk_device_manager/KPartition.o" ; ...failed C++ /BOM/haiku/haiku/generated.x86gcc2hybrid/objects/haiku/x86/release/system/kernel/disk_device_manager/KPartition.o ... ...skipped kernel_disk_device_manager.o for lack of KPartition.o... ...skipped kernel.so for lack of kernel_disk_device_manager.o... ...skipped ata for lack of kernel.so... ...skipped haiku.image-copy-files-dummy-system/add-ons/kernel/bus_managers for lack of ata... ...skipped haiku-alpha.vmdk for lack of haiku.image-copy-files... ...failed updating 1 target(s)... ...skipped 5 target(s)... ...updated 10 target(s)... command: jam -q -j1 @alpha-vmware From superstippi at gmx.de Tue Sep 1 17:11:24 2009 From: superstippi at gmx.de (Stephan Assmus) Date: Tue, 01 Sep 2009 17:11:24 +0200 Subject: [Haiku-commits] r32890 - in haiku/trunk/src/system/kernel: disk_device_manager fs In-Reply-To: <200909011323.n81DN72U030490@sheep.berlios.de> References: <200909011323.n81DN72U030490@sheep.berlios.de> Message-ID: <20090901171124.40847.4@bepc.1251798921.fake> On 2009-09-01 at 15:23:07 [+0200], axeld at BerliOS wrote: > Author: axeld > Date: 2009-09-01 15:23:05 +0200 (Tue, 01 Sep 2009) New Revision: 32890 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32890&view=rev > > Modified: > haiku/trunk/src/system/kernel/disk_device_manager/KPartition.cpp > haiku/trunk/src/system/kernel/fs/vfs.cpp > Log: > * Cleanup, no functional change. > > + alphabranch > > > Modified: > haiku/trunk/src/system/kernel/disk_device_manager/KPartition.cpp > =================================================================== > --- haiku/trunk/src/system/kernel/disk_device_manager/KPartition.cpp > 2009-09-01 13:19:22 UTC (rev 32889) > +++ haiku/trunk/src/system/kernel/disk_device_manager/KPartition.cpp > 2009-09-01 13:23:05 UTC (rev 32890) > @@ -1,23 +1,24 @@ > /* > * Copyright 2009, Bryce Groff, bgroff at hawaii.edu. > - * Copyright 2004-2008, Haiku, Inc. All rights reserved. > + * Copyright 2004-2009, Axel D?rfler, axeld at pinc-software.de. > * Copyright 2003-2009, Ingo Weinhold, ingo_weinhold at gmx.de. > * > * Distributed under the terms of the MIT License. > */ > > > +#include > + > #include > #include > #include > #include > #include > > -#include > #include > #include > #include > -#include > +#include > > #include > #include > @@ -25,40 +26,46 @@ > #include > #include > #include > -#include > #include > #include > #include > +#include > #include > #include > > #include "UserDataWriter.h" > > + > using namespace std; > > + > // debugging > //#define DBG(x) > #define DBG(x) x > #define OUT dprintf > > -// ListenerSet > + > struct KPartition::ListenerSet : VectorSet {}; > > -// constructor > + > +int32 KPartition::sNextID = 0; > + > + Could it be that you are missed commiting a change in the header here? ;-) Best regards, -Stephan From stippi at mail.berlios.de Tue Sep 1 17:14:59 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Tue, 1 Sep 2009 17:14:59 +0200 Subject: [Haiku-commits] r32893 - haiku/trunk/headers/private/kernel/disk_device_manager Message-ID: <200909011514.n81FExjV018889@sheep.berlios.de> Author: stippi Date: 2009-09-01 17:14:57 +0200 (Tue, 01 Sep 2009) New Revision: 32893 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32893&view=rev Modified: haiku/trunk/headers/private/kernel/disk_device_manager/KPartition.h Log: Fixed the build. Axel is probably going to commit the cleaned up header soon. Modified: haiku/trunk/headers/private/kernel/disk_device_manager/KPartition.h =================================================================== --- haiku/trunk/headers/private/kernel/disk_device_manager/KPartition.h 2009-09-01 14:30:20 UTC (rev 32892) +++ haiku/trunk/headers/private/kernel/disk_device_manager/KPartition.h 2009-09-01 15:14:57 UTC (rev 32893) @@ -229,7 +229,7 @@ int32 fReferenceCount; bool fObsolete; char *fPublishedName; - static int32 fNextID; + static int32 sNextID; }; } // namespace DiskDevice From axeld at pinc-software.de Tue Sep 1 18:24:43 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Tue, 01 Sep 2009 18:24:43 +0200 CEST Subject: [Haiku-commits] =?utf-8?q?r32893_-_haiku/trunk/headers/private/ke?= =?utf-8?q?rnel/disk=5Fdevice=5Fmanager?= In-Reply-To: <200909011514.n81FExjV018889@sheep.berlios.de> Message-ID: <32921479761-BeMail@zon> stippi at mail.berlios.de wrote: > Log: > Fixed the build. Axel is probably going to commit the cleaned up > header soon. Nope, I just forgot to commit it (I was too lazy to clean that one up). Thanks! Bye, Axel. From mattmadia at gmail.com Tue Sep 1 19:37:23 2009 From: mattmadia at gmail.com (Matt Madia) Date: Tue, 1 Sep 2009 17:37:23 +0000 Subject: [Haiku-commits] r32893 - haiku/trunk/headers/private/kernel/disk_device_manager In-Reply-To: <32921479761-BeMail@zon> References: <200909011514.n81FExjV018889@sheep.berlios.de> <32921479761-BeMail@zon> Message-ID: <1e42d8c50909011037p44f67828t63de18dcfe4f09bc@mail.gmail.com> On Tue, Sep 1, 2009 at 16:24, Axel D?rfler wrote: > stippi at mail.berlios.de wrote: >> Log: >> Fixed the build. Axel is probably going to commit the cleaned up >> header soon. > > Nope, I just forgot to commit it (I was too lazy to clean that one up). > Thanks! > this needs to be merged on r1a1. From pierluigi.fiorini at gmail.com Tue Sep 1 19:31:32 2009 From: pierluigi.fiorini at gmail.com (Pier Luigi Fiorini) Date: Tue, 1 Sep 2009 19:31:32 +0200 Subject: [Haiku-commits] r32885 - haiku/trunk/build/jam In-Reply-To: <200909011142.n81BgBTH000912@sheep.berlios.de> References: <200909011142.n81BgBTH000912@sheep.berlios.de> Message-ID: <27d8137d0909011031s75c37c60r6c95a208405d10c1@mail.gmail.com> 2009/9/1 > Author: stippi > Date: 2009-09-01 13:42:09 +0200 (Tue, 01 Sep 2009) > New Revision: 32885 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32885&view=rev > > Modified: > haiku/trunk/build/jam/OptionalBuildFeatures > haiku/trunk/build/jam/OptionalPackageDependencies > haiku/trunk/build/jam/OptionalPackages > Log: > Patch by scottmc with small fixes by myself: > Updated to use all the new alpha1 packages. I have not yet done > throughrough > testing myself. I figured that trunk should also use the newest packages. > [cut] > > Modified: haiku/trunk/build/jam/OptionalPackages > =================================================================== > --- haiku/trunk/build/jam/OptionalPackages 2009-09-01 10:33:09 UTC > (rev 32884) > +++ haiku/trunk/build/jam/OptionalPackages 2009-09-01 11:42:09 UTC > (rev 32885) > @@ -23,16 +23,20 @@ > # CDRecord - the command line CD writing tools > # Clockwerk - native audio/video compositing > # CLucene - indexed file search > +# Curl - a client that groks URLs > # CVS - the version control > system > # Development - more complete dev environment > (including autotools) > # DevelopmentBase - basic development environment (gcc, > headers, libs,...) > # DevelopmentMin - development headers, libs, tools, from > sources only > +# Expat - XML parsing libraries > # Firefox - the webbrowser > +# Git - the distributed version > control system > # KeymapSwitcher - Desktop utility > # LibIconv - text encoding conversion library > # LibLayout - GCC2 package needed by some BeOS > apps to compile > # LibXML2 - the XML support libary > # Links - the web browser > +# Mercurial - the distributed version control > system > # Nano - the command line text editor > # Neon - support libraries used for > example by SVN > # NetSurf - the web browser > [cut] > +# Curl > +if [ IsOptionalHaikuImagePackageAdded Expat ] { > It's an error, it should be Curl not Expat. > + if $(TARGET_ARCH) != x86 { > + Echo "No optional package Curl available for > $(TARGET_ARCH)" ; > + } else { > + InstallOptionalHaikuImagePackage > curl-7.19.6-r1a1-x86-gcc2-2009-08-30 > + : > $(baseURL)/curl-7.19.6-r1a1-x86-gcc2-2009-08-30.zip > + > + : > + ; > + } > +} > + -- "Design is not just what it looks like and feels like. Design is how it works. " -- Steve Jobs -------------- next part -------------- An HTML attachment was scrubbed... URL: From mmlr at mail.berlios.de Tue Sep 1 20:15:32 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 1 Sep 2009 20:15:32 +0200 Subject: [Haiku-commits] r32894 - in haiku/trunk/src/system/libroot/posix: . malloc_debug Message-ID: <200909011815.n81IFWOk027111@sheep.berlios.de> Author: mmlr Date: 2009-09-01 20:15:30 +0200 (Tue, 01 Sep 2009) New Revision: 32894 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32894&view=rev Added: haiku/trunk/src/system/libroot/posix/malloc_debug/ haiku/trunk/src/system/libroot/posix/malloc_debug/Jamfile haiku/trunk/src/system/libroot/posix/malloc_debug/heap.cpp Modified: haiku/trunk/src/system/libroot/posix/Jamfile Log: Ported over the kernel heap to libroot to make use of it's validation capabilities to aid in debugging memory corruption issues. It does: * Initialize memory to 0xcc to help turn up use of uninitialized memory * Set freed memory to 0xdeadbeef to help find accesses of freed memory * Use the paranoid heap validation to turn up many cases of memory corruption * Use a simplistic wall check to turn up memory overwrites past allocations * Take extra steps to validate freed addresses to turn up misaligned frees It has an interface to en-/disable paranoid validation and to start/stop regular wall checking. Both are currently just enabled. At a later stage a debug version of libroot could be used by an application and the checks enabled at will. Note that due to the paranoid validation and the suboptimal locking this allocator will perform horribly. Still to find memory corruption issues in the system or also in your applications it can be helpful to build your installation with it turned on. To enable it you currently need to edit the Jamfile to sub-include the malloc_debug instead of the malloc directory. Modified: haiku/trunk/src/system/libroot/posix/Jamfile =================================================================== --- haiku/trunk/src/system/libroot/posix/Jamfile 2009-09-01 15:14:57 UTC (rev 32893) +++ haiku/trunk/src/system/libroot/posix/Jamfile 2009-09-01 18:15:30 UTC (rev 32894) @@ -34,6 +34,7 @@ SubInclude HAIKU_TOP src system libroot posix crypt ; SubInclude HAIKU_TOP src system libroot posix locale ; SubInclude HAIKU_TOP src system libroot posix malloc ; +#SubInclude HAIKU_TOP src system libroot posix malloc_debug ; SubInclude HAIKU_TOP src system libroot posix pthread ; SubInclude HAIKU_TOP src system libroot posix signal ; SubInclude HAIKU_TOP src system libroot posix stdio ; Added: haiku/trunk/src/system/libroot/posix/malloc_debug/Jamfile =================================================================== --- haiku/trunk/src/system/libroot/posix/malloc_debug/Jamfile 2009-09-01 15:14:57 UTC (rev 32893) +++ haiku/trunk/src/system/libroot/posix/malloc_debug/Jamfile 2009-09-01 18:15:30 UTC (rev 32894) @@ -0,0 +1,7 @@ +SubDir HAIKU_TOP src system libroot posix malloc_debug ; + +UsePrivateSystemHeaders ; + +MergeObject posix_malloc.o : + heap.cpp +; Added: haiku/trunk/src/system/libroot/posix/malloc_debug/heap.cpp =================================================================== --- haiku/trunk/src/system/libroot/posix/malloc_debug/heap.cpp 2009-09-01 15:14:57 UTC (rev 32893) +++ haiku/trunk/src/system/libroot/posix/malloc_debug/heap.cpp 2009-09-01 18:15:30 UTC (rev 32894) @@ -0,0 +1,1753 @@ +/* + * Copyright 2008-2009, Michael Lotz, mmlr at mlotz.ch. + * Distributed under the terms of the MIT License. + * + * Copyright 2002-2006, Axel D?rfler, axeld at pinc-software.de. + * Distributed under the terms of the MIT License. + * + * Copyright 2001, Travis Geiselbrecht. All rights reserved. + * Distributed under the terms of the NewOS License. + */ + +#include +#include +#include +#include + +#include + +#include +#include + + +//#define TRACE_HEAP +#ifdef TRACE_HEAP +# define INFO(x) printf x +#else +# define INFO(x) ; +#endif + + +void +panic(const char *format, ...) +{ + char buffer[1024]; + + va_list args; + va_start(args, format); + vsnprintf(buffer, sizeof(buffer), format, args); + va_end(args); + + debugger(buffer); +} + + +class MutexLocker { +public: + MutexLocker(sem_id lock) + : + fLock(lock) + { + Lock(); + } + + ~MutexLocker() + { + if (fLocked) + Unlock(); + } + + void Lock() + { + fLocked = acquire_sem(fLock) == B_OK; + } + + void Unlock() + { + fLocked = false; + release_sem(fLock); + } + + sem_id fLock; + bool fLocked; +}; + +typedef MutexLocker ReadLocker; +typedef MutexLocker WriteLocker; + +#define ROUNDUP(x, y) (((x) + (y) - 1) / (y) * (y)) + +#define HEAP_INITIAL_SIZE 1 * 1024 * 1024 +#define HEAP_GROW_SIZE 2 * 1024 * 1024 +#define HEAP_AREA_USE_THRESHOLD 1 * 1024 * 1024 + +static bool sParanoidValidation = false; +static thread_id sWallCheckThread = -1; +static bool sStopWallChecking = false; + +typedef struct heap_leak_check_info_s { + size_t size; + thread_id thread; +} heap_leak_check_info; + +typedef struct heap_page_s heap_page; + +typedef struct heap_area_s { + area_id area; + + addr_t base; + size_t size; + + uint32 page_count; + uint32 free_page_count; + + heap_page * free_pages; + heap_page * page_table; + + heap_area_s * prev; + heap_area_s * next; + heap_area_s * all_next; +} heap_area; + +typedef struct heap_page_s { + heap_area * area; + uint16 index; + uint16 bin_index : 5; + uint16 free_count : 10; + uint16 in_use : 1; + heap_page_s * next; + heap_page_s * prev; + union { + uint16 empty_index; + uint16 allocation_id; // used for bin == bin_count allocations + }; + addr_t * free_list; +} heap_page; + +typedef struct heap_bin_s { + sem_id lock; + uint32 element_size; + uint16 max_free_count; + heap_page * page_list; // sorted so that the desired page is always first +} heap_bin; + +typedef struct heap_allocator_s { + sem_id area_lock; + sem_id page_lock; + + const char *name; + uint32 bin_count; + uint32 page_size; + + uint32 total_pages; + uint32 total_free_pages; + uint32 empty_areas; + + heap_bin * bins; + heap_area * areas; // sorted so that the desired area is always first + heap_area * all_areas; // all areas including full ones +} heap_allocator; + +static const uint32 kAreaAllocationMagic = 'AAMG'; +typedef struct area_allocation_info_s { + area_id area; + void * base; + uint32 magic; + size_t size; + size_t allocation_size; + size_t allocation_alignment; + void * allocation_base; +} area_allocation_info; + +typedef struct heap_class_s { + const char *name; + uint32 initial_percentage; + size_t max_allocation_size; + size_t page_size; + size_t min_bin_size; + size_t bin_alignment; + uint32 min_count_per_page; + size_t max_waste_per_page; +} heap_class; + +// Heap class configuration +#define HEAP_CLASS_COUNT 3 +static heap_class sHeapClasses[HEAP_CLASS_COUNT] = { + { + "small", /* name */ + 50, /* initial percentage */ + B_PAGE_SIZE / 8, /* max allocation size */ + B_PAGE_SIZE, /* page size */ + 8, /* min bin size */ + 4, /* bin alignment */ + 8, /* min count per page */ + 16 /* max waste per page */ + }, + { + "medium", /* name */ + 30, /* initial percentage */ + B_PAGE_SIZE * 2, /* max allocation size */ + B_PAGE_SIZE * 8, /* page size */ + B_PAGE_SIZE / 8, /* min bin size */ + 32, /* bin alignment */ + 4, /* min count per page */ + 64 /* max waste per page */ + }, + { + "large", /* name */ + 20, /* initial percentage */ + HEAP_AREA_USE_THRESHOLD, /* max allocation size */ + B_PAGE_SIZE * 16, /* page size */ + B_PAGE_SIZE * 2, /* min bin size */ + 128, /* bin alignment */ + 1, /* min count per page */ + 256 /* max waste per page */ + } +}; + +static heap_allocator *sHeaps[HEAP_CLASS_COUNT]; + + +// #pragma mark - Debug functions + + +static void +dump_page(heap_page *page) +{ + uint32 count = 0; + for (addr_t *temp = page->free_list; temp != NULL; temp = (addr_t *)*temp) + count++; + + printf("\t\tpage %p: bin_index: %u; free_count: %u; empty_index: %u; " + "free_list %p (%lu entr%s)\n", page, page->bin_index, page->free_count, + page->empty_index, page->free_list, count, count == 1 ? "y" : "ies"); +} + + +static void +dump_bin(heap_bin *bin) +{ + printf("\telement_size: %lu; max_free_count: %u; page_list %p;\n", + bin->element_size, bin->max_free_count, bin->page_list); + + for (heap_page *temp = bin->page_list; temp != NULL; temp = temp->next) + dump_page(temp); +} + + +static void +dump_bin_list(heap_allocator *heap) +{ + for (uint32 i = 0; i < heap->bin_count; i++) + dump_bin(&heap->bins[i]); + printf("\n"); +} + + +static void +dump_allocator_areas(heap_allocator *heap) +{ + heap_area *area = heap->all_areas; + while (area) { + printf("\tarea %p: area: %ld; base: 0x%08lx; size: %lu; page_count: " + "%lu; free_pages: %p (%lu entr%s)\n", area, area->area, area->base, + area->size, area->page_count, area->free_pages, + area->free_page_count, area->free_page_count == 1 ? "y" : "ies"); + area = area->all_next; + } + + printf("\n"); +} + + +static void +dump_allocator(heap_allocator *heap, bool areas, bool bins) +{ + printf("allocator %p: name: %s; page_size: %lu; bin_count: %lu; pages: " + "%lu; free_pages: %lu; empty_areas: %lu\n", heap, heap->name, + heap->page_size, heap->bin_count, heap->total_pages, + heap->total_free_pages, heap->empty_areas); + + if (areas) + dump_allocator_areas(heap); + if (bins) + dump_bin_list(heap); +} + + +void +dump_heap_list(int argc, char **argv) +{ + for (uint32 i = 0; i < HEAP_CLASS_COUNT; i++) + dump_allocator(sHeaps[i], true, true); +} + + +void +dump_allocations(bool statsOnly, thread_id thread) +{ + size_t totalSize = 0; + uint32 totalCount = 0; + for (uint32 classIndex = 0; classIndex < HEAP_CLASS_COUNT; classIndex++) { + heap_allocator *heap = sHeaps[classIndex]; + + // go through all the pages in all the areas + heap_area *area = heap->all_areas; + while (area) { + heap_leak_check_info *info = NULL; + for (uint32 i = 0; i < area->page_count; i++) { + heap_page *page = &area->page_table[i]; + if (!page->in_use) + continue; + + addr_t base = area->base + i * heap->page_size; + if (page->bin_index < heap->bin_count) { + // page is used by a small allocation bin + uint32 elementCount = page->empty_index; + size_t elementSize + = heap->bins[page->bin_index].element_size; + for (uint32 j = 0; j < elementCount; + j++, base += elementSize) { + // walk the free list to see if this element is in use + bool elementInUse = true; + for (addr_t *temp = page->free_list; temp != NULL; + temp = (addr_t *)*temp) { + if ((addr_t)temp == base) { + elementInUse = false; + break; + } + } + + if (!elementInUse) + continue; + + info = (heap_leak_check_info *)(base + elementSize + - sizeof(heap_leak_check_info)); + + if (thread == -1 || info->thread == thread) { + // interesting... + if (!statsOnly) { + printf("thread: % 6ld; address: 0x%08lx;" + " size: %lu bytes\n", info->thread, + base, info->size); + } + + totalSize += info->size; + totalCount++; + } + } + } else { + // page is used by a big allocation, find the page count + uint32 pageCount = 1; + while (i + pageCount < area->page_count + && area->page_table[i + pageCount].in_use + && area->page_table[i + pageCount].bin_index + == heap->bin_count + && area->page_table[i + pageCount].allocation_id + == page->allocation_id) + pageCount++; + + info = (heap_leak_check_info *)(base + pageCount + * heap->page_size - sizeof(heap_leak_check_info)); + + if (thread == -1 || info->thread == thread) { + // interesting... + if (!statsOnly) { + printf("thread: % 6ld; address: 0x%08lx;" + " size: %lu bytes\n", info->thread, + base, info->size); + } + + totalSize += info->size; + totalCount++; + } + + // skip the allocated pages + i += pageCount - 1; + } + } + + area = area->all_next; + } + } + + printf("total allocations: %lu; total bytes: %lu\n", totalCount, totalSize); +} + + +void +heap_validate_walls() +{ + for (uint32 classIndex = 0; classIndex < HEAP_CLASS_COUNT; classIndex++) { + heap_allocator *heap = sHeaps[classIndex]; + ReadLocker areaReadLocker(heap->area_lock); + for (uint32 i = 0; i < heap->bin_count; i++) + acquire_sem(heap->bins[i].lock); + MutexLocker pageLocker(heap->page_lock); + + // go through all the pages in all the areas + heap_area *area = heap->all_areas; + while (area) { + heap_leak_check_info *info = NULL; + for (uint32 i = 0; i < area->page_count; i++) { + heap_page *page = &area->page_table[i]; + if (!page->in_use) + continue; + + addr_t base = area->base + i * heap->page_size; + if (page->bin_index < heap->bin_count) { + // page is used by a small allocation bin + uint32 elementCount = page->empty_index; + size_t elementSize + = heap->bins[page->bin_index].element_size; + for (uint32 j = 0; j < elementCount; + j++, base += elementSize) { + // walk the free list to see if this element is in use + bool elementInUse = true; + for (addr_t *temp = page->free_list; temp != NULL; + temp = (addr_t *)*temp) { + if ((addr_t)temp == base) { + elementInUse = false; + break; + } + } + + if (!elementInUse) + continue; + + info = (heap_leak_check_info *)(base + elementSize + - sizeof(heap_leak_check_info)); + if (info->size > elementSize - sizeof(addr_t) + - sizeof(heap_leak_check_info)) { + panic("leak check info has invalid size %lu for" + " element size %lu\n", info->size, elementSize); + continue; + } + + addr_t wallValue; + addr_t wallAddress = base + info->size; + memcpy(&wallValue, (void *)wallAddress, sizeof(addr_t)); + if (wallValue != wallAddress) { + panic("someone wrote beyond small allocation at" + " 0x%08lx; size: %lu bytes; allocated by %ld;" + " value: 0x%08lx\n", base, info->size, + info->thread, wallValue); + } + } + } else { + // page is used by a big allocation, find the page count + uint32 pageCount = 1; + while (i + pageCount < area->page_count + && area->page_table[i + pageCount].in_use + && area->page_table[i + pageCount].bin_index + == heap->bin_count + && area->page_table[i + pageCount].allocation_id + == page->allocation_id) + pageCount++; + + info = (heap_leak_check_info *)(base + pageCount + * heap->page_size - sizeof(heap_leak_check_info)); + + if (info->size > pageCount * heap->page_size + - sizeof(addr_t) - sizeof(heap_leak_check_info)) { + panic("leak check info has invalid size %lu for" + " page count %lu (%lu bytes)\n", info->size, + pageCount, pageCount * heap->page_size); + continue; + } + + addr_t wallValue; + addr_t wallAddress = base + info->size; + memcpy(&wallValue, (void *)wallAddress, sizeof(addr_t)); + if (wallValue != wallAddress) { + panic("someone wrote beyond big allocation at 0x%08lx;" + " size: %lu bytes; allocated by %ld;" + " value: 0x%08lx\n", base, info->size, + info->thread, wallValue); + } + + // skip the allocated pages + i += pageCount - 1; + } + } + + area = area->all_next; + } + + pageLocker.Unlock(); + for (uint32 i = 0; i < heap->bin_count; i++) + release_sem(heap->bins[i].lock); + } +} + + +static void +heap_validate_heap(heap_allocator *heap) +{ + ReadLocker areaReadLocker(heap->area_lock); + for (uint32 i = 0; i < heap->bin_count; i++) + acquire_sem(heap->bins[i].lock); + MutexLocker pageLocker(heap->page_lock); + + uint32 totalPageCount = 0; + uint32 totalFreePageCount = 0; + heap_area *area = heap->all_areas; + while (area != NULL) { + // validate the free pages list + uint32 freePageCount = 0; + heap_page *lastPage = NULL; + heap_page *page = area->free_pages; + while (page) { + if ((addr_t)page < (addr_t)&area->page_table[0] + || (addr_t)page >= (addr_t)&area->page_table[area->page_count]) + panic("free page is not part of the page table\n"); + + if (page->index >= area->page_count) + panic("free page has invalid index\n"); + + if ((addr_t)&area->page_table[page->index] != (addr_t)page) + panic("free page index does not lead to target page\n"); + + if (page->prev != lastPage) + panic("free page entry has invalid prev link\n"); + + if (page->in_use) + panic("free page marked as in use\n"); + + lastPage = page; + page = page->next; + freePageCount++; + } + + totalPageCount += freePageCount; + totalFreePageCount += freePageCount; + if (area->free_page_count != freePageCount) { + panic("free page count %ld doesn't match free page list %ld\n", + area->free_page_count, freePageCount); + } + + // validate the page table + uint32 usedPageCount = 0; + for (uint32 i = 0; i < area->page_count; i++) { + if (area->page_table[i].in_use) + usedPageCount++; + } + + totalPageCount += usedPageCount; + if (freePageCount + usedPageCount != area->page_count) { + panic("free pages and used pages do not add up (%lu + %lu != %lu)\n", + freePageCount, usedPageCount, area->page_count); + } + + area = area->all_next; + } + + // validate the areas + area = heap->areas; + heap_area *lastArea = NULL; + uint32 lastFreeCount = 0; + while (area != NULL) { + if (area->free_page_count < lastFreeCount) + panic("size ordering of area list broken\n"); + + if (area->prev != lastArea) + panic("area list entry has invalid prev link\n"); + + lastArea = area; + lastFreeCount = area->free_page_count; + area = area->next; + } + + lastArea = NULL; + area = heap->all_areas; + while (area != NULL) { + if (lastArea != NULL && lastArea->base < area->base) + panic("base ordering of all_areas list broken\n"); + + lastArea = area; + area = area->all_next; + } + + // validate the bins + for (uint32 i = 0; i < heap->bin_count; i++) { + heap_bin *bin = &heap->bins[i]; + heap_page *lastPage = NULL; + heap_page *page = bin->page_list; + lastFreeCount = 0; + while (page) { + area = heap->all_areas; + while (area) { + if (area == page->area) + break; + area = area->all_next; + } + + if (area == NULL) { + panic("page area not present in area list\n"); + page = page->next; + continue; + } + + if ((addr_t)page < (addr_t)&area->page_table[0] + || (addr_t)page >= (addr_t)&area->page_table[area->page_count]) + panic("used page is not part of the page table\n"); + + if (page->index >= area->page_count) + panic("used page has invalid index %lu\n", page->index); + + if ((addr_t)&area->page_table[page->index] != (addr_t)page) { + panic("used page index does not lead to target page" + " (%lu vs. %lu)\n", (addr_t)&area->page_table[page->index], + page); + } + + if (page->prev != lastPage) { + panic("used page entry has invalid prev link (%p vs %p bin " + "%lu)\n", page->prev, lastPage, i); + } + + if (!page->in_use) + panic("used page %p marked as not in use\n", page); + + if (page->bin_index != i) { + panic("used page with bin index %u in page list of bin %lu\n", + page->bin_index, i); + } + + if (page->free_count < lastFreeCount) + panic("ordering of bin page list broken\n"); + + // validate the free list + uint32 freeSlotsCount = 0; + addr_t *element = page->free_list; + addr_t pageBase = area->base + page->index * heap->page_size; + while (element) { + if ((addr_t)element < pageBase + || (addr_t)element >= pageBase + heap->page_size) + panic("free list entry out of page range %p\n", element); + + if (((addr_t)element - pageBase) % bin->element_size != 0) + panic("free list entry not on a element boundary\n"); + + element = (addr_t *)*element; + freeSlotsCount++; + } + + uint32 slotCount = bin->max_free_count; + if (page->empty_index > slotCount) { + panic("empty index beyond slot count (%u with %lu slots)\n", + page->empty_index, slotCount); + } + + freeSlotsCount += (slotCount - page->empty_index); + if (freeSlotsCount > slotCount) + panic("more free slots than fit into the page\n"); + + lastPage = page; + lastFreeCount = page->free_count; + page = page->next; + } + } + + pageLocker.Unlock(); + for (uint32 i = 0; i < heap->bin_count; i++) + release_sem(heap->bins[i].lock); +} + + +// #pragma mark - Heap functions + + +static void +heap_add_area(heap_allocator *heap, area_id areaID, addr_t base, size_t size) +{ + heap_area *area = (heap_area *)base; + area->area = areaID; + + base += sizeof(heap_area); + size -= sizeof(heap_area); + + uint32 pageCount = size / heap->page_size; + size_t pageTableSize = pageCount * sizeof(heap_page); + area->page_table = (heap_page *)base; + base += pageTableSize; + size -= pageTableSize; + + // the rest is now actually usable memory (rounded to the next page) + area->base = ROUNDUP(base, B_PAGE_SIZE); + area->size = size & ~(B_PAGE_SIZE - 1); + + // now we know the real page count + pageCount = area->size / heap->page_size; + area->page_count = pageCount; + + // zero out the page table and fill in page indexes + memset((void *)area->page_table, 0, pageTableSize); + for (uint32 i = 0; i < pageCount; i++) { + area->page_table[i].area = area; + area->page_table[i].index = i; + } + + // add all pages up into the free pages list + for (uint32 i = 1; i < pageCount; i++) { + area->page_table[i - 1].next = &area->page_table[i]; + area->page_table[i].prev = &area->page_table[i - 1]; + } + area->free_pages = &area->page_table[0]; + area->free_page_count = pageCount; + area->page_table[0].prev = NULL; + area->next = NULL; + + WriteLocker areaWriteLocker(heap->area_lock); + MutexLocker pageLocker(heap->page_lock); + if (heap->areas == NULL) { + // it's the only (empty) area in that heap + area->prev = NULL; + heap->areas = area; + } else { + // link in this area as the last one as it is completely empty + heap_area *lastArea = heap->areas; + while (lastArea->next != NULL) + lastArea = lastArea->next; + + lastArea->next = area; + area->prev = lastArea; + } + + // insert this area in the all_areas list so it stays ordered by base + if (heap->all_areas == NULL || heap->all_areas->base < area->base) { + area->all_next = heap->all_areas; + heap->all_areas = area; + } else { + heap_area *insert = heap->all_areas; + while (insert->all_next && insert->all_next->base > area->base) + insert = insert->all_next; + + area->all_next = insert->all_next; + insert->all_next = area; + } + + heap->total_pages += area->page_count; + heap->total_free_pages += area->free_page_count; + + if (areaID >= 0) { + // this later on deletable area is yet empty - the empty count will be + // decremented as soon as this area is used for the first time + heap->empty_areas++; + } + + pageLocker.Unlock(); + areaWriteLocker.Unlock(); +} + + +static status_t +heap_remove_area(heap_allocator *heap, heap_area *area) +{ + if (area->free_page_count != area->page_count) { + panic("tried removing heap area that has still pages in use"); + return B_ERROR; + } + + if (area->prev == NULL && area->next == NULL) { + panic("tried removing the last non-full heap area"); + return B_ERROR; + } + + if (heap->areas == area) + heap->areas = area->next; + if (area->prev != NULL) + area->prev->next = area->next; + if (area->next != NULL) + area->next->prev = area->prev; + + if (heap->all_areas == area) + heap->all_areas = area->all_next; + else { + heap_area *previous = heap->all_areas; + while (previous) { + if (previous->all_next == area) { + previous->all_next = area->all_next; + break; + } + + previous = previous->all_next; + } + + if (previous == NULL) + panic("removing heap area that is not in all list"); + } + + heap->total_pages -= area->page_count; + heap->total_free_pages -= area->free_page_count; + return B_OK; +} + + +heap_allocator * +heap_create_allocator(const char *name, addr_t base, size_t size, + const heap_class *heapClass) +{ + heap_allocator *heap = (heap_allocator *)base; + base += sizeof(heap_allocator); + size -= sizeof(heap_allocator); + + heap->name = name; + heap->page_size = heapClass->page_size; + heap->total_pages = heap->total_free_pages = heap->empty_areas = 0; + heap->areas = heap->all_areas = NULL; + heap->bins = (heap_bin *)base; + + heap->bin_count = 0; + size_t binSize = 0, lastSize = 0; + uint32 count = heap->page_size / heapClass->min_bin_size; + for (; count >= heapClass->min_count_per_page; count--, lastSize = binSize) { + binSize = (heap->page_size / count) & ~(heapClass->bin_alignment - 1); + if (binSize == lastSize) + continue; + if (heap->page_size - count * binSize > heapClass->max_waste_per_page) + continue; + + heap_bin *bin = &heap->bins[heap->bin_count]; + bin->lock = create_sem(1, "heap bin lock"); + bin->element_size = binSize; + bin->max_free_count = heap->page_size / binSize; + bin->page_list = NULL; + heap->bin_count++; + + if (heap->bin_count >= 32) + panic("heap configuration invalid - max bin count reached\n"); + }; + + base += heap->bin_count * sizeof(heap_bin); + size -= heap->bin_count * sizeof(heap_bin); + + heap->page_lock = create_sem(1, "heap page lock"); + heap->area_lock = create_sem(1, "heap area lock"); + + heap_add_area(heap, -1, base, size); + return heap; +} + + +static inline void +heap_free_pages_added(heap_allocator *heap, heap_area *area, uint32 pageCount) +{ + area->free_page_count += pageCount; + heap->total_free_pages += pageCount; + + if (area->free_page_count == pageCount) { + // we need to add ourselfs to the area list of the heap + area->prev = NULL; + area->next = heap->areas; + if (area->next) + area->next->prev = area; + heap->areas = area; + } else { + // we might need to move back in the area list + if (area->next && area->next->free_page_count < area->free_page_count) { + // move ourselfs so the list stays ordered + heap_area *insert = area->next; + while (insert->next + && insert->next->free_page_count < area->free_page_count) + insert = insert->next; + + if (area->prev) + area->prev->next = area->next; + if (area->next) + area->next->prev = area->prev; + if (heap->areas == area) + heap->areas = area->next; + + area->prev = insert; + area->next = insert->next; + if (area->next) + area->next->prev = area; + insert->next = area; + } + } + + if (area->free_page_count == area->page_count && area->area >= 0) + heap->empty_areas++; +} + + +static inline void +heap_free_pages_removed(heap_allocator *heap, heap_area *area, uint32 pageCount) +{ + if (area->free_page_count == area->page_count && area->area >= 0) { + // this area was completely empty + heap->empty_areas--; + } + + area->free_page_count -= pageCount; + heap->total_free_pages -= pageCount; + + if (area->free_page_count == 0) { + // the area is now full so we remove it from the area list + if (area->prev) + area->prev->next = area->next; + if (area->next) + area->next->prev = area->prev; + if (heap->areas == area) + heap->areas = area->next; + area->next = area->prev = NULL; + } else { + // we might need to move forward in the area list + if (area->prev && area->prev->free_page_count > area->free_page_count) { + // move ourselfs so the list stays ordered + heap_area *insert = area->prev; + while (insert->prev + && insert->prev->free_page_count > area->free_page_count) + insert = insert->prev; + + if (area->prev) + area->prev->next = area->next; + if (area->next) + area->next->prev = area->prev; + + area->prev = insert->prev; + area->next = insert; + if (area->prev) + area->prev->next = area; + if (heap->areas == insert) + heap->areas = area; + insert->prev = area; + } + } +} + + +static inline void +heap_link_page(heap_page *page, heap_page **list) +{ + page->prev = NULL; + page->next = *list; + if (page->next) + page->next->prev = page; + *list = page; +} + + +static inline void +heap_unlink_page(heap_page *page, heap_page **list) +{ + if (page->prev) + page->prev->next = page->next; + if (page->next) + page->next->prev = page->prev; + if (list && *list == page) { + *list = page->next; + if (page->next) + page->next->prev = NULL; + } +} + + +static heap_page * +heap_allocate_contiguous_pages(heap_allocator *heap, uint32 pageCount) +{ + heap_area *area = heap->areas; + while (area) { + bool found = false; + int32 first = -1; + for (uint32 i = 0; i < area->page_count; i++) { + if (area->page_table[i].in_use) { + first = -1; + continue; + } + + if (first > 0) { + if ((i + 1 - first) == pageCount) { + found = true; + break; + } + } else + first = i; + } + + if (!found) { [... truncated: 785 lines follow ...] From axeld at mail.berlios.de Tue Sep 1 20:48:35 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Tue, 1 Sep 2009 20:48:35 +0200 Subject: [Haiku-commits] r32895 - haiku/trunk/headers/os/drivers Message-ID: <200909011848.n81ImZXS032299@sheep.berlios.de> Author: axeld Date: 2009-09-01 20:48:34 +0200 (Tue, 01 Sep 2009) New Revision: 32895 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32895&view=rev Modified: haiku/trunk/headers/os/drivers/USB_printer.h haiku/trunk/headers/os/drivers/bus_manager.h Log: * Rewrote USB_printer.h, and bus_manager.h (the last short ones...) :-) Modified: haiku/trunk/headers/os/drivers/USB_printer.h =================================================================== --- haiku/trunk/headers/os/drivers/USB_printer.h 2009-09-01 18:15:30 UTC (rev 32894) +++ haiku/trunk/headers/os/drivers/USB_printer.h 2009-09-01 18:48:34 UTC (rev 32895) @@ -1,36 +1,20 @@ -/* -** USB_printer.h -** -** Copyright 1999, Be Incorporated. All Rights Reserved. -** -*/ - +/* + * Copyright 2009, Haiku Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ #ifndef _USB_PRINTER_H #define _USB_PRINTER_H + #include -#ifdef __cplusplus -extern "C" { -#endif -/* ioctl() opcodes for usb_printer driver */ - -enum -{ - USB_PRINTER_GET_DEVICE_ID = B_DEVICE_OP_CODES_END+1 +enum { + USB_PRINTER_GET_DEVICE_ID = B_DEVICE_OP_CODES_END + 1 }; - -/* Maximum length of the DEVICE_ID. User MUST allocate this size -when calling USB_PRINTER_GET_DEVICE_ID ioctl() */ - #define USB_PRINTER_DEVICE_ID_LENGTH 256 + /* buffer size to be handed to above ioctl() call */ - -#ifdef __cplusplus -} -#endif - -#endif +#endif /* _USB_PRINTER_H */ Modified: haiku/trunk/headers/os/drivers/bus_manager.h =================================================================== --- haiku/trunk/headers/os/drivers/bus_manager.h 2009-09-01 18:15:30 UTC (rev 32894) +++ haiku/trunk/headers/os/drivers/bus_manager.h 2009-09-01 18:48:34 UTC (rev 32895) @@ -1,21 +1,13 @@ -/******************************************************************************* -/ -/ File: bus_managers.h -/ -/ Description: bus manager API -/ -/ Copyright 1998, Be Incorporated, All Rights Reserved. -/ -*******************************************************************************/ - +/* + * Copyright 2009, Haiku Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ #ifndef _BUS_MANAGER_H #define _BUS_MANAGER_H + #include -#ifdef __cplusplus -extern "C" { -#endif typedef struct bus_manager_info bus_manager_info; @@ -24,8 +16,5 @@ status_t (*rescan)(); }; -#ifdef __cplusplus -} -#endif #endif /* _BUS_MANAGER_H */ From stippi at mail.berlios.de Tue Sep 1 22:11:15 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Tue, 1 Sep 2009 22:11:15 +0200 Subject: [Haiku-commits] r32896 - haiku/branches/releases/r1alpha1/headers/private/kernel/disk_device_manager Message-ID: <200909012011.n81KBF9H012967@sheep.berlios.de> Author: stippi Date: 2009-09-01 22:11:12 +0200 (Tue, 01 Sep 2009) New Revision: 32896 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32896&view=rev Modified: haiku/branches/releases/r1alpha1/headers/private/kernel/disk_device_manager/KPartition.h Log: Fixed alpha branch build as well. Modified: haiku/branches/releases/r1alpha1/headers/private/kernel/disk_device_manager/KPartition.h =================================================================== --- haiku/branches/releases/r1alpha1/headers/private/kernel/disk_device_manager/KPartition.h 2009-09-01 18:48:34 UTC (rev 32895) +++ haiku/branches/releases/r1alpha1/headers/private/kernel/disk_device_manager/KPartition.h 2009-09-01 20:11:12 UTC (rev 32896) @@ -229,7 +229,7 @@ int32 fReferenceCount; bool fObsolete; char *fPublishedName; - static int32 fNextID; + static int32 sNextID; }; } // namespace DiskDevice From mmlr at mail.berlios.de Tue Sep 1 23:22:39 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 1 Sep 2009 23:22:39 +0200 Subject: [Haiku-commits] r32897 - in haiku/trunk/src/add-ons/kernel/file_systems/layers: attribute_overlay write_overlay Message-ID: <200909012122.n81LMdgc023220@sheep.berlios.de> Author: mmlr Date: 2009-09-01 23:22:37 +0200 (Tue, 01 Sep 2009) New Revision: 32897 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32897&view=rev Modified: haiku/trunk/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp Log: Enable the IO hook for both attribute and write overlay. Attribute overlay isn't concerned by it as it does not do file data, it simply passes the hook through. In the write_overlay case we check for write operations and for modified nodes. In both cases we return B_NOT_SUPPORTED which will cause a fallback to synchronous IO. The main problem with the fallback is not that it is synchronous but that the physical buffers of the request will be mapped and filled page wise, which makes it slow for various reasons. In any case with this setup all reads to write_overlay that can go through unmodified now do. This should speed up CD boot as there is no physical to virtual translation overhead and no limit to page wise reads. In the best case it should now read 256 blocks at the time instead of always falling back to 2. My tests show no side effects on creating, writing or partially modifying nodes so far. Modified: haiku/trunk/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp 2009-09-01 20:11:12 UTC (rev 32896) +++ haiku/trunk/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp 2009-09-01 21:22:37 UTC (rev 32897) @@ -1187,14 +1187,12 @@ } -#if 0 static status_t overlay_io(fs_volume *volume, fs_vnode *vnode, void *cookie, io_request *request) { OVERLAY_CALL(io, cookie, request) } -#endif static status_t @@ -1641,9 +1639,7 @@ &overlay_read_pages, &overlay_write_pages, - // TODO: the io scheduler uses it when available but we may simply - // return B_UNSUPPORTED and I'm not sure it then falls back correctly - NULL, //&overlay_io, + &overlay_io, &overlay_cancel_io, &overlay_get_file_map, Modified: haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-01 20:11:12 UTC (rev 32896) +++ haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-01 21:22:37 UTC (rev 32897) @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -1294,14 +1295,26 @@ } -#if 0 static status_t overlay_io(fs_volume *volume, fs_vnode *vnode, void *cookie, io_request *request) { - OVERLAY_CALL(io, cookie, request) + if (io_request_is_write(request)) + return B_UNSUPPORTED; + + OverlayInode *node = (OverlayInode *)vnode->private_node; + if (node->IsModified()) + return B_UNSUPPORTED; + + TRACE("relaying op: io\n"); + fs_vnode *superVnode = node->SuperVnode(); + if (superVnode->ops->io != NULL) { + return superVnode->ops->io(volume->super_volume, superVnode, cookie, + request); + } + + return B_UNSUPPORTED; } -#endif static status_t @@ -1714,9 +1727,7 @@ &overlay_read_pages, &overlay_write_pages, - // TODO: the io scheduler uses it when available but we may simply - // return B_UNSUPPORTED and I'm not sure it then falls back correctly - NULL, //&overlay_io, + &overlay_io, &overlay_cancel_io, &overlay_get_file_map, From mmlr at mail.berlios.de Tue Sep 1 23:24:35 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 1 Sep 2009 23:24:35 +0200 Subject: [Haiku-commits] r32898 - in haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers: attribute_overlay write_overlay Message-ID: <200909012124.n81LOZXk023408@sheep.berlios.de> Author: mmlr Date: 2009-09-01 23:24:33 +0200 (Tue, 01 Sep 2009) New Revision: 32898 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32898&view=rev Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp Log: Merging r32897 from trunk. Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp 2009-09-01 21:22:37 UTC (rev 32897) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp 2009-09-01 21:24:33 UTC (rev 32898) @@ -1187,14 +1187,12 @@ } -#if 0 static status_t overlay_io(fs_volume *volume, fs_vnode *vnode, void *cookie, io_request *request) { OVERLAY_CALL(io, cookie, request) } -#endif static status_t @@ -1641,9 +1639,7 @@ &overlay_read_pages, &overlay_write_pages, - // TODO: the io scheduler uses it when available but we may simply - // return B_UNSUPPORTED and I'm not sure it then falls back correctly - NULL, //&overlay_io, + &overlay_io, &overlay_cancel_io, &overlay_get_file_map, Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-01 21:22:37 UTC (rev 32897) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-01 21:24:33 UTC (rev 32898) @@ -17,6 +17,7 @@ #include #include #include +#include #include #include @@ -1294,14 +1295,26 @@ } -#if 0 static status_t overlay_io(fs_volume *volume, fs_vnode *vnode, void *cookie, io_request *request) { - OVERLAY_CALL(io, cookie, request) + if (io_request_is_write(request)) + return B_UNSUPPORTED; + + OverlayInode *node = (OverlayInode *)vnode->private_node; + if (node->IsModified()) + return B_UNSUPPORTED; + + TRACE("relaying op: io\n"); + fs_vnode *superVnode = node->SuperVnode(); + if (superVnode->ops->io != NULL) { + return superVnode->ops->io(volume->super_volume, superVnode, cookie, + request); + } + + return B_UNSUPPORTED; } -#endif static status_t @@ -1714,9 +1727,7 @@ &overlay_read_pages, &overlay_write_pages, - // TODO: the io scheduler uses it when available but we may simply - // return B_UNSUPPORTED and I'm not sure it then falls back correctly - NULL, //&overlay_io, + &overlay_io, &overlay_cancel_io, &overlay_get_file_map, From mmu_man at mail.berlios.de Wed Sep 2 01:56:08 2009 From: mmu_man at mail.berlios.de (mmu_man at mail.berlios.de) Date: Wed, 2 Sep 2009 01:56:08 +0200 Subject: [Haiku-commits] r32899 - in haiku/trunk: headers/os/drivers src/add-ons/kernel/bus_managers/pci src/add-ons/kernel/drivers/audio/ac97/es1370 src/add-ons/kernel/drivers/audio/hda Message-ID: <200909012356.n81Nu8IS021265@sheep.berlios.de> Author: mmu_man Date: 2009-09-02 01:56:02 +0200 (Wed, 02 Sep 2009) New Revision: 32899 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32899&view=rev Modified: haiku/trunk/headers/os/drivers/PCI.h haiku/trunk/src/add-ons/kernel/bus_managers/pci/pci.cpp haiku/trunk/src/add-ons/kernel/bus_managers/pci/pci_module.c haiku/trunk/src/add-ons/kernel/bus_managers/pci/pci_private.h haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.c haiku/trunk/src/add-ons/kernel/drivers/audio/hda/driver.cpp Log: Add functions to the old-style PCI bus manager to reserve a device from an old-style driver for exclusive use. This should help making OSS and native audio drivers mutually exclusive. Used in es1370 and hda drivers as examples. OSS must still be fixed to use it too though. Modified: haiku/trunk/headers/os/drivers/PCI.h =================================================================== --- haiku/trunk/headers/os/drivers/PCI.h 2009-09-01 21:24:33 UTC (rev 32898) +++ haiku/trunk/headers/os/drivers/PCI.h 2009-09-01 23:56:02 UTC (rev 32899) @@ -155,6 +155,18 @@ uchar cap_id, uchar *offset ); + status_t (*reserve_device) ( + uchar bus, + uchar device, + uchar function, + const char *driver_name, + void *cookie); + status_t (*unreserve_device) ( + uchar bus, + uchar device, + uchar function, + const char *driver_name, + void *cookie); }; #define B_PCI_MODULE_NAME "bus_managers/pci/v1" Modified: haiku/trunk/src/add-ons/kernel/bus_managers/pci/pci.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/pci/pci.cpp 2009-09-01 21:24:33 UTC (rev 32898) +++ haiku/trunk/src/add-ons/kernel/bus_managers/pci/pci.cpp 2009-09-01 23:56:02 UTC (rev 32899) @@ -86,6 +86,196 @@ } +status_t +pci_reserve_device(uchar virtualBus, uchar device, uchar function, + const char *driverName, void *nodeCookie) +{ + status_t status; + uint8 bus; + int domain; + + /* + * we add 2 nodes to the PCI devices, one with constant attributes, + * so adding for another driver fails, and a subnode with the + * driver-provided informations. + */ + + if (gPCI->ResolveVirtualBus(virtualBus, &domain, &bus) != B_OK) + return B_ERROR; + + //TRACE(("%s(%d [%d:%d], %d, %d, %s, %p)\n", __FUNCTION__, virtualBus, + // domain, bus, device, function, driverName, nodeCookie)); + + device_attr matchPCIRoot[] = { + {B_DEVICE_PRETTY_NAME, B_STRING_TYPE, {string: "PCI"}}, + {NULL} + }; + device_attr matchThis[] = { + // info about device + {B_DEVICE_BUS, B_STRING_TYPE, {string: "pci"}}, + + // location on PCI bus + {B_PCI_DEVICE_DOMAIN, B_UINT32_TYPE, {ui32: domain}}, + {B_PCI_DEVICE_BUS, B_UINT8_TYPE, {ui8: bus}}, + {B_PCI_DEVICE_DEVICE, B_UINT8_TYPE, {ui8: device}}, + {B_PCI_DEVICE_FUNCTION, B_UINT8_TYPE, {ui8: function}}, + {NULL} + }; + device_attr legacyAttrs[] = { + // info about device + {B_DEVICE_BUS, B_STRING_TYPE, {string: "legacy_driver"}}, + {B_DEVICE_PRETTY_NAME, B_STRING_TYPE, {string: "Legacy Driver Reservation"}}, + {NULL} + }; + device_attr drvAttrs[] = { + // info about device + {B_DEVICE_BUS, B_STRING_TYPE, {string: "legacy_driver"}}, + {"legacy_driver", B_STRING_TYPE, {string: driverName}}, + {"legacy_driver_cookie", B_UINT64_TYPE, {ui64: (uint64)nodeCookie}}, + {NULL} + }; + device_node *root, *pci, *node, *legacy; + + status = B_DEVICE_NOT_FOUND; + root = gDeviceManager->get_root_node(); + if (!root) + return status; + + pci = NULL; + if (gDeviceManager->get_next_child_node(root, matchPCIRoot, &pci) < B_OK) + goto err0; + + node = NULL; + if (gDeviceManager->get_next_child_node(pci, matchThis, &node) < B_OK) + goto err1; + + // common API for all legacy modules ? + //status = legacy_driver_register(node, driverName, nodeCookie, PCI_LEGACY_DRIVER_MODULE_NAME); + + status = gDeviceManager->register_node(node, PCI_LEGACY_DRIVER_MODULE_NAME, + legacyAttrs, NULL, &legacy); + if (status < B_OK) + goto err2; + + status = gDeviceManager->register_node(legacy, PCI_LEGACY_DRIVER_MODULE_NAME, + drvAttrs, NULL, NULL); + if (status < B_OK) + goto err3; + + gDeviceManager->put_node(node); + gDeviceManager->put_node(pci); + gDeviceManager->put_node(root); + + return B_OK; + +err3: + gDeviceManager->unregister_node(legacy); +err2: + gDeviceManager->put_node(node); +err1: + gDeviceManager->put_node(pci); +err0: + gDeviceManager->put_node(root); + TRACE(("pci_reserve_device for driver %s failed: %s\n", driverName, strerror(status))); + return status; +} + + +status_t +pci_unreserve_device(uchar virtualBus, uchar device, uchar function, + const char *driverName, void *nodeCookie) +{ + status_t status; + uint8 bus; + int domain; + + if (gPCI->ResolveVirtualBus(virtualBus, &domain, &bus) != B_OK) + return B_ERROR; + + //TRACE(("%s(%d [%d:%d], %d, %d, %s, %p)\n", __FUNCTION__, virtualBus, + // domain, bus, device, function, driverName, nodeCookie)); + + device_attr matchPCIRoot[] = { + {B_DEVICE_PRETTY_NAME, B_STRING_TYPE, {string: "PCI"}}, + {NULL} + }; + device_attr matchThis[] = { + // info about device + {B_DEVICE_BUS, B_STRING_TYPE, {string: "pci"}}, + + // location on PCI bus + {B_PCI_DEVICE_DOMAIN, B_UINT32_TYPE, {ui32: domain}}, + {B_PCI_DEVICE_BUS, B_UINT8_TYPE, {ui8: bus}}, + {B_PCI_DEVICE_DEVICE, B_UINT8_TYPE, {ui8: device}}, + {B_PCI_DEVICE_FUNCTION, B_UINT8_TYPE, {ui8: function}}, + {NULL} + }; + device_attr legacyAttrs[] = { + // info about device + {B_DEVICE_BUS, B_STRING_TYPE, {string: "legacy_driver"}}, + {B_DEVICE_PRETTY_NAME, B_STRING_TYPE, {string: "Legacy Driver Reservation"}}, + {NULL} + }; + device_attr drvAttrs[] = { + // info about device + {B_DEVICE_BUS, B_STRING_TYPE, {string: "legacy_driver"}}, + {"legacy_driver", B_STRING_TYPE, {string: driverName}}, + {"legacy_driver_cookie", B_UINT64_TYPE, {ui64: (uint64)nodeCookie}}, + {NULL} + }; + device_node *root, *pci, *node, *legacy, *drv; + + status = B_DEVICE_NOT_FOUND; + root = gDeviceManager->get_root_node(); + if (!root) + return status; + + pci = NULL; + if (gDeviceManager->get_next_child_node(root, matchPCIRoot, &pci) < B_OK) + goto err0; + + node = NULL; + if (gDeviceManager->get_next_child_node(pci, matchThis, &node) < B_OK) + goto err1; + + // common API for all legacy modules ? + //status = legacy_driver_unregister(node, driverName, nodeCookie); + + legacy = NULL; + if (gDeviceManager->get_next_child_node(node, legacyAttrs, &legacy) < B_OK) + goto err2; + + drv = NULL; + if (gDeviceManager->get_next_child_node(legacy, drvAttrs, &drv) < B_OK) + goto err3; + + gDeviceManager->put_node(drv); + status = gDeviceManager->unregister_node(drv); + //dprintf("unreg:drv:%s\n", strerror(status)); + + gDeviceManager->put_node(legacy); + status = gDeviceManager->unregister_node(legacy); + //dprintf("unreg:legacy:%s\n", strerror(status)); + // we'll get EBUSY here anyway... + + gDeviceManager->put_node(node); + gDeviceManager->put_node(pci); + gDeviceManager->put_node(root); + return B_OK; + +err3: + gDeviceManager->put_node(legacy); +err2: + gDeviceManager->put_node(node); +err1: + gDeviceManager->put_node(pci); +err0: + gDeviceManager->put_node(root); + TRACE(("pci_unreserve_device for driver %s failed: %s\n", driverName, strerror(status))); + return status; +} + + // used by pci_info.cpp print_info_basic() void __pci_resolve_virtual_bus(uint8 virtualBus, int *domain, uint8 *bus) Modified: haiku/trunk/src/add-ons/kernel/bus_managers/pci/pci_module.c =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/pci/pci_module.c 2009-09-01 21:24:33 UTC (rev 32898) +++ haiku/trunk/src/add-ons/kernel/bus_managers/pci/pci_module.c 2009-09-01 23:56:02 UTC (rev 32899) @@ -64,7 +64,9 @@ &pci_read_config, &pci_write_config, &pci_ram_address, - &pci_find_capability + &pci_find_capability, + &pci_reserve_device, + &pci_unreserve_device }; module_dependency module_dependencies[] = { @@ -72,9 +74,19 @@ {} }; +driver_module_info gPCILegacyDriverModule = { + { + PCI_LEGACY_DRIVER_MODULE_NAME, + 0, + NULL, + }, + NULL +}; + module_info *modules[] = { (module_info *)&sOldPCIModule, (module_info *)&gPCIRootModule, (module_info *)&gPCIDeviceModule, + (module_info *)&gPCILegacyDriverModule, NULL }; Modified: haiku/trunk/src/add-ons/kernel/bus_managers/pci/pci_private.h =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/pci/pci_private.h 2009-09-01 21:24:33 UTC (rev 32898) +++ haiku/trunk/src/add-ons/kernel/bus_managers/pci/pci_private.h 2009-09-01 23:56:02 UTC (rev 32899) @@ -12,6 +12,8 @@ #include #include +// name of PCI legacy driver endpoint module +#define PCI_LEGACY_DRIVER_MODULE_NAME "bus_managers/pci/legacy_v1" // name of PCI device modules #define PCI_DEVICE_MODULE_NAME "bus_managers/pci/driver_v1" @@ -46,6 +48,11 @@ status_t pci_find_capability(uchar bus, uchar device, uchar function, uchar cap_id, uchar *offset); +status_t pci_reserve_device(uchar virtualBus, uchar device, uchar function, + const char *driverName, void *nodeCookie); +status_t pci_unreserve_device(uchar virtualBus, uchar device, uchar function, + const char *driverName, void *nodeCookie); + status_t pci_io_init(void); uint8 pci_read_io_8(int mapped_io_addr); void pci_write_io_8(int mapped_io_addr, uint8 value); Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.c =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.c 2009-09-01 21:24:33 UTC (rev 32898) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.c 2009-09-01 23:56:02 UTC (rev 32899) @@ -501,6 +501,7 @@ pci_info info; int ix = 0; num_cards = 0; + status_t err; PRINT(("init_driver()\n")); @@ -529,7 +530,7 @@ if (get_module(pci_name, (module_info **) &pci)) return ENOSYS; - while ((*pci->get_nth_pci_info)(ix, &info) == B_OK) { + while ((*pci->get_nth_pci_info)(ix++, &info) == B_OK) { if (info.vendor_id == 0x1274 && (info.device_id == 0x5000 /*|| info.device_id == 0x1371 @@ -541,6 +542,14 @@ } memset(&cards[num_cards], 0, sizeof(es1370_dev)); cards[num_cards].info = info; +#ifdef __HAIKU__ + if ((err = (*pci->reserve_device)(info.bus, info.device, info.function, + DRIVER_NAME, &cards[num_cards])) < B_OK) { + dprintf("es1370: failed to reserve_device(%d, %d, %d,): %s\n", + info.bus, info.device, info.function, strerror(err)); + continue; + } +#endif if (es1370_setup(&cards[num_cards])) { PRINT(("Setup of es1370 %ld failed\n", num_cards+1)); } @@ -548,7 +557,6 @@ num_cards++; } } - ix++; } if (!num_cards) { PRINT(("no cards\n")); @@ -579,8 +587,14 @@ num_cards = 0; PRINT(("uninit_driver()\n")); - for (ix=0; ixunreserve_device)(cards[ix].info.bus, + cards[ix].info.device, cards[ix].info.function, + DRIVER_NAME, &cards[ix]); +#endif + } memset(&cards, 0, sizeof(cards)); put_module(pci_name); } Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/driver.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/driver.cpp 2009-09-01 21:24:33 UTC (rev 32898) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/driver.cpp 2009-09-01 23:56:02 UTC (rev 32899) @@ -55,6 +55,14 @@ && gNumCards < MAX_CARDS; i++) { if (info.class_base == PCI_multimedia && info.class_sub == PCI_hd_audio) { +#ifdef __HAIKU__ + if ((*gPci->reserve_device)(info.bus, info.device, info.function, "hda", + &gCards[gNumCards]) < B_OK) { + dprintf("HDA: Failed to reserve PCI:%d:%d:%d\n", + info.bus, info.device, info.function); + continue; + } +#endif memset(&gCards[gNumCards], 0, sizeof(hda_controller)); gCards[gNumCards].pci_info = info; gCards[gNumCards].opened = 0; @@ -84,6 +92,10 @@ dprintf("IRA: %s\n", __func__); for (uint32 i = 0; i < gNumCards; i++) { +#ifdef __HAIKU__ + (*gPci->unreserve_device)(gCards[i].pci_info.bus, gCards[i].pci_info.device, + gCards[i].pci_info.function, "hda", &gCards[i]); +#endif free((void*)gCards[i].devfs_path); gCards[i].devfs_path = NULL; } From mmlr at mail.berlios.de Wed Sep 2 05:09:32 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Wed, 2 Sep 2009 05:09:32 +0200 Subject: [Haiku-commits] r32900 - haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay Message-ID: <200909020309.n8239WxB021429@sheep.berlios.de> Author: mmlr Date: 2009-09-02 05:09:28 +0200 (Wed, 02 Sep 2009) New Revision: 32900 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32900&view=rev Modified: haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/Jamfile haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp Log: Implement the rest of the IO hook. We now do directly satisfy write requests by writing them into our buffers and directly satisfy read requests by copying our buffers, filling any gaps by spawning off subrequests to the underlaying filesystem. Modified: haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/Jamfile =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/Jamfile 2009-09-01 23:56:02 UTC (rev 32899) +++ haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/Jamfile 2009-09-02 03:09:28 UTC (rev 32900) @@ -1,6 +1,7 @@ SubDir HAIKU_TOP src add-ons kernel file_systems layers write_overlay ; UsePrivateKernelHeaders ; +SubDirHdrs $(HAIKU_TOP) src system kernel device_manager ; KernelAddon write_overlay : write_overlay.cpp Modified: haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-01 23:56:02 UTC (rev 32899) +++ haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-02 03:09:28 UTC (rev 32900) @@ -23,7 +23,9 @@ #include #include +#include "IORequest.h" + //#define TRACE_OVERLAY #ifdef TRACE_OVERLAY #define TRACE(x...) dprintf("write_overlay: " x) @@ -132,9 +134,14 @@ status_t Close(void *cookie); status_t FreeCookie(void *cookie); status_t Read(void *cookie, off_t position, void *buffer, - size_t *length, bool readPages); + size_t *length, bool readPages, + IORequest *ioRequest); status_t Write(void *cookie, off_t position, - const void *buffer, size_t *length); + const void *buffer, size_t length, + IORequest *request); + + status_t SynchronousIO(void *cookie, IORequest *request); + status_t SetFlags(void *cookie, int flags); status_t CreateDir(const char *name, int perms); @@ -519,7 +526,7 @@ status_t OverlayInode::Read(void *_cookie, off_t position, void *buffer, size_t *length, - bool readPages) + bool readPages, IORequest *ioRequest) { if (position >= fStat.st_size) { *length = 0; @@ -555,6 +562,20 @@ result = fSuperVnode.ops->read_pages(SuperVolume(), &fSuperVnode, superCookie, position, &vector, 1, &readLength); + } else if (ioRequest != NULL) { + IORequest *subRequest; + result = ioRequest->CreateSubRequest(position, position, + readLength, subRequest); + if (result != B_OK) + return result; + + result = fSuperVnode.ops->io(SuperVolume(), &fSuperVnode, + superCookie, subRequest); + if (result != B_OK) + return result; + + result = subRequest->Wait(0, 0); + readLength = subRequest->TransferredBytes(); } else { result = fSuperVnode.ops->read(SuperVolume(), &fSuperVnode, superCookie, position, pointer, &readLength); @@ -572,7 +593,11 @@ if (gapSize > 0) { // there's a gap before our next position which we cannot // fill with original file content, zero it out - memset(pointer, 0, gapSize); + if (ioRequest != NULL) + ;// TODO: handle this case + else + memset(pointer, 0, gapSize); + bytesLeft -= gapSize; position += gapSize; pointer += gapSize; @@ -585,9 +610,15 @@ off_t elementEnd = element->position + element->length; if (elementEnd > position) { size_t copyLength = MIN(elementEnd - position, bytesLeft); - memcpy(pointer, element->buffer + (position - element->position), - copyLength); + const void *source = element->buffer + (position + - element->position); + if (ioRequest != NULL) { + ioRequest->CopyData(source, (addr_t)pointer - (addr_t)buffer, + copyLength); + } else + memcpy(pointer, source, copyLength); + bytesLeft -= copyLength; position += copyLength; pointer += copyLength; @@ -602,7 +633,7 @@ status_t OverlayInode::Write(void *_cookie, off_t position, const void *buffer, - size_t *length) + size_t length, IORequest *ioRequest) { if (_cookie != NULL) { open_cookie *cookie = (open_cookie *)_cookie; @@ -618,7 +649,7 @@ write_buffer *other = fWriteBuffers; write_buffer *swallow = NULL; off_t newPosition = position; - size_t newLength = *length; + size_t newLength = length; uint32 swallowCount = 0; while (other) { @@ -643,8 +674,11 @@ if (other->position <= newPosition) { if (swallowCount == 1 && otherEnd >= newEnd) { // other chunk completely covers us, just copy - memcpy(other->buffer + (newPosition - other->position), - buffer, *length); + void *target = other->buffer + (newPosition - other->position); + if (ioRequest != NULL) + ioRequest->CopyData(0, target, length); + else + memcpy(target, buffer, length); fStat.st_mtime = time(NULL); notify_stat_changed(SuperVolume()->id, fInodeNumber, @@ -694,7 +728,11 @@ } } - memcpy(element->buffer + (position - newPosition), buffer, *length); + void *target = element->buffer + (position - newPosition); + if (ioRequest != NULL) + ioRequest->CopyData(0, target, length); + else + memcpy(target, buffer, length); fStat.st_mtime = time(NULL); notify_stat_changed(SuperVolume()->id, fInodeNumber, @@ -704,6 +742,25 @@ status_t +OverlayInode::SynchronousIO(void *cookie, IORequest *request) +{ + status_t result; + size_t length = request->Length(); + if (request->IsWrite()) + result = Write(cookie, request->Offset(), NULL, length, request); + else + result = Read(cookie, request->Offset(), NULL, &length, false, request); + + if (result != B_OK) + return result; + + request->SetTransferredBytes(false, length); + request->SetStatusAndNotify(B_OK); + return B_OK; +} + + +status_t OverlayInode::SetFlags(void *_cookie, int flags) { // we can only handle O_APPEND, O_NONBLOCK is ignored. @@ -803,8 +860,7 @@ if (result != B_OK) return result; - size_t writeLength = strlen(path); - return newNode->Write(NULL, 0, path, &writeLength); + return newNode->Write(NULL, 0, path, strlen(path), NULL); } @@ -815,7 +871,7 @@ if (!S_ISLNK(fStat.st_mode)) return B_BAD_VALUE; - return Read(NULL, 0, buffer, bufferSize, false); + return Read(NULL, 0, buffer, bufferSize, false, NULL); } if (fSuperVnode.ops->read_symlink == NULL) @@ -1239,7 +1295,7 @@ for (size_t i = 0; i < count; i++) { size_t transferBytes = MIN(vecs[i].iov_len, bytesLeft); status_t result = node->Read(cookie, pos, vecs[i].iov_base, - &transferBytes, true); + &transferBytes, true, NULL); if (result != B_OK) { *numBytes -= bytesLeft; return result; @@ -1272,7 +1328,7 @@ for (size_t i = 0; i < count; i++) { size_t transferBytes = MIN(vecs[i].iov_len, bytesLeft); status_t result = node->Write(cookie, pos, vecs[i].iov_base, - &transferBytes); + transferBytes, NULL); if (result != B_OK) { *numBytes -= bytesLeft; return result; @@ -1299,17 +1355,15 @@ overlay_io(fs_volume *volume, fs_vnode *vnode, void *cookie, io_request *request) { - if (io_request_is_write(request)) - return B_UNSUPPORTED; - OverlayInode *node = (OverlayInode *)vnode->private_node; - if (node->IsModified()) - return B_UNSUPPORTED; + if (io_request_is_write(request) || node->IsModified()) + return node->SynchronousIO(cookie, (IORequest *)request); TRACE("relaying op: io\n"); fs_vnode *superVnode = node->SuperVnode(); if (superVnode->ops->io != NULL) { - return superVnode->ops->io(volume->super_volume, superVnode, cookie, + return superVnode->ops->io(volume->super_volume, superVnode, + cookie != NULL ? ((open_cookie *)cookie)->super_cookie : NULL, request); } @@ -1521,7 +1575,7 @@ { TRACE("read\n"); return ((OverlayInode *)vnode->private_node)->Read(cookie, pos, buffer, - length, false); + length, false, NULL); } @@ -1531,7 +1585,7 @@ { TRACE("write\n"); return ((OverlayInode *)vnode->private_node)->Write(cookie, pos, buffer, - length); + *length, NULL); } From leavengood at gmail.com Wed Sep 2 06:19:53 2009 From: leavengood at gmail.com (Ryan Leavengood) Date: Wed, 2 Sep 2009 04:19:53 +0000 Subject: [Haiku-commits] r32894 - in haiku/trunk/src/system/libroot/posix: . malloc_debug In-Reply-To: <200909011815.n81IFWOk027111@sheep.berlios.de> References: <200909011815.n81IFWOk027111@sheep.berlios.de> Message-ID: On Tue, Sep 1, 2009 at 6:15 PM, wrote: > > Ported over the kernel heap to libroot to make use of it's validation > capabilities to aid in debugging memory corruption issues. Could this be extended to help find memory leaks in userland applications as well? -- Regards, Ryan From mmlr at mlotz.ch Wed Sep 2 05:16:53 2009 From: mmlr at mlotz.ch (Michael Lotz) Date: Wed, 02 Sep 2009 05:16:53 Subject: [Haiku-commits] =?windows-1252?q?r32894_-_in_haiku/trunk/src/syst?= =?windows-1252?q?em/libroot/posix=3A_=2E_malloc=5Fdebug?= In-Reply-To: Message-ID: <40443174348-BeMail@laptop> > On Tue, Sep 1, 2009 at 6:15 PM, wrote: > > > > Ported over the kernel heap to libroot to make use of it's > > validation > > capabilities to aid in debugging memory corruption issues. > > Could this be extended to help find memory leaks in userland > applications as well? Yes, although it's currently pretty limited. If you build it, you can use dump_allocations(bool statsOnly, thread_id thread) to dump all current allocations (to stdout). The thread argument is a filter, if you set it to -1 it won't filter and dump everything. You could call this to watch memory consumption during runtime or you could call it just before exiting to check for leaks. It's a bit rough to use right now and it's limited as it doesn't yet provide the same level of detail (it doesn't retrieve the caller yet for example). It will probably be extended to become more useful, but right now the focus is on finding memory corruptions. Regards Michael From leavengood at gmail.com Wed Sep 2 07:48:39 2009 From: leavengood at gmail.com (Ryan Leavengood) Date: Wed, 2 Sep 2009 01:48:39 -0400 Subject: [Haiku-commits] r32894 - in haiku/trunk/src/system/libroot/posix: . malloc_debug In-Reply-To: <40443174348-BeMail@laptop> References: <40443174348-BeMail@laptop> Message-ID: On Wed, Sep 2, 2009 at 1:16 AM, Michael Lotz wrote: > > It will probably be extended to become more useful, but right now the > focus is on finding memory corruptions. OK, it certainly sounds like a start. Memory corruption is certainly something we should focus on fixing first. But eventually it would be nice to help developers with a decent leak detection system. I'd even like to have some sort of GUI for it at some point (maybe as part of the debugger), though I'd need to see what is done on other systems first. -- Regards, Ryan From axeld at mail.berlios.de Wed Sep 2 14:04:01 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Wed, 2 Sep 2009 14:04:01 +0200 Subject: [Haiku-commits] r32901 - haiku/trunk/headers/os/drivers Message-ID: <200909021204.n82C41I1019422@sheep.berlios.de> Author: axeld Date: 2009-09-02 14:04:00 +0200 (Wed, 02 Sep 2009) New Revision: 32901 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32901&view=rev Modified: haiku/trunk/headers/os/drivers/USB_rle.h haiku/trunk/headers/os/drivers/USB_spec.h haiku/trunk/headers/os/drivers/midi_driver.h Log: * Rewrote USB_rle.h, USB_spec.h, and midi_driver.h. I did not reproduce the documentation found in those headers - this stuff should go into the Haiku Book instead (although I'm not even sure the USB_rle.h, and midi_driver.h are really needed any longer). Modified: haiku/trunk/headers/os/drivers/USB_rle.h =================================================================== --- haiku/trunk/headers/os/drivers/USB_rle.h 2009-09-02 03:09:28 UTC (rev 32900) +++ haiku/trunk/headers/os/drivers/USB_rle.h 2009-09-02 12:04:00 UTC (rev 32901) @@ -1,82 +1,30 @@ -/* -** USB_rle.h -** -** Copyright 1999, Be Incorporated. All Rights Reserved. -** -*/ - +/* + * Copyright 2009, Haiku Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ #ifndef _USB_RLE_H #define _USB_RLE_H -#ifdef __cplusplus -extern "C" { -#endif -struct _usbd_param_hdr; +#include -/* -Run Length encoding records for isochronous IN transfers. -Run Length encoding records are used to identify which samples in -the buffer are good which are bad and which are missing. -Bad bytes are not extracted from the buffer, but are padded to next -nearest sample boundary. The ultimate consumer of the buffer -should also receive the RLE array. +struct _usbd_param_hdr; -RLE records are constructed based on the following rules: -1. an RLE record contains a sample count and a status - (good, bad, missing or unknown). A buffer has - associated with it an array of rle records. The number of - rle records available is specified in the RLE header. The - number used is also in the RLE header. +/* Run length encoding for isochronous in transfers */ -2. Within the scope of a buffer, successive packets with the - same completion status are represented with (1) rle record. - For example, after three transactions which have completion - status of success, the byte count in the rle record for this - position in the data stream represents the bytes received in - all three packets. - -3. New rle records are initialized each time the status for a - given packet differs from that of the previous packet. - -*/ - #define RLE_GOOD 1 #define RLE_BAD 2 #define RLE_MISSING 3 #define RLE_UNKNOWN 4 -/* -Name: rle -Purpose: used to represent the state of a portion of a data buffer -Fields: - rle_status will contain only the values: RLE_GOOD, RLE_BAD, RLE_MISSING - sample_count the number of usb samples in the buffer associated with this rle - record. -Notes: - If the buffer length field in queue_buffer_single structure changes to an - uint32 from uin16, then the sample_count data type must - track this change. -*/ +/* data buffer state */ typedef struct rle { uint16 rle_status; uint16 sample_count; } rle; - -/* -Name: rlea -Purpose: used as the primary rle information data structure between the - USB driver stack and a consuming client. - -Fields: - length the number of rle records available in this structure. - num_valid filled in by the USB driver. indicates the number of valid - records filled. - rles[] unconstrained array of rle records. -*/ typedef struct rlea { uint16 length; uint16 num_valid; @@ -84,8 +32,4 @@ } rlea; -#ifdef __cplusplus -} -#endif - -#endif +#endif /* _USB_RLE_H */ Modified: haiku/trunk/headers/os/drivers/USB_spec.h =================================================================== --- haiku/trunk/headers/os/drivers/USB_spec.h 2009-09-02 03:09:28 UTC (rev 32900) +++ haiku/trunk/headers/os/drivers/USB_spec.h 2009-09-02 12:04:00 UTC (rev 32901) @@ -1,152 +1,134 @@ -/* -** USB_spec.h -** -** Copyright 1999, Be Incorporated. All Rights Reserved. -** -** This file contains structures and constants based on the USB Specification 1.1 -** -*/ - +/* + * Copyright 2009, Haiku Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ #ifndef _USB_SPEC_H #define _USB_SPEC_H -#ifdef __cplusplus -extern "C" { -#endif -/* request types (target & direction) for send_request() */ -/* cf USB Spec Rev 1.1, table 9-2, p 183 */ -#define USB_REQTYPE_DEVICE_IN 0x80 -#define USB_REQTYPE_DEVICE_OUT 0x00 -#define USB_REQTYPE_INTERFACE_IN 0x81 -#define USB_REQTYPE_INTERFACE_OUT 0x01 -#define USB_REQTYPE_ENDPOINT_IN 0x82 -#define USB_REQTYPE_ENDPOINT_OUT 0x02 -#define USB_REQTYPE_OTHER_OUT 0x03 -#define USB_REQTYPE_OTHER_IN 0x83 +#include -/* request types for send_request() */ -/* cf USB Spec Rev 1.1, table 9-2, p 183 */ -#define USB_REQTYPE_STANDARD 0x00 -#define USB_REQTYPE_CLASS 0x20 -#define USB_REQTYPE_VENDOR 0x40 -#define USB_REQTYPE_RESERVED 0x60 -#define USB_REQTYPE_MASK 0x9F -/* standard request values for send_request() */ -/* cf USB Spec Rev 1.1, table 9-4, p 187 */ -#define USB_REQUEST_GET_STATUS 0 -#define USB_REQUEST_CLEAR_FEATURE 1 -#define USB_REQUEST_SET_FEATURE 3 -#define USB_REQUEST_SET_ADDRESS 5 -#define USB_REQUEST_GET_DESCRIPTOR 6 -#define USB_REQUEST_SET_DESCRIPTOR 7 -#define USB_REQUEST_GET_CONFIGURATION 8 -#define USB_REQUEST_SET_CONFIGURATION 9 -#define USB_REQUEST_GET_INTERFACE 10 -#define USB_REQUEST_SET_INTERFACE 11 -#define USB_REQUEST_SYNCH_FRAME 12 +/* Request types (target/direction) for send_request() */ +#define USB_REQTYPE_DEVICE_IN 0x80 +#define USB_REQTYPE_DEVICE_OUT 0x00 +#define USB_REQTYPE_INTERFACE_IN 0x81 +#define USB_REQTYPE_INTERFACE_OUT 0x01 +#define USB_REQTYPE_ENDPOINT_IN 0x82 +#define USB_REQTYPE_ENDPOINT_OUT 0x02 +#define USB_REQTYPE_OTHER_OUT 0x03 +#define USB_REQTYPE_OTHER_IN 0x83 -/* used by {set,get}_descriptor() */ -/* cf USB Spec Rev 1.1, table 9-5, p 187 */ -#define USB_DESCRIPTOR_DEVICE 1 -#define USB_DESCRIPTOR_CONFIGURATION 2 -#define USB_DESCRIPTOR_STRING 3 -#define USB_DESCRIPTOR_INTERFACE 4 -#define USB_DESCRIPTOR_ENDPOINT 5 +/* Request types for send_request() */ +#define USB_REQTYPE_STANDARD 0x00 +#define USB_REQTYPE_CLASS 0x20 +#define USB_REQTYPE_VENDOR 0x40 +#define USB_REQTYPE_RESERVED 0x60 +#define USB_REQTYPE_MASK 0x9f -/* used by {set,clear}_feature() */ -/* cf USB Spec Rev 1.1, table 9-6, p 188 */ +/* Standard request values for send_request() */ +#define USB_REQUEST_GET_STATUS 0 +#define USB_REQUEST_CLEAR_FEATURE 1 +#define USB_REQUEST_SET_FEATURE 3 +#define USB_REQUEST_SET_ADDRESS 5 +#define USB_REQUEST_GET_DESCRIPTOR 6 +#define USB_REQUEST_SET_DESCRIPTOR 7 +#define USB_REQUEST_GET_CONFIGURATION 8 +#define USB_REQUEST_SET_CONFIGURATION 9 +#define USB_REQUEST_GET_INTERFACE 10 +#define USB_REQUEST_SET_INTERFACE 11 +#define USB_REQUEST_SYNCH_FRAME 12 + +/* Used by {set|get}_descriptor() */ +#define USB_DESCRIPTOR_DEVICE 1 +#define USB_DESCRIPTOR_CONFIGURATION 2 +#define USB_DESCRIPTOR_STRING 3 +#define USB_DESCRIPTOR_INTERFACE 4 +#define USB_DESCRIPTOR_ENDPOINT 5 + +/* Used by {set|clear}_feature() */ #define USB_FEATURE_DEVICE_REMOTE_WAKEUP 1 #define USB_FEATURE_ENDPOINT_HALT 0 -#define USB_ENDPOINT_ATTR_CONTROL 0x00 -#define USB_ENDPOINT_ATTR_ISOCHRONOUS 0x01 -#define USB_ENDPOINT_ATTR_BULK 0x02 -#define USB_ENDPOINT_ATTR_INTERRUPT 0x03 -#define USB_ENDPOINT_ATTR_MASK 0x03 +#define USB_ENDPOINT_ATTR_CONTROL 0x00 +#define USB_ENDPOINT_ATTR_ISOCHRONOUS 0x01 +#define USB_ENDPOINT_ATTR_BULK 0x02 +#define USB_ENDPOINT_ATTR_INTERRUPT 0x03 +#define USB_ENDPOINT_ATTR_MASK 0x03 -#define USB_ENDPOINT_ADDR_DIR_IN 0x80 -#define USB_ENDPOINT_ADDR_DIR_OUT 0x00 +#define USB_ENDPOINT_ADDR_DIR_IN 0x80 +#define USB_ENDPOINT_ADDR_DIR_OUT 0x00 -typedef struct { - /* cf USB Spec Rev 1.1, table 9-7, p 197 */ - uint8 length; - uint8 descriptor_type; /* USB_DESCRIPTOR_DEVICE */ - uint16 usb_version; /* USB_DESCRIPTOR_DEVICE_LENGTH */ - uint8 device_class; - uint8 device_subclass; - uint8 device_protocol; - uint8 max_packet_size_0; - uint16 vendor_id; - uint16 product_id; - uint16 device_version; - uint8 manufacturer; - uint8 product; - uint8 serial_number; - uint8 num_configurations; +typedef struct usb_device_descriptor { + uint8 length; + uint8 descriptor_type; + uint16 usb_version; + uint8 device_class; + uint8 device_subclass; + uint8 device_protocol; + uint8 max_packet_size_0; + uint16 vendor_id; + uint16 product_id; + uint16 device_version; + uint8 manufacturer; + uint8 product; + uint8 serial_number; + uint8 num_configurations; } _PACKED usb_device_descriptor; -typedef struct { - /* cf USB Spec Rev 1.1, table 9-8, p 199 */ - uint8 length; - uint8 descriptor_type; /* USB_DESCRIPTOR_CONFIGURATION */ - uint16 total_length; /* USB_DESCRIPTOR_CONFIGURATION_LENGTH */ - uint8 number_interfaces; - uint8 configuration_value; - uint8 configuration; - uint8 attributes; - uint8 max_power; +typedef struct usb_configuration_descriptor { + uint8 length; + uint8 descriptor_type; + uint16 total_length; + uint8 number_interfaces; + uint8 configuration_value; + uint8 configuration; + uint8 attributes; + uint8 max_power; } _PACKED usb_configuration_descriptor; -typedef struct { - /* cf USB Spec Rev 1.1, table 9-9, p 202 */ - uint8 length; - uint8 descriptor_type; /* USB_DESCRIPTOR_INTERFACE */ - uint8 interface_number; /* USB_DESCRIPTOR_INTERFACE_LENGTH */ - uint8 alternate_setting; - uint8 num_endpoints; - uint8 interface_class; - uint8 interface_subclass; - uint8 interface_protocol; - uint8 interface; +typedef struct usb_interface_descriptor { + uint8 length; + uint8 descriptor_type; + uint8 interface_number; + uint8 alternate_setting; + uint8 num_endpoints; + uint8 interface_class; + uint8 interface_subclass; + uint8 interface_protocol; + uint8 interface; } _PACKED usb_interface_descriptor; -typedef struct { - /* cf USB Spec Rev 1.1, table 9-10, p 203 */ - uint8 length; - uint8 descriptor_type; /* USB_DESCRIPTOR_ENDPOINT */ - uint8 endpoint_address; /* USB_DESCRIPTOR_ENDPOINT_LENGTH */ - uint8 attributes; - uint16 max_packet_size; - uint8 interval; +typedef struct usb_endpoint_descriptor { + uint8 length; + uint8 descriptor_type; + uint8 endpoint_address; + uint8 attributes; + uint16 max_packet_size; + uint8 interval; } _PACKED usb_endpoint_descriptor; -typedef struct { - /* cf USB Spec Rev 1.1, table 9-12, p 205 */ - uint8 length; /* USB_DESCRIPTOR_STRING */ - uint8 descriptor_type; - uchar string[1]; +typedef struct usb_string_descriptor { + uint8 length; + uint8 descriptor_type; + uchar string[1]; } _PACKED usb_string_descriptor; -typedef struct { - uint8 length; - uint8 descriptor_type; - uint8 data[1]; +typedef struct usb_generic_descriptor { + uint8 length; + uint8 descriptor_type; + uint8 data[1]; } _PACKED usb_generic_descriptor; -typedef union { - usb_generic_descriptor generic; - usb_device_descriptor device; - usb_interface_descriptor interface; - usb_endpoint_descriptor endpoint; - usb_configuration_descriptor configuration; - usb_string_descriptor string; +typedef union usb_descriptor { + usb_generic_descriptor generic; + usb_device_descriptor device; + usb_interface_descriptor interface; + usb_endpoint_descriptor endpoint; + usb_configuration_descriptor configuration; + usb_string_descriptor string; } usb_descriptor; -#ifdef __cplusplus -} -#endif -#endif +#endif /* _USB_SPEC_H */ Modified: haiku/trunk/headers/os/drivers/midi_driver.h =================================================================== --- haiku/trunk/headers/os/drivers/midi_driver.h 2009-09-02 03:09:28 UTC (rev 32900) +++ haiku/trunk/headers/os/drivers/midi_driver.h 2009-09-02 12:04:00 UTC (rev 32901) @@ -1,28 +1,16 @@ -/* ++++++++++ - FILE: midi_driver.h - REVS: $Revision: 1.1 $ - NAME: herold - DATE: Tue Jun 4 15:23:29 PDT 1996 - - Interface to /dev/midi, the midi driver -+++++ */ /* - Copyright 1999, Be Incorporated. All Rights Reserved. - This file may be used under the terms of the Be Sample Code License. -*/ - + * Copyright 2009, Haiku Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ #ifndef _MIDI_DRIVER_H #define _MIDI_DRIVER_H + #include #include -/* ----- - ioctl codes ------ */ -/* the old opcodes are deprecated, and may or may not work - in newer drivers */ +/* deprecated interface */ enum { B_MIDI_GET_READ_TIMEOUT = B_MIDI_DRIVER_BASE, B_MIDI_SET_READ_TIMEOUT, @@ -34,85 +22,49 @@ B_MIDI_SET_READ_TIMEOUT_OLD }; -/* the default timeout when you open a midi driver */ + #define B_MIDI_DEFAULT_TIMEOUT 1000000000000000LL -/* Usage: - To read, set "data" to a pointer to your buffer, and "size" to the - maximum size of this buffer. On return, "when" will contain the time - at which the data was received (first byte) and "size" will contain - the actual amount of data read. - Call ioctl(fd, B_MIDI_TIMED_READ, &midi_timed_data, sizeof(midi_timed_data)); - To write, set "when" to when you want the first byte to go out the - wire, set "data" to point to your data, and set "size" to the size - of your data. - Call ioctl(fd, B_MIDI_TIMED_WRITE, &midi_timed_data, sizeof(midi_timed_data)); -*/ typedef struct { - bigtime_t when; - size_t size; - unsigned char * data; + bigtime_t when; + size_t size; + uint8* data; } midi_timed_data; -/* The MIDI parser returns the number of bytes that a message contains, given the */ -/* initial byte. For some messages, this is not known until the second byte is seen. */ -/* For such messages, a state > 0 is returned as well as some count > 0. When state */ -/* is > 0, you should call (*parse) for the next byte as well, which might modify */ -/* the returned message size. Message size will always be returned with the current */ -/* byte being counted as byte 1. A return of 0 means that the byte initiates a new */ -/* message. SysX is handled by returning max_size until the end or next initial message */ -/* is seen. So your loop looks something like: */ -/* - uint32 state = 0; // Only set this to 0 the first time you call the parser. - // preserve the 'state' between invocations of your read() hook. - int todo = 0; - unsigned char * end = in_buf+buf_size - unsigned char * out_buf = in_buf; - while (true) { - uchar byte = read_midi(); - if (!todo || state) { - todo = (*parser->parse)(&state, byte, end-out_buf); - } - if (todo < 1) { - unput_midi(byte); - } else { - *(out_buf++) = byte; - todo--; - } - if (todo < 1 || out_buf >= end) { - received_midi_message(in_buf, out_buf-in_buf); - todo = 0; - } - } - */ - #define B_MIDI_PARSER_MODULE_NAME "media/midiparser/v1" typedef struct _midi_parser_module_info { module_info minfo; - int (*parse)(uint32 * state, uchar byte, size_t max_size); - int _reserved_; + int (*parse)(uint32* state, uchar byte, size_t maxSize); + int _reserved_; } midi_parser_module_info; + #define B_MPU_401_MODULE_NAME "generic/mpu401/v1" enum { B_MPU_401_ENABLE_CARD_INT = 1, B_MPU_401_DISABLE_CARD_INT }; + typedef struct _generic_mpu401_module { - module_info minfo; - status_t (*create_device)(int port, void ** out_storage, uint32 workarounds, void (*interrupt_op)(int32 op, void * card), void * card); - status_t (*delete_device)(void * storage); - status_t (*open_hook)(void * storage, uint32 flags, void ** out_cookie); - status_t (*close_hook)(void * cookie); - status_t (*free_hook)(void * cookie); - status_t (*control_hook)(void * cookie, uint32 op, void * data, size_t len); - status_t (*read_hook)(void * cookie, off_t pos, void * data, size_t * len); - status_t (*write_hook)(void * cookie, off_t pos, const void * data, size_t * len); - bool (*interrupt_hook)(void * cookie); - int _reserved_; + module_info minfo; + status_t (*create_device)(int port, void** _handle, uint32 workArounds, + void (*interruptOp)(int32 op, void* card), void* card); + status_t (*delete_device)(void* handle); + status_t (*open_hook)(void* storage, uint32 flags, void** _cookie); + status_t (*close_hook)(void* cookie); + status_t (*free_hook)(void* cookie); + status_t (*control_hook)(void* cookie, uint32 op, void* data, + size_t length); + status_t (*read_hook)(void* cookie, off_t pos, void* data, + size_t* _length); + status_t (*write_hook)(void* cookie, off_t pos, const void* data, + size_t* _length); + bool (*interrupt_hook)(void* cookie); + int _reserved_; } generic_mpu401_module; -#endif + +#endif /* _MIDI_DRIVER_H */ From axeld at mail.berlios.de Wed Sep 2 16:41:36 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Wed, 2 Sep 2009 16:41:36 +0200 Subject: [Haiku-commits] r32902 - haiku/trunk/src/kits/interface Message-ID: <200909021441.n82EfaUS005515@sheep.berlios.de> Author: axeld Date: 2009-09-02 16:41:35 +0200 (Wed, 02 Sep 2009) New Revision: 32902 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32902&view=rev Modified: haiku/trunk/src/kits/interface/Window.cpp Log: * IsMinimized() now locks the window. This should fix bug #4274. Modified: haiku/trunk/src/kits/interface/Window.cpp =================================================================== --- haiku/trunk/src/kits/interface/Window.cpp 2009-09-02 12:04:00 UTC (rev 32901) +++ haiku/trunk/src/kits/interface/Window.cpp 2009-09-02 14:41:35 UTC (rev 32902) @@ -1983,6 +1983,10 @@ bool BWindow::IsMinimized() const { + BAutolock locker(const_cast(this)); + if (!locker.IsLocked()) + return false; + // Hiding takes precendence over minimization!!! if (IsHidden()) return false; @@ -2456,7 +2460,7 @@ // Set size limits now if needed _CheckSizeLimits(); - MoveTo(BLayoutUtils::AlignInFrame(rect, Size(), + MoveTo(BLayoutUtils::AlignInFrame(rect, Size(), BAlignment(B_ALIGN_HORIZONTAL_CENTER, B_ALIGN_VERTICAL_CENTER)).LeftTop()); } From stippi at mail.berlios.de Wed Sep 2 16:52:17 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Wed, 2 Sep 2009 16:52:17 +0200 Subject: [Haiku-commits] r32903 - in haiku/trunk: headers/private/shared src/kits/shared Message-ID: <200909021452.n82EqHxg007561@sheep.berlios.de> Author: stippi Date: 2009-09-02 16:52:13 +0200 (Wed, 02 Sep 2009) New Revision: 32903 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32903&view=rev Modified: haiku/trunk/headers/private/shared/CommandPipe.h haiku/trunk/src/kits/shared/CommandPipe.cpp Log: Refactoring and cleanup. The progress report mechanism should now be much more flexible. May need this in the alphabranch... Modified: haiku/trunk/headers/private/shared/CommandPipe.h =================================================================== --- haiku/trunk/headers/private/shared/CommandPipe.h 2009-09-02 14:41:35 UTC (rev 32902) +++ haiku/trunk/headers/private/shared/CommandPipe.h 2009-09-02 14:52:13 UTC (rev 32903) @@ -22,63 +22,72 @@ namespace BPrivate { class BCommandPipe { - public: +public: BCommandPipe(); virtual ~BCommandPipe(); - + status_t AddArg(const char* argv); void PrintToStream() const; - + // FlushArgs() deletes the commands while Close() explicity closes all // pending pipe-ends // Note: Internally FlushArgs() calls Close() void FlushArgs(); void Close(); - + + // You MUST NOT free/delete the strings in the array, but you MUST free + // just the array itself. + const char** Argv(int32& _argc) const; + // If you use these, you must explicitly call "close" for the parameters - // (outdes/errdes) when you are done with them! - thread_id Pipe(int* outdes, int* errdes) const; - thread_id Pipe(int* outdes) const; - thread_id PipeAll(int* outAndErrDes) const; - + // (stdOut/stdErr) when you are done with them! + thread_id Pipe(int* stdOut, int* stdErr) const; + thread_id Pipe(int* stdOut) const; + thread_id PipeAll(int* stdOutAndErr) const; + // If you use these, you need NOT call "fclose" for the parameters // (out/err) when you are done with them, also you need not do any // allocation for these FILE* pointers, just use FILE* out = NULL // and pass &out and so on... thread_id PipeInto(FILE** _out, FILE** _err); thread_id PipeInto(FILE** _outAndErr); - + // Run() is a synchronous call, and waits till the command has finished // executing RunAsync() is an asynchronous call that returns immediately // after launching the command Neither of these bother about redirecting // pipes for you to use void Run(); void RunAsync(); - - // This function reads line-by-line from "file", cancels its reading - // when "*cancel" is true. It reports each line it has read to "target" - // using the supplied "_message" and string field name. "cancel" can be - // NULL - BString ReadLines(FILE* file, bool* cancel, - BMessenger& target, const BMessage& message, - const BString& stringFieldName); - - // You need NOT free/delete the return array of strings - const char** Argv(int32& _argc) const; - + + // Reading the Pipe output + + class LineReader { + public: + virtual bool IsCanceled() = 0; + virtual status_t ReadLine(const BString& line) = 0; + // TODO: Add a Timeout() method. + }; + + // This function reads line-by-line from "file". It calls IsCanceled() + // on the passed LineReader instance for each byte read from file + // (currently). And it calls ReadLine() for each complete line. + status_t ReadLines(FILE* file, LineReader* lineReader); + // This method can be used to read the entire file into a BString. + BString ReadLines(FILE* file); + // Stardard append operators, if you use pointers to a BCommandPipe, // you must use *pipe << "command"; and not pipe << "command" (as it // will not compile that way) - BCommandPipe& operator<<(const char *arg); + BCommandPipe& operator<<(const char* arg); BCommandPipe& operator<<(const BString& arg); BCommandPipe& operator<<(const BCommandPipe& arg); - - protected: + +protected: BList fArgList; - int fOutDes[2]; - int fErrDes[2]; - bool fOutDesOpen; - bool fErrDesOpen; + int fStdOut[2]; + int fStdErr[2]; + bool fStdOutOpen; + bool fStdErrOpen; }; } // namespace BPrivate Modified: haiku/trunk/src/kits/shared/CommandPipe.cpp =================================================================== --- haiku/trunk/src/kits/shared/CommandPipe.cpp 2009-09-02 14:41:35 UTC (rev 32902) +++ haiku/trunk/src/kits/shared/CommandPipe.cpp 2009-09-02 14:52:13 UTC (rev 32903) @@ -4,6 +4,7 @@ * * Authors: * Ramshankar, v.ramshankar at gmail.com + * Stephan A?mus */ //! BCommandPipe class to handle reading shell output @@ -20,8 +21,9 @@ BCommandPipe::BCommandPipe() - : fOutDesOpen(false) - , fErrDesOpen(false) + : + fStdOutOpen(false), + fStdErrOpen(false) { } @@ -35,8 +37,19 @@ status_t BCommandPipe::AddArg(const char* arg) { - return (fArgList.AddItem(reinterpret_cast(strdup(arg))) == true ? - B_OK : B_ERROR); + if (arg == NULL || arg[0] == '\0') + return B_BAD_VALUE; + + char* argCopy = strdup(arg); + if (argCopy == NULL) + return B_NO_MEMORY; + + if (!fArgList.AddItem(reinterpret_cast(argCopy))) { + free(argCopy); + return B_NO_MEMORY; + } + + return B_OK; } @@ -44,7 +57,7 @@ BCommandPipe::PrintToStream() const { for (int32 i = 0L; i < fArgList.CountItems(); i++) - printf("%s ", (char*)fArgList.ItemAtFast(i)); + printf("%s ", reinterpret_cast(fArgList.ItemAtFast(i))); printf("\n"); } @@ -54,10 +67,10 @@ BCommandPipe::FlushArgs() { // Delete all arguments from the list - for (int32 i = 0; i < fArgList.CountItems(); i++) - free(fArgList.RemoveItem(0L)); + for (int32 i = fArgList.CountItems() - 1; i >= 0; i--) + free(fArgList.ItemAtFast(i)); + fArgList.MakeEmpty(); - fArgList.MakeEmpty(); Close(); } @@ -65,29 +78,29 @@ void BCommandPipe::Close() { - if (fErrDesOpen) { - close(fErrDes[0]); - fErrDesOpen = false; + if (fStdErrOpen) { + close(fStdErr[0]); + fStdErrOpen = false; } - - if (fOutDesOpen) { - close(fOutDes[0]); - fOutDesOpen = false; + + if (fStdOutOpen) { + close(fStdOut[0]); + fStdOutOpen = false; } } const char** -BCommandPipe::Argv(int32& _argc) const +BCommandPipe::Argv(int32& argc) const { - // *** Warning *** Freeing is left to caller!! Indicated in Header - int32 argc = fArgList.CountItems(); - const char **argv = (const char**)malloc((argc + 1) * sizeof(char*)); + // NOTE: Freeing is left to caller as indicated in the header! + argc = fArgList.CountItems(); + const char** argv = reinterpret_cast( + malloc((argc + 1) * sizeof(char*))); for (int32 i = 0; i < argc; i++) - argv[i] = (const char*)fArgList.ItemAtFast(i); - + argv[i] = reinterpret_cast(fArgList.ItemAtFast(i)); + argv[argc] = NULL; - _argc = argc; return argv; } @@ -96,88 +109,81 @@ thread_id -BCommandPipe::PipeAll(int* outAndErrDes) const +BCommandPipe::PipeAll(int* stdOutAndErr) const { // This function pipes both stdout and stderr to the same filedescriptor - // (outdes) - int oldstdout; - int oldstderr; - pipe(outAndErrDes); - oldstdout = dup(STDOUT_FILENO); - oldstderr = dup(STDERR_FILENO); + // (stdOut) + int oldStdOut; + int oldStdErr; + pipe(stdOutAndErr); + oldStdOut = dup(STDOUT_FILENO); + oldStdErr = dup(STDERR_FILENO); close(STDOUT_FILENO); close(STDERR_FILENO); - dup2(outAndErrDes[1], STDOUT_FILENO); - dup2(outAndErrDes[1], STDERR_FILENO); - + // TODO: This looks broken, using "stdOutAndErr[1]" twice! + dup2(stdOutAndErr[1], STDOUT_FILENO); + dup2(stdOutAndErr[1], STDERR_FILENO); + // Construct the argv vector - int32 argc = fArgList.CountItems(); - const char **argv = (const char**)malloc((argc + 1) * sizeof(char*)); - for (int32 i = 0; i < argc; i++) - argv[i] = (const char*)fArgList.ItemAtFast(i); - - argv[argc] = NULL; - + int32 argc; + const char** argv = Argv(argc); + // Load the app image... and pass the args - thread_id appThread = load_image((int)argc, argv, const_cast< - const char**>(environ)); + thread_id appThread = load_image((int)argc, argv, + const_cast(environ)); - dup2(oldstdout, STDOUT_FILENO); - dup2(oldstderr, STDERR_FILENO); - close(oldstdout); - close(oldstderr); + dup2(oldStdOut, STDOUT_FILENO); + dup2(oldStdErr, STDERR_FILENO); + close(oldStdOut); + close(oldStdErr); - delete[] argv; - + free(argv); + return appThread; } thread_id -BCommandPipe::Pipe(int* outdes, int* errdes) const +BCommandPipe::Pipe(int* stdOut, int* stdErr) const { - int oldstdout; - int oldstderr; - pipe(outdes); - pipe(errdes); - oldstdout = dup(STDOUT_FILENO); - oldstderr = dup(STDERR_FILENO); + int oldStdOut; + int oldStdErr; + pipe(stdOut); + pipe(stdErr); + oldStdOut = dup(STDOUT_FILENO); + oldStdErr = dup(STDERR_FILENO); close(STDOUT_FILENO); close(STDERR_FILENO); - dup2(outdes[1], STDOUT_FILENO); - dup2(errdes[1], STDERR_FILENO); - + dup2(stdOut[1], STDOUT_FILENO); + dup2(stdErr[1], STDERR_FILENO); + // Construct the argv vector - int32 argc = fArgList.CountItems(); - const char **argv = (const char**)malloc((argc + 1) * sizeof(char*)); - for (int32 i = 0; i < argc; i++) - argv[i] = (const char*)fArgList.ItemAtFast(i); - - argv[argc] = NULL; - + int32 argc; + const char** argv = Argv(argc); + // Load the app image... and pass the args thread_id appThread = load_image((int)argc, argv, const_cast< const char**>(environ)); - dup2(oldstdout, STDOUT_FILENO); - dup2(oldstderr, STDERR_FILENO); - close(oldstdout); - close(oldstderr); - - delete[] argv; + dup2(oldStdOut, STDOUT_FILENO); + dup2(oldStdErr, STDERR_FILENO); + close(oldStdOut); + close(oldStdErr); + free(argv); + return appThread; } thread_id -BCommandPipe::Pipe(int* outdes) const +BCommandPipe::Pipe(int* stdOut) const { // Redirects only output (stdout) to caller, stderr is closed - int errdes[2]; - thread_id tid = Pipe(outdes, errdes); - close(errdes[0]); - close(errdes[1]); + int stdErr[2]; + thread_id tid = Pipe(stdOut, stdErr); + close(stdErr[0]); + close(stdErr[1]); return tid; } @@ -186,19 +192,20 @@ BCommandPipe::PipeInto(FILE** _out, FILE** _err) { Close(); - thread_id tid = Pipe(fOutDes, fErrDes); - - resume_thread(tid); - - close(fErrDes[1]); - close(fOutDes[1]); - - fOutDesOpen = true; - fErrDesOpen = true; - *_out = fdopen(fOutDes[0], "r"); - *_err = fdopen(fErrDes[0], "r"); - + thread_id tid = Pipe(fStdOut, fStdErr); + if (tid >= 0) + resume_thread(tid); + + close(fStdErr[1]); + close(fStdOut[1]); + + fStdOutOpen = true; + fStdErrOpen = true; + + *_out = fdopen(fStdOut[0], "r"); + *_err = fdopen(fStdErr[0], "r"); + return tid; } @@ -207,17 +214,15 @@ BCommandPipe::PipeInto(FILE** _outAndErr) { Close(); - thread_id tid = PipeAll(fOutDes); - - if (tid == B_ERROR || tid == B_NO_MEMORY) - return tid; - - resume_thread(tid); - - close(fOutDes[1]); - fOutDesOpen = true; - - *_outAndErr = fdopen(fOutDes[0], "r"); + + thread_id tid = PipeAll(fStdOut); + if (tid >= 0) + resume_thread(tid); + + close(fStdOut[1]); + fStdOutOpen = true; + + *_outAndErr = fdopen(fStdOut[0], "r"); return tid; } @@ -230,14 +235,14 @@ { // Runs the command without bothering to redirect streams, this is similar // to system() but uses pipes and wait_for_thread.... Synchronous. - int outdes[2], errdes[2]; + int stdOut[2], stdErr[2]; status_t exitCode; - wait_for_thread(Pipe(outdes, errdes), &exitCode); + wait_for_thread(Pipe(stdOut, stdErr), &exitCode); - close(outdes[0]); - close(errdes[0]); - close(outdes[1]); - close(errdes[1]); + close(stdOut[0]); + close(stdErr[0]); + close(stdOut[1]); + close(stdErr[1]); } @@ -256,69 +261,107 @@ // #pragma mark - -BString -BCommandPipe::ReadLines(FILE* file, bool* cancel, BMessenger& target, - const BMessage& message, const BString& stringFieldName) +status_t +BCommandPipe::ReadLines(FILE* file, LineReader* lineReader) { - // Reads output of file, line by line. The entire output is returned - // and as each line is being read "target" (if any) is informed, - // with "message" i.e. AddString (stringFieldName, ) - - // "cancel" cancels the reading process, when it becomes true (unless its - // waiting on fgetc()) and I don't know how to cancel the waiting fgetc() - // call. - - BString result; + // Reads output of file, line by line. Each line is passed to lineReader + // for inspection, and the IsCanceled() method is repeatedly called. + + if (file == NULL || lineReader == NULL) + return B_BAD_VALUE; + BString line; - BMessage updateMsg(message); while (!feof(file)) { - if (cancel != NULL && *cancel == true) - break; - + if (lineReader->IsCanceled()) + return B_CANCELED; + unsigned char c = fgetc(file); - - if (c != 255) { + // TODO: fgetc() blocks, is there a way to make it timeout? + + if (c != 255) line << (char)c; - result << (char)c; - } - + if (c == '\n') { - updateMsg.RemoveName(stringFieldName.String()); - updateMsg.AddString(stringFieldName.String(), line); - target.SendMessage(&updateMsg); + status_t ret = lineReader->ReadLine(line); + if (ret != B_OK) + return ret; line = ""; } } - - return result; + + return B_OK; } +BString +BCommandPipe::ReadLines(FILE* file) +{ + class AllLinesReader : public LineReader { + public: + AllLinesReader() + : + fResult("") + { + } + + virtual bool IsCanceled() + { + return false; + } + + virtual status_t ReadLine(const BString& line) + { + int lineLength = line.Length(); + int resultLength = fResult.Length(); + fResult << line; + if (fResult.Length() != lineLength + resultLength) + return B_NO_MEMORY; + return B_OK; + } + + BString Result() const + { + return fResult; + } + + private: + BString fResult; + } lineReader; + + ReadLines(file, &lineReader); + + return lineReader.Result(); +} + + +// #pragma mark - + + BCommandPipe& -BCommandPipe::operator<<(const char* _arg) +BCommandPipe::operator<<(const char* arg) { - AddArg(_arg); + AddArg(arg); return *this; } BCommandPipe& -BCommandPipe::operator<<(const BString& _arg) +BCommandPipe::operator<<(const BString& arg) { - AddArg(_arg.String()); + AddArg(arg.String()); return *this; } BCommandPipe& -BCommandPipe::operator<<(const BCommandPipe& _arg) +BCommandPipe::operator<<(const BCommandPipe& arg) { int32 argc; - const char** argv = _arg.Argv(argc); + const char** argv = arg.Argv(argc); for (int32 i = 0; i < argc; i++) AddArg(argv[i]); - + return *this; } From axeld at pinc-software.de Wed Sep 2 16:51:11 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Wed, 02 Sep 2009 16:51:11 +0200 CEST Subject: [Haiku-commits] r32902 - haiku/trunk/src/kits/interface In-Reply-To: <200909021441.n82EfaUS005515@sheep.berlios.de> Message-ID: <28878747801-BeMail@zon> axeld at BerliOS wrote: > Log: > * IsMinimized() now locks the window. This should fix bug #4274. This one is +alphabranch as well. I obviously tend to forget to mention this. Bye, Axel. From stippi at mail.berlios.de Wed Sep 2 16:53:08 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Wed, 2 Sep 2009 16:53:08 +0200 Subject: [Haiku-commits] r32904 - haiku/trunk/src/apps/installer Message-ID: <200909021453.n82Er8r0007674@sheep.berlios.de> Author: stippi Date: 2009-09-02 16:53:06 +0200 (Wed, 02 Sep 2009) New Revision: 32904 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32904&view=rev Added: haiku/trunk/src/apps/installer/SemaphoreLocker.h Modified: haiku/trunk/src/apps/installer/CopyEngine.cpp haiku/trunk/src/apps/installer/CopyEngine.h Log: Extracted SemaphoreLocker into it's own file. Modified: haiku/trunk/src/apps/installer/CopyEngine.cpp =================================================================== --- haiku/trunk/src/apps/installer/CopyEngine.cpp 2009-09-02 14:52:13 UTC (rev 32903) +++ haiku/trunk/src/apps/installer/CopyEngine.cpp 2009-09-02 14:53:06 UTC (rev 32904) @@ -19,46 +19,14 @@ #include #include -#include "AutoLocker.h" #include "InstallerWindow.h" // TODO: For PACKAGES_DIRECTORY and VAR_DIRECTORY, not so nice... +#include "SemaphoreLocker.h" + using std::nothrow; -// SemaphoreLocking -class SemaphoreLocking { -public: - inline bool Lock(sem_id* lockable) - { - return acquire_sem(*lockable) == B_OK; - } - - inline void Unlock(sem_id* lockable) - { - release_sem(*lockable); - } -}; - -// SemaphoreLocker -class SemaphoreLocker : public AutoLocker { -public: - inline SemaphoreLocker(sem_id semaphore, bool alreadyLocked = false, - bool lockIfNotLocked = true) - : - AutoLocker(), - fSem(semaphore) - { - SetTo(&fSem, alreadyLocked, lockIfNotLocked); - } - -private: - sem_id fSem; -}; - - - - CopyEngine::CopyEngine(const BMessenger& messenger, BMessage* message) : fBufferQueue(), Modified: haiku/trunk/src/apps/installer/CopyEngine.h =================================================================== --- haiku/trunk/src/apps/installer/CopyEngine.h 2009-09-02 14:52:13 UTC (rev 32903) +++ haiku/trunk/src/apps/installer/CopyEngine.h 2009-09-02 14:53:06 UTC (rev 32904) @@ -18,6 +18,7 @@ class BMessage; class BMessenger; + class CopyEngine { public: CopyEngine(const BMessenger& messenger, @@ -109,4 +110,4 @@ }; -#endif // COPY_ENGINE_2_H +#endif // COPY_ENGINE_H Copied: haiku/trunk/src/apps/installer/SemaphoreLocker.h (from rev 32892, haiku/trunk/src/apps/installer/CopyEngine.cpp) =================================================================== --- haiku/trunk/src/apps/installer/CopyEngine.cpp 2009-09-01 14:30:20 UTC (rev 32892) +++ haiku/trunk/src/apps/installer/SemaphoreLocker.h 2009-09-02 14:53:06 UTC (rev 32904) @@ -0,0 +1,41 @@ +/* + * Copyright 2008-2009, Stephan A?mus + * All rights reserved. Distributed under the terms of the MIT License. + */ +#ifndef _SEMAPHORE_LOCKER_H +#define _SEMAPHORE_LOCKER_H + + +#include "AutoLocker.h" + + +class SemaphoreLocking { +public: + inline bool Lock(sem_id* lockable) + { + return acquire_sem(*lockable) == B_OK; + } + + inline void Unlock(sem_id* lockable) + { + release_sem(*lockable); + } +}; + + +class SemaphoreLocker : public AutoLocker { +public: + inline SemaphoreLocker(sem_id semaphore, bool alreadyLocked = false, + bool lockIfNotLocked = true) + : + AutoLocker(), + fSem(semaphore) + { + SetTo(&fSem, alreadyLocked, lockIfNotLocked); + } + +private: + sem_id fSem; +}; + +#endif // _SEMAPHORE_LOCKER_H From stippi at mail.berlios.de Wed Sep 2 16:55:04 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Wed, 2 Sep 2009 16:55:04 +0200 Subject: [Haiku-commits] r32905 - haiku/trunk/src/apps/installer Message-ID: <200909021455.n82Et4fj007760@sheep.berlios.de> Author: stippi Date: 2009-09-02 16:55:03 +0200 (Wed, 02 Sep 2009) New Revision: 32905 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32905&view=rev Added: haiku/trunk/src/apps/installer/UnzipEngine.cpp haiku/trunk/src/apps/installer/UnzipEngine.h Log: Added UnzipEngine, work in progress. This actually unzips, but the progress reporting is incomplete and it is not yet used for anything, it's not even part of the build. I am testing it in a selfcontained little test. Added: haiku/trunk/src/apps/installer/UnzipEngine.cpp =================================================================== --- haiku/trunk/src/apps/installer/UnzipEngine.cpp 2009-09-02 14:53:06 UTC (rev 32904) +++ haiku/trunk/src/apps/installer/UnzipEngine.cpp 2009-09-02 14:55:03 UTC (rev 32905) @@ -0,0 +1,224 @@ +/* + * Copyright 2008-2009, Stephan A?mus + * All rights reserved. Distributed under the terms of the MIT License. + */ + +#include "UnzipEngine.h" + +#include + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "CommandPipe.h" +#include "SemaphoreLocker.h" + + +using std::nothrow; + + +UnzipEngine::UnzipEngine(const BMessenger& messenger, BMessage* message) + : + fPackage(""), + + fBytesToUncompress(0), + fBytesUncompressed(0), + fItemsToUncompress(0), + fItemsUncompressed(0), + + fCurrentTargetFolder(NULL), + fCurrentItem(NULL), + + fMessenger(messenger), + fMessage(message) +{ +} + + +UnzipEngine::~UnzipEngine() +{ + delete fMessage; +} + + +status_t +UnzipEngine::SetTo(const char* pathToPackage) +{ + fPackage = pathToPackage; + + BPrivate::BCommandPipe commandPipe; + status_t ret = commandPipe.AddArg("unzip"); + if (ret == B_OK) + ret = commandPipe.AddArg("-Z"); + if (ret == B_OK) + ret = commandPipe.AddArg("-t"); + if (ret == B_OK) + ret = commandPipe.AddArg(fPackage.String()); + if (ret != B_OK) + return ret; + + // Launch the unzip thread and start reading the stdout and stderr output. + FILE* stdOutAndErrPipe = NULL; + thread_id unzipThread = commandPipe.PipeInto(&stdOutAndErrPipe); + if (unzipThread < 0) + return (status_t)unzipThread; + + BString result = commandPipe.ReadLines(stdOutAndErrPipe); + static const char* kListingFormat = "%llu files, %llu bytes uncompressed, " + "%llu bytes compressed: %f%%"; + + uint64 bytesCompressed; + float compresssionRatio; + if (sscanf(result.String(), kListingFormat, &fItemsToUncompress, + &fBytesToUncompress, &bytesCompressed, &compresssionRatio) != 4) { + fBytesToUncompress = 0; + fItemsToUncompress = 0; + fprintf(stderr, "error reading command output: %s\n", result.String()); + return B_ERROR; + } + + printf("%s: %llu items in %llu bytes\n", pathToPackage, fItemsToUncompress, + fBytesToUncompress); + + return B_OK; +} + + +status_t +UnzipEngine::UnzipPackage(const char* destinationFolder, + sem_id cancelSemaphore) +{ + if (fItemsToUncompress == 0) + return B_NO_INIT; + + if (fMessage) { + BMessage message(*fMessage); + message.AddString("status", "Extracting package."); + fMessenger.SendMessage(&message); + } + + BPrivate::BCommandPipe commandPipe; + status_t ret = commandPipe.AddArg("unzip"); + if (ret == B_OK) + ret = commandPipe.AddArg("-o"); + if (ret == B_OK) + ret = commandPipe.AddArg(fPackage.String()); + if (ret == B_OK) + ret = commandPipe.AddArg("-d"); + if (ret == B_OK) + ret = commandPipe.AddArg(destinationFolder); + if (ret == B_OK) + ret = commandPipe.AddArg("-x"); + if (ret == B_OK) + ret = commandPipe.AddArg(".OptionalPackageDescription"); + if (ret != B_OK) + return ret; + + // Launch the unzip thread and start reading the stdout and stderr output. + FILE* stdOutAndErrPipe = NULL; + thread_id unzipThread = commandPipe.PipeInto(&stdOutAndErrPipe); + if (unzipThread < 0) + return (status_t)unzipThread; + + return _ReadFromPipe(stdOutAndErrPipe, commandPipe, cancelSemaphore); +} + + +// #pragma mark - + + +status_t +UnzipEngine::_ReadFromPipe(FILE* stdOutAndErrPipe, + BPrivate::BCommandPipe& commandPipe, sem_id cancelSemaphore) +{ + class LineReader : public BPrivate::BCommandPipe::LineReader { + public: + LineReader(sem_id cancelSemaphore, off_t bytesToUncompress, + uint64 itemsToUncompress, BMessenger& messenger, + const BMessage* message) + : + fCancelSemaphore(cancelSemaphore), + + fBytesToUncompress(itemsToUncompress), + fBytesUncompressed(0), + fItemsToUncompress(itemsToUncompress), + fItemsUncompressed(0), + + fMessenger(messenger), + fMessage(message) + { + } + + virtual bool IsCanceled() + { + if (fCancelSemaphore < 0) + return false; + + SemaphoreLocker locker(fCancelSemaphore); + return !locker.IsLocked(); + } + + virtual status_t ReadLine(const BString& line) + { + char item[1024]; + char linkTarget[256]; + const char* kInflatingFormat = " inflating: %s\n"; + const char* kLinkingFormat = " linking: %s -> %s\n"; + if (sscanf(line.String(), kInflatingFormat, &item) == 1 + || sscanf(line.String(), kLinkingFormat, &item, + &linkTarget) == 2) { + BString itemPath(item); + int pos = itemPath.FindLast('/'); + BString itemName = itemPath.String() + pos + 1; + itemPath.Truncate(pos); + printf("extracted %s to %s\n", itemName.String(), + itemPath.String()); + } else { + printf("ignored: %s", line.String()); + } + + return B_OK; + } + + private: + sem_id fCancelSemaphore; + + off_t fBytesToUncompress; + off_t fBytesUncompressed; + uint64 fItemsToUncompress; + uint64 fItemsUncompressed; + + BMessenger& fMessenger; + const BMessage* fMessage; + }; + + LineReader lineReader(cancelSemaphore, fBytesToUncompress, + fItemsToUncompress, fMessenger, fMessage); + + return commandPipe.ReadLines(stdOutAndErrPipe, &lineReader); +} + + +void +UnzipEngine::_UpdateProgress() +{ + if (fMessage != NULL) { + BMessage message(*fMessage); + float progress = 100.0 * fBytesUncompressed / fBytesToUncompress; + message.AddFloat("progress", progress); + message.AddInt32("current", fItemsUncompressed); + message.AddInt32("maximum", fItemsToUncompress); + message.AddString("item", fCurrentItem); + message.AddString("folder", fCurrentTargetFolder); + fMessenger.SendMessage(&message); + } +} Added: haiku/trunk/src/apps/installer/UnzipEngine.h =================================================================== --- haiku/trunk/src/apps/installer/UnzipEngine.h 2009-09-02 14:53:06 UTC (rev 32904) +++ haiku/trunk/src/apps/installer/UnzipEngine.h 2009-09-02 14:55:03 UTC (rev 32905) @@ -0,0 +1,54 @@ +/* + * Copyright 2009, Stephan A?mus + * All rights reserved. Distributed under the terms of the MIT License. + */ +#ifndef UNZIP_ENGINE_H +#define UNZIP_ENGINE_H + + +#include + +#include +#include + +namespace BPrivate { + class BCommandPipe; +} +class BMessage; +class BMessenger; + + +class UnzipEngine { +public: + UnzipEngine(const BMessenger& messenger, + BMessage* message); + virtual ~UnzipEngine(); + + status_t SetTo(const char* pathToPackage); + + status_t UnzipPackage(const char* destinationFolder, + sem_id cancelSemaphore = -1); + +private: + status_t _ReadFromPipe(FILE* stdOutAndErrPipe, + BPrivate::BCommandPipe& commandPipe, + sem_id cancelSemaphore); + void _UpdateProgress(); + +private: + BString fPackage; + + off_t fBytesToUncompress; + off_t fBytesUncompressed; + uint64 fItemsToUncompress; + uint64 fItemsUncompressed; + + const char* fCurrentTargetFolder; + const char* fCurrentItem; + + BMessenger fMessenger; + BMessage* fMessage; +}; + + +#endif // UNZIP_ENGINE_H From axeld at mail.berlios.de Wed Sep 2 16:56:08 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Wed, 2 Sep 2009 16:56:08 +0200 Subject: [Haiku-commits] r32906 - haiku/trunk/src/data/etc/keymaps Message-ID: <200909021456.n82Eu8B7007915@sheep.berlios.de> Author: axeld Date: 2009-09-02 16:56:08 +0200 (Wed, 02 Sep 2009) New Revision: 32906 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32906&view=rev Modified: haiku/trunk/src/data/etc/keymaps/Colemak.keymap Log: * Applied patch by Matt to change command/option behaviour to mimic the American.keymap. This closes ticket #4396. Modified: haiku/trunk/src/data/etc/keymaps/Colemak.keymap =================================================================== --- haiku/trunk/src/data/etc/keymaps/Colemak.keymap 2009-09-02 14:55:03 UTC (rev 32905) +++ haiku/trunk/src/data/etc/keymaps/Colemak.keymap 2009-09-02 14:56:08 UTC (rev 32906) @@ -37,11 +37,11 @@ LShift = 0x4b RShift = 0x56 LCommand = 0x5d -RCommand = 0x00 +RCommand = 0x05f LControl = 0x5c RControl = 0x60 LOption = 0x66 -ROption = 0x5f +ROption = 0x67 Menu = 0x68 # # Lock settings From mmlr at mail.berlios.de Wed Sep 2 17:08:42 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Wed, 2 Sep 2009 17:08:42 +0200 Subject: [Haiku-commits] r32907 - haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay Message-ID: <200909021508.n82F8g1P009247@sheep.berlios.de> Author: mmlr Date: 2009-09-02 17:08:40 +0200 (Wed, 02 Sep 2009) New Revision: 32907 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32907&view=rev Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/Jamfile haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp Log: Merging r32900 after successful tests on different machines. Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/Jamfile =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/Jamfile 2009-09-02 14:56:08 UTC (rev 32906) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/Jamfile 2009-09-02 15:08:40 UTC (rev 32907) @@ -1,6 +1,7 @@ SubDir HAIKU_TOP src add-ons kernel file_systems layers write_overlay ; UsePrivateKernelHeaders ; +SubDirHdrs $(HAIKU_TOP) src system kernel device_manager ; KernelAddon write_overlay : write_overlay.cpp Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-02 14:56:08 UTC (rev 32906) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-02 15:08:40 UTC (rev 32907) @@ -23,7 +23,9 @@ #include #include +#include "IORequest.h" + //#define TRACE_OVERLAY #ifdef TRACE_OVERLAY #define TRACE(x...) dprintf("write_overlay: " x) @@ -132,9 +134,14 @@ status_t Close(void *cookie); status_t FreeCookie(void *cookie); status_t Read(void *cookie, off_t position, void *buffer, - size_t *length, bool readPages); + size_t *length, bool readPages, + IORequest *ioRequest); status_t Write(void *cookie, off_t position, - const void *buffer, size_t *length); + const void *buffer, size_t length, + IORequest *request); + + status_t SynchronousIO(void *cookie, IORequest *request); + status_t SetFlags(void *cookie, int flags); status_t CreateDir(const char *name, int perms); @@ -519,7 +526,7 @@ status_t OverlayInode::Read(void *_cookie, off_t position, void *buffer, size_t *length, - bool readPages) + bool readPages, IORequest *ioRequest) { if (position >= fStat.st_size) { *length = 0; @@ -555,6 +562,20 @@ result = fSuperVnode.ops->read_pages(SuperVolume(), &fSuperVnode, superCookie, position, &vector, 1, &readLength); + } else if (ioRequest != NULL) { + IORequest *subRequest; + result = ioRequest->CreateSubRequest(position, position, + readLength, subRequest); + if (result != B_OK) + return result; + + result = fSuperVnode.ops->io(SuperVolume(), &fSuperVnode, + superCookie, subRequest); + if (result != B_OK) + return result; + + result = subRequest->Wait(0, 0); + readLength = subRequest->TransferredBytes(); } else { result = fSuperVnode.ops->read(SuperVolume(), &fSuperVnode, superCookie, position, pointer, &readLength); @@ -572,7 +593,11 @@ if (gapSize > 0) { // there's a gap before our next position which we cannot // fill with original file content, zero it out - memset(pointer, 0, gapSize); + if (ioRequest != NULL) + ;// TODO: handle this case + else + memset(pointer, 0, gapSize); + bytesLeft -= gapSize; position += gapSize; pointer += gapSize; @@ -585,9 +610,15 @@ off_t elementEnd = element->position + element->length; if (elementEnd > position) { size_t copyLength = MIN(elementEnd - position, bytesLeft); - memcpy(pointer, element->buffer + (position - element->position), - copyLength); + const void *source = element->buffer + (position + - element->position); + if (ioRequest != NULL) { + ioRequest->CopyData(source, (addr_t)pointer - (addr_t)buffer, + copyLength); + } else + memcpy(pointer, source, copyLength); + bytesLeft -= copyLength; position += copyLength; pointer += copyLength; @@ -602,7 +633,7 @@ status_t OverlayInode::Write(void *_cookie, off_t position, const void *buffer, - size_t *length) + size_t length, IORequest *ioRequest) { if (_cookie != NULL) { open_cookie *cookie = (open_cookie *)_cookie; @@ -618,7 +649,7 @@ write_buffer *other = fWriteBuffers; write_buffer *swallow = NULL; off_t newPosition = position; - size_t newLength = *length; + size_t newLength = length; uint32 swallowCount = 0; while (other) { @@ -643,8 +674,11 @@ if (other->position <= newPosition) { if (swallowCount == 1 && otherEnd >= newEnd) { // other chunk completely covers us, just copy - memcpy(other->buffer + (newPosition - other->position), - buffer, *length); + void *target = other->buffer + (newPosition - other->position); + if (ioRequest != NULL) + ioRequest->CopyData(0, target, length); + else + memcpy(target, buffer, length); fStat.st_mtime = time(NULL); notify_stat_changed(SuperVolume()->id, fInodeNumber, @@ -694,7 +728,11 @@ } } - memcpy(element->buffer + (position - newPosition), buffer, *length); + void *target = element->buffer + (position - newPosition); + if (ioRequest != NULL) + ioRequest->CopyData(0, target, length); + else + memcpy(target, buffer, length); fStat.st_mtime = time(NULL); notify_stat_changed(SuperVolume()->id, fInodeNumber, @@ -704,6 +742,25 @@ status_t +OverlayInode::SynchronousIO(void *cookie, IORequest *request) +{ + status_t result; + size_t length = request->Length(); + if (request->IsWrite()) + result = Write(cookie, request->Offset(), NULL, length, request); + else + result = Read(cookie, request->Offset(), NULL, &length, false, request); + + if (result != B_OK) + return result; + + request->SetTransferredBytes(false, length); + request->SetStatusAndNotify(B_OK); + return B_OK; +} + + +status_t OverlayInode::SetFlags(void *_cookie, int flags) { // we can only handle O_APPEND, O_NONBLOCK is ignored. @@ -803,8 +860,7 @@ if (result != B_OK) return result; - size_t writeLength = strlen(path); - return newNode->Write(NULL, 0, path, &writeLength); + return newNode->Write(NULL, 0, path, strlen(path), NULL); } @@ -815,7 +871,7 @@ if (!S_ISLNK(fStat.st_mode)) return B_BAD_VALUE; - return Read(NULL, 0, buffer, bufferSize, false); + return Read(NULL, 0, buffer, bufferSize, false, NULL); } if (fSuperVnode.ops->read_symlink == NULL) @@ -1239,7 +1295,7 @@ for (size_t i = 0; i < count; i++) { size_t transferBytes = MIN(vecs[i].iov_len, bytesLeft); status_t result = node->Read(cookie, pos, vecs[i].iov_base, - &transferBytes, true); + &transferBytes, true, NULL); if (result != B_OK) { *numBytes -= bytesLeft; return result; @@ -1272,7 +1328,7 @@ for (size_t i = 0; i < count; i++) { size_t transferBytes = MIN(vecs[i].iov_len, bytesLeft); status_t result = node->Write(cookie, pos, vecs[i].iov_base, - &transferBytes); + transferBytes, NULL); if (result != B_OK) { *numBytes -= bytesLeft; return result; @@ -1299,17 +1355,15 @@ overlay_io(fs_volume *volume, fs_vnode *vnode, void *cookie, io_request *request) { - if (io_request_is_write(request)) - return B_UNSUPPORTED; - OverlayInode *node = (OverlayInode *)vnode->private_node; - if (node->IsModified()) - return B_UNSUPPORTED; + if (io_request_is_write(request) || node->IsModified()) + return node->SynchronousIO(cookie, (IORequest *)request); TRACE("relaying op: io\n"); fs_vnode *superVnode = node->SuperVnode(); if (superVnode->ops->io != NULL) { - return superVnode->ops->io(volume->super_volume, superVnode, cookie, + return superVnode->ops->io(volume->super_volume, superVnode, + cookie != NULL ? ((open_cookie *)cookie)->super_cookie : NULL, request); } @@ -1521,7 +1575,7 @@ { TRACE("read\n"); return ((OverlayInode *)vnode->private_node)->Read(cookie, pos, buffer, - length, false); + length, false, NULL); } @@ -1531,7 +1585,7 @@ { TRACE("write\n"); return ((OverlayInode *)vnode->private_node)->Write(cookie, pos, buffer, - length); + *length, NULL); } From korli at users.berlios.de Wed Sep 2 17:06:31 2009 From: korli at users.berlios.de (=?ISO-8859-1?B?Suly9G1lIER1dmFs?=) Date: Wed, 2 Sep 2009 17:06:31 +0200 Subject: [Haiku-commits] r32905 - haiku/trunk/src/apps/installer In-Reply-To: <200909021455.n82Et4fj007760@sheep.berlios.de> References: <200909021455.n82Et4fj007760@sheep.berlios.de> Message-ID: Hi Stephan, 2009/9/2 : > Added UnzipEngine, work in progress. This actually unzips, but the progress > reporting is incomplete and it is not yet used for anything, it's not even > part of the build. I am testing it in a selfcontained little test. The easiest way could have been to do such unzip operations in the post install script. Bye, J?r?me From philippe.houdoin at gmail.com Wed Sep 2 17:15:41 2009 From: philippe.houdoin at gmail.com (Philippe Houdoin) Date: Wed, 2 Sep 2009 17:15:41 +0200 Subject: [Haiku-commits] r32901 - haiku/trunk/headers/os/drivers Message-ID: > Modified: > haiku/trunk/headers/os/drivers/USB_rle.h > haiku/trunk/headers/os/drivers/USB_spec.h > haiku/trunk/headers/os/drivers/midi_driver.h > Log: > * Rewrote USB_rle.h, USB_spec.h, and midi_driver.h. I did not reproduce the > documentation found in those headers - While I agree on the long comments describing RLE and midi parser module behavior, I find sad to lost the few one-line comments giving the cross-reference of several USB constant and official structures with their USB specification, like here: -typedef struct { - /* cf USB Spec Rev 1.1, table 9-7, p 197 */ [...] } _PACKED usb_device_descriptor; Plus, under headers/os/drivers/usb, class-specific headers there do give such references. > this stuff should go into the Haiku > Book instead (although I'm not even sure the USB_rle.h, and midi_driver.h > are really needed any longer). USB_rle.h is still needed for USB v2 module and any driver using this module version (USB.h default to USB_v2.h for R1) *and* doing isochronous transfert. I guess that currently narrow it to usb_audio driver, though. midi_driver.h is needed by every driver implementing /dev/midi/* interface. sb16, emuxki, cmedia, sis7018, echo, ice1712 and the mpu401 module they all rely on. Even if B_MIDI_* ioctls are not used by our midi_server, these drivers should be upgraded before trashing this header. Midi parser module, on the contrary, is not used AFAIK. Midi raw data parsing is done directly in src/servers/midi/PortDrivers.cpp, GetData() method, in userland. Bye, Philippe. From superstippi at gmx.de Wed Sep 2 17:23:17 2009 From: superstippi at gmx.de (Stephan Assmus) Date: Wed, 02 Sep 2009 17:23:17 +0200 Subject: [Haiku-commits] r32905 - haiku/trunk/src/apps/installer In-Reply-To: References: <200909021455.n82Et4fj007760@sheep.berlios.de> Message-ID: <20090902172317.11975.6@bepc.1251882366.fake> Hi J?r?me, On 2009-09-02 at 17:06:31 [+0200], J?r?me Duval wrote: > 2009/9/2 : > > Added UnzipEngine, work in progress. This actually unzips, but the > > progress reporting is incomplete and it is not yet used for anything, > > it's not even part of the build. I am testing it in a selfcontained > > little test. > > The easiest way could have been to do such unzip operations in the post > install script. But I want it seamlessly integrated at least with the progress bar in the Installer. :-) Best regards, -Stephan From korli at users.berlios.de Wed Sep 2 17:33:57 2009 From: korli at users.berlios.de (=?ISO-8859-1?B?Suly9G1lIER1dmFs?=) Date: Wed, 2 Sep 2009 17:33:57 +0200 Subject: [Haiku-commits] r32905 - haiku/trunk/src/apps/installer In-Reply-To: <20090902172317.11975.6@bepc.1251882366.fake> References: <200909021455.n82Et4fj007760@sheep.berlios.de> <20090902172317.11975.6@bepc.1251882366.fake> Message-ID: 2009/9/2 Stephan Assmus : > But I want it seamlessly integrated at least with the progress bar in the > Installer. :-) > Fine with me. Our feature freeze is just becoming relaxed :) Bye, J?r?me From humdingerb at mail.berlios.de Wed Sep 2 18:08:08 2009 From: humdingerb at mail.berlios.de (humdingerb at mail.berlios.de) Date: Wed, 2 Sep 2009 18:08:08 +0200 Subject: [Haiku-commits] r32908 - haiku/trunk/src/kits/tracker Message-ID: <200909021608.n82G88I6015975@sheep.berlios.de> Author: humdingerb Date: 2009-09-02 18:08:06 +0200 (Wed, 02 Sep 2009) New Revision: 32908 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32908&view=rev Modified: haiku/trunk/src/kits/tracker/ContainerWindow.cpp Log: Renamed menu 'Attributes|Copy/Paste Attributes' to 'Attributes|Copy/Paste Layout'. Fixes #2835. Modified: haiku/trunk/src/kits/tracker/ContainerWindow.cpp =================================================================== --- haiku/trunk/src/kits/tracker/ContainerWindow.cpp 2009-09-02 15:08:40 UTC (rev 32907) +++ haiku/trunk/src/kits/tracker/ContainerWindow.cpp 2009-09-02 16:08:06 UTC (rev 32908) @@ -3078,9 +3078,9 @@ ASSERT(PoseView()); BMenuItem *item; - menu->AddItem(item = new BMenuItem("Copy Attributes", new BMessage(kCopyAttributes))); + menu->AddItem(item = new BMenuItem("Copy Layout", new BMessage(kCopyAttributes))); item->SetTarget(PoseView()); - menu->AddItem(item = new BMenuItem("Paste Attributes", new BMessage(kPasteAttributes))); + menu->AddItem(item = new BMenuItem("Paste Layout", new BMessage(kPasteAttributes))); item->SetTarget(PoseView()); menu->AddSeparatorItem(); From humdingerb at mail.berlios.de Wed Sep 2 18:12:41 2009 From: humdingerb at mail.berlios.de (humdingerb at mail.berlios.de) Date: Wed, 2 Sep 2009 18:12:41 +0200 Subject: [Haiku-commits] r32909 - in haiku/trunk/docs/userguide/en: . applications Message-ID: <200909021612.n82GCf7n016580@sheep.berlios.de> Author: humdingerb Date: 2009-09-02 18:12:39 +0200 (Wed, 02 Sep 2009) New Revision: 32909 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32909&view=rev Modified: haiku/trunk/docs/userguide/en/applications/drivesetup.html haiku/trunk/docs/userguide/en/bootloader.html haiku/trunk/docs/userguide/en/queries.html haiku/trunk/docs/userguide/en/workshop-filetypes+attributes.html Log: * Removed accidentally added Installation page from bootloader.html nav-bars. * Updated safe mode options in bootloader.html. * Renamed menu in Tracker windows "Attributes|Copy/Paste Attributes" to "Attributes|Copy/Paste Layout". +alphabranch Modified: haiku/trunk/docs/userguide/en/applications/drivesetup.html =================================================================== --- haiku/trunk/docs/userguide/en/applications/drivesetup.html 2009-09-02 16:08:06 UTC (rev 32908) +++ haiku/trunk/docs/userguide/en/applications/drivesetup.html 2009-09-02 16:12:39 UTC (rev 32909) @@ -44,7 +44,10 @@ Settings:~/config/settings/DriveSetup


-

Documentation is still missing. If you want to work on it, please announce it on the Documentation mailing list to avoid duplication.

+

DriveSetup is a tool to create, delete and initialize partitions. At this time it can't resize or move existing partitions, so that you'll either need an unpartitioned volume (perhaps an external USB drive or another harddisk) or do the initial setup with a tool like the GParted LiveCD to provide the space for another partition.

+drivesetup.png +

At the top is a graphical representation of all partitions inside the device chosen in the list below it. Besides a maximum of 4 primary partitions, each of those can contain a number of extended/logical partitions. You may have to expand such a list with the widget that appears in that case in front of that device to see the details of every logical partition.

+

You can mount and unmount volumes from the Partition menu.

Contents   ::   Filesystem layout  ?

@@ -54,6 +54,8 @@ - Don't call the BIOS
- Disable APM
- Disable ACPI
+- Disable IO-APIC
+- Enable serial debug output - Enable on screen debug output

Select fail safe video mode If you had to activate the option Use fail-safe video mode, you can set resolution and color depth. @@ -78,9 +80,9 @@

- ?  Installing Haiku + Contents   ::   Filesystem layout  ?

Modified: haiku/trunk/docs/userguide/en/queries.html =================================================================== --- haiku/trunk/docs/userguide/en/queries.html 2009-09-02 16:08:06 UTC (rev 32908) +++ haiku/trunk/docs/userguide/en/queries.html 2009-09-02 16:12:39 UTC (rev 32909) @@ -121,8 +121,8 @@
  • With File | Edit Query or ALT G you get back to your Find window to refine your query.

  • A query is live, i.e. if a file that matches your search criteria appears or disappears from your system, this change is reflected in your results in real-time.

  • -

    You can assign a sensible attribute layout for query results of a specific filetype. Open a folder containing files of the filetype you'd like to create a template for and arrange the attributes how you'd like to have query results presented. Copy this layout with Attributes | Copy Attributes.

    -

    Open /boot/home/config/settings/Tracker/DefaultQueryTemplates, create a new folder and rename it to group/filetype, replacing slashes with underscores, e.g."audio_x-mp3". Open the new folder and paste in the layout with Attributes | Paste Attributes.

    +

    You can assign a sensible attribute layout for query results of a specific filetype. Open a folder containing files of the filetype you'd like to create a template for and arrange the attributes how you'd like to have query results presented. Copy this layout with Attributes | Copy Layout.

    +

    Open /boot/home/config/settings/Tracker/DefaultQueryTemplates, create a new folder and rename it to group/filetype, replacing slashes with underscores, e.g."audio_x-mp3". Open the new folder and paste in the layout with Attributes | Paste Layout.

    Modified: haiku/trunk/docs/userguide/en/workshop-filetypes+attributes.html =================================================================== --- haiku/trunk/docs/userguide/en/workshop-filetypes+attributes.html 2009-09-02 16:08:06 UTC (rev 32908) +++ haiku/trunk/docs/userguide/en/workshop-filetypes+attributes.html 2009-09-02 16:12:39 UTC (rev 32909) @@ -194,9 +194,9 @@ Querying the database

    Several hours of grunt work later, we have a nice little database that you can query to find all your Christina Ricci movies that have a 7+ rating... :)

    You can assign a sensible attribute layout for query results of a specific filetype.
    -Open the folder containing your DVDdb files and arrange the attributes how you'd like to have query results presented. Copy this layout with Attributes | Copy Attributes.

    +Open the folder containing your DVDdb files and arrange the attributes how you'd like to have query results presented. Copy this layout with Attributes | Copy Layout.

    Open /boot/home/config/settings/Tracker/DefaultQueryTemplates, create a new folder and rename it to group/filetype, replacing slashes with underscores; in our case "applications_DVDdb".

    -

    Open the new folder and paste in the layout with Attributes | Paste Attributes. Voil?:

    +

    Open the new folder and paste in the layout with Attributes | Paste Layout. Voil?:

    query-dvddb.png From mattmadia at gmail.com Wed Sep 2 19:05:55 2009 From: mattmadia at gmail.com (Matt Madia) Date: Wed, 2 Sep 2009 17:05:55 +0000 Subject: [Haiku-commits] r32905 - haiku/trunk/src/apps/installer In-Reply-To: References: <200909021455.n82Et4fj007760@sheep.berlios.de> <20090902172317.11975.6@bepc.1251882366.fake> Message-ID: <1e42d8c50909021005hb4307f5r41f9feb0170800b4@mail.gmail.com> 2009/9/2 J?r?me Duval : > 2009/9/2 Stephan Assmus : >> But I want it seamlessly integrated at least with the progress bar in the >> Installer. :-) >> > > Fine with me. Our feature freeze is just becoming relaxed :) > Does anyone else feel this is similar to the threads about creating boot time options to select ata or ide? particularly that its an effort that doesn't solve the real issue? From mattmadia at gmail.com Wed Sep 2 19:25:49 2009 From: mattmadia at gmail.com (Matt Madia) Date: Wed, 2 Sep 2009 17:25:49 +0000 Subject: [Haiku-commits] r32905 - haiku/trunk/src/apps/installer In-Reply-To: <1e42d8c50909021005hb4307f5r41f9feb0170800b4@mail.gmail.com> References: <200909021455.n82Et4fj007760@sheep.berlios.de> <20090902172317.11975.6@bepc.1251882366.fake> <1e42d8c50909021005hb4307f5r41f9feb0170800b4@mail.gmail.com> Message-ID: <1e42d8c50909021025x9f9440ev9ea6e61842204af0@mail.gmail.com> On Wed, Sep 2, 2009 at 17:05, Matt Madia wrote: > > Does anyone else feel this is similar to the threads about creating > boot time options to select ata or ide? > particularly that its an effort that doesn't solve the real issue? > Seems I was wrongly under the impression that this is a short term solution, rather than a long term strategy. sorry for the noise From leavengood at gmail.com Wed Sep 2 20:19:37 2009 From: leavengood at gmail.com (Ryan Leavengood) Date: Wed, 2 Sep 2009 14:19:37 -0400 Subject: [Haiku-commits] r32905 - haiku/trunk/src/apps/installer In-Reply-To: <1e42d8c50909021025x9f9440ev9ea6e61842204af0@mail.gmail.com> References: <200909021455.n82Et4fj007760@sheep.berlios.de> <20090902172317.11975.6@bepc.1251882366.fake> <1e42d8c50909021005hb4307f5r41f9feb0170800b4@mail.gmail.com> <1e42d8c50909021025x9f9440ev9ea6e61842204af0@mail.gmail.com> Message-ID: On Wed, Sep 2, 2009 at 1:25 PM, Matt Madia wrote: > > Seems I was wrongly under the impression that this is a short term > solution, rather than a long term strategy. > sorry for the noise I think in some sense it is a short term solution, since it is solving the problem of a slow copying of files during installation. But at the same time it may be a smart way to go because reading a zip file and then unzipping it is probably faster than copying the same files (especially from a CD.) As a matter of fact the new Mac OS X Snow Leopard release has most executables compressed for the same reason, since even file accesses from hard drives are orders of magnitude slower than the CPU. Of course this also saves disk space. I think compressing applications and libraries is something we should consider for the future as well. On another note reading about Mac OS X and some of it's history has made me realize we should not worry so much about making Haiku R1 so perfect. It is better to get it out there and then incrementally improve it. Otherwise we run the risk of fulfilling the jokes of having an alpha release now, a beta in 2015, and R1 in 2020. -- Regards, Ryan From phoudoin at mail.berlios.de Wed Sep 2 23:21:09 2009 From: phoudoin at mail.berlios.de (phoudoin at mail.berlios.de) Date: Wed, 2 Sep 2009 23:21:09 +0200 Subject: [Haiku-commits] r32910 - haiku/trunk/build/jam Message-ID: <200909022121.n82LL9GL014147@sheep.berlios.de> Author: phoudoin Date: 2009-09-02 23:10:19 +0200 (Wed, 02 Sep 2009) New Revision: 32910 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32910&view=rev Modified: haiku/trunk/build/jam/OptionalPackages Log: Fixed a typo. Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-09-02 16:12:39 UTC (rev 32909) +++ haiku/trunk/build/jam/OptionalPackages 2009-09-02 21:10:19 UTC (rev 32910) @@ -242,7 +242,7 @@ # Curl -if [ IsOptionalHaikuImagePackageAdded Expat ] { +if [ IsOptionalHaikuImagePackageAdded Curl ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Curl available for $(TARGET_ARCH)" ; } else { From bga at mail.berlios.de Thu Sep 3 01:14:28 2009 From: bga at mail.berlios.de (bga at mail.berlios.de) Date: Thu, 3 Sep 2009 01:14:28 +0200 Subject: [Haiku-commits] r32911 - haiku/trunk/build/scripts Message-ID: <200909022314.n82NESWr011544@sheep.berlios.de> Author: bga Date: 2009-09-03 01:14:21 +0200 (Thu, 03 Sep 2009) New Revision: 32911 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32911&view=rev Modified: haiku/trunk/build/scripts/build_haiku_image Log: - Fix an issue with using update-install to a partition that has spaces in its name. Modified: haiku/trunk/build/scripts/build_haiku_image =================================================================== --- haiku/trunk/build/scripts/build_haiku_image 2009-09-02 21:10:19 UTC (rev 32910) +++ haiku/trunk/build/scripts/build_haiku_image 2009-09-02 23:14:21 UTC (rev 32911) @@ -35,7 +35,7 @@ # path of the actual device path under Linux). if readlink -f "$imagePath" &> /dev/null; then normalizedImagePath=$(readlink -f "$imagePath") - if [ $normalizedImagePath ]; then + if [ "$normalizedImagePath" ]; then imagePath="$normalizedImagePath" fi fi From bga at mail.berlios.de Thu Sep 3 02:58:19 2009 From: bga at mail.berlios.de (bga at mail.berlios.de) Date: Thu, 3 Sep 2009 02:58:19 +0200 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people Message-ID: <200909030058.n830wJYY026177@sheep.berlios.de> Author: bga Date: 2009-09-03 02:58:12 +0200 (Thu, 03 Sep 2009) New Revision: 32912 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32912&view=rev Modified: haiku/trunk/src/apps/people/PeopleView.cpp haiku/trunk/src/apps/people/PeopleView.h haiku/trunk/src/apps/people/PeopleWindow.cpp haiku/trunk/src/apps/people/PeopleWindow.h Log: People was always more of a tech-demo than a real app, so I just decided to make it more interesting in this respect. - Uses node monitors to react to external changes. Updates the window contents accordingly. Modified: haiku/trunk/src/apps/people/PeopleView.cpp =================================================================== --- haiku/trunk/src/apps/people/PeopleView.cpp 2009-09-02 23:14:21 UTC (rev 32911) +++ haiku/trunk/src/apps/people/PeopleView.cpp 2009-09-03 00:58:12 UTC (rev 32912) @@ -254,6 +254,23 @@ void +TPeopleView::SetField(int32 index, bool update) +{ + char *text = NULL; + attr_info info; + if (fFile && fFile->GetAttrInfo(gFields[index].attribute, &info) == B_OK) { + text = (char *)calloc(info.size, 1); + fFile->ReadAttr(gFields[index].attribute, B_STRING_TYPE, 0, text, + info.size); + } + + SetField(index, text, update); + + free(text); +} + + +void TPeopleView::SetField(int32 index, char *data, bool update) { Window()->Lock(); Modified: haiku/trunk/src/apps/people/PeopleView.h =================================================================== --- haiku/trunk/src/apps/people/PeopleView.h 2009-09-02 23:14:21 UTC (rev 32911) +++ haiku/trunk/src/apps/people/PeopleView.h 2009-09-03 00:58:12 UTC (rev 32912) @@ -35,6 +35,7 @@ const char* GetField(int32); void NewFile(entry_ref*); void Save(void); + void SetField(int32, bool); void SetField(int32, char*, bool); bool TextSelected(void); Modified: haiku/trunk/src/apps/people/PeopleWindow.cpp =================================================================== --- haiku/trunk/src/apps/people/PeopleWindow.cpp 2009-09-02 23:14:21 UTC (rev 32911) +++ haiku/trunk/src/apps/people/PeopleWindow.cpp 2009-09-03 00:58:12 UTC (rev 32912) @@ -20,6 +20,8 @@ #include #include #include +#include +#include #include "PeopleApp.h" #include "PeopleView.h" @@ -71,6 +73,7 @@ if (ref) { fRef = new entry_ref(*ref); SetTitle(ref->name); + WatchChanges(true); } else fRef = NULL; @@ -85,6 +88,9 @@ TPeopleWindow::~TPeopleWindow(void) { + if (fRef) + WatchChanges(false); + delete fRef; delete fPanel; } @@ -166,9 +172,12 @@ directory.FindEntry(name, &entry); entry.GetRef(&dir); - if (fRef) + if (fRef) { + WatchChanges(false); delete fRef; + } fRef = new entry_ref(dir); + WatchChanges(true); SetTitle(fRef->name); fView->NewFile(fRef); } @@ -179,7 +188,55 @@ } } break; + + case B_NODE_MONITOR: + { + int32 opcode; + if (msg->FindInt32("opcode", &opcode) == B_OK) { + switch (opcode) { + case B_ENTRY_REMOVED: + // We lost our file. Reset everything. We don't need + // to explicitly disable the node monitor. + delete fRef; + fRef = NULL; + + for (int32 i = 0; gFields[i].attribute; i++) + fView->SetField(i, "", true); + SetTitle("New Person"); + break; + + case B_ENTRY_MOVED: + { + // We may have renamed our entry. Update the title + // just in case. + BString name; + if (msg->FindString("name", &name) == B_OK) + SetTitle(name); + } + break; + + case B_ATTR_CHANGED: + { + // An attribute was updated. + BString attr; + if (msg->FindString("attr", &attr) == B_OK) { + for (int32 i = 0; gFields[i].attribute; i++) { + if (attr == gFields[i].attribute) { + fView->SetField(i, true); + } + } + } + } + break; + + default: + msg->PrintToStream(); + } + } + } + break; + default: BWindow::MessageReceived(msg); } @@ -283,3 +340,33 @@ fPanel->Window()->Unlock(); } } + + +void +TPeopleWindow::WatchChanges(bool enable) +{ + if (fRef == NULL) + return; + + node_ref nodeRef; + + BNode node(fRef); + node.GetNodeRef(&nodeRef); + + uint32 flags; + BString action; + + if (enable) { + // Start watching. + flags = B_WATCH_ALL; + action = "starting"; + } else { + // Stop watching. + flags = B_STOP_WATCHING; + action = "stoping"; + } + + if (watch_node(&nodeRef, flags, this) != B_OK) { + printf("Error %s node monitor.\n", action.String()); + } +} Modified: haiku/trunk/src/apps/people/PeopleWindow.h =================================================================== --- haiku/trunk/src/apps/people/PeopleWindow.h 2009-09-02 23:14:21 UTC (rev 32911) +++ haiku/trunk/src/apps/people/PeopleWindow.h 2009-09-03 00:58:12 UTC (rev 32912) @@ -28,6 +28,8 @@ private: + void WatchChanges(bool); + BFilePanel *fPanel; BMenuItem *fCopy; BMenuItem *fCut; From revol at free.fr Thu Sep 3 03:10:17 2009 From: revol at free.fr (=?utf-8?q?Fran=C3=A7ois?= Revol) Date: Thu, 03 Sep 2009 03:10:17 +0200 CEST Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <200909030058.n830wJYY026177@sheep.berlios.de> Message-ID: <2297735030-BeMail@laptop> > Author: bga > Date: 2009-09-03 02:58:12 +0200 (Thu, 03 Sep 2009) > New Revision: 32912 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32912&view=rev > > Modified: > haiku/trunk/src/apps/people/PeopleView.cpp > haiku/trunk/src/apps/people/PeopleView.h > haiku/trunk/src/apps/people/PeopleWindow.cpp > haiku/trunk/src/apps/people/PeopleWindow.h > Log: > People was always more of a tech-demo than a real app, so I just > decided to > make it more interesting in this respect. > > - Uses node monitors to react to external changes. Updates the window > contents accordingly. You'll want to look at the extended people in IM Kit... which looks ugly but lists extra attrs... maybe with the layout stuff it could look better. Fran?ois. From mmlr at mail.berlios.de Thu Sep 3 07:36:25 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Thu, 3 Sep 2009 07:36:25 +0200 Subject: [Haiku-commits] r32913 - haiku/trunk/src/system/kernel/device_manager Message-ID: <200909030536.n835aPsB028934@sheep.berlios.de> Author: mmlr Date: 2009-09-03 07:36:23 +0200 (Thu, 03 Sep 2009) New Revision: 32913 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32913&view=rev Modified: haiku/trunk/src/system/kernel/device_manager/devfs.cpp Log: Fix two problems in devfs_io: * An off by one error prevented the very last block of a device to be accessed through IO. * In case of error the request wasn't notified causing anyone (the page writer for example) to wait forever for the request to complete. Modified: haiku/trunk/src/system/kernel/device_manager/devfs.cpp =================================================================== --- haiku/trunk/src/system/kernel/device_manager/devfs.cpp 2009-09-03 00:58:12 UTC (rev 32912) +++ haiku/trunk/src/system/kernel/device_manager/devfs.cpp 2009-09-03 05:36:23 UTC (rev 32913) @@ -1770,12 +1770,14 @@ || (!isWrite && !vnode->stream.u.dev.device->HasRead())) && !vnode->stream.u.dev.device->HasIO()) || cookie == NULL) { + request->SetStatusAndNotify(B_NOT_ALLOWED); return B_NOT_ALLOWED; } if (vnode->stream.u.dev.partition != NULL) { if (request->Offset() + request->Length() - >= vnode->stream.u.dev.partition->info.size) { + > vnode->stream.u.dev.partition->info.size) { + request->SetStatusAndNotify(B_BAD_VALUE); return B_BAD_VALUE; } translate_partition_access(vnode->stream.u.dev.partition, request); From mmlr at mail.berlios.de Thu Sep 3 07:40:09 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Thu, 3 Sep 2009 07:40:09 +0200 Subject: [Haiku-commits] r32914 - haiku/trunk/src/system/kernel/fs Message-ID: <200909030540.n835e9bK009182@sheep.berlios.de> Author: mmlr Date: 2009-09-03 07:40:06 +0200 (Thu, 03 Sep 2009) New Revision: 32914 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32914&view=rev Modified: haiku/trunk/src/system/kernel/fs/vfs_request_io.cpp Log: Reset the error variable to B_OK in case we want to continue after allocating only some sub requests worked. Previously we would have simply canceled all of the subrequests in the loop because we cancel after the first error. Modified: haiku/trunk/src/system/kernel/fs/vfs_request_io.cpp =================================================================== --- haiku/trunk/src/system/kernel/fs/vfs_request_io.cpp 2009-09-03 05:36:23 UTC (rev 32913) +++ haiku/trunk/src/system/kernel/fs/vfs_request_io.cpp 2009-09-03 05:40:06 UTC (rev 32914) @@ -246,6 +246,9 @@ if (error != B_OK && subRequestCount == 0) return error; + // Reset the error code for the loop below + error = B_OK; + request->Advance(requestOffset - cookie->request_offset); cookie->request_offset = requestOffset; From mmlr at mail.berlios.de Thu Sep 3 07:41:54 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Thu, 3 Sep 2009 07:41:54 +0200 Subject: [Haiku-commits] r32915 - haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay Message-ID: <200909030541.n835fsR2010704@sheep.berlios.de> Author: mmlr Date: 2009-09-03 07:41:53 +0200 (Thu, 03 Sep 2009) New Revision: 32915 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32915&view=rev Modified: haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp Log: We need to notify the request also in the error case. Modified: haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-03 05:40:06 UTC (rev 32914) +++ haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-03 05:41:53 UTC (rev 32915) @@ -751,12 +751,11 @@ else result = Read(cookie, request->Offset(), NULL, &length, false, request); - if (result != B_OK) - return result; + if (result == B_OK) + request->SetTransferredBytes(false, length); - request->SetTransferredBytes(false, length); - request->SetStatusAndNotify(B_OK); - return B_OK; + request->SetStatusAndNotify(result); + return result; } From mmlr at mail.berlios.de Thu Sep 3 07:48:36 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Thu, 3 Sep 2009 07:48:36 +0200 Subject: [Haiku-commits] r32916 - in haiku/branches/releases/r1alpha1/src: add-ons/kernel/file_systems/layers/write_overlay system/kernel/device_manager system/kernel/fs Message-ID: <200909030548.n835maMg012138@sheep.berlios.de> Author: mmlr Date: 2009-09-03 07:48:34 +0200 (Thu, 03 Sep 2009) New Revision: 32916 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32916&view=rev Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp haiku/branches/releases/r1alpha1/src/system/kernel/device_manager/devfs.cpp haiku/branches/releases/r1alpha1/src/system/kernel/fs/vfs_request_io.cpp Log: Merging fixes r32913-32915 from trunk. Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-03 05:41:53 UTC (rev 32915) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-03 05:48:34 UTC (rev 32916) @@ -751,12 +751,11 @@ else result = Read(cookie, request->Offset(), NULL, &length, false, request); - if (result != B_OK) - return result; + if (result == B_OK) + request->SetTransferredBytes(false, length); - request->SetTransferredBytes(false, length); - request->SetStatusAndNotify(B_OK); - return B_OK; + request->SetStatusAndNotify(result); + return result; } Modified: haiku/branches/releases/r1alpha1/src/system/kernel/device_manager/devfs.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/system/kernel/device_manager/devfs.cpp 2009-09-03 05:41:53 UTC (rev 32915) +++ haiku/branches/releases/r1alpha1/src/system/kernel/device_manager/devfs.cpp 2009-09-03 05:48:34 UTC (rev 32916) @@ -1770,12 +1770,14 @@ || (!isWrite && !vnode->stream.u.dev.device->HasRead())) && !vnode->stream.u.dev.device->HasIO()) || cookie == NULL) { + request->SetStatusAndNotify(B_NOT_ALLOWED); return B_NOT_ALLOWED; } if (vnode->stream.u.dev.partition != NULL) { if (request->Offset() + request->Length() - >= vnode->stream.u.dev.partition->info.size) { + > vnode->stream.u.dev.partition->info.size) { + request->SetStatusAndNotify(B_BAD_VALUE); return B_BAD_VALUE; } translate_partition_access(vnode->stream.u.dev.partition, request); Modified: haiku/branches/releases/r1alpha1/src/system/kernel/fs/vfs_request_io.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/system/kernel/fs/vfs_request_io.cpp 2009-09-03 05:41:53 UTC (rev 32915) +++ haiku/branches/releases/r1alpha1/src/system/kernel/fs/vfs_request_io.cpp 2009-09-03 05:48:34 UTC (rev 32916) @@ -246,6 +246,9 @@ if (error != B_OK && subRequestCount == 0) return error; + // Reset the error code for the loop below + error = B_OK; + request->Advance(requestOffset - cookie->request_offset); cookie->request_offset = requestOffset; From mmlr at mail.berlios.de Thu Sep 3 08:02:07 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Thu, 3 Sep 2009 08:02:07 +0200 Subject: [Haiku-commits] r32917 - haiku/branches/releases/r1alpha1/data/system/boot Message-ID: <200909030602.n83627v6015135@sheep.berlios.de> Author: mmlr Date: 2009-09-03 08:02:06 +0200 (Thu, 03 Sep 2009) New Revision: 32917 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32917&view=rev Modified: haiku/branches/releases/r1alpha1/data/system/boot/Bootscript Log: For the release: mimeset the media_addon_server before launching the media_server when booting from CD. This allows the media_server to find the media_addon_server and therefore allows it to work when running in LiveCD mode. Modified: haiku/branches/releases/r1alpha1/data/system/boot/Bootscript =================================================================== --- haiku/branches/releases/r1alpha1/data/system/boot/Bootscript 2009-09-03 05:48:34 UTC (rev 32916) +++ haiku/branches/releases/r1alpha1/data/system/boot/Bootscript 2009-09-03 06:02:06 UTC (rev 32917) @@ -142,6 +142,10 @@ fi if [ "$SAFEMODE" != "yes" ]; then + if [ "$isReadOnly" = "yes" ]; then + mimeset -f -apps /boot/$SERVERS/media_addon_server + fi + launch $SERVERS/media_server launch $SERVERS/midi_server fi From koki at haikuzone.net Thu Sep 3 08:31:27 2009 From: koki at haikuzone.net (Jorge G. Mare) Date: Wed, 02 Sep 2009 23:31:27 -0700 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <200909030058.n830wJYY026177@sheep.berlios.de> References: <200909030058.n830wJYY026177@sheep.berlios.de> Message-ID: <4A9F62BF.1060308@haikuzone.net> bga at mail.berlios.de wrote: > Author: bga > Date: 2009-09-03 02:58:12 +0200 (Thu, 03 Sep 2009) > New Revision: 32912 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32912&view=rev > > Modified: > haiku/trunk/src/apps/people/PeopleView.cpp > haiku/trunk/src/apps/people/PeopleView.h > haiku/trunk/src/apps/people/PeopleWindow.cpp > haiku/trunk/src/apps/people/PeopleWindow.h > Log: > People was always more of a tech-demo than a real app, so I just decided to > make it more interesting in this respect. > Yay! This is going to make my queries demos even more fun! Thanks BGA! Cheers, Jorge/aka Koki From axeld at pinc-software.de Thu Sep 3 10:03:44 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Thu, 03 Sep 2009 10:03:44 +0200 CEST Subject: [Haiku-commits] =?utf-8?q?r32913_-_haiku/trunk/src/system/kernel/?= =?utf-8?q?device=5Fmanager?= In-Reply-To: <200909030536.n835aPsB028934@sheep.berlios.de> Message-ID: <2159841087-BeMail@zon> mmlr at mail.berlios.de wrote: > Log: > Fix two problems in devfs_io: > * An off by one error prevented the very last block of a device to be > accessed > through IO. > * In case of error the request wasn't notified causing anyone (the > page writer > for example) to wait forever for the request to complete. Nice one! :-) Bye, Axel. From axeld at pinc-software.de Thu Sep 3 10:05:52 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Thu, 03 Sep 2009 10:05:52 +0200 CEST Subject: [Haiku-commits] r32901 - haiku/trunk/headers/os/drivers In-Reply-To: Message-ID: <2287219720-BeMail@zon> Philippe Houdoin wrote: > > Modified: > > haiku/trunk/headers/os/drivers/USB_rle.h > > haiku/trunk/headers/os/drivers/USB_spec.h > > haiku/trunk/headers/os/drivers/midi_driver.h > > Log: > > * Rewrote USB_rle.h, USB_spec.h, and midi_driver.h. I did not > > reproduce the > > documentation found in those headers - > While I agree on the long comments describing RLE and midi parser > module behavior, > I find sad to lost the few one-line comments giving the > cross-reference of several USB constant and official structures with > their USB specification, like here: > > -typedef struct { > - /* cf USB Spec Rev 1.1, table 9-7, p 197 */ Yes, I would like to have such references as well, but I was too lazy to look them up in a current spec. Feel free to add those, though :-) > > this stuff should go into the Haiku > > Book instead (although I'm not even sure the USB_rle.h, and > > midi_driver.h > > are really needed any longer). > USB_rle.h is still needed for USB v2 module and any driver using this > module version (USB.h default to USB_v2.h for R1) *and* doing > isochronous transfert. > I guess that currently narrow it to usb_audio driver, though. > > midi_driver.h is needed by every driver implementing /dev/midi/* > interface. sb16, emuxki, cmedia, sis7018, echo, ice1712 and the > mpu401 > module they all rely on. > Even if B_MIDI_* ioctls are not used by our midi_server, these > drivers > should be upgraded before trashing this header. > > Midi parser module, on the contrary, is not used AFAIK. > Midi raw data parsing is done directly in > src/servers/midi/PortDrivers.cpp, GetData() method, in userland. Thanks! Bye, Axel. From axeld at pinc-software.de Thu Sep 3 10:08:36 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Thu, 03 Sep 2009 10:08:36 +0200 CEST Subject: [Haiku-commits] r32908 - haiku/trunk/src/kits/tracker In-Reply-To: <200909021608.n82G88I6015975@sheep.berlios.de> Message-ID: <2451740681-BeMail@zon> humdingerb at mail.berlios.de wrote: > Log: > Renamed menu 'Attributes|Copy/Paste Attributes' to 'Attributes|Copy/ > Paste Layout'. Fixes #2835. I rather liked "Columns" because it doesn't really copy/paste the layout (for example, the window size stays the same), but I guess it's still better than before. Bye, Axel. From alex at zappotek.com Thu Sep 3 10:53:09 2009 From: alex at zappotek.com (Alexandre Deckner) Date: Thu, 03 Sep 2009 10:53:09 Subject: [Haiku-commits] r32908 - haiku/trunk/src/kits/tracker In-Reply-To: <2451740681-BeMail@zon> Message-ID: <5294916670-BeMail@nebulus> "Axel D?rfler" wrote: > humdingerb at mail.berlios.de wrote: > > Log: > > Renamed menu 'Attributes|Copy/Paste Attributes' to 'Attributes|Copy > > / > > Paste Layout'. Fixes #2835. > > I rather liked "Columns" because it doesn't really copy/paste the > layout (for example, the window size stays the same), but I guess > it's > still better than before. Same here, i like "Columns". Maybe even the menu could be named "Columns", not sure about that one though. Regards, Alex From stippi at mail.berlios.de Thu Sep 3 10:54:43 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Thu, 3 Sep 2009 10:54:43 +0200 Subject: [Haiku-commits] r32918 - haiku/trunk/src/apps/installer Message-ID: <200909030854.n838shkO026061@sheep.berlios.de> Author: stippi Date: 2009-09-03 10:54:41 +0200 (Thu, 03 Sep 2009) New Revision: 32918 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32918&view=rev Modified: haiku/trunk/src/apps/installer/CopyEngine.cpp Log: Ignore some more entries from the bootable CD. Should fix ticket #4403, test pending. Modified: haiku/trunk/src/apps/installer/CopyEngine.cpp =================================================================== --- haiku/trunk/src/apps/installer/CopyEngine.cpp 2009-09-03 06:02:06 UTC (rev 32917) +++ haiku/trunk/src/apps/installer/CopyEngine.cpp 2009-09-03 08:54:41 UTC (rev 32918) @@ -501,7 +501,21 @@ printf("ignoring '%s'.\n", name); return false; } + if (strcmp("rr_moved", name) == 0) { + printf("ignoring '%s'.\n", name); + return false; + } } + if (level == 1 && S_ISREG(statInfo.st_mode)) { + if (strcmp("boot.catalog", name) == 0) { + printf("ignoring '%s'.\n", name); + return false; + } + if (strcmp("haiku-boot-floppy.image", name) == 0) { + printf("ignoring '%s'.\n", name); + return false; + } + } return true; } From stippi at mail.berlios.de Thu Sep 3 12:23:00 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Thu, 3 Sep 2009 12:23:00 +0200 Subject: [Haiku-commits] r32919 - haiku/trunk/build/jam Message-ID: <200909031023.n83AN0Fc001795@sheep.berlios.de> Author: stippi Date: 2009-09-03 12:22:59 +0200 (Thu, 03 Sep 2009) New Revision: 32919 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32919&view=rev Modified: haiku/trunk/build/jam/OptionalPackageDependencies haiku/trunk/build/jam/OptionalPackages Log: Patch by scottmc: * Updated Pe package * Updated subversion package (using ~/config/settings/subversion instead of ~/.subversion) * Corrected APR dependencies Test pending. Thanks a lot! Modified: haiku/trunk/build/jam/OptionalPackageDependencies =================================================================== --- haiku/trunk/build/jam/OptionalPackageDependencies 2009-09-03 08:54:41 UTC (rev 32918) +++ haiku/trunk/build/jam/OptionalPackageDependencies 2009-09-03 10:22:59 UTC (rev 32919) @@ -4,7 +4,7 @@ # dependencies. OptionalPackageDependencies Subversion : APR-util Neon LibIconv LibXML2 OpenSSL SQLite ; -OptionalPackageDependencies APR-util : APR ; +OptionalPackageDependencies APR-util : APR Expat ; OptionalPackageDependencies BeHappy : BeBook NetSurf ; OptionalPackageDependencies Development : DevelopmentBase Perl ; OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ; Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-09-03 08:54:41 UTC (rev 32918) +++ haiku/trunk/build/jam/OptionalPackages 2009-09-03 10:22:59 UTC (rev 32919) @@ -684,8 +684,8 @@ : $(baseURL)/Pe-2.4.2-x86-gcc4-2009-08-04.zip ; } else { - InstallOptionalHaikuImagePackage Pe-2.4.2-x86-gcc2-2009-07-05 - : $(baseURL)/Pe-2.4.2-x86-gcc2-2009-07-05.zip + InstallOptionalHaikuImagePackage Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-02 + : $(baseURL)/Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-02.zip ; } @@ -755,8 +755,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Subversion available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage subversion-1.6.5-r1a1-x86-gcc2-2009-08-30 - : $(baseURL)/subversion-1.6.5-r1a1-x86-gcc2-2009-08-30.zip + InstallOptionalHaikuImagePackage subversion-1.6.5-r1a1-x86-gcc2-2009-09-02 + : $(baseURL)/subversion-1.6.5-r1a1-x86-gcc2-2009-09-02.zip : ; } From stippi at mail.berlios.de Thu Sep 3 12:50:17 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Thu, 3 Sep 2009 12:50:17 +0200 Subject: [Haiku-commits] r32920 - in haiku/branches/releases/r1alpha1: build/jam docs/userguide/en docs/userguide/en/applications headers/os/drivers src/apps/installer src/kits/interface Message-ID: <200909031050.n83AoH8c020216@sheep.berlios.de> Author: stippi Date: 2009-09-03 12:49:55 +0200 (Thu, 03 Sep 2009) New Revision: 32920 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32920&view=rev Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackages haiku/branches/releases/r1alpha1/docs/userguide/en/applications/drivesetup.html haiku/branches/releases/r1alpha1/docs/userguide/en/bootloader.html haiku/branches/releases/r1alpha1/docs/userguide/en/queries.html haiku/branches/releases/r1alpha1/docs/userguide/en/workshop-filetypes+attributes.html haiku/branches/releases/r1alpha1/headers/os/drivers/USB_printer.h haiku/branches/releases/r1alpha1/headers/os/drivers/USB_rle.h haiku/branches/releases/r1alpha1/headers/os/drivers/USB_spec.h haiku/branches/releases/r1alpha1/headers/os/drivers/bus_manager.h haiku/branches/releases/r1alpha1/headers/os/drivers/midi_driver.h haiku/branches/releases/r1alpha1/src/apps/installer/CopyEngine.cpp haiku/branches/releases/r1alpha1/src/kits/interface/Window.cpp Log: Merged r32893, r32895, r32901, r32902, r32909, r32910 and r32918. Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackages =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-03 10:22:59 UTC (rev 32919) +++ haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-03 10:49:55 UTC (rev 32920) @@ -261,7 +261,7 @@ # Curl -if [ IsOptionalHaikuImagePackageAdded Expat ] { +if [ IsOptionalHaikuImagePackageAdded Curl ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Curl available for $(TARGET_ARCH)" ; } else { Modified: haiku/branches/releases/r1alpha1/docs/userguide/en/applications/drivesetup.html =================================================================== --- haiku/branches/releases/r1alpha1/docs/userguide/en/applications/drivesetup.html 2009-09-03 10:22:59 UTC (rev 32919) +++ haiku/branches/releases/r1alpha1/docs/userguide/en/applications/drivesetup.html 2009-09-03 10:49:55 UTC (rev 32920) @@ -44,7 +44,10 @@ Settings:~/config/settings/DriveSetup


    -

    Documentation is still missing. If you want to work on it, please announce it on the Documentation mailing list to avoid duplication.

    +

    DriveSetup is a tool to create, delete and initialize partitions. At this time it can't resize or move existing partitions, so that you'll either need an unpartitioned volume (perhaps an external USB drive or another harddisk) or do the initial setup with a tool like the GParted LiveCD to provide the space for another partition.

    +drivesetup.png +

    At the top is a graphical representation of all partitions inside the device chosen in the list below it. Besides a maximum of 4 primary partitions, each of those can contain a number of extended/logical partitions. You may have to expand such a list with the widget that appears in that case in front of that device to see the details of every logical partition.

    +

    You can mount and unmount volumes from the Partition menu.

    Contents   ::   Filesystem layout  ?

    @@ -54,6 +54,8 @@ - Don't call the BIOS
    - Disable APM
    - Disable ACPI
    +- Disable IO-APIC
    +- Enable serial debug output - Enable on screen debug output

    Select fail safe video mode If you had to activate the option Use fail-safe video mode, you can set resolution and color depth. @@ -78,9 +80,9 @@

    - ?  Installing Haiku + Contents   ::   Filesystem layout  ?

    Modified: haiku/branches/releases/r1alpha1/docs/userguide/en/queries.html =================================================================== --- haiku/branches/releases/r1alpha1/docs/userguide/en/queries.html 2009-09-03 10:22:59 UTC (rev 32919) +++ haiku/branches/releases/r1alpha1/docs/userguide/en/queries.html 2009-09-03 10:49:55 UTC (rev 32920) @@ -121,8 +121,8 @@
  • With File | Edit Query or ALT G you get back to your Find window to refine your query.

  • A query is live, i.e. if a file that matches your search criteria appears or disappears from your system, this change is reflected in your results in real-time.

  • -

    You can assign a sensible attribute layout for query results of a specific filetype. Open a folder containing files of the filetype you'd like to create a template for and arrange the attributes how you'd like to have query results presented. Copy this layout with Attributes | Copy Attributes.

    -

    Open /boot/home/config/settings/Tracker/DefaultQueryTemplates, create a new folder and rename it to group/filetype, replacing slashes with underscores, e.g."audio_x-mp3". Open the new folder and paste in the layout with Attributes | Paste Attributes.

    +

    You can assign a sensible attribute layout for query results of a specific filetype. Open a folder containing files of the filetype you'd like to create a template for and arrange the attributes how you'd like to have query results presented. Copy this layout with Attributes | Copy Layout.

    +

    Open /boot/home/config/settings/Tracker/DefaultQueryTemplates, create a new folder and rename it to group/filetype, replacing slashes with underscores, e.g."audio_x-mp3". Open the new folder and paste in the layout with Attributes | Paste Layout.

    Modified: haiku/branches/releases/r1alpha1/docs/userguide/en/workshop-filetypes+attributes.html =================================================================== --- haiku/branches/releases/r1alpha1/docs/userguide/en/workshop-filetypes+attributes.html 2009-09-03 10:22:59 UTC (rev 32919) +++ haiku/branches/releases/r1alpha1/docs/userguide/en/workshop-filetypes+attributes.html 2009-09-03 10:49:55 UTC (rev 32920) @@ -194,9 +194,9 @@ Querying the database

    Several hours of grunt work later, we have a nice little database that you can query to find all your Christina Ricci movies that have a 7+ rating... :)

    You can assign a sensible attribute layout for query results of a specific filetype.
    -Open the folder containing your DVDdb files and arrange the attributes how you'd like to have query results presented. Copy this layout with Attributes | Copy Attributes.

    +Open the folder containing your DVDdb files and arrange the attributes how you'd like to have query results presented. Copy this layout with Attributes | Copy Layout.

    Open /boot/home/config/settings/Tracker/DefaultQueryTemplates, create a new folder and rename it to group/filetype, replacing slashes with underscores; in our case "applications_DVDdb".

    -

    Open the new folder and paste in the layout with Attributes | Paste Attributes. Voil?:

    +

    Open the new folder and paste in the layout with Attributes | Paste Layout. Voil?:

    query-dvddb.png Modified: haiku/branches/releases/r1alpha1/headers/os/drivers/USB_printer.h =================================================================== --- haiku/branches/releases/r1alpha1/headers/os/drivers/USB_printer.h 2009-09-03 10:22:59 UTC (rev 32919) +++ haiku/branches/releases/r1alpha1/headers/os/drivers/USB_printer.h 2009-09-03 10:49:55 UTC (rev 32920) @@ -1,36 +1,20 @@ -/* -** USB_printer.h -** -** Copyright 1999, Be Incorporated. All Rights Reserved. -** -*/ - +/* + * Copyright 2009, Haiku Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ #ifndef _USB_PRINTER_H #define _USB_PRINTER_H + #include -#ifdef __cplusplus -extern "C" { -#endif -/* ioctl() opcodes for usb_printer driver */ - -enum -{ - USB_PRINTER_GET_DEVICE_ID = B_DEVICE_OP_CODES_END+1 +enum { + USB_PRINTER_GET_DEVICE_ID = B_DEVICE_OP_CODES_END + 1 }; - -/* Maximum length of the DEVICE_ID. User MUST allocate this size -when calling USB_PRINTER_GET_DEVICE_ID ioctl() */ - #define USB_PRINTER_DEVICE_ID_LENGTH 256 + /* buffer size to be handed to above ioctl() call */ - -#ifdef __cplusplus -} -#endif - -#endif +#endif /* _USB_PRINTER_H */ Modified: haiku/branches/releases/r1alpha1/headers/os/drivers/USB_rle.h =================================================================== --- haiku/branches/releases/r1alpha1/headers/os/drivers/USB_rle.h 2009-09-03 10:22:59 UTC (rev 32919) +++ haiku/branches/releases/r1alpha1/headers/os/drivers/USB_rle.h 2009-09-03 10:49:55 UTC (rev 32920) @@ -1,82 +1,30 @@ -/* -** USB_rle.h -** -** Copyright 1999, Be Incorporated. All Rights Reserved. -** -*/ - +/* + * Copyright 2009, Haiku Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ #ifndef _USB_RLE_H #define _USB_RLE_H -#ifdef __cplusplus -extern "C" { -#endif -struct _usbd_param_hdr; +#include -/* -Run Length encoding records for isochronous IN transfers. -Run Length encoding records are used to identify which samples in -the buffer are good which are bad and which are missing. -Bad bytes are not extracted from the buffer, but are padded to next -nearest sample boundary. The ultimate consumer of the buffer -should also receive the RLE array. +struct _usbd_param_hdr; -RLE records are constructed based on the following rules: -1. an RLE record contains a sample count and a status - (good, bad, missing or unknown). A buffer has - associated with it an array of rle records. The number of - rle records available is specified in the RLE header. The - number used is also in the RLE header. +/* Run length encoding for isochronous in transfers */ -2. Within the scope of a buffer, successive packets with the - same completion status are represented with (1) rle record. - For example, after three transactions which have completion - status of success, the byte count in the rle record for this - position in the data stream represents the bytes received in - all three packets. - -3. New rle records are initialized each time the status for a - given packet differs from that of the previous packet. - -*/ - #define RLE_GOOD 1 #define RLE_BAD 2 #define RLE_MISSING 3 #define RLE_UNKNOWN 4 -/* -Name: rle -Purpose: used to represent the state of a portion of a data buffer -Fields: - rle_status will contain only the values: RLE_GOOD, RLE_BAD, RLE_MISSING - sample_count the number of usb samples in the buffer associated with this rle - record. -Notes: - If the buffer length field in queue_buffer_single structure changes to an - uint32 from uin16, then the sample_count data type must - track this change. -*/ +/* data buffer state */ typedef struct rle { uint16 rle_status; uint16 sample_count; } rle; - -/* -Name: rlea -Purpose: used as the primary rle information data structure between the - USB driver stack and a consuming client. - -Fields: - length the number of rle records available in this structure. - num_valid filled in by the USB driver. indicates the number of valid - records filled. - rles[] unconstrained array of rle records. -*/ typedef struct rlea { uint16 length; uint16 num_valid; @@ -84,8 +32,4 @@ } rlea; -#ifdef __cplusplus -} -#endif - -#endif +#endif /* _USB_RLE_H */ Modified: haiku/branches/releases/r1alpha1/headers/os/drivers/USB_spec.h =================================================================== --- haiku/branches/releases/r1alpha1/headers/os/drivers/USB_spec.h 2009-09-03 10:22:59 UTC (rev 32919) +++ haiku/branches/releases/r1alpha1/headers/os/drivers/USB_spec.h 2009-09-03 10:49:55 UTC (rev 32920) @@ -1,152 +1,134 @@ -/* -** USB_spec.h -** -** Copyright 1999, Be Incorporated. All Rights Reserved. -** -** This file contains structures and constants based on the USB Specification 1.1 -** -*/ - +/* + * Copyright 2009, Haiku Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ #ifndef _USB_SPEC_H #define _USB_SPEC_H -#ifdef __cplusplus -extern "C" { -#endif -/* request types (target & direction) for send_request() */ -/* cf USB Spec Rev 1.1, table 9-2, p 183 */ -#define USB_REQTYPE_DEVICE_IN 0x80 -#define USB_REQTYPE_DEVICE_OUT 0x00 -#define USB_REQTYPE_INTERFACE_IN 0x81 -#define USB_REQTYPE_INTERFACE_OUT 0x01 -#define USB_REQTYPE_ENDPOINT_IN 0x82 -#define USB_REQTYPE_ENDPOINT_OUT 0x02 -#define USB_REQTYPE_OTHER_OUT 0x03 -#define USB_REQTYPE_OTHER_IN 0x83 +#include -/* request types for send_request() */ -/* cf USB Spec Rev 1.1, table 9-2, p 183 */ -#define USB_REQTYPE_STANDARD 0x00 -#define USB_REQTYPE_CLASS 0x20 -#define USB_REQTYPE_VENDOR 0x40 -#define USB_REQTYPE_RESERVED 0x60 -#define USB_REQTYPE_MASK 0x9F -/* standard request values for send_request() */ -/* cf USB Spec Rev 1.1, table 9-4, p 187 */ -#define USB_REQUEST_GET_STATUS 0 -#define USB_REQUEST_CLEAR_FEATURE 1 -#define USB_REQUEST_SET_FEATURE 3 -#define USB_REQUEST_SET_ADDRESS 5 -#define USB_REQUEST_GET_DESCRIPTOR 6 -#define USB_REQUEST_SET_DESCRIPTOR 7 -#define USB_REQUEST_GET_CONFIGURATION 8 -#define USB_REQUEST_SET_CONFIGURATION 9 -#define USB_REQUEST_GET_INTERFACE 10 -#define USB_REQUEST_SET_INTERFACE 11 -#define USB_REQUEST_SYNCH_FRAME 12 +/* Request types (target/direction) for send_request() */ +#define USB_REQTYPE_DEVICE_IN 0x80 +#define USB_REQTYPE_DEVICE_OUT 0x00 +#define USB_REQTYPE_INTERFACE_IN 0x81 +#define USB_REQTYPE_INTERFACE_OUT 0x01 +#define USB_REQTYPE_ENDPOINT_IN 0x82 +#define USB_REQTYPE_ENDPOINT_OUT 0x02 +#define USB_REQTYPE_OTHER_OUT 0x03 +#define USB_REQTYPE_OTHER_IN 0x83 -/* used by {set,get}_descriptor() */ -/* cf USB Spec Rev 1.1, table 9-5, p 187 */ -#define USB_DESCRIPTOR_DEVICE 1 -#define USB_DESCRIPTOR_CONFIGURATION 2 -#define USB_DESCRIPTOR_STRING 3 -#define USB_DESCRIPTOR_INTERFACE 4 -#define USB_DESCRIPTOR_ENDPOINT 5 +/* Request types for send_request() */ +#define USB_REQTYPE_STANDARD 0x00 +#define USB_REQTYPE_CLASS 0x20 +#define USB_REQTYPE_VENDOR 0x40 +#define USB_REQTYPE_RESERVED 0x60 +#define USB_REQTYPE_MASK 0x9f -/* used by {set,clear}_feature() */ -/* cf USB Spec Rev 1.1, table 9-6, p 188 */ +/* Standard request values for send_request() */ +#define USB_REQUEST_GET_STATUS 0 +#define USB_REQUEST_CLEAR_FEATURE 1 +#define USB_REQUEST_SET_FEATURE 3 +#define USB_REQUEST_SET_ADDRESS 5 +#define USB_REQUEST_GET_DESCRIPTOR 6 +#define USB_REQUEST_SET_DESCRIPTOR 7 +#define USB_REQUEST_GET_CONFIGURATION 8 +#define USB_REQUEST_SET_CONFIGURATION 9 +#define USB_REQUEST_GET_INTERFACE 10 +#define USB_REQUEST_SET_INTERFACE 11 +#define USB_REQUEST_SYNCH_FRAME 12 + +/* Used by {set|get}_descriptor() */ +#define USB_DESCRIPTOR_DEVICE 1 +#define USB_DESCRIPTOR_CONFIGURATION 2 +#define USB_DESCRIPTOR_STRING 3 +#define USB_DESCRIPTOR_INTERFACE 4 +#define USB_DESCRIPTOR_ENDPOINT 5 + +/* Used by {set|clear}_feature() */ #define USB_FEATURE_DEVICE_REMOTE_WAKEUP 1 #define USB_FEATURE_ENDPOINT_HALT 0 -#define USB_ENDPOINT_ATTR_CONTROL 0x00 -#define USB_ENDPOINT_ATTR_ISOCHRONOUS 0x01 -#define USB_ENDPOINT_ATTR_BULK 0x02 -#define USB_ENDPOINT_ATTR_INTERRUPT 0x03 -#define USB_ENDPOINT_ATTR_MASK 0x03 +#define USB_ENDPOINT_ATTR_CONTROL 0x00 +#define USB_ENDPOINT_ATTR_ISOCHRONOUS 0x01 +#define USB_ENDPOINT_ATTR_BULK 0x02 +#define USB_ENDPOINT_ATTR_INTERRUPT 0x03 +#define USB_ENDPOINT_ATTR_MASK 0x03 -#define USB_ENDPOINT_ADDR_DIR_IN 0x80 -#define USB_ENDPOINT_ADDR_DIR_OUT 0x00 +#define USB_ENDPOINT_ADDR_DIR_IN 0x80 +#define USB_ENDPOINT_ADDR_DIR_OUT 0x00 -typedef struct { - /* cf USB Spec Rev 1.1, table 9-7, p 197 */ - uint8 length; - uint8 descriptor_type; /* USB_DESCRIPTOR_DEVICE */ - uint16 usb_version; /* USB_DESCRIPTOR_DEVICE_LENGTH */ - uint8 device_class; - uint8 device_subclass; - uint8 device_protocol; - uint8 max_packet_size_0; - uint16 vendor_id; - uint16 product_id; - uint16 device_version; - uint8 manufacturer; - uint8 product; - uint8 serial_number; - uint8 num_configurations; +typedef struct usb_device_descriptor { + uint8 length; + uint8 descriptor_type; + uint16 usb_version; + uint8 device_class; + uint8 device_subclass; + uint8 device_protocol; + uint8 max_packet_size_0; + uint16 vendor_id; + uint16 product_id; + uint16 device_version; + uint8 manufacturer; + uint8 product; + uint8 serial_number; + uint8 num_configurations; } _PACKED usb_device_descriptor; -typedef struct { - /* cf USB Spec Rev 1.1, table 9-8, p 199 */ - uint8 length; - uint8 descriptor_type; /* USB_DESCRIPTOR_CONFIGURATION */ - uint16 total_length; /* USB_DESCRIPTOR_CONFIGURATION_LENGTH */ - uint8 number_interfaces; - uint8 configuration_value; - uint8 configuration; - uint8 attributes; - uint8 max_power; +typedef struct usb_configuration_descriptor { + uint8 length; + uint8 descriptor_type; + uint16 total_length; + uint8 number_interfaces; + uint8 configuration_value; + uint8 configuration; + uint8 attributes; + uint8 max_power; } _PACKED usb_configuration_descriptor; -typedef struct { - /* cf USB Spec Rev 1.1, table 9-9, p 202 */ - uint8 length; - uint8 descriptor_type; /* USB_DESCRIPTOR_INTERFACE */ - uint8 interface_number; /* USB_DESCRIPTOR_INTERFACE_LENGTH */ - uint8 alternate_setting; - uint8 num_endpoints; - uint8 interface_class; - uint8 interface_subclass; - uint8 interface_protocol; - uint8 interface; +typedef struct usb_interface_descriptor { + uint8 length; + uint8 descriptor_type; + uint8 interface_number; + uint8 alternate_setting; + uint8 num_endpoints; + uint8 interface_class; + uint8 interface_subclass; + uint8 interface_protocol; + uint8 interface; } _PACKED usb_interface_descriptor; -typedef struct { - /* cf USB Spec Rev 1.1, table 9-10, p 203 */ - uint8 length; - uint8 descriptor_type; /* USB_DESCRIPTOR_ENDPOINT */ - uint8 endpoint_address; /* USB_DESCRIPTOR_ENDPOINT_LENGTH */ - uint8 attributes; - uint16 max_packet_size; - uint8 interval; +typedef struct usb_endpoint_descriptor { + uint8 length; + uint8 descriptor_type; + uint8 endpoint_address; + uint8 attributes; + uint16 max_packet_size; + uint8 interval; } _PACKED usb_endpoint_descriptor; -typedef struct { - /* cf USB Spec Rev 1.1, table 9-12, p 205 */ - uint8 length; /* USB_DESCRIPTOR_STRING */ - uint8 descriptor_type; - uchar string[1]; +typedef struct usb_string_descriptor { + uint8 length; + uint8 descriptor_type; + uchar string[1]; } _PACKED usb_string_descriptor; -typedef struct { - uint8 length; - uint8 descriptor_type; - uint8 data[1]; +typedef struct usb_generic_descriptor { + uint8 length; + uint8 descriptor_type; + uint8 data[1]; } _PACKED usb_generic_descriptor; -typedef union { - usb_generic_descriptor generic; - usb_device_descriptor device; - usb_interface_descriptor interface; - usb_endpoint_descriptor endpoint; - usb_configuration_descriptor configuration; - usb_string_descriptor string; +typedef union usb_descriptor { + usb_generic_descriptor generic; + usb_device_descriptor device; + usb_interface_descriptor interface; + usb_endpoint_descriptor endpoint; + usb_configuration_descriptor configuration; + usb_string_descriptor string; } usb_descriptor; -#ifdef __cplusplus -} -#endif -#endif +#endif /* _USB_SPEC_H */ Modified: haiku/branches/releases/r1alpha1/headers/os/drivers/bus_manager.h =================================================================== --- haiku/branches/releases/r1alpha1/headers/os/drivers/bus_manager.h 2009-09-03 10:22:59 UTC (rev 32919) +++ haiku/branches/releases/r1alpha1/headers/os/drivers/bus_manager.h 2009-09-03 10:49:55 UTC (rev 32920) @@ -1,21 +1,13 @@ -/******************************************************************************* -/ -/ File: bus_managers.h -/ -/ Description: bus manager API -/ -/ Copyright 1998, Be Incorporated, All Rights Reserved. -/ -*******************************************************************************/ - +/* + * Copyright 2009, Haiku Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ #ifndef _BUS_MANAGER_H #define _BUS_MANAGER_H + #include -#ifdef __cplusplus -extern "C" { -#endif typedef struct bus_manager_info bus_manager_info; @@ -24,8 +16,5 @@ status_t (*rescan)(); }; -#ifdef __cplusplus -} -#endif #endif /* _BUS_MANAGER_H */ Modified: haiku/branches/releases/r1alpha1/headers/os/drivers/midi_driver.h =================================================================== --- haiku/branches/releases/r1alpha1/headers/os/drivers/midi_driver.h 2009-09-03 10:22:59 UTC (rev 32919) +++ haiku/branches/releases/r1alpha1/headers/os/drivers/midi_driver.h 2009-09-03 10:49:55 UTC (rev 32920) @@ -1,28 +1,16 @@ -/* ++++++++++ - FILE: midi_driver.h - REVS: $Revision: 1.1 $ - NAME: herold - DATE: Tue Jun 4 15:23:29 PDT 1996 - - Interface to /dev/midi, the midi driver -+++++ */ /* - Copyright 1999, Be Incorporated. All Rights Reserved. - This file may be used under the terms of the Be Sample Code License. -*/ - + * Copyright 2009, Haiku Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + */ #ifndef _MIDI_DRIVER_H #define _MIDI_DRIVER_H + #include #include -/* ----- - ioctl codes ------ */ -/* the old opcodes are deprecated, and may or may not work - in newer drivers */ +/* deprecated interface */ enum { B_MIDI_GET_READ_TIMEOUT = B_MIDI_DRIVER_BASE, B_MIDI_SET_READ_TIMEOUT, @@ -34,85 +22,49 @@ B_MIDI_SET_READ_TIMEOUT_OLD }; -/* the default timeout when you open a midi driver */ + #define B_MIDI_DEFAULT_TIMEOUT 1000000000000000LL -/* Usage: - To read, set "data" to a pointer to your buffer, and "size" to the - maximum size of this buffer. On return, "when" will contain the time - at which the data was received (first byte) and "size" will contain - the actual amount of data read. - Call ioctl(fd, B_MIDI_TIMED_READ, &midi_timed_data, sizeof(midi_timed_data)); - To write, set "when" to when you want the first byte to go out the - wire, set "data" to point to your data, and set "size" to the size - of your data. - Call ioctl(fd, B_MIDI_TIMED_WRITE, &midi_timed_data, sizeof(midi_timed_data)); -*/ typedef struct { - bigtime_t when; - size_t size; - unsigned char * data; + bigtime_t when; + size_t size; + uint8* data; } midi_timed_data; -/* The MIDI parser returns the number of bytes that a message contains, given the */ -/* initial byte. For some messages, this is not known until the second byte is seen. */ -/* For such messages, a state > 0 is returned as well as some count > 0. When state */ -/* is > 0, you should call (*parse) for the next byte as well, which might modify */ -/* the returned message size. Message size will always be returned with the current */ -/* byte being counted as byte 1. A return of 0 means that the byte initiates a new */ -/* message. SysX is handled by returning max_size until the end or next initial message */ -/* is seen. So your loop looks something like: */ -/* - uint32 state = 0; // Only set this to 0 the first time you call the parser. - // preserve the 'state' between invocations of your read() hook. - int todo = 0; - unsigned char * end = in_buf+buf_size - unsigned char * out_buf = in_buf; - while (true) { - uchar byte = read_midi(); - if (!todo || state) { - todo = (*parser->parse)(&state, byte, end-out_buf); - } - if (todo < 1) { - unput_midi(byte); - } else { - *(out_buf++) = byte; - todo--; - } - if (todo < 1 || out_buf >= end) { - received_midi_message(in_buf, out_buf-in_buf); - todo = 0; - } - } - */ - #define B_MIDI_PARSER_MODULE_NAME "media/midiparser/v1" typedef struct _midi_parser_module_info { module_info minfo; - int (*parse)(uint32 * state, uchar byte, size_t max_size); - int _reserved_; + int (*parse)(uint32* state, uchar byte, size_t maxSize); + int _reserved_; } midi_parser_module_info; + #define B_MPU_401_MODULE_NAME "generic/mpu401/v1" enum { B_MPU_401_ENABLE_CARD_INT = 1, B_MPU_401_DISABLE_CARD_INT }; + typedef struct _generic_mpu401_module { - module_info minfo; - status_t (*create_device)(int port, void ** out_storage, uint32 workarounds, void (*interrupt_op)(int32 op, void * card), void * card); - status_t (*delete_device)(void * storage); - status_t (*open_hook)(void * storage, uint32 flags, void ** out_cookie); - status_t (*close_hook)(void * cookie); - status_t (*free_hook)(void * cookie); - status_t (*control_hook)(void * cookie, uint32 op, void * data, size_t len); - status_t (*read_hook)(void * cookie, off_t pos, void * data, size_t * len); - status_t (*write_hook)(void * cookie, off_t pos, const void * data, size_t * len); - bool (*interrupt_hook)(void * cookie); - int _reserved_; + module_info minfo; + status_t (*create_device)(int port, void** _handle, uint32 workArounds, + void (*interruptOp)(int32 op, void* card), void* card); + status_t (*delete_device)(void* handle); + status_t (*open_hook)(void* storage, uint32 flags, void** _cookie); + status_t (*close_hook)(void* cookie); + status_t (*free_hook)(void* cookie); + status_t (*control_hook)(void* cookie, uint32 op, void* data, + size_t length); + status_t (*read_hook)(void* cookie, off_t pos, void* data, + size_t* _length); + status_t (*write_hook)(void* cookie, off_t pos, const void* data, + size_t* _length); + bool (*interrupt_hook)(void* cookie); + int _reserved_; } generic_mpu401_module; -#endif + +#endif /* _MIDI_DRIVER_H */ Modified: haiku/branches/releases/r1alpha1/src/apps/installer/CopyEngine.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/apps/installer/CopyEngine.cpp 2009-09-03 10:22:59 UTC (rev 32919) +++ haiku/branches/releases/r1alpha1/src/apps/installer/CopyEngine.cpp 2009-09-03 10:49:55 UTC (rev 32920) @@ -533,7 +533,21 @@ printf("ignoring '%s'.\n", name); return false; } + if (strcmp("rr_moved", name) == 0) { + printf("ignoring '%s'.\n", name); + return false; + } } + if (level == 1 && S_ISREG(statInfo.st_mode)) { + if (strcmp("boot.catalog", name) == 0) { + printf("ignoring '%s'.\n", name); + return false; + } + if (strcmp("haiku-boot-floppy.image", name) == 0) { + printf("ignoring '%s'.\n", name); + return false; + } + } return true; } Modified: haiku/branches/releases/r1alpha1/src/kits/interface/Window.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/kits/interface/Window.cpp 2009-09-03 10:22:59 UTC (rev 32919) +++ haiku/branches/releases/r1alpha1/src/kits/interface/Window.cpp 2009-09-03 10:49:55 UTC (rev 32920) @@ -1983,6 +1983,10 @@ bool BWindow::IsMinimized() const { + BAutolock locker(const_cast(this)); + if (!locker.IsLocked()) + return false; + // Hiding takes precendence over minimization!!! if (IsHidden()) return false; @@ -2456,7 +2460,7 @@ // Set size limits now if needed _CheckSizeLimits(); - MoveTo(BLayoutUtils::AlignInFrame(rect, Size(), + MoveTo(BLayoutUtils::AlignInFrame(rect, Size(), BAlignment(B_ALIGN_HORIZONTAL_CENTER, B_ALIGN_VERTICAL_CENTER)).LeftTop()); } From bga at bug-br.org.br Thu Sep 3 13:41:34 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Thu, 03 Sep 2009 08:41:34 -0300 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <2297735030-BeMail@laptop> References: <2297735030-BeMail@laptop> Message-ID: <4A9FAB6E.7010203@bug-br.org.br> Fran?ois Revol wrote: > You'll want to look at the extended people in IM Kit... which looks > ugly but lists extra attrs... maybe with the layout stuff it could look > better. Yep. the People app would be a lot more useful if it supported creating custom attributes and indexing them. Right I was more worried on the coll factor of extended attributes and node monitoring than anything else so I did not look into extending the app itself. :) -Bruno From bga at bug-br.org.br Thu Sep 3 13:45:14 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Thu, 03 Sep 2009 08:45:14 -0300 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <4A9F62BF.1060308@haikuzone.net> References: <200909030058.n830wJYY026177@sheep.berlios.de> <4A9F62BF.1060308@haikuzone.net> Message-ID: <4A9FAC4A.60507@bug-br.org.br> Jorge G. Mare wrote: > Yay! This is going to make my queries demos even more fun! Thanks BGA! No problems. I wanted to do that for a while now. In any case, here is what it does: 1 - If you change attributes that are displayed in the People app in a file that is opened on it, the change will immediately show up in the app. 2 - If you delete a file that is opened on it, the window will reset to the New Person empty state (note you have to actually delete the file. Moving to Trash does not do it until you empty the Trash). 3 - If you rename the file, the window title will show the new name. -Bruno From bga at bug-br.org.br Thu Sep 3 14:01:38 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Thu, 03 Sep 2009 09:01:38 -0300 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <4A9FAC4A.60507@bug-br.org.br> References: <200909030058.n830wJYY026177@sheep.berlios.de> <4A9F62BF.1060308@haikuzone.net> <4A9FAC4A.60507@bug-br.org.br> Message-ID: <4A9FB022.2060203@bug-br.org.br> Bruno Albuquerque wrote: >> Yay! This is going to make my queries demos even more fun! Thanks BGA! > > No problems. I wanted to do that for a while now. In any case, here is > what it does: > > 1 - If you change attributes that are displayed in the People app in a > file that is opened on it, the change will immediately show up in the app. > > 2 - If you delete a file that is opened on it, the window will reset to > the New Person empty state (note you have to actually delete the file. > Moving to Trash does not do it until you empty the Trash). > > 3 - If you rename the file, the window title will show the new name. BTW, this should probably be +alphabranch. -Bruno From superstippi at gmx.de Thu Sep 3 14:10:08 2009 From: superstippi at gmx.de (Stephan Assmus) Date: Thu, 03 Sep 2009 14:10:08 +0200 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <4A9FAB6E.7010203@bug-br.org.br> References: <2297735030-BeMail@laptop> <4A9FAB6E.7010203@bug-br.org.br> Message-ID: <20090903141008.22988.4@bepc.1251965928.fake> On 2009-09-03 at 13:41:34 [+0200], Bruno Albuquerque wrote: > Fran?ois Revol wrote: > > > You'll want to look at the extended people in IM Kit... which looks > > ugly but lists extra attrs... maybe with the layout stuff it could look > > better. > > Yep. the People app would be a lot more useful if it supported creating > custom attributes and indexing them. Right I was more worried on the coll > factor of extended attributes and node monitoring than anything else so I > did not look into extending the app itself. :) Another option could be to extend People to read the current attributes from the Person MIME-type and adjust the GUI dynamically according to that, and leave the adding/removing of attributes to the FileTypes preflet. That's at least something I always had in mind for People. The problem remains that attributes need to be indexed in order to be searchable. But that's something I don't like anyway, it exposes an "implementation detail" to the user. In any case, even that would probably be a better fit for the FileTypes preflet. Best regards, -Stephan From mmu_man at mail.berlios.de Thu Sep 3 14:37:46 2009 From: mmu_man at mail.berlios.de (mmu_man at mail.berlios.de) Date: Thu, 3 Sep 2009 14:37:46 +0200 Subject: [Haiku-commits] r32921 - haiku/trunk/src/add-ons/kernel/generic/ata_adapter Message-ID: <200909031237.n83Cbk2f000949@sheep.berlios.de> Author: mmu_man Date: 2009-09-03 14:37:45 +0200 (Thu, 03 Sep 2009) New Revision: 32921 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32921&view=rev Modified: haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c Log: Patch by Marcus Overhagen, - check if we need to enable interrupts, - always trace old/new cmd. -alphabranch for now, needs testing. Modified: haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c =================================================================== --- haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-09-03 10:49:55 UTC (rev 32920) +++ haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-09-03 12:37:45 UTC (rev 32921) @@ -525,6 +525,10 @@ // this should be done in ata_adapter_init_controller but there is crashes pcicmdOld = pcicmdNew = pci->read_pci_config(pci_device, PCI_command, 2); + if ((pcicmdNew & (1 << 10)) != 0) { + TRACE("PCI-ATA: enabling interrupts\n"); + pcicmdNew &= ~(1 << 10); + } if ((pcicmdNew & PCI_command_io) == 0) { TRACE("PCI-ATA: enabling io decoder\n"); pcicmdNew |= PCI_command_io; @@ -535,9 +539,9 @@ } if (pcicmdOld != pcicmdNew) { pci->write_pci_config(pci_device, PCI_command, 2, pcicmdNew); - TRACE("PCI-ATA: pcicmd old 0x%04x, new 0x%04x\n", - pcicmdOld, pcicmdNew); } + TRACE("PCI-ATA: pcicmd old 0x%04x, new 0x%04x\n", + pcicmdOld, pcicmdNew); if (supports_compatibility_mode) { From bga at bug-br.org.br Thu Sep 3 14:59:20 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Thu, 03 Sep 2009 09:59:20 -0300 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <20090903141008.22988.4@bepc.1251965928.fake> References: <2297735030-BeMail@laptop> <4A9FAB6E.7010203@bug-br.org.br> <20090903141008.22988.4@bepc.1251965928.fake> Message-ID: <4A9FBDA8.7070303@bug-br.org.br> Stephan Assmus wrote: >>> You'll want to look at the extended people in IM Kit... which looks >>> ugly but lists extra attrs... maybe with the layout stuff it could look >>> better. >> >> Yep. the People app would be a lot more useful if it supported creating >> custom attributes and indexing them. Right I was more worried on the coll >> factor of extended attributes and node monitoring than anything else so I >> did not look into extending the app itself. :) > > Another option could be to extend People to read the current attributes > from the Person MIME-type and adjust the GUI dynamically according to that, > and leave the adding/removing of attributes to the FileTypes preflet. > That's at least something I always had in mind for People. This is actually a pretty good idea. +1 from me. > The problem remains that attributes need to be indexed in order to be searchable. But > that's something I don't like anyway, it exposes an "implementation detail" > to the user. In any case, even that would probably be a better fit for the > FileTypes preflet. I guess the reason not many people use indexes (yeah, I just got this statistic completely out of the blue, which gives it a 60% chance of being more correct than formal ones) is because there is no easy way to use them (it is basically a command line interface only). Maybe we should try to expose this to the user in a way that it would be both easy to use and that would actually take care f house-keeping automatically (like reindexing files). -Bruno From axeld at pinc-software.de Thu Sep 3 17:05:42 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Thu, 03 Sep 2009 17:05:42 +0200 CEST Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <20090903141008.22988.4@bepc.1251965928.fake> Message-ID: <27477572609-BeMail@zon> Stephan Assmus wrote: > On 2009-09-03 at 13:41:34 [+0200], Bruno Albuquerque > > wrote: > > Fran?ois Revol wrote: > > > You'll want to look at the extended people in IM Kit... which > > > looks > > > ugly but lists extra attrs... maybe with the layout stuff it > > > could look > > > better. > > Yep. the People app would be a lot more useful if it supported > > creating > > custom attributes and indexing them. Right I was more worried on > > the coll > > factor of extended attributes and node monitoring than anything > > else so I > > did not look into extending the app itself. :) > Another option could be to extend People to read the current > attributes > from the Person MIME-type and adjust the GUI dynamically according to > that, > and leave the adding/removing of attributes to the FileTypes preflet. > That's at least something I always had in mind for People. The > problem > remains that attributes need to be indexed in order to be searchable. > But > that's something I don't like anyway, it exposes an "implementation > detail" > to the user. In any case, even that would probably be a better fit > for the > FileTypes preflet. We could even go as far and create an index for each new visible attribute by default, ie. just have a checked "indexed" (or "searchable") box in that requester. Bye, Axel. From anevilyak at gmail.com Thu Sep 3 17:09:36 2009 From: anevilyak at gmail.com (Rene Gollent) Date: Thu, 3 Sep 2009 10:09:36 -0500 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <27477572609-BeMail@zon> References: <20090903141008.22988.4@bepc.1251965928.fake> <27477572609-BeMail@zon> Message-ID: On Thu, Sep 3, 2009 at 10:05 AM, Axel D?rfler wrote: > We could even go as far and create an index for each new visible > attribute by default, ie. just have a checked "indexed" (or > "searchable") box in that requester. That still leaves the problem of ensuring all existing files on the disk are part of said newly created index though, unless you want to automatically invoke reindex as well. Regards, Rene From laplace at mail.berlios.de Thu Sep 3 18:25:37 2009 From: laplace at mail.berlios.de (laplace at mail.berlios.de) Date: Thu, 3 Sep 2009 18:25:37 +0200 Subject: [Haiku-commits] r32922 - haiku/trunk Message-ID: <200909031625.n83GPbkh004320@sheep.berlios.de> Author: laplace Date: 2009-09-03 18:25:23 +0200 (Thu, 03 Sep 2009) New Revision: 32922 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32922&view=rev Modified: haiku/trunk/configure Log: In OS X 10.6 diskutil returns an error for ".". Now pass the absolute path of the current working directory. Modified: haiku/trunk/configure =================================================================== --- haiku/trunk/configure 2009-09-03 12:37:45 UTC (rev 32921) +++ haiku/trunk/configure 2009-09-03 16:25:23 UTC (rev 32922) @@ -411,7 +411,7 @@ # check for case-sensitive filesystem if on darwin if [ $buildPlatform = "darwin" ]; then - diskutil info . | grep -i "case-sensitive" > /dev/null + diskutil info $(pwd) | grep -i "case-sensitive" > /dev/null if [ $? != 0 ]; then echo "You need a case-sensitive file-system to build Haiku." echo "Please see the following guide on how to set one up:" From jonas at kirilla.com Thu Sep 3 19:05:40 2009 From: jonas at kirilla.com (Jonas =?iso-8859-1?q?Sundstr=F6m?=) Date: Thu, 03 Sep 2009 19:05:40 +0200 CEST Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <4A9FAC4A.60507@bug-br.org.br> Message-ID: <1991316424-BeMail@kirilla> Bruno Albuquerque wrote: ... > 2 - If you delete a file that is opened on it, > the window will reset to the New Person empty > state (note you have to actually delete the file. > Moving to Trash does not do it until you empty > the Trash). I think People (and StyledEdit et al) should mimic what Tracker does to an open folder when you move it to Trash: it closes the window. That message is clear. It's a strong hint that the folder may not be around for much longer. Keeping the People window and emptying it is a lot less clear, IMO. Deleting a file you have open for editing does not imply wanting to create a new one. /Jonas. From humdingerb at googlemail.com Thu Sep 3 19:36:48 2009 From: humdingerb at googlemail.com (Humdinger) Date: Thu, 03 Sep 2009 19:36:48 +0200 Subject: [Haiku-commits] r32908 - haiku/trunk/src/kits/tracker In-Reply-To: <2451740681-BeMail@zon> References: <2451740681-BeMail@zon> Message-ID: <4A9FFEB0.6080902@googlemail.com> Axel D?rfler wrote: > humdingerb at mail.berlios.de wrote: >> Log: >> Renamed menu 'Attributes|Copy/Paste Attributes' to 'Attributes|Copy/ >> Paste Layout'. Fixes #2835. > > I rather liked "Columns" because it doesn't really copy/paste the > layout (for example, the window size stays the same), but I guess it's > still better than before. Well... It's in the "Attributes" menu, so the window size doesn't play into it. And it kinda does copy/paste the layout, because not only which attributes are visible are copied/pasted, but also the column width. I think "Layout" captures the function better than "Columns". It copies/pastes which attributes in what order and their width. Layout. :) Regards, Humdinger -- --=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=- Deutsche Haiku News @ http://www.haiku-gazette.de From axeld at pinc-software.de Thu Sep 3 19:37:42 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Thu, 03 Sep 2009 19:37:42 +0200 CEST Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: Message-ID: <36597054395-BeMail@zon> Rene Gollent wrote: > On Thu, Sep 3, 2009 at 10:05 AM, Axel D?rfler > wrote: > > We could even go as far and create an index for each new visible > > attribute by default, ie. just have a checked "indexed" (or > > "searchable") box in that requester. > That still leaves the problem of ensuring all existing files on the > disk are part of said newly created index though, unless you want to > automatically invoke reindex as well. I would just ask the user what to do (with the hint that indexing a volume might take a long time). Bye, Axel. From humdingerb at googlemail.com Thu Sep 3 19:40:36 2009 From: humdingerb at googlemail.com (Humdinger) Date: Thu, 03 Sep 2009 19:40:36 +0200 Subject: [Haiku-commits] r32908 - haiku/trunk/src/kits/tracker In-Reply-To: <5294916670-BeMail@nebulus> References: <5294916670-BeMail@nebulus> Message-ID: <4A9FFF94.4040604@googlemail.com> Alexandre Deckner wrote: >> I rather liked "Columns" because it doesn't really copy/paste the >> layout (for example, the window size stays the same), but I guess >> it's still better than before. > > Same here, i like "Columns". Maybe even the menu could be named > "Columns", not sure about that one though. I don't think that would be a good move. We should accommodate the user to files having attributes. With "Columns" you have too much a picture of a Tracker window in mind, when you should have the more abstract concept of meta data. Regards, Humdinger -- --=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=- Deutsche Haiku News @ http://www.haiku-gazette.de From bga at bug-br.org.br Thu Sep 3 19:48:58 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Thu, 03 Sep 2009 14:48:58 -0300 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <1991316424-BeMail@kirilla> References: <1991316424-BeMail@kirilla> Message-ID: <4AA0018A.7010300@bug-br.org.br> Jonas Sundstr?m wrote: >> 2 - If you delete a file that is opened on it, >> the window will reset to the New Person empty >> state (note you have to actually delete the file. >> Moving to Trash does not do it until you empty >> the Trash). > > I think People (and StyledEdit et al) should mimic > what Tracker does to an open folder when you move > it to Trash: it closes the window. > > That message is clear. It's a strong hint that the > folder may not be around for much longer. > > Keeping the People window and emptying it is a lot > less clear, IMO. > > Deleting a file you have open for editing does not > imply wanting to create a new one. I guess you are right. I will change this behavior later today. Thanks for the feedback. -Bruno From jackburton at mail.berlios.de Thu Sep 3 23:19:38 2009 From: jackburton at mail.berlios.de (jackburton at mail.berlios.de) Date: Thu, 3 Sep 2009 23:19:38 +0200 Subject: [Haiku-commits] r32923 - haiku/trunk/src/kits/interface Message-ID: <200909032119.n83LJc6D010207@sheep.berlios.de> Author: jackburton Date: 2009-09-03 23:19:35 +0200 (Thu, 03 Sep 2009) New Revision: 32923 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32923&view=rev Modified: haiku/trunk/src/kits/interface/MenuWindow.cpp Log: Also scroll by a small step, when using the menuscrollers. Modified: haiku/trunk/src/kits/interface/MenuWindow.cpp =================================================================== --- haiku/trunk/src/kits/interface/MenuWindow.cpp 2009-09-03 16:25:23 UTC (rev 32922) +++ haiku/trunk/src/kits/interface/MenuWindow.cpp 2009-09-03 21:19:35 UTC (rev 32923) @@ -416,17 +416,22 @@ ASSERT((fUpperScroller != NULL)); const BPoint cursor = ConvertFromScreen(where); + const BRect &lowerFrame = fLowerScroller->Frame(); + const BRect &upperFrame = fUpperScroller->Frame(); - BRect lowerFrame = fLowerScroller->Frame(); - BRect upperFrame = fUpperScroller->Frame(); - + int32 delta = 0; if (fLowerScroller->IsEnabled() && lowerFrame.Contains(cursor)) - _ScrollBy(1); + delta = 1; else if (fUpperScroller->IsEnabled() && upperFrame.Contains(cursor)) - _ScrollBy(-1); - else + delta = -1; + + if (delta == 0) return false; + float smallStep; + GetSteps(&smallStep, NULL); + _ScrollBy(smallStep * delta); + snooze(5000); return true; From korli at mail.berlios.de Thu Sep 3 23:21:14 2009 From: korli at mail.berlios.de (korli at mail.berlios.de) Date: Thu, 3 Sep 2009 23:21:14 +0200 Subject: [Haiku-commits] r32924 - haiku/trunk/src/add-ons/kernel/drivers/audio/hda Message-ID: <200909032121.n83LLEea010500@sheep.berlios.de> Author: korli Date: 2009-09-03 23:21:13 +0200 (Thu, 03 Sep 2009) New Revision: 32924 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32924&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp Log: the flag means no snoop 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-09-03 21:19:35 UTC (rev 32923) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-09-03 21:21:13 UTC (rev 32924) @@ -786,7 +786,7 @@ 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); + ~INTEL_SCH_HDA_DEVC_SNOOP, 0, 2); } break; } From leavengood at mail.berlios.de Thu Sep 3 23:31:12 2009 From: leavengood at mail.berlios.de (leavengood at BerliOS) Date: Thu, 3 Sep 2009 23:31:12 +0200 Subject: [Haiku-commits] r32925 - haiku/trunk/src/kits/tracker Message-ID: <200909032131.n83LVCBn011349@sheep.berlios.de> Author: leavengood Date: 2009-09-03 23:31:12 +0200 (Thu, 03 Sep 2009) New Revision: 32925 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32925&view=rev Modified: haiku/trunk/src/kits/tracker/TrackerSettings.cpp Log: Fix #4407 by making the volume space bars on by default. +alphabranch Modified: haiku/trunk/src/kits/tracker/TrackerSettings.cpp =================================================================== --- haiku/trunk/src/kits/tracker/TrackerSettings.cpp 2009-09-03 21:21:13 UTC (rev 32924) +++ haiku/trunk/src/kits/tracker/TrackerSettings.cpp 2009-09-03 21:31:12 UTC (rev 32925) @@ -191,7 +191,7 @@ Add(fDateOrderFormat = new ScalarValueSetting("DateOrderFormat", 2, "", "")); Add(f24HrClock = new BooleanValueSetting("24HrClock", false)); - Add(fShowVolumeSpaceBar = new BooleanValueSetting("ShowVolumeSpaceBar", false)); + Add(fShowVolumeSpaceBar = new BooleanValueSetting("ShowVolumeSpaceBar", true)); Add(fUsedSpaceColor = new HexScalarValueSetting("UsedSpaceColor", 0xc000cb00, "", "")); Add(fFreeSpaceColor = new HexScalarValueSetting("FreeSpaceColor", 0xc0ffffff, "", "")); From bga at mail.berlios.de Fri Sep 4 00:49:01 2009 From: bga at mail.berlios.de (bga at mail.berlios.de) Date: Fri, 4 Sep 2009 00:49:01 +0200 Subject: [Haiku-commits] r32926 - haiku/trunk/src/kits/shared Message-ID: <200909032249.n83Mn1rv002130@sheep.berlios.de> Author: bga Date: 2009-09-04 00:48:54 +0200 (Fri, 04 Sep 2009) New Revision: 32926 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32926&view=rev Modified: haiku/trunk/src/kits/shared/CommandPipe.cpp Log: - Classes with virtual methods should have virtual destructors. Modified: haiku/trunk/src/kits/shared/CommandPipe.cpp =================================================================== --- haiku/trunk/src/kits/shared/CommandPipe.cpp 2009-09-03 21:31:12 UTC (rev 32925) +++ haiku/trunk/src/kits/shared/CommandPipe.cpp 2009-09-03 22:48:54 UTC (rev 32926) @@ -304,6 +304,10 @@ fResult("") { } + + virtual ~AllLinesReader() + { + } virtual bool IsCanceled() { From mmlr at mail.berlios.de Fri Sep 4 00:56:32 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 4 Sep 2009 00:56:32 +0200 Subject: [Haiku-commits] r32927 - haiku/trunk/src/servers/app Message-ID: <200909032256.n83MuWBt010615@sheep.berlios.de> Author: mmlr Date: 2009-09-04 00:56:30 +0200 (Fri, 04 Sep 2009) New Revision: 32927 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32927&view=rev Modified: haiku/trunk/src/servers/app/ServerWindow.cpp haiku/trunk/src/servers/app/View.cpp Log: When an app is going down and the windows are destroyed, all views are detached. On detaching the views remove themselves from the app local token space. Since the ServerApp only waits for all ServerWindows to be removed from the window list and not for their actual destruction, it can happen that the ServerApp is deleted before the window destruction and hence the view detaching has finished. The views would then access a stale ServerApp pointer and try to remove their token from the deleted token space. To avoid that we set the ServerApp pointer to NULL when the window is removed from the app (as after that the app can be gone any time) and check for that case when detaching. Modified: haiku/trunk/src/servers/app/ServerWindow.cpp =================================================================== --- haiku/trunk/src/servers/app/ServerWindow.cpp 2009-09-03 22:48:54 UTC (rev 32926) +++ haiku/trunk/src/servers/app/ServerWindow.cpp 2009-09-03 22:56:30 UTC (rev 32927) @@ -197,8 +197,10 @@ fDesktop->RemoveWindow(fWindow); } - if (App() != NULL) + if (App() != NULL) { App()->RemoveWindow(this); + fServerApp = NULL; + } delete fWindow; Modified: haiku/trunk/src/servers/app/View.cpp =================================================================== --- haiku/trunk/src/servers/app/View.cpp 2009-09-03 22:48:54 UTC (rev 32926) +++ haiku/trunk/src/servers/app/View.cpp 2009-09-03 22:56:30 UTC (rev 32927) @@ -206,7 +206,7 @@ View::DetachedFromWindow() { // remove view from local token space - if (fWindow != NULL) + if (fWindow != NULL && fWindow->ServerWindow()->App() != NULL) fWindow->ServerWindow()->App()->ViewTokens().RemoveToken(fToken); fWindow = NULL; From bga at mail.berlios.de Fri Sep 4 01:00:07 2009 From: bga at mail.berlios.de (bga at mail.berlios.de) Date: Fri, 4 Sep 2009 01:00:07 +0200 Subject: [Haiku-commits] r32928 - haiku/trunk/src/apps/people Message-ID: <200909032300.n83N07oj014389@sheep.berlios.de> Author: bga Date: 2009-09-04 00:59:57 +0200 (Fri, 04 Sep 2009) New Revision: 32928 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32928&view=rev Modified: haiku/trunk/src/apps/people/PeopleWindow.cpp Log: - When the associated people file is deleted, close the window instead of reseting it. Modified: haiku/trunk/src/apps/people/PeopleWindow.cpp =================================================================== --- haiku/trunk/src/apps/people/PeopleWindow.cpp 2009-09-03 22:56:30 UTC (rev 32927) +++ haiku/trunk/src/apps/people/PeopleWindow.cpp 2009-09-03 22:59:57 UTC (rev 32928) @@ -195,15 +195,12 @@ if (msg->FindInt32("opcode", &opcode) == B_OK) { switch (opcode) { case B_ENTRY_REMOVED: - // We lost our file. Reset everything. We don't need - // to explicitly disable the node monitor. + // We lost our file. Close the window by quiting its + // looper. delete fRef; fRef = NULL; - for (int32 i = 0; gFields[i].attribute; i++) - fView->SetField(i, "", true); - - SetTitle("New Person"); + PostMessage(B_QUIT_REQUESTED); break; case B_ENTRY_MOVED: From leavengood at gmail.com Fri Sep 4 01:27:49 2009 From: leavengood at gmail.com (Ryan Leavengood) Date: Thu, 3 Sep 2009 19:27:49 -0400 Subject: [Haiku-commits] r32927 - haiku/trunk/src/servers/app In-Reply-To: <200909032256.n83MuWBt010615@sheep.berlios.de> References: <200909032256.n83MuWBt010615@sheep.berlios.de> Message-ID: On Thu, Sep 3, 2009 at 6:56 PM, wrote: > > To avoid that we set the ServerApp pointer > to NULL when the window is removed from the app (as after that the app can be > gone any time) and check for that case when detaching. Interesting. Were there any particular bugs this was causing? -- Regards, Ryan From mmlr at mlotz.ch Thu Sep 3 23:41:00 2009 From: mmlr at mlotz.ch (Michael Lotz) Date: Thu, 03 Sep 2009 23:41:00 Subject: [Haiku-commits] r32927 - haiku/trunk/src/servers/app In-Reply-To: Message-ID: <3388076268-BeMail@laptop> > On Thu, Sep 3, 2009 at 6:56 PM, wrote: > > > > To avoid that we set the ServerApp pointer > > to NULL when the window is removed from the app (as after that the > > app can be > > gone any time) and check for that case when detaching. > > Interesting. Were there any particular bugs this was causing? Except for crashing the app_server or potentially currupting random app _server memory, no. It really depends on what was going on and what happened to the freed memory. In most cases the window destruction would be fast enough so this wasn't triggered. Even if it happened, the likelyhood of the memory being re-used was rather low. It just turned up using malloc debug where it would guarantee a crash. Still it was just an error so I fixed it. Regards Michael From gscrain1 at yahoo.com Fri Sep 4 02:06:36 2009 From: gscrain1 at yahoo.com (Greg Crain) Date: Thu, 3 Sep 2009 17:06:36 -0700 (PDT) Subject: [Haiku-commits] r32901 - haiku/trunk/headers/os/drivers In-Reply-To: References: Message-ID: <749876.4717.qm@web52309.mail.re2.yahoo.com> >Midi parser module, on the contrary, is not used AFAIK. >Midi raw data parsing is done directly in >src/servers/midi/PortDrivers.cpp, GetData() method, in userland. >Bye, > Philippe. I had started writing the midi parser some time ago, but then I couldn't find a single program or driver that uses it. I cannot even think of a need for it. Seems to be depreciated. Regards, Greg -------------- next part -------------- An HTML attachment was scrubbed... URL: From ingo_weinhold at gmx.de Fri Sep 4 01:53:27 2009 From: ingo_weinhold at gmx.de (Ingo Weinhold) Date: Fri, 04 Sep 2009 01:53:27 +0200 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <4A9FB022.2060203@bug-br.org.br> References: <200909030058.n830wJYY026177@sheep.berlios.de> <4A9F62BF.1060308@haikuzone.net> <4A9FAC4A.60507@bug-br.org.br> <4A9FB022.2060203@bug-br.org.br> Message-ID: <20090904015327.390.1@knochen-vm.localdomain> On 2009-09-03 at 14:01:38 [+0200], Bruno Albuquerque wrote: > Bruno Albuquerque wrote: > >> Yay! This is going to make my queries demos even more fun! Thanks BGA! > > > > No problems. I wanted to do that for a while now. In any case, here is > > what it does: > > > > 1 - If you change attributes that are displayed in the People app in a > > file that is opened on it, the change will immediately show up in the app. > > > > 2 - If you delete a file that is opened on it, the window will reset to > > the New Person empty state (note you have to actually delete the file. > > Moving to Trash does not do it until you empty the Trash). > > > > 3 - If you rename the file, the window title will show the new name. > > BTW, this should probably be +alphabranch. While a nice feature, it really is a feature. So I guess it should better wait till the next release. After all, every feature added now only has a very short time to be tested. I think for the next release process we should be stricter and really only port bug fixes to the release branch. This also means we shouldn't branch before all mandatory features are implemented. CU, Ingo From superstippi at gmx.de Fri Sep 4 02:43:30 2009 From: superstippi at gmx.de (Stephan Assmus) Date: Fri, 04 Sep 2009 02:43:30 +0200 Subject: [Haiku-commits] r32926 - haiku/trunk/src/kits/shared In-Reply-To: <200909032249.n83Mn1rv002130@sheep.berlios.de> References: <200909032249.n83Mn1rv002130@sheep.berlios.de> Message-ID: <20090904004330.230050@gmx.net> Hi Bruno, > Author: bga > Date: 2009-09-04 00:48:54 +0200 (Fri, 04 Sep 2009) > New Revision: 32926 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32926&view=rev > > Modified: > haiku/trunk/src/kits/shared/CommandPipe.cpp > Log: > - Classes with virtual methods should have virtual destructors. > > > > Modified: haiku/trunk/src/kits/shared/CommandPipe.cpp > =================================================================== > --- haiku/trunk/src/kits/shared/CommandPipe.cpp 2009-09-03 21:31:12 UTC > (rev 32925) > +++ haiku/trunk/src/kits/shared/CommandPipe.cpp 2009-09-03 22:48:54 UTC > (rev 32926) > @@ -304,6 +304,10 @@ > fResult("") > { > } > + > + virtual ~AllLinesReader() > + { > + } > > virtual bool IsCanceled() > { > when I was working on this in the train today, I also came across this warning. I had a GCC2 development environment there, I don't remember if GCC4 also gave a warning or not. In any case, I believe the destructor needs to be declared virtual in the base class, not in the inherited class, no? The warning is about the problem, that when delete is called on a pointer to the base class, that then the destructor of the real class is not called, since the base class destructor is not declared virtual. This problem would still exist if you fix the warning like above, unless I am missing something. Best regards, -Stephan From superstippi at gmx.de Fri Sep 4 03:14:56 2009 From: superstippi at gmx.de (Stephan Assmus) Date: Fri, 04 Sep 2009 03:14:56 +0200 Subject: [Haiku-commits] r32908 - haiku/trunk/src/kits/tracker In-Reply-To: <4A9FFF94.4040604@googlemail.com> References: <5294916670-BeMail@nebulus> <4A9FFF94.4040604@googlemail.com> Message-ID: <20090904011456.230060@gmx.net> -------- Original-Nachricht -------- > Datum: Thu, 03 Sep 2009 19:40:36 +0200 > Von: Humdinger > An: SVN commits to the Haiku source repository > Betreff: Re: [Haiku-commits] r32908 - haiku/trunk/src/kits/tracker > Alexandre Deckner wrote: > >> I rather liked "Columns" because it doesn't really copy/paste the > >> layout (for example, the window size stays the same), but I guess > >> it's still better than before. > > > > Same here, i like "Columns". Maybe even the menu could be named > > "Columns", not sure about that one though. > > I don't think that would be a good move. We should accommodate the user to > files having > attributes. With "Columns" you have too much a picture of a Tracker window > in mind, when > you should have the more abstract concept of meta data. FWIIW, I am 100% with you, Humdinger. I think "Layout" is perfect. Best regards, -Stephan From mmlr at mail.berlios.de Fri Sep 4 05:51:16 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 4 Sep 2009 05:51:16 +0200 Subject: [Haiku-commits] r32929 - haiku/trunk/src/servers/app Message-ID: <200909040351.n843pG71001596@sheep.berlios.de> Author: mmlr Date: 2009-09-04 05:51:15 +0200 (Fri, 04 Sep 2009) New Revision: 32929 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32929&view=rev Modified: haiku/trunk/src/servers/app/Desktop.cpp Log: When a focus locked window is hidden, we need to remove the focus lock. Otherwise the focus cannot be changed to another window. In one case this could have a severe sideeffect: When a window is quit it is hidden to remove focus and remove it from screen. If this didn't work due to the focus lock, the fFocus member would become a stale pointer after the window was quit and deleted. The app_server would crash or corrupt memory on the next focus change. Easily seen when moderately quickly clicking away a few alert windows. Modified: haiku/trunk/src/servers/app/Desktop.cpp =================================================================== --- haiku/trunk/src/servers/app/Desktop.cpp 2009-09-03 22:59:57 UTC (rev 32928) +++ haiku/trunk/src/servers/app/Desktop.cpp 2009-09-04 03:51:15 UTC (rev 32929) @@ -1065,16 +1065,21 @@ fMouseEventWindow = NULL; } + if (fLockedFocusWindow == window) { + // Remove the focus lock so the focus can be changed below + fLockedFocusWindow = NULL; + } + if (window->InWorkspace(fCurrentWorkspace)) { _UpdateSubsetWorkspaces(window); _HideWindow(window); _UpdateFronts(); - - if (FocusWindow() == window) - SetFocusWindow(); } else _WindowChanged(window); + if (FocusWindow() == window) + SetFocusWindow(); + _WindowRemoved(window); if (window->HasWorkspacesViews()) { From mmlr at mail.berlios.de Fri Sep 4 06:00:15 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 4 Sep 2009 06:00:15 +0200 Subject: [Haiku-commits] r32930 - haiku/branches/releases/r1alpha1/src/servers/app Message-ID: <200909040400.n8440FH2002054@sheep.berlios.de> Author: mmlr Date: 2009-09-04 06:00:11 +0200 (Fri, 04 Sep 2009) New Revision: 32930 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32930&view=rev Modified: haiku/branches/releases/r1alpha1/src/servers/app/Desktop.cpp haiku/branches/releases/r1alpha1/src/servers/app/ServerWindow.cpp haiku/branches/releases/r1alpha1/src/servers/app/View.cpp Log: Merging app_server fixes r32927 and r32929 from trunk. Modified: haiku/branches/releases/r1alpha1/src/servers/app/Desktop.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/servers/app/Desktop.cpp 2009-09-04 03:51:15 UTC (rev 32929) +++ haiku/branches/releases/r1alpha1/src/servers/app/Desktop.cpp 2009-09-04 04:00:11 UTC (rev 32930) @@ -1065,16 +1065,21 @@ fMouseEventWindow = NULL; } + if (fLockedFocusWindow == window) { + // Remove the focus lock so the focus can be changed below + fLockedFocusWindow = NULL; + } + if (window->InWorkspace(fCurrentWorkspace)) { _UpdateSubsetWorkspaces(window); _HideWindow(window); _UpdateFronts(); - - if (FocusWindow() == window) - SetFocusWindow(); } else _WindowChanged(window); + if (FocusWindow() == window) + SetFocusWindow(); + _WindowRemoved(window); if (window->HasWorkspacesViews()) { Modified: haiku/branches/releases/r1alpha1/src/servers/app/ServerWindow.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/servers/app/ServerWindow.cpp 2009-09-04 03:51:15 UTC (rev 32929) +++ haiku/branches/releases/r1alpha1/src/servers/app/ServerWindow.cpp 2009-09-04 04:00:11 UTC (rev 32930) @@ -197,8 +197,10 @@ fDesktop->RemoveWindow(fWindow); } - if (App() != NULL) + if (App() != NULL) { App()->RemoveWindow(this); + fServerApp = NULL; + } delete fWindow; Modified: haiku/branches/releases/r1alpha1/src/servers/app/View.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/servers/app/View.cpp 2009-09-04 03:51:15 UTC (rev 32929) +++ haiku/branches/releases/r1alpha1/src/servers/app/View.cpp 2009-09-04 04:00:11 UTC (rev 32930) @@ -206,7 +206,7 @@ View::DetachedFromWindow() { // remove view from local token space - if (fWindow != NULL) + if (fWindow != NULL && fWindow->ServerWindow()->App() != NULL) fWindow->ServerWindow()->App()->ViewTokens().RemoveToken(fToken); fWindow = NULL; From stefano.ceccherini at gmail.com Fri Sep 4 08:11:13 2009 From: stefano.ceccherini at gmail.com (Stefano Ceccherini) Date: Fri, 4 Sep 2009 08:11:13 +0200 Subject: [Haiku-commits] r32926 - haiku/trunk/src/kits/shared In-Reply-To: <20090904004330.230050@gmx.net> References: <200909032249.n83Mn1rv002130@sheep.berlios.de> <20090904004330.230050@gmx.net> Message-ID: <894b9700909032311v237e5548uce623cfbc3141e1c@mail.gmail.com> 2009/9/4 Stephan Assmus : >In any case, I believe the destructor needs to be declared virtual in the base class, not in the inherited class, no? The warning is about the problem, that when delete is called on a pointer to the base class, that then the destructor of the real class is not called, since the base class destructor is not declared virtual. This problem would still exist if you fix the warning like above, unless I am missing something. Correct. From axeld at pinc-software.de Fri Sep 4 09:34:35 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Fri, 04 Sep 2009 09:34:35 +0200 CEST Subject: [Haiku-commits] r32925 - haiku/trunk/src/kits/tracker In-Reply-To: <200909032131.n83LVCBn011349@sheep.berlios.de> Message-ID: <876701134-BeMail@zon> leavengood at BerliOS wrote: > Log: > Fix #4407 by making the volume space bars on by default. > > +alphabranch Not in this form, at least: this is Tracker - you didn't really think it would be that easy, right? :-) You also have to apply the new defaults to SettingsViews.cpp SpaceBarSettingsView::SetDefaults(), and SpaceBarSettingsView::IsDefaultable(). Bye, Axel. From axeld at pinc-software.de Fri Sep 4 10:27:50 2009 From: axeld at pinc-software.de (Axel =?utf-8?q?D=C3=B6rfler?=) Date: Fri, 04 Sep 2009 10:27:50 +0200 CEST Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <20090904015327.390.1@knochen-vm.localdomain> Message-ID: <4071302639-BeMail@zon> Ingo Weinhold wrote: > > BTW, this should probably be +alphabranch. > While a nice feature, it really is a feature. So I guess it should > better > wait till the next release. After all, every feature added now only > has a > very short time to be tested. I think for the next release process we > should > be stricter and really only port bug fixes to the release branch. > This also > means we shouldn't branch before all mandatory features are > implemented. +1. I would also suggest (for the next release) that only a single individual (with a backup) maintains that branch; it's easier if you do it alone (as you don't need to track which revisions are already merged by others), and the commit policy can be enforced more easily (at least there would only be one person at fault if a new feature would make it into the release). Bye, Axel. From axeld at mail.berlios.de Fri Sep 4 12:50:40 2009 From: axeld at mail.berlios.de (axeld at BerliOS) Date: Fri, 4 Sep 2009 12:50:40 +0200 Subject: [Haiku-commits] r32931 - haiku/trunk/build/jam Message-ID: <200909041050.n84AoeDC015834@sheep.berlios.de> Author: axeld Date: 2009-09-04 12:50:38 +0200 (Fri, 04 Sep 2009) New Revision: 32931 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32931&view=rev Modified: haiku/trunk/build/jam/HaikuImage Log: * Removed locale kit leftovers from the build. This closes ticket #4386. +alphabranch Modified: haiku/trunk/build/jam/HaikuImage =================================================================== --- haiku/trunk/build/jam/HaikuImage 2009-09-04 04:00:11 UTC (rev 32930) +++ haiku/trunk/build/jam/HaikuImage 2009-09-04 10:50:38 UTC (rev 32931) @@ -29,9 +29,9 @@ SYSTEM_BIN = "[" addattr alert arp base64 basename bash bc beep bootman bzip2 cal cat catattr checkfs chgrp chmod chop chown chroot cksum clear - clockconfig cmp collectcatkeys comm compress copyattr CortexAddOnHost cp + clockconfig cmp comm compress copyattr CortexAddOnHost cp csplit ctags cut date dc dd desklink df diff diff3 dircolors dirname - draggers driveinfo dstcheck du dumpcatalog + draggers driveinfo dstcheck du echo eject env error expand expr factor false fdinfo ffm filepanel find finddir fmt fold fortune frcode ftp ftpd @@ -41,7 +41,7 @@ id ident ideinfo idestatus ifconfig install installsound iroster isvolume join - keymap kill less lessecho lesskey link linkcatkeys listarea listattr + keymap kill less lessecho lesskey link listarea listattr listimage listdev listport listres listsem listusb ln locate logger login logname ls lsindex makebootable md5sum merge message mimeset mkdos mkdir mkfifo mkfs mkindex @@ -73,7 +73,7 @@ SYSTEM_PREFERENCES = Appearance Backgrounds CPUFrequency DataTranslations E-mail FileTypes Fonts Keyboard Keymap Media Mouse Network Printers Screen ScreenSaver Sounds Time Touchpad Tracker VirtualMemory -; # Locale +; SYSTEM_DEMOS = BSnow Chart Clock Cortex FontDemo GLTeapot Haiku3d Mandelbrot Pairs Playground Pulse Sudoku Gradients ; @@ -361,11 +361,6 @@ = [ FDirName $(HAIKU_TOP) src apps mail ] ; AddFilesToHaikuImage system etc word_dictionary : $(spellFiles) ; -# Locale kit language files -local languageDir = [ FDirName $(HAIKU_TOP) src data etc locale languages ] ; -local languages = [ Glob $(languageDir) : *.language ] ; -AddFilesToHaikuImage system data locale languages : $(languages) ; - local etcFiles = bash_completion inputrc profile teapot.data ; etcFiles = $(etcFiles:G=etc) ; SEARCH on $(etcFiles) = [ FDirName $(HAIKU_TOP) data etc ] ; From bga at bug-br.org.br Fri Sep 4 14:07:56 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Fri, 04 Sep 2009 09:07:56 -0300 Subject: [Haiku-commits] r32926 - haiku/trunk/src/kits/shared In-Reply-To: <20090904004330.230050@gmx.net> References: <200909032249.n83Mn1rv002130@sheep.berlios.de> <20090904004330.230050@gmx.net> Message-ID: <4AA1031C.3030401@bug-br.org.br> Stephan Assmus wrote: > when I was working on this in the train today, I also came across this warning. I had a GCC2 development environment there, I don't remember if GCC4 also gave a warning or not. In any case, I believe the destructor needs to be declared virtual in the base class, not in the inherited class, no? The warning is about the problem, that when delete is called on a pointer to the base class, that then the destructor of the real class is not called, since the base class destructor is not declared virtual. This problem would still exist if you fix the warning like above, unless I am missing something. This is correct, but you are missing one piece of the puzzle: Whenever you create a class it can, potentially, be the base class of a hypothetical derived class. Even if it also derives from other class. This warning is about this fact (that if derived classes of this specific class are created, this could be a problem). So the fix to this class is correct and the warning was about that (and disappeared after the fix). In other words, everything you said above applies, but you are at the incorrect level of abstraction in the class hierarchy. :) That said, there is a bug in GCC 2.95 it seems. It is perfectly valid to have a class with virtual methods and non-virtual destructor as long as the non-virtual destructor is protected (to avoid, for example, that the user delete an object through a pointer to its base class). This will result (incorrectly) in the same warning by GCC2. GCC4 has no such problem. -Bruno From bga at bug-br.org.br Fri Sep 4 14:10:20 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Fri, 04 Sep 2009 09:10:20 -0300 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <20090904015327.390.1@knochen-vm.localdomain> References: <200909030058.n830wJYY026177@sheep.berlios.de> <4A9F62BF.1060308@haikuzone.net> <4A9FAC4A.60507@bug-br.org.br> <4A9FB022.2060203@bug-br.org.br> <20090904015327.390.1@knochen-vm.localdomain> Message-ID: <4AA103AC.2040006@bug-br.org.br> Ingo Weinhold wrote: >> BTW, this should probably be +alphabranch. > > While a nice feature, it really is a feature. So I guess it should better > wait till the next release. After all, every feature added now only has a > very short time to be tested. I think for the next release process we should > be stricter and really only port bug fixes to the release branch. This also > means we shouldn't branch before all mandatory features are implemented. I am fine with that. It is just that I will be doing some demos in the next few weeks and I want to use that feature. I guess I will just use a version compiled from trunk or just compile People from it and use with the alpha branch installation. -Bruno From jonas at kirilla.com Fri Sep 4 19:56:17 2009 From: jonas at kirilla.com (Jonas =?iso-8859-1?q?Sundstr=F6m?=) Date: Fri, 04 Sep 2009 19:56:17 +0200 CEST Subject: [Haiku-commits] r32928 - haiku/trunk/src/apps/people In-Reply-To: <200909032300.n83N07oj014389@sheep.berlios.de> Message-ID: <1039644686-BeMail@kirilla> bga at mail.berlios.de wrote: ... > Log: > - When the associated people file is deleted, > close the window instead of reseting it. Thanks Bruno! Nice improvement, the node monitoring. :) /Jonas. From superstippi at gmx.de Fri Sep 4 20:00:56 2009 From: superstippi at gmx.de (Stephan Assmus) Date: Fri, 04 Sep 2009 20:00:56 +0200 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <4AA103AC.2040006@bug-br.org.br> References: <200909030058.n830wJYY026177@sheep.berlios.de> <4A9F62BF.1060308@haikuzone.net> <4A9FAC4A.60507@bug-br.org.br> <4A9FB022.2060203@bug-br.org.br> <20090904015327.390.1@knochen-vm.localdomain> <4AA103AC.2040006@bug-br.org.br> Message-ID: <20090904200056.453.1@bepc.1252086284.fake> On 2009-09-04 at 14:10:20 [+0200], Bruno Albuquerque wrote: > Ingo Weinhold wrote: > > >> BTW, this should probably be +alphabranch. > > > > While a nice feature, it really is a feature. So I guess it should > > better wait till the next release. After all, every feature added now > > only has a very short time to be tested. I think for the next release > > process we should be stricter and really only port bug fixes to the > > release branch. This also means we shouldn't branch before all > > mandatory features are implemented. > > I am fine with that. It is just that I will be doing some demos in the > next few weeks and I want to use that feature. I guess I will just use a > version compiled from trunk or just compile People from it and use with > the alpha branch installation. To be honest, this feature is very contained, if there would be something wrong with it (which I doubt), it would only affect Peolpe and only in a circumstance in which it was arguably broken before. So for new features where the side effects are hard to judge, I am absolutely with Ingo, but for something like this, I would argue it would be nice to have in the alpha and the risk of breaking something by including it is pretty much zero. I wouldn't exclude such nice finishing touches just for the sake of being consequent. After all, we wanted to give the best possible first impression with this release. Best regards, -Stephan From koki at haikuzone.net Fri Sep 4 20:10:31 2009 From: koki at haikuzone.net (Jorge G. Mare) Date: Fri, 04 Sep 2009 11:10:31 -0700 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <20090904200056.453.1@bepc.1252086284.fake> References: <200909030058.n830wJYY026177@sheep.berlios.de> <4A9F62BF.1060308@haikuzone.net> <4A9FAC4A.60507@bug-br.org.br> <4A9FB022.2060203@bug-br.org.br> <20090904015327.390.1@knochen-vm.localdomain> <4AA103AC.2040006@bug-br.org.br> <20090904200056.453.1@bepc.1252086284.fake> Message-ID: <4AA15817.5090708@haikuzone.net> Stephan Assmus wrote: > To be honest, this feature is very contained, if there would be something > wrong with it (which I doubt), it would only affect Peolpe and only in a > circumstance in which it was arguably broken before. > > So for new features where the side effects are hard to judge, I am > absolutely with Ingo, but for something like this, I would argue it would > be nice to have in the alpha and the risk of breaking something by > including it is pretty much zero. I wouldn't exclude such nice finishing > touches just for the sake of being consequent. After all, we wanted to give > the best possible first impression with this release. > +1 to using common sense. :) Cheers, Jorge/aka Koki From jackburton at mail.berlios.de Fri Sep 4 20:17:01 2009 From: jackburton at mail.berlios.de (jackburton at mail.berlios.de) Date: Fri, 4 Sep 2009 20:17:01 +0200 Subject: [Haiku-commits] r32932 - in haiku/trunk: headers/private/interface src/kits/interface Message-ID: <200909041817.n84IH1GE021467@sheep.berlios.de> Author: jackburton Date: 2009-09-04 20:16:59 +0200 (Fri, 04 Sep 2009) New Revision: 32932 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32932&view=rev Modified: haiku/trunk/headers/private/interface/MenuWindow.h haiku/trunk/src/kits/interface/MenuWindow.cpp Log: Made MenuWindow::GetSteps() const. Increased the scrollers size from 10 to 12, since at high resolutions, they're really too small. Modified: haiku/trunk/headers/private/interface/MenuWindow.h =================================================================== --- haiku/trunk/headers/private/interface/MenuWindow.h 2009-09-04 10:50:38 UTC (rev 32931) +++ haiku/trunk/headers/private/interface/MenuWindow.h 2009-09-04 18:16:59 UTC (rev 32932) @@ -36,7 +36,7 @@ void DetachScrollers(); void SetSmallStep(float step); - void GetSteps(float* _smallStep, float* _largeStep); + void GetSteps(float* _smallStep, float* _largeStep) const; bool HasScrollers() const; bool CheckForScrolling(const BPoint& cursor); bool TryScrollBy(const float& step); Modified: haiku/trunk/src/kits/interface/MenuWindow.cpp =================================================================== --- haiku/trunk/src/kits/interface/MenuWindow.cpp 2009-09-04 10:50:38 UTC (rev 32931) +++ haiku/trunk/src/kits/interface/MenuWindow.cpp 2009-09-04 18:16:59 UTC (rev 32932) @@ -71,7 +71,7 @@ using namespace BPrivate; -const int kScrollerHeight = 10; +const int kScrollerHeight = 12; BMenuScroller::BMenuScroller(BRect frame) @@ -367,7 +367,7 @@ void -BMenuWindow::GetSteps(float* _smallStep, float* _largeStep) +BMenuWindow::GetSteps(float* _smallStep, float* _largeStep) const { if (_smallStep != NULL) *_smallStep = fScrollStep; From rudolfc at mail.berlios.de Fri Sep 4 20:19:12 2009 From: rudolfc at mail.berlios.de (rudolfc at mail.berlios.de) Date: Fri, 4 Sep 2009 20:19:12 +0200 Subject: [Haiku-commits] r32933 - haiku/trunk/src/add-ons/accelerants/nvidia/engine Message-ID: <200909041819.n84IJC2m021609@sheep.berlios.de> Author: rudolfc Date: 2009-09-04 20:19:10 +0200 (Fri, 04 Sep 2009) New Revision: 32933 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32933&view=rev Modified: haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c Log: added a bit of extra programming for NV44 and G7x making sure the DAC(s) is(are) enabled. Bumped version to 0.99. +alphabranch. Modified: haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c =================================================================== --- haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c 2009-09-04 18:16:59 UTC (rev 32932) +++ haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c 2009-09-04 18:19:10 UTC (rev 32933) @@ -92,7 +92,7 @@ { status_t status; - LOG(1,("POWERUP: Haiku nVidia Accelerant 0.98 running.\n")); + LOG(1,("POWERUP: Haiku nVidia Accelerant 0.99 running.\n")); /* log VBLANK INT usability status */ if (si->ps.int_assigned) @@ -1804,9 +1804,20 @@ //It feels like in some screen configurations it can move the output to the other //output connector as well... DACW(TSTCTRL, (DACR(TSTCTRL) & 0xfffeefff)); + /* b20 enables DAC video output on some newer cards + * (confirmed video to be almost black if zero on Geforce 7300, id 0x01d1 (G72)) */ + if ((si->ps.card_type == NV44) || (si->ps.card_type >= G70)) + DACW(TSTCTRL, (DACR(TSTCTRL) | 0x00100000)); + /* turn on DAC2 if it exists * (NOTE: testsignal function block resides in DAC1 only (!)) */ - if (si->ps.secondary_head) DAC2W(TSTCTRL, (DAC2R(TSTCTRL) & 0xfffeefff)); + if (si->ps.secondary_head) { + DAC2W(TSTCTRL, (DAC2R(TSTCTRL) & 0xfffeefff)); + /* b20 might enable DAC video output on some newer cards + * (not confirmed yet) */ + if ((si->ps.card_type == NV44) || (si->ps.card_type >= G70)) + DAC2W(TSTCTRL, (DAC2R(TSTCTRL) | 0x00100000)); + } /* NV40 and NV45 need a 'tweak' to make sure the CRTC FIFO's/shiftregisters get * their data in time (otherwise momentarily ghost images of windows or such From leavengood at gmail.com Fri Sep 4 22:25:04 2009 From: leavengood at gmail.com (Ryan Leavengood) Date: Fri, 4 Sep 2009 16:25:04 -0400 Subject: [Haiku-commits] r32925 - haiku/trunk/src/kits/tracker In-Reply-To: <876701134-BeMail@zon> References: <200909032131.n83LVCBn011349@sheep.berlios.de> <876701134-BeMail@zon> Message-ID: On Fri, Sep 4, 2009 at 3:34 AM, Axel D?rfler wrote: > > Not in this form, at least: this is Tracker - you didn't really think > it would be that easy, right? :-) > > You also have to apply the new defaults to SettingsViews.cpp > SpaceBarSettingsView::SetDefaults(), and > SpaceBarSettingsView::IsDefaultable(). :( I can do this for now, but surely we can do some refactoring to avoid this kind of repeated code/information. DRY DRY DRY!!! (Don't Repeat Yourself.) At least there is a ToDo for the DesktopSettingsView::SetDefaults() for this. That makes me feel better. Of course the same ToDo belongs on all the other SetDefaults() in that file, and of course it be nice if someone actually did the ToDo some day ;) -- Regards, Ryan From leavengood at gmail.com Fri Sep 4 22:34:37 2009 From: leavengood at gmail.com (Ryan Leavengood) Date: Fri, 4 Sep 2009 16:34:37 -0400 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <4AA15817.5090708@haikuzone.net> References: <200909030058.n830wJYY026177@sheep.berlios.de> <4A9F62BF.1060308@haikuzone.net> <4A9FAC4A.60507@bug-br.org.br> <4A9FB022.2060203@bug-br.org.br> <20090904015327.390.1@knochen-vm.localdomain> <4AA103AC.2040006@bug-br.org.br> <20090904200056.453.1@bepc.1252086284.fake> <4AA15817.5090708@haikuzone.net> Message-ID: On Fri, Sep 4, 2009 at 2:10 PM, Jorge G. Mare wrote: > Stephan Assmus wrote: >> I wouldn't exclude such nice finishing >> touches just for the sake of being consequent. After all, we wanted to give >> the best possible first impression with this release. > > +1 to using common sense. :) The logic does make sense. I think the general rules should be: - Don't work on new features during a release push unless you have a valid use case (I think Bruno does here.) - If the changes are localized to an application and pass some code review and testing, they can go in the release branch. - Anything questionable should be left out of the release, especially changes to major kits or system components. - Since even bug fixes can have side affects, anything that changes a critical component should be thoroughly reviewed and tested before being put in the release branch. - Nobody is perfect so some mistakes will be made, and that is fine. Let's just do the best we can. -- Regards, Ryan From niels.reedijk at gmail.com Fri Sep 4 22:51:25 2009 From: niels.reedijk at gmail.com (Niels Reedijk) Date: Fri, 4 Sep 2009 22:51:25 +0200 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: References: <200909030058.n830wJYY026177@sheep.berlios.de> <4A9F62BF.1060308@haikuzone.net> <4A9FAC4A.60507@bug-br.org.br> <4A9FB022.2060203@bug-br.org.br> <20090904015327.390.1@knochen-vm.localdomain> <4AA103AC.2040006@bug-br.org.br> <20090904200056.453.1@bepc.1252086284.fake> <4AA15817.5090708@haikuzone.net> Message-ID: <507d86c0909041351h77aacb00jf86c8b353a2d2459@mail.gmail.com> Hi Ryan, 2009/9/4 Ryan Leavengood : > On Fri, Sep 4, 2009 at 2:10 PM, Jorge G. Mare wrote: >> Stephan Assmus wrote: >>> I wouldn't exclude such nice finishing >>> touches just for the sake of being consequent. After all, we wanted to give >>> the best possible first impression with this release. >> >> +1 to using common sense. :) > > The logic does make sense. I think the general rules should be: > > - Don't work on new features during a release push unless you have a > valid use case (I think Bruno does here.) > - If the changes are localized to an application and pass some code > review and testing, they can go in the release branch. > - Anything questionable should be left out of the release, especially > changes to major kits or system components. > - Since even bug fixes can have side affects, anything that changes a > critical component should be thoroughly reviewed and tested before > being put in the release branch. > - Nobody is perfect so some mistakes will be made, and that is fine. > Let's just do the best we can. Another rule maybe: - Don't make any rules for obvious exceptions? (not my call though) Niels. From leavengood at gmail.com Fri Sep 4 22:56:37 2009 From: leavengood at gmail.com (Ryan Leavengood) Date: Fri, 4 Sep 2009 16:56:37 -0400 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <507d86c0909041351h77aacb00jf86c8b353a2d2459@mail.gmail.com> References: <200909030058.n830wJYY026177@sheep.berlios.de> <4A9F62BF.1060308@haikuzone.net> <4A9FAC4A.60507@bug-br.org.br> <4A9FB022.2060203@bug-br.org.br> <20090904015327.390.1@knochen-vm.localdomain> <4AA103AC.2040006@bug-br.org.br> <20090904200056.453.1@bepc.1252086284.fake> <4AA15817.5090708@haikuzone.net> <507d86c0909041351h77aacb00jf86c8b353a2d2459@mail.gmail.com> Message-ID: On Fri, Sep 4, 2009 at 4:51 PM, Niels Reedijk wrote: > > Another rule maybe: > > - Don't make any rules for obvious exceptions? > > (not my call though) Please clarify what you mean here. -- Regards, Ryan From koki at haikuzone.net Fri Sep 4 23:01:33 2009 From: koki at haikuzone.net (Jorge G. Mare) Date: Fri, 04 Sep 2009 14:01:33 -0700 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: References: <200909030058.n830wJYY026177@sheep.berlios.de> <4A9F62BF.1060308@haikuzone.net> <4A9FAC4A.60507@bug-br.org.br> <4A9FB022.2060203@bug-br.org.br> <20090904015327.390.1@knochen-vm.localdomain> <4AA103AC.2040006@bug-br.org.br> <20090904200056.453.1@bepc.1252086284.fake> <4AA15817.5090708@haikuzone.net> <507d86c0909041351h77aacb00jf86c8b353a2d2459@mail.gmail.com> Message-ID: <4AA1802D.30807@haikuzone.net> Ryan Leavengood wrote: > On Fri, Sep 4, 2009 at 4:51 PM, Niels Reedijk wrote: > >> Another rule maybe: >> >> - Don't make any rules for obvious exceptions? >> >> (not my call though) >> > > Please clarify what you mean here. > I think that means that we use common sense. :) Cheers, Jorge/aka Koki From leavengood at mail.berlios.de Fri Sep 4 23:02:56 2009 From: leavengood at mail.berlios.de (leavengood at BerliOS) Date: Fri, 4 Sep 2009 23:02:56 +0200 Subject: [Haiku-commits] r32934 - haiku/trunk/src/kits/tracker Message-ID: <200909042102.n84L2umX004977@sheep.berlios.de> Author: leavengood Date: 2009-09-04 23:02:56 +0200 (Fri, 04 Sep 2009) New Revision: 32934 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32934&view=rev Modified: haiku/trunk/src/kits/tracker/SettingsViews.cpp Log: These are the remaining changes to properly implement the new default of volume space bars being on. Thanks for the tips Axel. +alphabranch Modified: haiku/trunk/src/kits/tracker/SettingsViews.cpp =================================================================== --- haiku/trunk/src/kits/tracker/SettingsViews.cpp 2009-09-04 18:19:10 UTC (rev 32933) +++ haiku/trunk/src/kits/tracker/SettingsViews.cpp 2009-09-04 21:02:56 UTC (rev 32934) @@ -1190,9 +1190,9 @@ TrackerSettings settings; - if (settings.ShowVolumeSpaceBar()) { - settings.SetShowVolumeSpaceBar(false); - send_bool_notices(kShowVolumeSpaceBar, "ShowVolumeSpaceBar", false); + if (!settings.ShowVolumeSpaceBar()) { + settings.SetShowVolumeSpaceBar(true); + send_bool_notices(kShowVolumeSpaceBar, "ShowVolumeSpaceBar", true); } if (settings.UsedSpaceColor() != kDefaultUsedSpaceColor @@ -1213,7 +1213,7 @@ { TrackerSettings settings; - return settings.ShowVolumeSpaceBar() != false + return settings.ShowVolumeSpaceBar() != true || settings.UsedSpaceColor() != kDefaultUsedSpaceColor || settings.FreeSpaceColor() != kDefaultFreeSpaceColor || settings.WarningSpaceColor() != kDefaultWarningSpaceColor; From leavengood at gmail.com Fri Sep 4 23:05:03 2009 From: leavengood at gmail.com (Ryan Leavengood) Date: Fri, 4 Sep 2009 17:05:03 -0400 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <4AA1802D.30807@haikuzone.net> References: <200909030058.n830wJYY026177@sheep.berlios.de> <4A9FB022.2060203@bug-br.org.br> <20090904015327.390.1@knochen-vm.localdomain> <4AA103AC.2040006@bug-br.org.br> <20090904200056.453.1@bepc.1252086284.fake> <4AA15817.5090708@haikuzone.net> <507d86c0909041351h77aacb00jf86c8b353a2d2459@mail.gmail.com> <4AA1802D.30807@haikuzone.net> Message-ID: On Fri, Sep 4, 2009 at 5:01 PM, Jorge G. Mare wrote: > > I think that means that we use common sense. :) Sure, but having some basic guidelines helps. Not that I'm the be all and end all for making such guidelines. But I think what I wrote before is fairly reasonable. -- Regards, Ryan From niels.reedijk at gmail.com Fri Sep 4 23:08:54 2009 From: niels.reedijk at gmail.com (Niels Reedijk) Date: Fri, 4 Sep 2009 23:08:54 +0200 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: References: <200909030058.n830wJYY026177@sheep.berlios.de> <4A9FAC4A.60507@bug-br.org.br> <4A9FB022.2060203@bug-br.org.br> <20090904015327.390.1@knochen-vm.localdomain> <4AA103AC.2040006@bug-br.org.br> <20090904200056.453.1@bepc.1252086284.fake> <4AA15817.5090708@haikuzone.net> <507d86c0909041351h77aacb00jf86c8b353a2d2459@mail.gmail.com> Message-ID: <507d86c0909041408s7f4266ebq6dfc4e7107806532@mail.gmail.com> Hi, 2009/9/4 Ryan Leavengood : > On Fri, Sep 4, 2009 at 4:51 PM, Niels Reedijk wrote: >> >> Another rule maybe: >> >> - Don't make any rules for obvious exceptions? >> >> (not my call though) > > Please clarify what you mean here. I mean here that there is a consensus that this does not fit in what is meant by a bug fix, but that it is nevertheless desirable changeset for the alpha. I understand your desire to try to accomodate for any future changesets of this nature, but I think it is probably more time-consuming for developers to take the time to structure future non-bugfix pro-alpha changesets along a new set of guidelines for these types of changes, rather than keep on deciding on them on a case by case basis. So yes, common sense is good. It is like the US supreme court's definition of obscenity. I can't give a definition of an alpha-ready non-bugfix changeset, but I know one when I see one. Kind regards, Niels From leavengood at gmail.com Fri Sep 4 23:27:30 2009 From: leavengood at gmail.com (Ryan Leavengood) Date: Fri, 4 Sep 2009 17:27:30 -0400 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <507d86c0909041408s7f4266ebq6dfc4e7107806532@mail.gmail.com> References: <200909030058.n830wJYY026177@sheep.berlios.de> <4A9FB022.2060203@bug-br.org.br> <20090904015327.390.1@knochen-vm.localdomain> <4AA103AC.2040006@bug-br.org.br> <20090904200056.453.1@bepc.1252086284.fake> <4AA15817.5090708@haikuzone.net> <507d86c0909041351h77aacb00jf86c8b353a2d2459@mail.gmail.com> <507d86c0909041408s7f4266ebq6dfc4e7107806532@mail.gmail.com> Message-ID: On Fri, Sep 4, 2009 at 5:08 PM, Niels Reedijk wrote: > > I mean here that there is a consensus that this does not fit in what > is meant by a bug fix, but that it is nevertheless desirable changeset > for the alpha. I understand your desire to try to accomodate for any > future changesets of this nature, but I think it is probably more > time-consuming for developers to take the time to structure future > non-bugfix pro-alpha changesets along a new set of guidelines for > these types of changes, rather than keep on deciding on them on a case > by case basis. Honestly I probably just put into words the already unspoken guidelines being used at the moment by most Haiku developers. I don't think that adds any time-consuming burdens, but long email threads like certainly are time-consuming for everyone to read and respond to. Of course I'm just making it worse, so this will probably be my last message ;) > So yes, common sense is good. It is like the US supreme court's > definition of obscenity. I can't give a definition of an alpha-ready > non-bugfix changeset, but I know one when I see one. That seems logical but common sense can be quite varied and I suspect no matter what any edge cases like this will probably result in some discussion. -- Regards, Ryan From bga at bug-br.org.br Sat Sep 5 00:09:02 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Fri, 04 Sep 2009 19:09:02 -0300 Subject: [Haiku-commits] r32928 - haiku/trunk/src/apps/people In-Reply-To: <1039644686-BeMail@kirilla> Message-ID: <1641800021-BeMail@Gaspode> On Fri, 04 Sep 2009 19:56:17 +0200 CEST, Jonas Sundstr?m said: > > Log: > > - When the associated people file is deleted, > > close the window instead of reseting it. > > Thanks Bruno! > > Nice improvement, the node monitoring. :) This ended up having a nice side effect. If you do some changes and then the backing file is deleted, People will automatically ask if you want to save changes before closing the window, which is nice. If there are no changes, the window will close right away. -Bruno From mmlr at mail.berlios.de Sat Sep 5 02:26:30 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 5 Sep 2009 02:26:30 +0200 Subject: [Haiku-commits] r32935 - haiku/trunk/src/system/kernel/device_manager Message-ID: <200909050026.n850QUfl013168@sheep.berlios.de> Author: mmlr Date: 2009-09-05 02:26:29 +0200 (Sat, 05 Sep 2009) New Revision: 32935 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32935&view=rev Modified: haiku/trunk/src/system/kernel/device_manager/IORequest.cpp Log: When deleting all subrequests the pending children count should probably be reset as well. Modified: haiku/trunk/src/system/kernel/device_manager/IORequest.cpp =================================================================== --- haiku/trunk/src/system/kernel/device_manager/IORequest.cpp 2009-09-04 21:02:56 UTC (rev 32934) +++ haiku/trunk/src/system/kernel/device_manager/IORequest.cpp 2009-09-05 00:26:29 UTC (rev 32935) @@ -736,6 +736,7 @@ { while (IORequestChunk* chunk = fChildren.RemoveHead()) delete chunk; + fPendingChildren = 0; } From mmlr at mail.berlios.de Sat Sep 5 03:16:59 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 5 Sep 2009 03:16:59 +0200 Subject: [Haiku-commits] r32936 - haiku/trunk/src/system/kernel/device_manager Message-ID: <200909050116.n851GxXj026599@sheep.berlios.de> Author: mmlr Date: 2009-09-05 03:16:56 +0200 (Sat, 05 Sep 2009) New Revision: 32936 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32936&view=rev Modified: haiku/trunk/src/system/kernel/device_manager/IORequest.cpp haiku/trunk/src/system/kernel/device_manager/IORequest.h Log: Give an IORequest user the possibility to suppress child finish notifications. This allows for synchronous uses where subrequests are forked off and waited on. Modified: haiku/trunk/src/system/kernel/device_manager/IORequest.cpp =================================================================== --- haiku/trunk/src/system/kernel/device_manager/IORequest.cpp 2009-09-05 00:26:29 UTC (rev 32935) +++ haiku/trunk/src/system/kernel/device_manager/IORequest.cpp 2009-09-05 01:16:56 UTC (rev 32936) @@ -653,7 +653,8 @@ fTeam = thread->team->id; fThread = thread->id; fIsWrite = write; - fPartialTransfer = 0; + fPartialTransfer = false; + fSuppressChildNotifications = false; // these are for iteration fVecIndex = 0; @@ -936,7 +937,7 @@ if (status != B_OK && fStatus == 1) fStatus = status; - if (--fPendingChildren > 0) + if (--fPendingChildren > 0 || fSuppressChildNotifications) return; // last child finished @@ -973,6 +974,13 @@ void +IORequest::SetSuppressChildNotifications(bool suppress) +{ + fSuppressChildNotifications = suppress; +} + + +void IORequest::Advance(size_t bySize) { TRACE("IORequest::Advance(%lu): remaining: %lu -> %lu\n", bySize, Modified: haiku/trunk/src/system/kernel/device_manager/IORequest.h =================================================================== --- haiku/trunk/src/system/kernel/device_manager/IORequest.h 2009-09-05 00:26:29 UTC (rev 32935) +++ haiku/trunk/src/system/kernel/device_manager/IORequest.h 2009-09-05 01:16:56 UTC (rev 32936) @@ -264,6 +264,10 @@ void SetTransferredBytes(bool partialTransfer, size_t transferredBytes); + void SetSuppressChildNotifications(bool suppress); + bool SuppressChildNotifications() const + { return fSuppressChildNotifications; } + bool IsWrite() const { return fIsWrite; } bool IsRead() const { return !fIsWrite; } team_id Team() const { return fTeam; } @@ -325,6 +329,7 @@ thread_id fThread; bool fIsWrite; bool fPartialTransfer; + bool fSuppressChildNotifications; io_request_finished_callback fFinishedCallback; void* fFinishedCookie; From mmlr at mail.berlios.de Sat Sep 5 03:54:42 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 5 Sep 2009 03:54:42 +0200 Subject: [Haiku-commits] r32937 - haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay Message-ID: <200909050154.n851sglU032083@sheep.berlios.de> Author: mmlr Date: 2009-09-05 03:54:40 +0200 (Sat, 05 Sep 2009) New Revision: 32937 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32937&view=rev Modified: haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp Log: * Implement attribute support in write_overlay. It mostly uses the same backends as the other node operations. * Differentiate between data and metadata modification, so that changes to attributes or stat fields (other than size) dont't prevent direct IO relay. * Suppress child finish notifications when sending subrequests to the underlaying filesystem. Otherwise the request can be gone by the time we try to complete it. * Fix offsets used for IORequest::CopyData(). * Some refactoring. * Added locking. With that a write_overlay can be put on attribute enabled filesystems to either make them writeable or snapshot them. This allows for example for a working BFS based LiveCD. Modified: haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-05 01:16:56 UTC (rev 32936) +++ haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-05 01:54:40 UTC (rev 32937) @@ -13,6 +13,7 @@ #include #include +#include #include #include @@ -46,6 +47,7 @@ class OverlayInode; struct open_cookie { + OverlayInode * node; int open_mode; void * super_cookie; }; @@ -59,6 +61,7 @@ struct overlay_dirent { ino_t inode_number; char * name; + OverlayInode * node; // only for attributes void remove_and_dispose(fs_volume *volume, ino_t directoryInode) { @@ -68,6 +71,14 @@ free(name); free(this); } + + void dispose_attribute(fs_volume *volume, ino_t fileInode) + { + notify_attribute_changed(volume->id, fileInode, name, + B_ATTR_REMOVED); + free(name); + free(this); + } }; @@ -100,20 +111,32 @@ OverlayInode(OverlayVolume *volume, fs_vnode *superVnode, ino_t inodeNumber, OverlayInode *parentDir = NULL, - const char *name = NULL, mode_t mode = 0); + const char *name = NULL, mode_t mode = 0, + bool attribute = false, + type_code attributeType = 0); ~OverlayInode(); status_t InitCheck(); + bool Lock() { return recursive_lock_lock(&fLock) == B_OK; } + void Unlock() { recursive_lock_unlock(&fLock); } + bool IsVirtual() { return fIsVirtual; } bool IsModified() { return fIsModified; } + bool IsDataModified() { return fIsDataModified; } + bool IsAttribute() { return fIsAttribute; } fs_volume * Volume() { return fVolume->Volume(); } fs_volume * SuperVolume() { return fVolume->SuperVolume(); } + + void SetSuperVnode(fs_vnode *superVnode); fs_vnode * SuperVnode() { return &fSuperVnode; } + + void SetInodeNumber(ino_t inodeNumber); ino_t InodeNumber() { return fInodeNumber; } void SetModified(); + void SetDataModified(); void CreateCache(); void SetParentDir(OverlayInode *parentDir); @@ -122,6 +145,9 @@ bool IsNonEmptyDirectory(); status_t Lookup(const char *name, ino_t *inodeNumber); + status_t LookupAttribute(const char *name, + OverlayInode **node); + void SetName(const char *name); status_t GetName(char *buffer, size_t bufferSize); @@ -129,7 +155,9 @@ status_t WriteStat(const struct stat *stat, uint32 statMask); status_t Create(const char *name, int openMode, int perms, - void **cookie, ino_t *newInodeNumber); + void **cookie, ino_t *newInodeNumber, + bool attribute = false, + type_code attributeType = 0); status_t Open(int openMode, void **cookie); status_t Close(void *cookie); status_t FreeCookie(void *cookie); @@ -146,28 +174,34 @@ status_t CreateDir(const char *name, int perms); status_t RemoveDir(const char *name); - status_t OpenDir(void **cookie); + status_t OpenDir(void **cookie, bool attribute = false); status_t CloseDir(void *cookie); status_t FreeDirCookie(void *cookie); status_t ReadDir(void *cookie, struct dirent *buffer, - size_t bufferSize, uint32 *num); + size_t bufferSize, uint32 *num, + bool attribute = false); status_t RewindDir(void *cookie); status_t CreateSymlink(const char *name, const char *path, int mode); status_t ReadSymlink(char *buffer, size_t *bufferSize); - status_t AddEntry(overlay_dirent *entry); + status_t AddEntry(overlay_dirent *entry, + bool attribute = false); status_t RemoveEntry(const char *name, - overlay_dirent **entry); + overlay_dirent **entry, bool attribute = false); private: void _TrimBuffers(); + status_t _PopulateStat(); status_t _PopulateDirents(); + status_t _PopulateAttributeDirents(); status_t _CreateCommon(const char *name, int type, int perms, - ino_t *newInodeNumber, OverlayInode **node); + ino_t *newInodeNumber, OverlayInode **node, + bool attribute, type_code attributeType); + recursive_lock fLock; OverlayVolume * fVolume; OverlayInode * fParentDir; const char * fName; @@ -177,11 +211,16 @@ off_t fOriginalNodeLength; overlay_dirent ** fDirents; uint32 fDirentCount; + overlay_dirent ** fAttributeDirents; + uint32 fAttributeDirentCount; struct stat fStat; bool fHasStat; bool fHasDirents; + bool fHasAttributeDirents; bool fIsVirtual; + bool fIsAttribute; bool fIsModified; + bool fIsDataModified; void * fFileCache; }; @@ -205,7 +244,8 @@ OverlayInode::OverlayInode(OverlayVolume *volume, fs_vnode *superVnode, - ino_t inodeNumber, OverlayInode *parentDir, const char *name, mode_t mode) + ino_t inodeNumber, OverlayInode *parentDir, const char *name, mode_t mode, + bool attribute, type_code attributeType) : fVolume(volume), fParentDir(parentDir), fName(name), @@ -214,14 +254,20 @@ fOriginalNodeLength(-1), fDirents(NULL), fDirentCount(0), + fAttributeDirents(NULL), + fAttributeDirentCount(0), fHasStat(false), fHasDirents(false), + fHasAttributeDirents(false), fIsVirtual(superVnode == NULL), + fIsAttribute(attribute), fIsModified(false), + fIsDataModified(false), fFileCache(NULL) { TRACE("inode created %lld\n", fInodeNumber); + recursive_lock_init(&fLock, "write overlay inode lock"); if (superVnode != NULL) fSuperVnode = *superVnode; else { @@ -236,7 +282,7 @@ fStat.st_blksize = 1024; fStat.st_atime = fStat.st_mtime = fStat.st_ctime = fStat.st_crtime = time(NULL); - fStat.st_type = 0; + fStat.st_type = attributeType; fHasStat = true; } } @@ -255,9 +301,19 @@ element = next; } - for (uint32 i = 0; i < fDirentCount; i++) + for (uint32 i = 0; i < fDirentCount; i++) { + free(fDirents[i]->name); free(fDirents[i]); + } free(fDirents); + + for (uint32 i = 0; i < fAttributeDirentCount; i++) { + free(fAttributeDirents[i]->name); + free(fAttributeDirents[i]); + } + free(fAttributeDirents); + + recursive_lock_destroy(&fLock); } @@ -269,8 +325,29 @@ void +OverlayInode::SetSuperVnode(fs_vnode *superVnode) +{ + RecursiveLocker locker(fLock); + fSuperVnode = *superVnode; +} + + +void +OverlayInode::SetInodeNumber(ino_t inodeNumber) +{ + RecursiveLocker locker(fLock); + fInodeNumber = inodeNumber; +} + + +void OverlayInode::SetModified() { + if (fIsAttribute) { + fIsModified = true; + return; + } + // we must ensure that a modified node never get's put, as we cannot get it // from the underlying filesystem, so we get an additional reference here // and deliberately leak it @@ -282,6 +359,15 @@ void +OverlayInode::SetDataModified() +{ + fIsDataModified = true; + if (!fIsModified) + SetModified(); +} + + +void OverlayInode::CreateCache() { if (!S_ISDIR(fStat.st_mode) && !S_ISLNK(fStat.st_mode)) { @@ -295,6 +381,7 @@ void OverlayInode::SetParentDir(OverlayInode *parentDir) { + RecursiveLocker locker(fLock); fParentDir = parentDir; if (fHasDirents && fDirentCount >= 2) fDirents[1]->inode_number = parentDir->InodeNumber(); @@ -304,8 +391,9 @@ bool OverlayInode::IsNonEmptyDirectory() { + RecursiveLocker locker(fLock); if (!fHasStat) - ReadStat(NULL); + _PopulateStat(); if (!S_ISDIR(fStat.st_mode)) return false; @@ -320,12 +408,14 @@ status_t OverlayInode::Lookup(const char *name, ino_t *inodeNumber) { + RecursiveLocker locker(fLock); if (!fHasDirents) _PopulateDirents(); for (uint32 i = 0; i < fDirentCount; i++) { if (strcmp(fDirents[i]->name, name) == 0) { *inodeNumber = fDirents[i]->inode_number; + locker.Unlock(); OverlayInode *node = NULL; status_t result = get_vnode(Volume(), *inodeNumber, @@ -340,9 +430,44 @@ } +status_t +OverlayInode::LookupAttribute(const char *name, OverlayInode **node) +{ + RecursiveLocker locker(fLock); + if (!fHasAttributeDirents) + _PopulateAttributeDirents(); + + for (uint32 i = 0; i < fAttributeDirentCount; i++) { + overlay_dirent *dirent = fAttributeDirents[i]; + if (strcmp(dirent->name, name) == 0) { + if (dirent->node == NULL) { + OverlayInode *newNode = new(std::nothrow) OverlayInode(fVolume, + SuperVnode(), fInodeNumber, NULL, dirent->name, 0, true, 0); + if (newNode == NULL) + return B_NO_MEMORY; + + status_t result = newNode->InitCheck(); + if (result != B_OK) { + delete newNode; + return result; + } + + dirent->node = newNode; + } + + *node = dirent->node; + return B_OK; + } + } + + return B_ENTRY_NOT_FOUND; +} + + void OverlayInode::SetName(const char *name) { + RecursiveLocker locker(fLock); fName = name; if (!fIsModified) SetModified(); @@ -352,12 +477,13 @@ status_t OverlayInode::GetName(char *buffer, size_t bufferSize) { + RecursiveLocker locker(fLock); if (fName != NULL) { strlcpy(buffer, fName, bufferSize); return B_OK; } - if (fIsVirtual) + if (fIsVirtual || fIsAttribute) return B_UNSUPPORTED; if (fSuperVnode.ops->get_vnode_name == NULL) @@ -371,21 +497,10 @@ status_t OverlayInode::ReadStat(struct stat *stat) { - if (!fHasStat) { - if (fSuperVnode.ops->read_stat == NULL) - return B_UNSUPPORTED; + RecursiveLocker locker(fLock); + if (!fHasStat) + _PopulateStat(); - status_t result = fSuperVnode.ops->read_stat(SuperVolume(), - &fSuperVnode, &fStat); - if (result != B_OK) - return result; - - fHasStat = true; - } - - if (stat == NULL) - return B_OK; - memcpy(stat, &fStat, sizeof(struct stat)); stat->st_blocks = (stat->st_size + stat->st_blksize - 1) / stat->st_blksize; return B_OK; @@ -395,12 +510,20 @@ status_t OverlayInode::WriteStat(const struct stat *stat, uint32 statMask) { + if (fIsAttribute) + return B_UNSUPPORTED; + + RecursiveLocker locker(fLock); if (!fHasStat) - ReadStat(NULL); + _PopulateStat(); if (statMask & B_STAT_SIZE) { - fStat.st_size = stat->st_size; - _TrimBuffers(); + if (fStat.st_size != stat->st_size) { + fStat.st_size = stat->st_size; + if (!fIsDataModified) + SetDataModified(); + _TrimBuffers(); + } } if (statMask & B_STAT_MODE) @@ -431,11 +554,11 @@ status_t OverlayInode::Create(const char *name, int openMode, int perms, void **cookie, - ino_t *newInodeNumber) + ino_t *newInodeNumber, bool attribute, type_code attributeType) { OverlayInode *newNode = NULL; - status_t result = _CreateCommon(name, S_IFREG, perms, newInodeNumber, - &newNode); + status_t result = _CreateCommon(name, attribute ? S_ATTR : S_IFREG, perms, + newInodeNumber, &newNode, attribute, attributeType); if (result != B_OK) return result; @@ -446,14 +569,16 @@ status_t OverlayInode::Open(int openMode, void **_cookie) { + RecursiveLocker locker(fLock); if (!fHasStat) - ReadStat(NULL); + _PopulateStat(); open_cookie *cookie = (open_cookie *)malloc(sizeof(open_cookie)); if (cookie == NULL) return B_NO_MEMORY; cookie->open_mode = openMode; + cookie->node = this; *_cookie = cookie; if (fIsVirtual) { @@ -465,34 +590,50 @@ return B_OK; } - if (fSuperVnode.ops->open == NULL) + if ((fIsAttribute && fSuperVnode.ops->open_attr == NULL) + || (!fIsAttribute && fSuperVnode.ops->open == NULL)) return B_UNSUPPORTED; - if (fOriginalNodeLength < 0) { - struct stat stat; - status_t result = fSuperVnode.ops->read_stat(SuperVolume(), - &fSuperVnode, &stat); - if (result != B_OK) - return result; - - fOriginalNodeLength = stat.st_size; + if (openMode & O_TRUNC) { + if (fStat.st_size != 0) { + fStat.st_size = 0; + _TrimBuffers(); + if (!fIsDataModified) + SetDataModified(); + } } - if (openMode & O_TRUNC) { - fStat.st_size = 0; - _TrimBuffers(); - if (!fIsModified) - SetModified(); + openMode &= ~(O_RDWR | O_WRONLY | O_TRUNC | O_CREAT); + status_t result; + if (fIsAttribute) { + result = fSuperVnode.ops->open_attr(SuperVolume(), &fSuperVnode, + fName, openMode, &cookie->super_cookie); + } else { + result = fSuperVnode.ops->open(SuperVolume(), &fSuperVnode, + openMode, &cookie->super_cookie); } - openMode &= ~(O_RDWR | O_WRONLY | O_TRUNC | O_CREAT); - status_t result = fSuperVnode.ops->open(SuperVolume(), &fSuperVnode, - openMode, &cookie->super_cookie); if (result != B_OK) { free(cookie); return result; } + if (fOriginalNodeLength < 0) { + struct stat stat; + if (fIsAttribute) { + result = fSuperVnode.ops->read_attr_stat(SuperVolume(), + &fSuperVnode, cookie->super_cookie, &stat); + } else { + result = fSuperVnode.ops->read_stat(SuperVolume(), + &fSuperVnode, &stat); + } + + if (result != B_OK) + return result; + + fOriginalNodeLength = stat.st_size; + } + return B_OK; } @@ -504,6 +645,11 @@ return B_OK; open_cookie *cookie = (open_cookie *)_cookie; + if (fIsAttribute) { + return fSuperVnode.ops->close_attr(SuperVolume(), &fSuperVnode, + cookie->super_cookie); + } + return fSuperVnode.ops->close(SuperVolume(), &fSuperVnode, cookie->super_cookie); } @@ -515,8 +661,13 @@ status_t result = B_OK; open_cookie *cookie = (open_cookie *)_cookie; if (!fIsVirtual) { - result = fSuperVnode.ops->free_cookie(SuperVolume(), - &fSuperVnode, cookie->super_cookie); + if (fIsAttribute) { + result = fSuperVnode.ops->free_attr_cookie(SuperVolume(), + &fSuperVnode, cookie->super_cookie); + } else { + result = fSuperVnode.ops->free_cookie(SuperVolume(), + &fSuperVnode, cookie->super_cookie); + } } free(cookie); @@ -528,6 +679,7 @@ OverlayInode::Read(void *_cookie, off_t position, void *buffer, size_t *length, bool readPages, IORequest *ioRequest) { + RecursiveLocker locker(fLock); if (position >= fStat.st_size) { *length = 0; return B_OK; @@ -569,6 +721,8 @@ if (result != B_OK) return result; + bool wereSuppressed = ioRequest->SuppressChildNotifications(); + ioRequest->SetSuppressChildNotifications(true); result = fSuperVnode.ops->io(SuperVolume(), &fSuperVnode, superCookie, subRequest); if (result != B_OK) @@ -576,6 +730,10 @@ result = subRequest->Wait(0, 0); readLength = subRequest->TransferredBytes(); + ioRequest->SetSuppressChildNotifications(wereSuppressed); + } else if (fIsAttribute) { + result = fSuperVnode.ops->read_attr(SuperVolume(), &fSuperVnode, + superCookie, position, pointer, &readLength); } else { result = fSuperVnode.ops->read(SuperVolume(), &fSuperVnode, superCookie, position, pointer, &readLength); @@ -614,8 +772,8 @@ const void *source = element->buffer + (position - element->position); if (ioRequest != NULL) { - ioRequest->CopyData(source, (addr_t)pointer - (addr_t)buffer, - copyLength); + ioRequest->CopyData(source, ioRequest->Offset() + + ((addr_t)pointer - (addr_t)buffer), copyLength); } else memcpy(pointer, source, copyLength); @@ -635,14 +793,15 @@ OverlayInode::Write(void *_cookie, off_t position, const void *buffer, size_t length, IORequest *ioRequest) { + RecursiveLocker locker(fLock); if (_cookie != NULL) { open_cookie *cookie = (open_cookie *)_cookie; if (cookie->open_mode & O_APPEND) position = fStat.st_size; } - if (!fIsModified) - SetModified(); + if (!fIsDataModified) + SetDataModified(); // find insertion point write_buffer **link = &fWriteBuffers; @@ -676,13 +835,18 @@ // other chunk completely covers us, just copy void *target = other->buffer + (newPosition - other->position); if (ioRequest != NULL) - ioRequest->CopyData(0, target, length); + ioRequest->CopyData(ioRequest->Offset(), target, length); else memcpy(target, buffer, length); fStat.st_mtime = time(NULL); - notify_stat_changed(SuperVolume()->id, fInodeNumber, - B_STAT_MODIFICATION_TIME); + if (fIsAttribute) { + notify_attribute_changed(SuperVolume()->id, fInodeNumber, + fName, B_ATTR_CHANGED); + } else { + notify_stat_changed(SuperVolume()->id, fInodeNumber, + B_STAT_MODIFICATION_TIME); + } return B_OK; } @@ -735,8 +899,15 @@ memcpy(target, buffer, length); fStat.st_mtime = time(NULL); - notify_stat_changed(SuperVolume()->id, fInodeNumber, - B_STAT_MODIFICATION_TIME | (sizeChanged ? B_STAT_SIZE : 0)); + + if (fIsAttribute) { + notify_attribute_changed(SuperVolume()->id, fInodeNumber, fName, + B_ATTR_CHANGED); + } else { + notify_stat_changed(SuperVolume()->id, fInodeNumber, + B_STAT_MODIFICATION_TIME | (sizeChanged ? B_STAT_SIZE : 0)); + } + return B_OK; } @@ -772,7 +943,7 @@ status_t OverlayInode::CreateDir(const char *name, int perms) { - return _CreateCommon(name, S_IFDIR, perms, NULL, NULL); + return _CreateCommon(name, S_IFDIR, perms, NULL, NULL, false, 0); } @@ -784,10 +955,13 @@ status_t -OverlayInode::OpenDir(void **cookie) +OverlayInode::OpenDir(void **cookie, bool attribute) { - if (!fHasDirents) + RecursiveLocker locker(fLock); + if (!attribute && !fHasDirents) _PopulateDirents(); + else if (attribute && !fHasAttributeDirents) + _PopulateAttributeDirents(); open_dir_cookie *dirCookie = (open_dir_cookie *)malloc( sizeof(open_dir_cookie)); @@ -817,15 +991,19 @@ status_t OverlayInode::ReadDir(void *cookie, struct dirent *buffer, size_t bufferSize, - uint32 *num) + uint32 *num, bool attribute) { + RecursiveLocker locker(fLock); + uint32 direntCount = attribute ? fAttributeDirentCount : fDirentCount; + overlay_dirent **dirents = attribute ? fAttributeDirents : fDirents; + open_dir_cookie *dirCookie = (open_dir_cookie *)cookie; - if (dirCookie->index >= fDirentCount) { + if (dirCookie->index >= direntCount) { *num = 0; return B_OK; } - overlay_dirent *dirent = fDirents[dirCookie->index++]; + overlay_dirent *dirent = dirents[dirCookie->index++]; size_t nameLength = MIN(strlen(dirent->name), bufferSize - sizeof(struct dirent)) + 1; @@ -855,7 +1033,8 @@ { OverlayInode *newNode = NULL; // TODO: find out why mode is ignored - status_t result = _CreateCommon(name, S_IFLNK, 0777, NULL, &newNode); + status_t result = _CreateCommon(name, S_IFLNK, 0777, NULL, &newNode, + false, 0); if (result != B_OK) return result; @@ -882,22 +1061,32 @@ status_t -OverlayInode::AddEntry(overlay_dirent *entry) +OverlayInode::AddEntry(overlay_dirent *entry, bool attribute) { - if (!fHasDirents) + RecursiveLocker locker(fLock); + if (!attribute && !fHasDirents) _PopulateDirents(); + else if (attribute && !fHasAttributeDirents) + _PopulateAttributeDirents(); - status_t result = RemoveEntry(entry->name, NULL); + status_t result = RemoveEntry(entry->name, NULL, attribute); if (result != B_OK && result != B_ENTRY_NOT_FOUND) return B_FILE_EXISTS; - overlay_dirent **newDirents = (overlay_dirent **)realloc(fDirents, - sizeof(overlay_dirent *) * (fDirentCount + 1)); + overlay_dirent **newDirents = (overlay_dirent **)realloc( + attribute ? fAttributeDirents : fDirents, + sizeof(overlay_dirent *) + * ((attribute ? fAttributeDirentCount : fDirentCount) + 1)); if (newDirents == NULL) return B_NO_MEMORY; - fDirents = newDirents; - fDirents[fDirentCount++] = entry; + if (attribute) { + fAttributeDirents = newDirents; + fAttributeDirents[fAttributeDirentCount++] = entry; + } else { + fDirents = newDirents; + fDirents[fDirentCount++] = entry; + } if (!fIsModified) SetModified(); @@ -907,15 +1096,21 @@ status_t -OverlayInode::RemoveEntry(const char *name, overlay_dirent **_entry) +OverlayInode::RemoveEntry(const char *name, overlay_dirent **_entry, + bool attribute) { - if (!fHasDirents) + RecursiveLocker locker(fLock); + if (!attribute && !fHasDirents) _PopulateDirents(); + else if (attribute && !fHasAttributeDirents) + _PopulateAttributeDirents(); - for (uint32 i = 0; i < fDirentCount; i++) { - overlay_dirent *entry = fDirents[i]; + uint32 direntCount = attribute ? fAttributeDirentCount : fDirentCount; + overlay_dirent **dirents = attribute ? fAttributeDirents : fDirents; + for (uint32 i = 0; i < direntCount; i++) { + overlay_dirent *entry = dirents[i]; if (strcmp(entry->name, name) == 0) { - if (_entry == NULL) { + if (_entry == NULL && !attribute) { // check for non-empty directories when trying // to dispose the entry OverlayInode *node = NULL; @@ -932,12 +1127,18 @@ return result; } - for (uint32 j = i + 1; j < fDirentCount; j++) - fDirents[j - 1] = fDirents[j]; - fDirentCount--; + for (uint32 j = i + 1; j < direntCount; j++) + dirents[j - 1] = dirents[j]; + if (attribute) + fAttributeDirentCount--; + else + fDirentCount--; + if (_entry != NULL) *_entry = entry; + else if (attribute) + entry->dispose_attribute(Volume(), fInodeNumber); else entry->remove_and_dispose(Volume(), fInodeNumber); @@ -1004,6 +1205,45 @@ status_t +OverlayInode::_PopulateStat() +{ + if (fHasStat) + return B_OK; + + fHasStat = true; + if (fIsAttribute) { + if (fName == NULL || fSuperVnode.ops->open_attr == NULL + || fSuperVnode.ops->read_attr_stat == NULL) + return B_UNSUPPORTED; + + void *cookie = NULL; + status_t result = fSuperVnode.ops->open_attr(SuperVolume(), + &fSuperVnode, fName, O_RDONLY, &cookie); + if (result != B_OK) + return result; + + result = fSuperVnode.ops->read_attr_stat(SuperVolume(), &fSuperVnode, + cookie, &fStat); + + if (fSuperVnode.ops->close_attr != NULL) + fSuperVnode.ops->close_attr(SuperVolume(), &fSuperVnode, cookie); + + if (fSuperVnode.ops->free_attr_cookie != NULL) { + fSuperVnode.ops->free_attr_cookie(SuperVolume(), &fSuperVnode, + cookie); + } + + return B_OK; + } + + if (fSuperVnode.ops->read_stat == NULL) + return B_UNSUPPORTED; + + return fSuperVnode.ops->read_stat(SuperVolume(), &fSuperVnode, &fStat); +} + + +status_t OverlayInode::_PopulateDirents() { if (fHasDirents) @@ -1105,36 +1345,124 @@ status_t +OverlayInode::_PopulateAttributeDirents() +{ + if (fHasAttributeDirents) + return B_OK; + + fHasAttributeDirents = true; + if (fIsVirtual || fSuperVnode.ops->open_attr_dir == NULL + || fSuperVnode.ops->read_attr_dir == NULL) + return B_OK; + + // we don't really care about errors from here on + void *superCookie = NULL; + status_t result = fSuperVnode.ops->open_attr_dir(SuperVolume(), + &fSuperVnode, &superCookie); + if (result != B_OK) + return B_OK; + + size_t bufferSize = sizeof(struct dirent) + B_FILE_NAME_LENGTH; + struct dirent *buffer = (struct dirent *)malloc(bufferSize); + if (buffer == NULL) + goto close_attr_dir; + + while (true) { + uint32 num = 1; + result = fSuperVnode.ops->read_attr_dir(SuperVolume(), + &fSuperVnode, superCookie, buffer, bufferSize, &num); + if (result != B_OK || num == 0) + break; + + overlay_dirent **newDirents = (overlay_dirent **)realloc( + fAttributeDirents, sizeof(overlay_dirent *) + * (fAttributeDirentCount + num)); + if (newDirents == NULL) { + TRACE_ALWAYS("failed to allocate storage for attribute dirents\n"); + break; + } + + fAttributeDirents = newDirents; + struct dirent *dirent = buffer; + for (uint32 i = 0; i < num; i++) { + overlay_dirent *entry = (overlay_dirent *)malloc( + sizeof(overlay_dirent)); + if (entry == NULL) { + TRACE_ALWAYS("failed to allocate storage for attr dirent\n"); + break; + } + + entry->node = NULL; + entry->inode_number = fInodeNumber; + entry->name = strdup(dirent->d_name); + if (entry->name == NULL) { + TRACE_ALWAYS("failed to duplicate dirent entry name\n"); + free(entry); + break; + } + + fAttributeDirents[fAttributeDirentCount++] = entry; + dirent = (struct dirent *)((uint8 *)dirent + dirent->d_reclen); + } + } + + free(buffer); + +close_attr_dir: + if (fSuperVnode.ops->close_attr_dir != NULL) { + fSuperVnode.ops->close_attr_dir(SuperVolume(), &fSuperVnode, + superCookie); + } + + if (fSuperVnode.ops->free_attr_dir_cookie != NULL) { + fSuperVnode.ops->free_attr_dir_cookie(SuperVolume(), &fSuperVnode, + superCookie); + } + + return B_OK; +} + + +status_t OverlayInode::_CreateCommon(const char *name, int type, int perms, - ino_t *newInodeNumber, OverlayInode **_node) + ino_t *newInodeNumber, OverlayInode **_node, bool attribute, + type_code attributeType) { + RecursiveLocker locker(fLock); if (!fHasStat) - ReadStat(NULL); + _PopulateStat(); - if (!S_ISDIR(fStat.st_mode)) + if (!attribute && !S_ISDIR(fStat.st_mode)) return B_NOT_A_DIRECTORY; + locker.Unlock(); + overlay_dirent *entry = (overlay_dirent *)malloc(sizeof(overlay_dirent)); if (entry == NULL) return B_NO_MEMORY; + entry->node = NULL; entry->name = strdup(name); if (entry->name == NULL) { free(entry); return B_NO_MEMORY; } - entry->inode_number = fVolume->BuildInodeNumber(); + if (attribute) + entry->inode_number = fInodeNumber; + else + entry->inode_number = fVolume->BuildInodeNumber(); OverlayInode *node = new(std::nothrow) OverlayInode(fVolume, NULL, - entry->inode_number, this, entry->name, (perms & S_IUMSK) | type); + entry->inode_number, this, entry->name, (perms & S_IUMSK) | type + | (attribute ? S_ATTR : 0), attribute, attributeType); if (node == NULL) { free(entry->name); free(entry); return B_NO_MEMORY; } - status_t result = AddEntry(entry); + status_t result = AddEntry(entry, attribute); if (result != B_OK) { free(entry->name); free(entry); @@ -1142,24 +1470,35 @@ return result; } - result = publish_overlay_vnode(fVolume->Volume(), entry->inode_number, - node, type); - if (result != B_OK) { - RemoveEntry(entry->name, NULL); - delete node; - return result; - } + if (!attribute) { + result = publish_overlay_vnode(fVolume->Volume(), entry->inode_number, + node, type); + if (result != B_OK) { + RemoveEntry(entry->name, NULL); + delete node; + return result; + } + } else + entry->node = node; - node->SetModified(); - node->CreateCache(); + node->Lock(); + node->SetDataModified(); + if (!attribute) + node->CreateCache(); + node->Unlock(); if (newInodeNumber != NULL) *newInodeNumber = entry->inode_number; if (_node != NULL) *_node = node; - notify_entry_created(SuperVolume()->id, fInodeNumber, entry->name, - entry->inode_number); + if (attribute) { + notify_attribute_changed(SuperVolume()->id, fInodeNumber, entry->name, + B_ATTR_CREATED); + } else { + notify_entry_created(SuperVolume()->id, fInodeNumber, entry->name, + entry->inode_number); + } [... truncated: 218 lines follow ...] From mmlr at mail.berlios.de Sat Sep 5 04:09:28 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 5 Sep 2009 04:09:28 +0200 Subject: [Haiku-commits] r32938 - haiku/branches/releases/r1alpha1/src/system/kernel/device_manager Message-ID: <200909050209.n8529Saq000713@sheep.berlios.de> Author: mmlr Date: 2009-09-05 04:09:26 +0200 (Sat, 05 Sep 2009) New Revision: 32938 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32938&view=rev Modified: haiku/branches/releases/r1alpha1/src/system/kernel/device_manager/IORequest.cpp haiku/branches/releases/r1alpha1/src/system/kernel/device_manager/IORequest.h Log: Merging r32936 from trunk as it is needed to fix a crashing bug in write_overlay. Modified: haiku/branches/releases/r1alpha1/src/system/kernel/device_manager/IORequest.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/system/kernel/device_manager/IORequest.cpp 2009-09-05 01:54:40 UTC (rev 32937) +++ haiku/branches/releases/r1alpha1/src/system/kernel/device_manager/IORequest.cpp 2009-09-05 02:09:26 UTC (rev 32938) @@ -653,7 +653,8 @@ fTeam = thread->team->id; fThread = thread->id; fIsWrite = write; - fPartialTransfer = 0; + fPartialTransfer = false; + fSuppressChildNotifications = false; // these are for iteration fVecIndex = 0; @@ -935,7 +936,7 @@ if (status != B_OK && fStatus == 1) fStatus = status; - if (--fPendingChildren > 0) + if (--fPendingChildren > 0 || fSuppressChildNotifications) return; // last child finished @@ -972,6 +973,13 @@ void +IORequest::SetSuppressChildNotifications(bool suppress) +{ + fSuppressChildNotifications = suppress; +} + + +void IORequest::Advance(size_t bySize) { TRACE("IORequest::Advance(%lu): remaining: %lu -> %lu\n", bySize, Modified: haiku/branches/releases/r1alpha1/src/system/kernel/device_manager/IORequest.h =================================================================== --- haiku/branches/releases/r1alpha1/src/system/kernel/device_manager/IORequest.h 2009-09-05 01:54:40 UTC (rev 32937) +++ haiku/branches/releases/r1alpha1/src/system/kernel/device_manager/IORequest.h 2009-09-05 02:09:26 UTC (rev 32938) @@ -264,6 +264,10 @@ void SetTransferredBytes(bool partialTransfer, size_t transferredBytes); + void SetSuppressChildNotifications(bool suppress); + bool SuppressChildNotifications() const + { return fSuppressChildNotifications; } + bool IsWrite() const { return fIsWrite; } bool IsRead() const { return !fIsWrite; } team_id Team() const { return fTeam; } @@ -325,6 +329,7 @@ thread_id fThread; bool fIsWrite; bool fPartialTransfer; + bool fSuppressChildNotifications; io_request_finished_callback fFinishedCallback; void* fFinishedCookie; From mmlr at mail.berlios.de Sat Sep 5 04:11:47 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 5 Sep 2009 04:11:47 +0200 Subject: [Haiku-commits] r32939 - haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay Message-ID: <200909050211.n852BlW6000889@sheep.berlios.de> Author: mmlr Date: 2009-09-05 04:11:45 +0200 (Sat, 05 Sep 2009) New Revision: 32939 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32939&view=rev Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp Log: Apply crash fixes of r32937 from trunk only. Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-05 02:09:26 UTC (rev 32938) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-05 02:11:45 UTC (rev 32939) @@ -569,6 +569,8 @@ if (result != B_OK) return result; + bool wereSuppressed = ioRequest->SuppressChildNotifications(); + ioRequest->SetSuppressChildNotifications(true); result = fSuperVnode.ops->io(SuperVolume(), &fSuperVnode, superCookie, subRequest); if (result != B_OK) @@ -576,6 +578,7 @@ result = subRequest->Wait(0, 0); readLength = subRequest->TransferredBytes(); + ioRequest->SetSuppressChildNotifications(wereSuppressed); } else { result = fSuperVnode.ops->read(SuperVolume(), &fSuperVnode, superCookie, position, pointer, &readLength); @@ -614,8 +617,8 @@ const void *source = element->buffer + (position - element->position); if (ioRequest != NULL) { - ioRequest->CopyData(source, (addr_t)pointer - (addr_t)buffer, - copyLength); + ioRequest->CopyData(source, ioRequest->Offset() + + ((addr_t)pointer - (addr_t)buffer), copyLength); } else memcpy(pointer, source, copyLength); @@ -676,7 +679,7 @@ // other chunk completely covers us, just copy void *target = other->buffer + (newPosition - other->position); if (ioRequest != NULL) - ioRequest->CopyData(0, target, length); + ioRequest->CopyData(ioRequest->Offset(), target, length); else memcpy(target, buffer, length); From leavengood at mail.berlios.de Sat Sep 5 04:32:09 2009 From: leavengood at mail.berlios.de (leavengood at BerliOS) Date: Sat, 5 Sep 2009 04:32:09 +0200 Subject: [Haiku-commits] r32940 - haiku/branches/releases/r1alpha1/src/kits/tracker Message-ID: <200909050232.n852W9B3004795@sheep.berlios.de> Author: leavengood Date: 2009-09-05 04:32:07 +0200 (Sat, 05 Sep 2009) New Revision: 32940 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32940&view=rev Modified: haiku/branches/releases/r1alpha1/src/kits/tracker/SettingsViews.cpp haiku/branches/releases/r1alpha1/src/kits/tracker/TrackerSettings.cpp Log: Merging r32925 and r32934 with Tracker settings changes from trunk. Modified: haiku/branches/releases/r1alpha1/src/kits/tracker/SettingsViews.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/kits/tracker/SettingsViews.cpp 2009-09-05 02:11:45 UTC (rev 32939) +++ haiku/branches/releases/r1alpha1/src/kits/tracker/SettingsViews.cpp 2009-09-05 02:32:07 UTC (rev 32940) @@ -1190,9 +1190,9 @@ TrackerSettings settings; - if (settings.ShowVolumeSpaceBar()) { - settings.SetShowVolumeSpaceBar(false); - send_bool_notices(kShowVolumeSpaceBar, "ShowVolumeSpaceBar", false); + if (!settings.ShowVolumeSpaceBar()) { + settings.SetShowVolumeSpaceBar(true); + send_bool_notices(kShowVolumeSpaceBar, "ShowVolumeSpaceBar", true); } if (settings.UsedSpaceColor() != kDefaultUsedSpaceColor @@ -1213,7 +1213,7 @@ { TrackerSettings settings; - return settings.ShowVolumeSpaceBar() != false + return settings.ShowVolumeSpaceBar() != true || settings.UsedSpaceColor() != kDefaultUsedSpaceColor || settings.FreeSpaceColor() != kDefaultFreeSpaceColor || settings.WarningSpaceColor() != kDefaultWarningSpaceColor; Modified: haiku/branches/releases/r1alpha1/src/kits/tracker/TrackerSettings.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/kits/tracker/TrackerSettings.cpp 2009-09-05 02:11:45 UTC (rev 32939) +++ haiku/branches/releases/r1alpha1/src/kits/tracker/TrackerSettings.cpp 2009-09-05 02:32:07 UTC (rev 32940) @@ -191,7 +191,7 @@ Add(fDateOrderFormat = new ScalarValueSetting("DateOrderFormat", 2, "", "")); Add(f24HrClock = new BooleanValueSetting("24HrClock", false)); - Add(fShowVolumeSpaceBar = new BooleanValueSetting("ShowVolumeSpaceBar", false)); + Add(fShowVolumeSpaceBar = new BooleanValueSetting("ShowVolumeSpaceBar", true)); Add(fUsedSpaceColor = new HexScalarValueSetting("UsedSpaceColor", 0xc000cb00, "", "")); Add(fFreeSpaceColor = new HexScalarValueSetting("FreeSpaceColor", 0xc0ffffff, "", "")); From humdingerb at mail.berlios.de Sat Sep 5 14:40:13 2009 From: humdingerb at mail.berlios.de (humdingerb at mail.berlios.de) Date: Sat, 5 Sep 2009 14:40:13 +0200 Subject: [Haiku-commits] r32941 - in haiku/trunk/docs/userguide/en: . applications images/apps-images Message-ID: <200909051240.n85CeDZG026832@sheep.berlios.de> Author: humdingerb Date: 2009-09-05 14:40:08 +0200 (Sat, 05 Sep 2009) New Revision: 32941 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32941&view=rev Added: haiku/trunk/docs/userguide/en/images/apps-images/drivesetup-create.png haiku/trunk/docs/userguide/en/images/apps-images/drivesetup-initialize.png haiku/trunk/docs/userguide/en/images/apps-images/drivesetup.png Modified: haiku/trunk/docs/userguide/en/applications.html haiku/trunk/docs/userguide/en/applications/drivesetup.html Log: * Added DriveSetup documentation. What came with my last commit wasn't actually intended to be committed... :) +alphabranch Modified: haiku/trunk/docs/userguide/en/applications/drivesetup.html =================================================================== --- haiku/trunk/docs/userguide/en/applications/drivesetup.html 2009-09-05 02:32:07 UTC (rev 32940) +++ haiku/trunk/docs/userguide/en/applications/drivesetup.html 2009-09-05 12:40:08 UTC (rev 32941) @@ -46,11 +46,25 @@


    DriveSetup is a tool to create, delete and initialize partitions. At this time it can't resize or move existing partitions, so that you'll either need an unpartitioned volume (perhaps an external USB drive or another harddisk) or do the initial setup with a tool like the GParted LiveCD to provide the space for another partition.

    drivesetup.png -

    At the top is a graphical representation of all partitions inside the device chosen in the list below it. Besides a maximum of 4 primary partitions, each of those can contain a number of extended/logical partitions. You may have to expand such a list with the widget that appears in that case in front of that device to see the details of every logical partition.

    -

    You can mount and unmount volumes from the Partition menu.

    +

    At the top is a graphical representation of all partitions inside the device chosen in the list below it. Besides a maximum of 4 primary partitions, each of those can contain a number of extended/logical partitions. You may have to expand such a list with the +/- widget that appears in that case in front of the device to see the details of every logical partition.

    +

    You can select a partition from the list and mount and unmount them with the commands in the Partition menu or by pressing ALT M or ALT U.

    +

    You can also completely delete a partition with Partition|Delete.
    +Which brings us to this:

    +
    Dealing with creating, deleting or initializing partitions is very dangerous business. Always check twice to be sure you're working with the right one and always keep an up-to-date backup of your data in case something goes wrong!
    +

    +indexCreating a new partition

    +

    When you found unformatted space on a drive, like the above <empty>, you can create a new partition in this space with Partition|Create...(ALT C).

    +drivesetup-create.png +

    You're prompted with this dialog that lets you adjust the partition size and type. Choose Be File System if you want to use the partition for an Haiku installation or if you want to use all the interesting Haiku features with it, like attributes and queries. Note, that other operating systems might not be able to access such a partition.

    +

    Before you can use, or even mount the newly created partition, it has to be initialized with a filesystem.

    +

    +indexInitializing a partition

    +

    Only unmounted partitions can be initialized by using the Partition|Initialize menu.

    +drivesetup-initialize.png +

    Here you set the name for the partition and it's blocksize. 2048 bytes per block are recommended, but you can choose larger or smaller sizes if you have these very specific needs.

    - + Modified: haiku/trunk/docs/userguide/en/applications.html =================================================================== --- haiku/trunk/docs/userguide/en/applications.html 2009-09-05 02:32:07 UTC (rev 32940) +++ haiku/trunk/docs/userguide/en/applications.html 2009-09-05 12:40:08 UTC (rev 32941) @@ -86,7 +86,7 @@ iconDiskUsage  A tool to visualize a disk's memory usage. iconDriveSetup  - A harddisk partitioning tool. [still missing] + A harddisk partitioning tool. iconExpander  A tool to unpack common archives. iconIcon-O-Matic  Added: haiku/trunk/docs/userguide/en/images/apps-images/drivesetup-create.png =================================================================== (Binary files differ) Property changes on: haiku/trunk/docs/userguide/en/images/apps-images/drivesetup-create.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: haiku/trunk/docs/userguide/en/images/apps-images/drivesetup-initialize.png =================================================================== (Binary files differ) Property changes on: haiku/trunk/docs/userguide/en/images/apps-images/drivesetup-initialize.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: haiku/trunk/docs/userguide/en/images/apps-images/drivesetup.png =================================================================== (Binary files differ) Property changes on: haiku/trunk/docs/userguide/en/images/apps-images/drivesetup.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream From korli at mail.berlios.de Sat Sep 5 16:29:28 2009 From: korli at mail.berlios.de (korli at mail.berlios.de) Date: Sat, 5 Sep 2009 16:29:28 +0200 Subject: [Haiku-commits] r32942 - haiku/trunk/build/jam Message-ID: <200909051429.n85ETSYs008546@sheep.berlios.de> Author: korli Date: 2009-09-05 16:29:25 +0200 (Sat, 05 Sep 2009) New Revision: 32942 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32942&view=rev Modified: haiku/trunk/build/jam/OptionalPackages Log: patch OptionalPackages6.diff from ticket #4363 Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-09-05 12:40:08 UTC (rev 32941) +++ haiku/trunk/build/jam/OptionalPackages 2009-09-05 14:29:25 UTC (rev 32942) @@ -157,8 +157,8 @@ } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) { Echo "No optional package BePDF available for gcc4" ; } else { - InstallOptionalHaikuImagePackage BePDF-1.1.1b1.x86 - : $(baseURL)/BePDF-1.1.1b1.x86.zip + InstallOptionalHaikuImagePackage BePDF-1.1.1b2-r1a1-x86-gcc2-2009-09-03 + : $(baseURL)/BePDF-1.1.1b2-r1a1-x86-gcc2-2009-09-03.zip : apps ; AddSymlinkToHaikuImage home config be Applications @@ -684,8 +684,8 @@ : $(baseURL)/Pe-2.4.2-x86-gcc4-2009-08-04.zip ; } else { - InstallOptionalHaikuImagePackage Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-02 - : $(baseURL)/Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-02.zip + InstallOptionalHaikuImagePackage Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-04 + : $(baseURL)/Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-04.zip ; } From phoudoin at mail.berlios.de Sat Sep 5 16:37:08 2009 From: phoudoin at mail.berlios.de (phoudoin at mail.berlios.de) Date: Sat, 5 Sep 2009 16:37:08 +0200 Subject: [Haiku-commits] r32943 - haiku/trunk/src/add-ons/input_server/devices/mouse Message-ID: <200909051437.n85Eb8Ew009198@sheep.berlios.de> Author: phoudoin Date: 2009-09-05 16:37:06 +0200 (Sat, 05 Sep 2009) New Revision: 32943 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32943&view=rev Modified: haiku/trunk/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp Log: Mouse watching thread name computation wasn't following the same Upperize/Capitalize on the bus name than in keyboard one. "USB Keyboard" but "Usb Mouse". No functional change. Really. alphabranch it as you want. Modified: haiku/trunk/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp =================================================================== --- haiku/trunk/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp 2009-09-05 14:29:25 UTC (rev 32942) +++ haiku/trunk/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp 2009-09-05 14:37:06 UTC (rev 32943) @@ -308,6 +308,9 @@ if (name == "ps2") name = "PS/2"; + + if (name.Length() < 4) + name.ToUpper(); else name.Capitalize(); From anevilyak at mail.berlios.de Sat Sep 5 17:25:14 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Sat, 5 Sep 2009 17:25:14 +0200 Subject: [Haiku-commits] r32944 - haiku/trunk/build/jam Message-ID: <200909051525.n85FPESb014286@sheep.berlios.de> Author: anevilyak Date: 2009-09-05 17:25:12 +0200 (Sat, 05 Sep 2009) New Revision: 32944 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32944&view=rev Modified: haiku/trunk/build/jam/ReleaseBuildProfiles Log: Increase size of alpha images to 600MB. Fixes ticket #4420. +alphabranch Modified: haiku/trunk/build/jam/ReleaseBuildProfiles =================================================================== --- haiku/trunk/build/jam/ReleaseBuildProfiles 2009-09-05 14:37:06 UTC (rev 32943) +++ haiku/trunk/build/jam/ReleaseBuildProfiles 2009-09-05 15:25:12 UTC (rev 32944) @@ -9,7 +9,7 @@ HAIKU_ROOT_USER_REAL_NAME = "Yourself" ; AddGroupToHaikuImage party : 101 : user sshd ; HAIKU_IMAGE_HOST_NAME = shredder ; - HAIKU_IMAGE_SIZE = 500 ; + HAIKU_IMAGE_SIZE = 600 ; AddOptionalHaikuImagePackages BePDF Clockwerk Firefox Pe Vision VLC WonderBrush ; From anevilyak at mail.berlios.de Sat Sep 5 17:30:35 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Sat, 5 Sep 2009 17:30:35 +0200 Subject: [Haiku-commits] r32945 - haiku/branches/releases/r1alpha1/build/jam Message-ID: <200909051530.n85FUZKg014788@sheep.berlios.de> Author: anevilyak Date: 2009-09-05 17:30:35 +0200 (Sat, 05 Sep 2009) New Revision: 32945 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32945&view=rev Modified: haiku/branches/releases/r1alpha1/build/jam/ReleaseBuildProfiles Log: Merge r32944 from trunk. Modified: haiku/branches/releases/r1alpha1/build/jam/ReleaseBuildProfiles =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/ReleaseBuildProfiles 2009-09-05 15:25:12 UTC (rev 32944) +++ haiku/branches/releases/r1alpha1/build/jam/ReleaseBuildProfiles 2009-09-05 15:30:35 UTC (rev 32945) @@ -9,7 +9,7 @@ HAIKU_ROOT_USER_REAL_NAME = "Yourself" ; AddGroupToHaikuImage party : 101 : user sshd ; HAIKU_IMAGE_HOST_NAME = shredder ; - HAIKU_IMAGE_SIZE = 500 ; + HAIKU_IMAGE_SIZE = 600 ; AddOptionalHaikuImagePackages BePDF Firefox Pe Vision WonderBrush ; AddOptionalHaikuImagePackages CVS Development Python Subversion From jonas at kirilla.com Sat Sep 5 17:34:44 2009 From: jonas at kirilla.com (Jonas =?iso-8859-1?q?Sundstr=F6m?=) Date: Sat, 05 Sep 2009 17:34:44 +0200 CEST Subject: [Haiku-commits] r32928 - haiku/trunk/src/apps/people In-Reply-To: <1641800021-BeMail@Gaspode> Message-ID: <6132908538-BeMail@kirilla> "Bruno Albuquerque" wrote: > On Fri, 04 Sep 2009 19:56:17 +0200 CEST, Jonas Sundstr?m said: > > > > Log: > > > - When the associated people file is deleted, > > > close the window instead of reseting it. > > > > Thanks Bruno! > > > > Nice improvement, the node monitoring. :) > > This ended up having a nice side effect. If you > do some changes and then the backing file is deleted, > People will automatically ask if you want to save > changes before closing the window, which is nice. > If there are no changes, the window will close right > away. It still doesn't work right though: 1. If you open a person file, move the file, and open the file from its new location, it opens a second window for the already open file. 2. The window currently closes if the file gets deleted. That's good, but what I meant about mimicing Tracker was to close the Person window when/if its file gets -moved- to Trash. Tracker windows get closed when you move them to Trash, and if you happen to (re)open them from Trash they get (re)closed if you empty Trash. /Jonas. From rudolfc at mail.berlios.de Sat Sep 5 18:02:23 2009 From: rudolfc at mail.berlios.de (rudolfc at mail.berlios.de) Date: Sat, 5 Sep 2009 18:02:23 +0200 Subject: [Haiku-commits] r32946 - in haiku/trunk/src/add-ons: accelerants/nvidia/engine kernel/drivers/graphics/nvidia Message-ID: <200909051602.n85G2NZW017798@sheep.berlios.de> Author: rudolfc Date: 2009-09-05 18:02:20 +0200 (Sat, 05 Sep 2009) New Revision: 32946 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32946&view=rev Modified: haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac.c haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac2.c haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/README.html haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html Log: fixed PLL selection trouble on GF6xxx and 7xxx cards with a little help from the nouveau project and a lot of testing. Now dualhead should work on most of these cards, and now you should nolonger be presented with a 'out of range' message on your DVI connected screen if the boot splash screen is at a lower-than-native resolution for your screen. This hopefully fixes bugs #1557, #2780, #2948 and #4321. Bumped version to 1.00. Yes. +alphabranch. Modified: haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac.c =================================================================== --- haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac.c 2009-09-05 15:30:35 UTC (rev 32945) +++ haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac.c 2009-09-05 16:02:20 UTC (rev 32946) @@ -1,6 +1,6 @@ /* program the DAC */ /* Author: - Rudolf Cornelissen 12/2003-7/2009 + Rudolf Cornelissen 12/2003-9/2009 */ #define MODULE_BIT 0x00010000 @@ -200,6 +200,20 @@ /* Give the PIXPLL frequency some time to lock... (there's no indication bit available) */ snooze(1000); + + /* enable programmable PLLs */ + /* (confirmed PLLSEL to be a write-only register on NV04 and NV11!) */ + /* note: + * setup PLL assignment _after_ programming PLL */ + if (si->ps.secondary_head) { + if (si->ps.card_arch < NV40A) + DACW(PLLSEL, 0x30000f00); + else + DACW(PLLSEL, 0x30000f04); + } else { + DACW(PLLSEL, 0x10000700); + } + LOG(2,("DAC: PIX PLL frequency should be locked now...\n")); return B_OK; Modified: haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac2.c =================================================================== --- haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac2.c 2009-09-05 15:30:35 UTC (rev 32945) +++ haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac2.c 2009-09-05 16:02:20 UTC (rev 32946) @@ -1,6 +1,6 @@ /* program the secondary DAC */ /* Author: - Rudolf Cornelissen 12/2003-7/2009 + Rudolf Cornelissen 12/2003-9/2009 */ #define MODULE_BIT 0x00001000 @@ -203,6 +203,20 @@ /* Give the PIXPLL frequency some time to lock... (there's no indication bit available) */ snooze(1000); + + /* enable programmable PLLs */ + /* (confirmed PLLSEL to be a write-only register on NV04 and NV11!) */ + /* note: + * setup PLL assignment _after_ programming PLL */ + if (si->ps.secondary_head) { + if (si->ps.card_arch < NV40A) + DACW(PLLSEL, 0x30000f00); + else + DACW(PLLSEL, 0x30000f04); + } else { + DACW(PLLSEL, 0x10000700); + } + LOG(2,("DAC2: PIX PLL frequency should be locked now...\n")); return B_OK; Modified: haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c =================================================================== --- haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c 2009-09-05 15:30:35 UTC (rev 32945) +++ haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c 2009-09-05 16:02:20 UTC (rev 32946) @@ -1,7 +1,7 @@ /* Authors: Mark Watson 12/1999, Apsed, - Rudolf Cornelissen 10/2002-8/2009 + Rudolf Cornelissen 10/2002-9/2009 tst.. */ @@ -92,7 +92,7 @@ { status_t status; - LOG(1,("POWERUP: Haiku nVidia Accelerant 0.99 running.\n")); + LOG(1,("POWERUP: Haiku nVidia Accelerant 1.00 running.\n")); /* log VBLANK INT usability status */ if (si->ps.int_assigned) @@ -1789,13 +1789,6 @@ DACW(GENCTRL, 0x00100100); if (si->ps.secondary_head) DAC2W(GENCTRL, 0x00100100); - /* enable programmable PLLs */ - /* (confirmed PLLSEL to be a write-only register on NV04 and NV11!) */ - if (si->ps.secondary_head) - DACW(PLLSEL, 0x30000f00); - else - DACW(PLLSEL, 0x10000700); - /* turn on DAC and make sure detection testsignal routing is disabled * (b16 = disable DAC, * b12 = enable testsignal output */ Modified: haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/README.html =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/README.html 2009-09-05 15:30:35 UTC (rev 32945) +++ haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/README.html 2009-09-05 16:02:20 UTC (rev 32946) @@ -41,7 +41,7 @@
  • B_YCbCr422 hardware overlay support on both TNT and GeForce series cards, except for GeForce 6xxx and 7xxx series (GeForce 6800 works though). Overlay output 'follows head' in dualhead stretch/switch modes;
  • Dualhead support on GeForce dualhead cards (use 'Dualhead Setup' from BeBits for now);
  • DVI and laptop panel support; -
  • Widescreen mode support (all screens must be widescreen type and they must all be digitally connected); +
  • Widescreen mode support (all screens must be widescreen type;
  • Basic AGP mode support on AGP cards, using the new (seperate) Haiku AGP busmanager;
  • Basic ('legacy') PCIe support;
  • Coldstart support for analog connected screens on most cards except TNT1, GeForce 6xxx and 7xxx series; @@ -54,20 +54,20 @@
  • If the driver seems to create 'random' trouble make sure you have a fully functional VGA BIOS, or system BIOS for embedded cards (check for updates on the manufacturor's site). Make sure you mail me if you still have trouble but also if this version fixed that!
  • If on a laptop the internal panel doesn't work when you connect an external monitor, make sure you set 'output device selection' to 'internal' (instead of 'auto') in the system BIOS if it has such an option. If you have this symptom on a normal card, or on a laptop without that BIOS option then you are probably out of luck for dualhead support;
  • NV40 architecture cards: (GeForce 6xxx, but 6800 AGP seems to be OK)
    - Secondary analog monitor load detection doesn't work and we can't control very well to which connector the card's output gets routed (lack of specs). This means you might have to experiment a bit with the way you connect your monitor to the card. A single analog or DVI screen should work OK, and two analog screens should be OK as well. + We can't control very well to which connector the card's output gets routed (lack of specs). This means you might have to experiment a bit with the way you connect your monitor to the card.

    Installation:

    -If you encounter bugs, please checkout the driver's website to see if it's already on the todo list. You can also checkout the UPDATE file included with this driver to see if it should have been fixed. If you think it's prudent, or if you are unsure, then please fill out the bugreport form on the site or send me an Email. Make sure you are as precise as possible because that will make things easier to trackdown and fix...
    +If you encounter bugs, please see if a matching bug report already exists at the Haiku website. If not, or if you are unsure, file a new one. Make sure you are as precise as possible because that will make things easier to trackdown and fix...


    OK, now that's all said let's get to it ;-)

    -In contrary to what I have said before you don't need to de-install official Be drivers for this driver to work correctly. This driver will install in the user part of the BeOS, so not in the system part where the official drivers are.
    -BeOS first checks (during boot) if there are 'user-addons' that should be loaded for a device. If not, it loads it's own drivers (if any). You can select which driver should be loaded by hitting the spacebar as soon as the BeOS 'icons' screen appears. If you select disable user addons the system will load it's own drivers. If you don't do anything, the system will load the Haiku Nvidia TNT/GeForce graphics driver.
    +You don't need to de-install official drivers for this driver to work correctly. This driver will install in the user part of Haiku, so not in the system part where the official drivers are.
    +Haiku first checks (during boot) if there are 'user-addons' that should be loaded for a device. If not, it loads it's own drivers (if any). You can select which driver should be loaded by hitting the spacebar just before the Haiku 'icons' splash screen appears. If you select disable user addons the system will load it's own drivers. If you don't do anything, the system will load the Haiku Nvidia TNT/GeForce graphics driver.

    -Note: This might turn out to be handy if you run into trouble upon testing the driver, or if you are 'tweaking' the nv.settings file...
    +Note: This might turn out to be handy if you run into trouble upon testing the driver, or if you are 'tweaking' the nvidia.settings file...


    actual INSTALLATION:

    @@ -83,10 +83,10 @@
    Currently there's no uninstall script included. Just do it manually:

    -Delete the nv.accelerant file in home/config/add-ons/accelerants/
    -Delete the nv.driver file in home/config/add-ons/kernel/drivers/bin/
    -Delete the nv.settings file in home/config/settings/kernel/drivers/
    -Delete the nv.driver shortcut in home/config/add-ons/kernel/drivers/dev/graphics/ which pointed to the file nv.driver.
    +Delete the nvidia.accelerant file in home/config/add-ons/accelerants/
    +Delete the nvidia.driver file in home/config/add-ons/kernel/drivers/bin/
    +Delete the nvidia.settings file in home/config/settings/kernel/drivers/
    +Delete the nvidia.driver shortcut in home/config/add-ons/kernel/drivers/dev/graphics/ which pointed to the file nvidia.driver.

    You have to reboot in order to apply the original configuration.

    @@ -254,6 +254,6 @@

    Rudolf Cornelissen.
    -

    (Page last updated on August 23, 2009)

    +

    (Page last updated on September 5, 2009)

    Modified: haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html 2009-09-05 15:30:35 UTC (rev 32945) +++ haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html 2009-09-05 16:02:20 UTC (rev 32946) @@ -4,7 +4,7 @@

    Changes done for each driverversion:

    -

    head (SVN 0.98, Rudolf)

    +

    head (SVN 1.00, Rudolf)

    • Fixed driver assuming enabling AGP mode succeeded on some occasions if it did not block it itself. Blocking AGP mode completely via the AGP busmanager (option 'block_agp') resulted in a crashing acceleration engine because it was setup for AGP transfers instead of using PCI transfers. Error was solved with help from user kraton.
    • Fixed shared_info struct problem occuring when 3D 'accelerant' is used (tested Alpha 4.1): the TVencoder type definition list apparantly gets some memory assigned these days when done inside the definition of shared_info. Moved encoder list outside the shared_info definition. @@ -25,7 +25,8 @@
    • Corrected/Added detection of third I2C bus on cards that support it. The old detection method for a third and (non-existing) fourth bus was faulty. The driver uses I2C channels for monitor DDC/EDID and TVencoder communications.
    • DDC/EDID fetching now also works on GCC4 binaries due to a fixed fault in the accelerants/common code (which is used for that function);
    • Added support for Haiku specific driverhook GET_PREFERRED_DISPLAY_MODE. Laptops should now also startup in native mode automatically at first system boot; -
    • Rewrote framebuffer memory detection. Accelerant now only uses the amount of RAM mapped by the kerneldriver as maximum. This fixes black screen at app_server startup on a number of GF6xxx and GF7xxx cards. +
    • Rewrote framebuffer memory detection. Accelerant now only uses the amount of RAM mapped by the kerneldriver as maximum. This fixes black screen at app_server startup on a number of GF6xxx and GF7xxx cards; +
    • Finally(!) fixed PLL selection trouble on NV40 architecture (Geforce 6xxx and 7xxx) cards. Now dualhead should (almost) always work OK, and now low-res bootscreens should nolonger result in 'frequency out of range' messages on DVI connected screens.

    nv_driver 0.80 (Rudolf)

      From humdingerb at mail.berlios.de Sat Sep 5 18:49:19 2009 From: humdingerb at mail.berlios.de (humdingerb at mail.berlios.de) Date: Sat, 5 Sep 2009 18:49:19 +0200 Subject: [Haiku-commits] r32947 - haiku/trunk/build/jam Message-ID: <200909051649.n85GnJDE002506@sheep.berlios.de> Author: humdingerb Date: 2009-09-05 18:49:15 +0200 (Sat, 05 Sep 2009) New Revision: 32947 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32947&view=rev Modified: haiku/trunk/build/jam/HaikuImage Log: Changed shortcut of Tracker addon 'Open Target Folder' from -T to -O. Fixes #4249. +alphabranch Modified: haiku/trunk/build/jam/HaikuImage =================================================================== --- haiku/trunk/build/jam/HaikuImage 2009-09-05 16:02:20 UTC (rev 32946) +++ haiku/trunk/build/jam/HaikuImage 2009-09-05 16:49:15 UTC (rev 32947) @@ -138,7 +138,7 @@ Print\ To\ File Serial\ Port USB\ Port ; SYSTEM_ADD_ONS_SCREENSAVERS = DebugNow Flurry Haiku IFS Spider Message ; -SYSTEM_ADD_ONS_DRIVERS_AUDIO = auich auvia echo3g emuxki hda ; +SYSTEM_ADD_ONS_DRIVERS_AUDIO = auich auvia echo3g emuxki hda ; #humdinger: removed 'hda' SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD = ; #cmedia sis7018 usb_audio ; SYSTEM_ADD_ONS_DRIVERS_GRAPHICS = $(X86_ONLY)radeon $(X86_ONLY)nvidia $(X86_ONLY)neomagic $(X86_ONLY)matrox $(X86_ONLY)intel_extreme @@ -471,7 +471,7 @@ AddFilesToHaikuImage system add-ons media plugins : $(SYSTEM_ADD_ONS_MEDIA_PLUGINS) ; AddFilesToHaikuImage system add-ons Tracker - : FileType-F Mark\ as\ New-N Mark\ as\ Read-R Open\ Target\ Folder-T OpenTerminal-T ZipOMatic-Z ; + : FileType-F Mark\ as\ New-N Mark\ as\ Read-R Open\ Target\ Folder-O OpenTerminal-T ZipOMatic-Z ; AddSymlinkToHaikuImage system add-ons Tracker : /boot/system/preferences/Backgrounds : Background-B ; AddSymlinkToHaikuImage system add-ons Tracker From kirilla at mail.berlios.de Sat Sep 5 19:12:08 2009 From: kirilla at mail.berlios.de (kirilla at BerliOS) Date: Sat, 5 Sep 2009 19:12:08 +0200 Subject: [Haiku-commits] r32948 - haiku/trunk/src/add-ons/tracker/opentargetfolder Message-ID: <200909051712.n85HC8no024693@sheep.berlios.de> Author: kirilla Date: 2009-09-05 19:12:06 +0200 (Sat, 05 Sep 2009) New Revision: 32948 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32948&view=rev Modified: haiku/trunk/src/add-ons/tracker/opentargetfolder/Jamfile Log: Build fix. Modified: haiku/trunk/src/add-ons/tracker/opentargetfolder/Jamfile =================================================================== --- haiku/trunk/src/add-ons/tracker/opentargetfolder/Jamfile 2009-09-05 16:49:15 UTC (rev 32947) +++ haiku/trunk/src/add-ons/tracker/opentargetfolder/Jamfile 2009-09-05 17:12:06 UTC (rev 32948) @@ -1,6 +1,6 @@ SubDir HAIKU_TOP src add-ons tracker opentargetfolder ; -Application Open\ Target\ Folder-T : +Application Open\ Target\ Folder-O : opentargetfolder.cpp : be tracker $(TARGET_LIBSUPC++) From humdingerb at googlemail.com Sat Sep 5 19:16:41 2009 From: humdingerb at googlemail.com (Humdinger) Date: Sat, 05 Sep 2009 19:16:41 +0200 Subject: [Haiku-commits] r32948 - haiku/trunk/src/add-ons/tracker/opentargetfolder In-Reply-To: <200909051712.n85HC8no024693@sheep.berlios.de> References: <200909051712.n85HC8no024693@sheep.berlios.de> Message-ID: <4AA29CF9.6090007@googlemail.com> kirilla at BerliOS wrote: > Author: kirilla > Date: 2009-09-05 19:12:06 +0200 (Sat, 05 Sep 2009) > New Revision: 32948 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32948&view=rev > > Modified: > haiku/trunk/src/add-ons/tracker/opentargetfolder/Jamfile > Log: > Build fix. Sorry.. Regards, Humdinger -- --=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=-=--=- Deutsche Haiku News @ http://www.haiku-gazette.de From korli at users.berlios.de Sat Sep 5 19:16:43 2009 From: korli at users.berlios.de (=?ISO-8859-1?B?Suly9G1lIER1dmFs?=) Date: Sat, 5 Sep 2009 19:16:43 +0200 Subject: [Haiku-commits] r32947 - haiku/trunk/build/jam In-Reply-To: <200909051649.n85GnJDE002506@sheep.berlios.de> References: <200909051649.n85GnJDE002506@sheep.berlios.de> Message-ID: 2009/9/5 : > SYSTEM_ADD_ONS_SCREENSAVERS = DebugNow Flurry Haiku IFS Spider Message ; > -SYSTEM_ADD_ONS_DRIVERS_AUDIO = auich auvia echo3g emuxki hda ; > +SYSTEM_ADD_ONS_DRIVERS_AUDIO = auich auvia echo3g emuxki hda ; #humdinger: removed 'hda' > SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD = ; #cmedia sis7018 usb_audio ; > SYSTEM_ADD_ONS_DRIVERS_GRAPHICS = $(X86_ONLY)radeon $(X86_ONLY)nvidia > $(X86_ONLY)neomagic $(X86_ONLY)matrox $(X86_ONLY)intel_extreme Nice comment :) Bye, J?r?me From jonas at kirilla.com Sat Sep 5 19:14:58 2009 From: jonas at kirilla.com (Jonas =?iso-8859-1?q?Sundstr=F6m?=) Date: Sat, 05 Sep 2009 19:14:58 +0200 CEST Subject: [Haiku-commits] =?iso-8859-1?q?r32948_-_haiku/trunk/src/add-ons/t?= =?iso-8859-1?q?racker/opentargetfolder?= In-Reply-To: <200909051712.n85HC8no024693@sheep.berlios.de> Message-ID: <12146798157-BeMail@kirilla> kirilla at BerliOS wrote: ... > New Revision: 32948 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32948&view=rev > > Modified: > haiku/trunk/src/add-ons/tracker/opentargetfolder/Jamfile > Log: > Build fix. I forgot: This should probably be +alphabranch if r32947 gets merged. /Jonas. From humdingerb at mail.berlios.de Sat Sep 5 19:23:20 2009 From: humdingerb at mail.berlios.de (humdingerb at mail.berlios.de) Date: Sat, 5 Sep 2009 19:23:20 +0200 Subject: [Haiku-commits] r32949 - haiku/trunk/build/jam Message-ID: <200909051723.n85HNK1o007100@sheep.berlios.de> Author: humdingerb Date: 2009-09-05 19:23:16 +0200 (Sat, 05 Sep 2009) New Revision: 32949 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32949&view=rev Modified: haiku/trunk/build/jam/HaikuImage Log: I suck. Yeah, that too for the alphabranch. I'll stick to documentation now... Modified: haiku/trunk/build/jam/HaikuImage =================================================================== --- haiku/trunk/build/jam/HaikuImage 2009-09-05 17:12:06 UTC (rev 32948) +++ haiku/trunk/build/jam/HaikuImage 2009-09-05 17:23:16 UTC (rev 32949) @@ -138,7 +138,7 @@ Print\ To\ File Serial\ Port USB\ Port ; SYSTEM_ADD_ONS_SCREENSAVERS = DebugNow Flurry Haiku IFS Spider Message ; -SYSTEM_ADD_ONS_DRIVERS_AUDIO = auich auvia echo3g emuxki hda ; #humdinger: removed 'hda' +SYSTEM_ADD_ONS_DRIVERS_AUDIO = auich auvia echo3g emuxki hda ; SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD = ; #cmedia sis7018 usb_audio ; SYSTEM_ADD_ONS_DRIVERS_GRAPHICS = $(X86_ONLY)radeon $(X86_ONLY)nvidia $(X86_ONLY)neomagic $(X86_ONLY)matrox $(X86_ONLY)intel_extreme From jonas at kirilla.com Sat Sep 5 19:29:03 2009 From: jonas at kirilla.com (Jonas =?iso-8859-1?q?Sundstr=F6m?=) Date: Sat, 05 Sep 2009 19:29:03 +0200 CEST Subject: [Haiku-commits] =?iso-8859-1?q?r32948_-_haiku/trunk/src/add-ons/t?= =?iso-8859-1?q?racker/opentargetfolder?= In-Reply-To: <4AA29CF9.6090007@googlemail.com> Message-ID: <12991136370-BeMail@kirilla> Humdinger wrote: ... > Sorry.. No worries :) It's good practice to check that it builds okay before committing, and to double-check what you're about to commit using "svn status" and "svn diff" - for that extra care to include everything needed, and exclude any unrelated changes you may have around. /Jonas. From humdingerb at googlemail.com Sat Sep 5 20:28:47 2009 From: humdingerb at googlemail.com (Humdinger) Date: Sat, 5 Sep 2009 20:28:47 +0200 Subject: [Haiku-commits] r32948 - haiku/trunk/src/add-ons/tracker/opentargetfolder In-Reply-To: <12991136370-BeMail@kirilla> References: <4AA29CF9.6090007@googlemail.com> <12991136370-BeMail@kirilla> Message-ID: > No worries :) > > It's good practice to check that it builds okay before > committing, and to double-check what you're about to > commit using "svn status" and "svn diff" - for that extra > care to include everything needed, and exclude any unrelated > changes you may have around. Yeah, I know. Turns out trivial changes aren't really trivial if you're clueless... :) cu Humdinger From humdingerb at mail.berlios.de Sat Sep 5 20:31:57 2009 From: humdingerb at mail.berlios.de (humdingerb at mail.berlios.de) Date: Sat, 5 Sep 2009 20:31:57 +0200 Subject: [Haiku-commits] r32950 - in haiku/trunk/docs/userguide/en: applications images/apps-images Message-ID: <200909051831.n85IVv6J014240@sheep.berlios.de> Author: humdingerb Date: 2009-09-05 20:31:31 +0200 (Sat, 05 Sep 2009) New Revision: 32950 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32950&view=rev Modified: haiku/trunk/docs/userguide/en/applications/drivesetup.html haiku/trunk/docs/userguide/en/images/apps-images/poorman.png Log: * Updated poorman screenshot with un-trunkated button. * Small addition to DriveSetup. +alphabranch Modified: haiku/trunk/docs/userguide/en/applications/drivesetup.html =================================================================== --- haiku/trunk/docs/userguide/en/applications/drivesetup.html 2009-09-05 17:23:16 UTC (rev 32949) +++ haiku/trunk/docs/userguide/en/applications/drivesetup.html 2009-09-05 18:31:31 UTC (rev 32950) @@ -46,19 +46,23 @@


      DriveSetup is a tool to create, delete and initialize partitions. At this time it can't resize or move existing partitions, so that you'll either need an unpartitioned volume (perhaps an external USB drive or another harddisk) or do the initial setup with a tool like the GParted LiveCD to provide the space for another partition.

      drivesetup.png -

      At the top is a graphical representation of all partitions inside the device chosen in the list below it. Besides a maximum of 4 primary partitions, each of those can contain a number of extended/logical partitions. You may have to expand such a list with the +/- widget that appears in that case in front of the device to see the details of every logical partition.

      +

      At the top is a graphical representation of all partitions inside the device chosen in the list below it. Besides a maximum of 4 primary partitions, each of those can contain a number of extended/logical partitions. You may have to expand such a list with the +/- widget that appears in that case in front of that device to see the details of every logical partition.

      You can select a partition from the list and mount and unmount them with the commands in the Partition menu or by pressing ALT M or ALT U.

      You can also completely delete a partition with Partition|Delete.
      Which brings us to this:

      -
      Dealing with creating, deleting or initializing partitions is very dangerous business. Always check twice to be sure you're working with the right one and always keep an up-to-date backup of your data in case something goes wrong!
      +
      Dealing with creating/deleting/initializing partitions is very dangerous business. Always check twice to be sure you're working with the right one and always keep an up-to-date backup of your data in case something goes wrong!

      -indexCreating a new partition

      +index +Creating a new partition +
      If you plan to use the entire drive as one partition, e.g. a USB stick or a Compact Flash card, you can skip the creation of a partition and proceed right to Initializing.

      When you found unformatted space on a drive, like the above <empty>, you can create a new partition in this space with Partition|Create...(ALT C).

      drivesetup-create.png

      You're prompted with this dialog that lets you adjust the partition size and type. Choose Be File System if you want to use the partition for an Haiku installation or if you want to use all the interesting Haiku features with it, like attributes and queries. Note, that other operating systems might not be able to access such a partition.

      +

      If you have created a primary partition instead of just another extended/logical partition within one, the above dialog also displays an Active Partition checkbox. You'll have to check that, if you'll use that partition to boot a Haiku installation.

      Before you can use, or even mount the newly created partition, it has to be initialized with a filesystem.

      -indexInitializing a partition

      +index +Initializing a partition

      Only unmounted partitions can be initialized by using the Partition|Initialize menu.

      drivesetup-initialize.png

      Here you set the name for the partition and it's blocksize. 2048 bytes per block are recommended, but you can choose larger or smaller sizes if you have these very specific needs.

      Modified: haiku/trunk/docs/userguide/en/images/apps-images/poorman.png =================================================================== (Binary files differ) From leavengood at gmail.com Sun Sep 6 00:40:48 2009 From: leavengood at gmail.com (Ryan Leavengood) Date: Sat, 5 Sep 2009 18:40:48 -0400 Subject: [Haiku-commits] r32948 - haiku/trunk/src/add-ons/tracker/opentargetfolder In-Reply-To: References: <4AA29CF9.6090007@googlemail.com> <12991136370-BeMail@kirilla> Message-ID: On Sat, Sep 5, 2009 at 2:28 PM, Humdinger wrote: > > Yeah, I know. Turns out trivial changes aren't really trivial if > you're clueless... :) Well it doesn't help when the same information is repeated in several places. That was really the crux of the problem here (and also on a recent Tracker change I made.) For Jam and the build system we may not have much choice, but in the code we can try to avoid this, and this philosopy even has an acronym: DRY (Don't Repeat Yourself.) -- Regards, Ryan From ingo_weinhold at gmx.de Sat Sep 5 23:52:27 2009 From: ingo_weinhold at gmx.de (Ingo Weinhold) Date: Sat, 05 Sep 2009 23:52:27 +0200 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <20090904200056.453.1@bepc.1252086284.fake> References: <200909030058.n830wJYY026177@sheep.berlios.de> <4A9F62BF.1060308@haikuzone.net> <4A9FAC4A.60507@bug-br.org.br> <4A9FB022.2060203@bug-br.org.br> <20090904015327.390.1@knochen-vm.localdomain> <4AA103AC.2040006@bug-br.org.br> <20090904200056.453.1@bepc.1252086284.fake> Message-ID: <20090905235227.577.1@knochen-vm.localdomain> On 2009-09-04 at 20:00:56 [+0200], Stephan Assmus wrote: > On 2009-09-04 at 14:10:20 [+0200], Bruno Albuquerque > wrote: > > Ingo Weinhold wrote: > > > > >> BTW, this should probably be +alphabranch. > > > > > > While a nice feature, it really is a feature. So I guess it should > > > better wait till the next release. After all, every feature added now > > > only has a very short time to be tested. I think for the next release > > > process we should be stricter and really only port bug fixes to the > > > release branch. This also means we shouldn't branch before all > > > mandatory features are implemented. > > > > I am fine with that. It is just that I will be doing some demos in the > > next few weeks and I want to use that feature. I guess I will just use a > > version compiled from trunk or just compile People from it and use with > > the alpha branch installation. > > To be honest, this feature is very contained, if there would be something > wrong with it (which I doubt), I quickly read through the patch and only spotted incorrectly indented "break"s and a missing, but harmless, "break" in a loop, so I tend to agree, but... > it would only affect Peolpe and only in a > circumstance in which it was arguably broken before. ... this assumption is just wrong. It is quite easy to introduce crashes, memory corruptions or leaks, infinite loops, etc. and those might not just be triggered in circumstances that were broken before. By claiming shared global resources infinite loops and memory leaks actually affect the whole system. > So for new features where the side effects are hard to judge, I am > absolutely with Ingo, but for something like this, I would argue it would > be nice to have in the alpha and the risk of breaking something by > including it is pretty much zero. I wouldn't exclude such nice finishing > touches just for the sake of being consequent. After all, we wanted to give > the best possible first impression with this release. Sure we do. We also want to establish a working release process to use in the future. And while a probably harmless, some 100 lines "nice finishing touch" feature patch six days before an alpha release may sound OK, the same patch a few hours before a final release certainly does not sound OK to me. So where to draw the line? Well, exactly when the feature freeze was called. The whole point of the feature freeze is to prevent new code, which always has the potential for bugs, to be introduced into a tested code base. Any finishing touch features should be added before the feature freeze -- I guess it simply was upon us a bit too sudden. Which is why I think the following changes to the process for the next release would be reasonable: * After creating the release branch allow for "polishing period" before feature freezing the branch. * The release manager should be elected and should have total authority over the branch. I.e. he/she decides what goes in and what doesn't. On 2009-09-04 at 23:08:54 [+0200], Niels Reedijk wrote: > So yes, common sense is good. It is like the US supreme court's > definition of obscenity. I can't give a definition of an alpha-ready > non-bugfix changeset, but I know one when I see one. Good for you. I certainly don't, unless the rule is that non-bugfix patches are never accepted. Excellent example nonetheless -- common sense being "common" is probably just as much a delusion as obscenity being perceived the same by all people. CU, Ingo From mmlr at mail.berlios.de Sun Sep 6 07:04:58 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 6 Sep 2009 07:04:58 +0200 Subject: [Haiku-commits] r32951 - haiku/trunk/src/system/kernel Message-ID: <200909060504.n8654w19018094@sheep.berlios.de> Author: mmlr Date: 2009-09-06 07:04:55 +0200 (Sun, 06 Sep 2009) New Revision: 32951 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32951&view=rev Modified: haiku/trunk/src/system/kernel/heap.cpp Log: When we actually delete the area, we can obviously not access the next pointer stored in there anymore. Modified: haiku/trunk/src/system/kernel/heap.cpp =================================================================== --- haiku/trunk/src/system/kernel/heap.cpp 2009-09-05 18:31:31 UTC (rev 32950) +++ haiku/trunk/src/system/kernel/heap.cpp 2009-09-06 05:04:55 UTC (rev 32951) @@ -1618,6 +1618,7 @@ area = heap->areas; while (area != NULL && heap->empty_areas > 1) { + heap_area *next = area->next; if (area->area >= 0 && area->free_page_count == area->page_count && heap_remove_area(heap, area) == B_OK) { @@ -1625,7 +1626,7 @@ heap->empty_areas--; } - area = area->next; + area = next; } } From mmlr at mail.berlios.de Sun Sep 6 07:07:45 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 6 Sep 2009 07:07:45 +0200 Subject: [Haiku-commits] r32952 - haiku/branches/releases/r1alpha1/src/system/kernel Message-ID: <200909060507.n8657jxT020974@sheep.berlios.de> Author: mmlr Date: 2009-09-06 07:07:44 +0200 (Sun, 06 Sep 2009) New Revision: 32952 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32952&view=rev Modified: haiku/branches/releases/r1alpha1/src/system/kernel/heap.cpp Log: Merging r32951 from trunk. Modified: haiku/branches/releases/r1alpha1/src/system/kernel/heap.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/system/kernel/heap.cpp 2009-09-06 05:04:55 UTC (rev 32951) +++ haiku/branches/releases/r1alpha1/src/system/kernel/heap.cpp 2009-09-06 05:07:44 UTC (rev 32952) @@ -1618,6 +1618,7 @@ area = heap->areas; while (area != NULL && heap->empty_areas > 1) { + heap_area *next = area->next; if (area->area >= 0 && area->free_page_count == area->page_count && heap_remove_area(heap, area) == B_OK) { @@ -1625,7 +1626,7 @@ heap->empty_areas--; } - area = area->next; + area = next; } } From mmlr at mail.berlios.de Sun Sep 6 07:11:49 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 6 Sep 2009 07:11:49 +0200 Subject: [Haiku-commits] r32953 - haiku/trunk/src/system/libroot/posix/malloc_debug Message-ID: <200909060511.n865BnUC024897@sheep.berlios.de> Author: mmlr Date: 2009-09-06 07:11:48 +0200 (Sun, 06 Sep 2009) New Revision: 32953 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32953&view=rev Modified: haiku/trunk/src/system/libroot/posix/malloc_debug/heap.cpp Log: Apply fix of r32951 to malloc debug heap as well. Modified: haiku/trunk/src/system/libroot/posix/malloc_debug/heap.cpp =================================================================== --- haiku/trunk/src/system/libroot/posix/malloc_debug/heap.cpp 2009-09-06 05:07:44 UTC (rev 32952) +++ haiku/trunk/src/system/libroot/posix/malloc_debug/heap.cpp 2009-09-06 05:11:48 UTC (rev 32953) @@ -1335,6 +1335,7 @@ area = heap->areas; while (area != NULL && heap->empty_areas > 1) { + heap_area *next = area->next; if (area->area >= 0 && area->free_page_count == area->page_count && heap_remove_area(heap, area) == B_OK) { @@ -1342,7 +1343,7 @@ heap->empty_areas--; } - area = area->next; + area = next; } } From mmlr at mail.berlios.de Sun Sep 6 07:13:04 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sun, 6 Sep 2009 07:13:04 +0200 Subject: [Haiku-commits] r32954 - haiku/trunk/src/system/libroot/posix/malloc_debug Message-ID: <200909060513.n865D4E9026854@sheep.berlios.de> Author: mmlr Date: 2009-09-06 07:13:01 +0200 (Sun, 06 Sep 2009) New Revision: 32954 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32954&view=rev Modified: haiku/trunk/src/system/libroot/posix/malloc_debug/heap.cpp Log: Add valloc() and posix_memalign() to malloc debug heap. Modified: haiku/trunk/src/system/libroot/posix/malloc_debug/heap.cpp =================================================================== --- haiku/trunk/src/system/libroot/posix/malloc_debug/heap.cpp 2009-09-06 05:11:48 UTC (rev 32953) +++ haiku/trunk/src/system/libroot/posix/malloc_debug/heap.cpp 2009-09-06 05:13:01 UTC (rev 32954) @@ -1752,3 +1752,24 @@ return address; } + + +extern "C" void * +valloc(size_t size) +{ + return memalign(B_PAGE_SIZE, size); +} + + +extern "C" int +posix_memalign(void **pointer, size_t alignment, size_t size) +{ + if (!is_valid_alignment(alignment)) + return EINVAL; + + *pointer = memalign(alignment, size); + if (*pointer == NULL) + return ENOMEM; + + return 0; +} From superstippi at gmx.de Sun Sep 6 09:39:15 2009 From: superstippi at gmx.de (Stephan Assmus) Date: Sun, 06 Sep 2009 09:39:15 +0200 Subject: [Haiku-commits] r32948 - haiku/trunk/src/add-ons/tracker/opentargetfolder In-Reply-To: References: <4AA29CF9.6090007@googlemail.com> <12991136370-BeMail@kirilla> Message-ID: <20090906073915.39870@gmx.net> -------- Original-Nachricht -------- > Datum: Sat, 5 Sep 2009 18:40:48 -0400 > Von: Ryan Leavengood > An: SVN commits to the Haiku source repository > Betreff: Re: [Haiku-commits] r32948 - haiku/trunk/src/add-ons/tracker/opentargetfolder > On Sat, Sep 5, 2009 at 2:28 PM, Humdinger > wrote: > > > > Yeah, I know. Turns out trivial changes aren't really trivial if > > you're clueless... :) > > Well it doesn't help when the same information is repeated in several > places. That was really the crux of the problem here (and also on a > recent Tracker change I made.) For Jam and the build system we may not > have much choice, but in the code we can try to avoid this, and this > philosopy even has an acronym: DRY (Don't Repeat Yourself.) By now it is clear that you are a vivid advertizer of the DRY concept... :-) Anyway, this mistake was something completely different, and had nothing TODO with the problem of repeated code. At one place, the name of the add-on was established (in it's Jamfile), in another place, the add-on was declared to go onto the image (HaikuImage Jamfile). You cannot suddenly refer to another name in HaikuImage without changing the actual name... Best regards, -Stephan From stippi at mail.berlios.de Sun Sep 6 11:33:51 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Sun, 6 Sep 2009 11:33:51 +0200 Subject: [Haiku-commits] r32955 - in haiku/branches/releases/r1alpha1: build/jam docs/userguide/en docs/userguide/en/applications docs/userguide/en/images/apps-images src/add-ons/accelerants/nvidia/engine src/add-ons/kernel/drivers/graphics/nvidia src/add-ons/tracker/opentargetfolder Message-ID: <200909060933.n869XpPZ002431@sheep.berlios.de> Author: stippi Date: 2009-09-06 11:33:42 +0200 (Sun, 06 Sep 2009) New Revision: 32955 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32955&view=rev Added: haiku/branches/releases/r1alpha1/docs/userguide/en/images/apps-images/drivesetup-create.png haiku/branches/releases/r1alpha1/docs/userguide/en/images/apps-images/drivesetup-initialize.png haiku/branches/releases/r1alpha1/docs/userguide/en/images/apps-images/drivesetup.png Modified: haiku/branches/releases/r1alpha1/build/jam/HaikuImage haiku/branches/releases/r1alpha1/build/jam/OptionalPackageDependencies haiku/branches/releases/r1alpha1/build/jam/OptionalPackages haiku/branches/releases/r1alpha1/docs/userguide/en/applications.html haiku/branches/releases/r1alpha1/docs/userguide/en/applications/drivesetup.html haiku/branches/releases/r1alpha1/docs/userguide/en/images/apps-images/poorman.png haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_dac.c haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_dac2.c haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_general.c haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/graphics/nvidia/README.html haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html haiku/branches/releases/r1alpha1/src/add-ons/tracker/opentargetfolder/Jamfile Log: Merged changesets r32919, r32931, r32933, r32941, r32942, r32946, r32947, r32948 and r32950. Modified: haiku/branches/releases/r1alpha1/build/jam/HaikuImage =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/HaikuImage 2009-09-06 05:13:01 UTC (rev 32954) +++ haiku/branches/releases/r1alpha1/build/jam/HaikuImage 2009-09-06 09:33:42 UTC (rev 32955) @@ -29,9 +29,9 @@ SYSTEM_BIN = "[" addattr alert arp base64 basename bash bc beep bootman bzip2 cal cat catattr checkfs chgrp chmod chop chown chroot cksum clear - clockconfig cmp collectcatkeys comm compress copyattr CortexAddOnHost cp + clockconfig cmp comm compress copyattr CortexAddOnHost cp csplit ctags cut date dc dd desklink df diff diff3 dircolors dirname - draggers driveinfo dstcheck du dumpcatalog + draggers driveinfo dstcheck du echo eject env error expand expr factor false fdinfo ffm filepanel find finddir fmt fold fortune frcode ftp ftpd funzip @@ -40,7 +40,7 @@ id ident ideinfo idestatus ifconfig install installsound iroster isvolume join - keymap kill less lessecho lesskey link linkcatkeys listarea listattr + keymap kill less lessecho lesskey link listarea listattr listimage listdev listport listres listsem listusb ln locate logger login logname ls lsindex makebootable md5sum merge message mimeset mkdos mkdir mkfifo mkfs mkindex @@ -136,7 +136,7 @@ Print\ To\ File Serial\ Port USB\ Port ; SYSTEM_ADD_ONS_SCREENSAVERS = DebugNow Flurry Haiku IFS Spider Message ; -SYSTEM_ADD_ONS_DRIVERS_AUDIO = auich auvia echo3g emuxki hda ; +SYSTEM_ADD_ONS_DRIVERS_AUDIO = auich auvia echo3g emuxki hda ; #humdinger: removed 'hda' SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD = ; #cmedia sis7018 usb_audio ; SYSTEM_ADD_ONS_DRIVERS_GRAPHICS = $(X86_ONLY)radeon $(X86_ONLY)nvidia $(X86_ONLY)neomagic $(X86_ONLY)matrox $(X86_ONLY)intel_extreme @@ -359,11 +359,6 @@ = [ FDirName $(HAIKU_TOP) src apps mail ] ; AddFilesToHaikuImage system etc word_dictionary : $(spellFiles) ; -# Locale kit language files -local languageDir = [ FDirName $(HAIKU_TOP) src data etc locale languages ] ; -local languages = [ Glob $(languageDir) : *.language ] ; -AddFilesToHaikuImage system data locale languages : $(languages) ; - local etcFiles = bash_completion inputrc profile teapot.data ; etcFiles = $(etcFiles:G=etc) ; SEARCH on $(etcFiles) = [ FDirName $(HAIKU_TOP) data etc ] ; @@ -474,7 +469,7 @@ AddFilesToHaikuImage system add-ons media plugins : $(SYSTEM_ADD_ONS_MEDIA_PLUGINS) ; AddFilesToHaikuImage system add-ons Tracker - : FileType-F Mark\ as\ New-N Mark\ as\ Read-R Open\ Target\ Folder-T OpenTerminal-T ZipOMatic-Z ; + : FileType-F Mark\ as\ New-N Mark\ as\ Read-R Open\ Target\ Folder-O OpenTerminal-T ZipOMatic-Z ; AddSymlinkToHaikuImage system add-ons Tracker : /boot/system/preferences/Backgrounds : Background-B ; AddSymlinkToHaikuImage system add-ons Tracker Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackageDependencies =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/OptionalPackageDependencies 2009-09-06 05:13:01 UTC (rev 32954) +++ haiku/branches/releases/r1alpha1/build/jam/OptionalPackageDependencies 2009-09-06 09:33:42 UTC (rev 32955) @@ -4,7 +4,7 @@ # dependencies. OptionalPackageDependencies Subversion : APR-util Neon LibIconv LibXML2 OpenSSL SQLite ; -OptionalPackageDependencies APR-util : APR ; +OptionalPackageDependencies APR-util : APR Expat ; OptionalPackageDependencies BeHappy : BeBook NetSurf ; OptionalPackageDependencies Development : DevelopmentBase Perl ; OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ; Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackages =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-06 05:13:01 UTC (rev 32954) +++ haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-06 09:33:42 UTC (rev 32955) @@ -176,8 +176,8 @@ } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) { Echo "No optional package BePDF available for gcc4" ; } else { - InstallOptionalHaikuImagePackage BePDF-1.1.1b1.x86 - : $(baseURL)/BePDF-1.1.1b1.x86.zip + InstallOptionalHaikuImagePackage BePDF-1.1.1b2-r1a1-x86-gcc2-2009-09-03 + : $(baseURL)/BePDF-1.1.1b2-r1a1-x86-gcc2-2009-09-03.zip : apps ; AddSymlinkToHaikuImage home config be Applications @@ -708,8 +708,8 @@ : $(baseURL)/Pe-2.4.2-x86-gcc4-2009-08-04.zip ; } else { - InstallOptionalHaikuImagePackage Pe-2.4.2-x86-gcc2-2009-07-05 - : $(baseURL)/Pe-2.4.2-x86-gcc2-2009-07-05.zip + InstallOptionalHaikuImagePackage Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-04 + : $(baseURL)/Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-04.zip ; } @@ -779,8 +779,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Subversion available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage subversion-1.6.5-r1a1-x86-gcc2-2009-08-30 - : $(baseURL)/subversion-1.6.5-r1a1-x86-gcc2-2009-08-30.zip + InstallOptionalHaikuImagePackage subversion-1.6.5-r1a1-x86-gcc2-2009-09-02 + : $(baseURL)/subversion-1.6.5-r1a1-x86-gcc2-2009-09-02.zip : ; } Modified: haiku/branches/releases/r1alpha1/docs/userguide/en/applications/drivesetup.html =================================================================== --- haiku/branches/releases/r1alpha1/docs/userguide/en/applications/drivesetup.html 2009-09-06 05:13:01 UTC (rev 32954) +++ haiku/branches/releases/r1alpha1/docs/userguide/en/applications/drivesetup.html 2009-09-06 09:33:42 UTC (rev 32955) @@ -46,11 +46,29 @@


      DriveSetup is a tool to create, delete and initialize partitions. At this time it can't resize or move existing partitions, so that you'll either need an unpartitioned volume (perhaps an external USB drive or another harddisk) or do the initial setup with a tool like the GParted LiveCD to provide the space for another partition.

      drivesetup.png -

      At the top is a graphical representation of all partitions inside the device chosen in the list below it. Besides a maximum of 4 primary partitions, each of those can contain a number of extended/logical partitions. You may have to expand such a list with the widget that appears in that case in front of that device to see the details of every logical partition.

      -

      You can mount and unmount volumes from the Partition menu.

      +

      At the top is a graphical representation of all partitions inside the device chosen in the list below it. Besides a maximum of 4 primary partitions, each of those can contain a number of extended/logical partitions. You may have to expand such a list with the +/- widget that appears in that case in front of that device to see the details of every logical partition.

      +

      You can select a partition from the list and mount and unmount them with the commands in the Partition menu or by pressing ALT M or ALT U.

      +

      You can also completely delete a partition with Partition|Delete.
      +Which brings us to this:

      +
      Dealing with creating/deleting/initializing partitions is very dangerous business. Always check twice to be sure you're working with the right one and always keep an up-to-date backup of your data in case something goes wrong!
      +

      +index +Creating a new partition

      +
      If you plan to use the entire drive as one partition, e.g. a USB stick or a Compact Flash card, you can skip the creation of a partition and proceed right to Initializing.
      +

      When you found unformatted space on a drive, like the above <empty>, you can create a new partition in this space with Partition|Create...(ALT C).

      +drivesetup-create.png +

      You're prompted with this dialog that lets you adjust the partition size and type. Choose Be File System if you want to use the partition for an Haiku installation or if you want to use all the interesting Haiku features with it, like attributes and queries. Note, that other operating systems might not be able to access such a partition.

      +

      If you have created a primary partition instead of just another extended/logical partition within one, the above dialog also displays an Active Partition checkbox. You'll have to check that, if you'll use that partition to boot a Haiku installation.

      +

      Before you can use, or even mount the newly created partition, it has to be initialized with a filesystem.

      +

      +index +Initializing a partition

      +

      Only unmounted partitions can be initialized by using the Partition|Initialize menu.

      +drivesetup-initialize.png +

      Here you set the name for the partition and it's blocksize. 2048 bytes per block are recommended, but you can choose larger or smaller sizes if you have these very specific needs.

      - + Modified: haiku/branches/releases/r1alpha1/docs/userguide/en/applications.html =================================================================== --- haiku/branches/releases/r1alpha1/docs/userguide/en/applications.html 2009-09-06 05:13:01 UTC (rev 32954) +++ haiku/branches/releases/r1alpha1/docs/userguide/en/applications.html 2009-09-06 09:33:42 UTC (rev 32955) @@ -86,7 +86,7 @@ iconDiskUsage  A tool to visualize a disk's memory usage. iconDriveSetup  - A harddisk partitioning tool. [still missing] + A harddisk partitioning tool. iconExpander  A tool to unpack common archives. iconIcon-O-Matic  Added: haiku/branches/releases/r1alpha1/docs/userguide/en/images/apps-images/drivesetup-create.png =================================================================== --- haiku/branches/releases/r1alpha1/docs/userguide/en/images/apps-images/drivesetup-create.png 2009-09-06 05:13:01 UTC (rev 32954) +++ haiku/branches/releases/r1alpha1/docs/userguide/en/images/apps-images/drivesetup-create.png 2009-09-06 09:33:42 UTC (rev 32955) @@ -0,0 +1,16 @@ +?PNG + + + + + C?:?U? `?!!!!c?!d?"""###$$$%%%&&&''')))***+++,,,,Cv---///0001112222q?2r?333444555666777888:::;;;<<<===>>>>Lk???@@@AAABBBCCCCY?DDDFFFGGGGa?HHHIe?JJJKKKLLLLk?MMMOOOPPPQQQRRRSSSTTTTm?UUUVVVWWWXXXYYYZZZ[[[\y?]]]^^^___```aaabbbcccdddeeefffggghhhiiijjjlllmmmnnnoooov?pppqqqrrrssstttuuuvvvwwwxxxyyyzzz|||}}}~~~?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? +??x???r?n???????i???}?xwv???~f7????a???y???'?????fP%FT?54}??> h?[|M??x?7 xo? ??7 +o%^w>/? +xo? ??7 +???U?????[????T?;??;???6ow????????P M \?B??o=??????*?-~^D??,C&iG?q(??*_*?\????7M?,qi??7??\?#?\v?!???N????????"??k??K?????B??&DSV???#?????zp?6???&????3??4?!????ZehB O??&":??h??S??x?~???>????1?U?1?U?/?0???)B??o?????\??? +{c4??3??*B??TMDv|n????E?????[??G8 +3????3~6o??????+?m??7?Y??????lk#"n2??Jh?;_}???N?xdsA???7SI????????6???????rK???j???|?i~}'9??v?uZ?b[??=?????i_?8?m????z??u???0??B??????^?7k9?V??mc???b?T@??m6?????w????4?V??)?'???R?-???e??)?a??{ +SA~~??8(?m/?????xo?y??N>ho? ??7_????z{)npG??c??(??????c?$x ?^J???+???D?7???^?V??s??j?S???@*%???O?+)?????6w??v??p???-?????&????O^?eB?d???>zktx?@???s?? ?R1??????#n?`????7??=???2??e?]?H???`???N?????7?1L*???B??6?N????~?n?@?????1~???W?`?c2e????????s?08? ??7?? \ No newline at end of file Added: haiku/branches/releases/r1alpha1/docs/userguide/en/images/apps-images/drivesetup-initialize.png =================================================================== --- haiku/branches/releases/r1alpha1/docs/userguide/en/images/apps-images/drivesetup-initialize.png 2009-09-06 05:13:01 UTC (rev 32954) +++ haiku/branches/releases/r1alpha1/docs/userguide/en/images/apps-images/drivesetup-initialize.png 2009-09-06 09:33:42 UTC (rev 32955) @@ -0,0 +1,15 @@ +?PNG + + +e??d??~#?,?q?4?J??[??????D^?2?B?????o???[????????U???}r??[C??7?WV{s+???0??7??2s??cA??v~????3dn?#??}?0?$????<|^?????sV0?)p???? ?????j??9u+x?O?pn ???pn?-,???-Hn???i?\?oz?m?????v?/:???p???Ta??i?*dn?.2q?_?%tg??"??F??????9? +?M????????.??????????#?X?cb?-?7 +??\.r???&-?????l^4L<7?{?j?????????\????{{WI?K?_,{??V????oU~??????k?k^d? +??F?}??Y?6?a??-)?B??K??0??#)?Z???????%?K?D?n ??-?t??(r1?|^-i?$)????b?FD??]? ?$k6???G?$???????z ?b????WH????W?'Oc??Jqr??w(?z,???????sy???R???70N:a?????*??y n?zBg??-???@F????_Z????n????bE~?H?VQ,]??w???'??+?E?_?W???W=?5??QQ???1Q??S?????X????U(?7???%???1??????VG??C?t_?]b??%$?E????}???A>\zK@$?5?????G??N?~]?6 B_? ?i??2Z?%?L?8?0z ?b +vgZ?j???X?8B?\??? ????????&?F?(3?vI]]A??7???EM~?????T?]?y??p:???????8??j????0?:?$???SN?R??4??9???????3???Pj??L????? +~ru?IMH????~?J?%o;???????2? ???$IQ?ai?/!??}?|E????????C?#k__??G???&5??>??/h??????]???q/|??#?EeZ=?!]???;???(`?4?6??M?T?\????~????????????r???R\u?q?/??]???.?nO?P??o?E?{L??s?? ?*7Z???BN?OA??]^?&X??????????gu??LJ?;?v +B?????????c??3??1??S?2? ?7??{?3??????S?T?_???G????2????e?0C???-;??g +?????g??6?|?[????/?gE?u??4?^Z??e???????:?6??x???G9??|??U?1OK?A??K?j5??7f??C~^?Sz???????L?p????7? +???M??nWn?8$}p??0p?Y??q????Qa??????xM??M??a??43?N??J+?%7Q;ys???????K7???p7???p?{? 4Qnc ?????? ?_5>??? ??P0?/Z7?6?*? \ No newline at end of file Added: haiku/branches/releases/r1alpha1/docs/userguide/en/images/apps-images/drivesetup.png =================================================================== --- haiku/branches/releases/r1alpha1/docs/userguide/en/images/apps-images/drivesetup.png 2009-09-06 05:13:01 UTC (rev 32954) +++ haiku/branches/releases/r1alpha1/docs/userguide/en/images/apps-images/drivesetup.png 2009-09-06 09:33:42 UTC (rev 32955) @@ -0,0 +1,145 @@ +?PNG + + +{??_?????U?U]U]???_W????"????????????!?BHt?D???~B,? Q?B!?[| ?3g?8?h>v?? ? ? +?q??????[-??9|?-Z??_tk???????-???Yc??|a???????{]?n]h???~?cz??{???I?[B!??????N?r?| ???*????*T??z?!??~??7?????-Z???????7O?*UJ??!??j?t??1??3f?(.'?>? @`???B!?$.????'?4??????;???|??I??G ?y?f???????;????t????q?xp?}?????o??o????!?B(?9 a????d????C?B!??5~????Y?3?L?2E ??^?c=~X???o?Pj??;???;7?????\?P?BB?iHf?X?Z5????{??G?)SF??5+.u:???g??5k????#???] ??sQ0?{??U?s??A???Rk?? 7!$>?}??.?f???.?_??+???w???~C?d)g??|??j??I _??Le??]Fi}??q?~?{'$??sn?????\??3G)RD?}????G???'??z?h???k?s?:??W?k?K?.?????S??1Cu??Me??M?,X?z????sg??y?;??~??? ?G}??f?*4l?P???7??????~???i?XO!Z????k??\??????????z??}????s5~???1XB7nv_~???\? &?0??g?yF?[?.?g??^?z??#???uK?.-?9a??r?< ???pK?????I?u ???x??!i|?2??-???U???.?70?h??/*?6?Y? |Q!?QP???????n?~????w?(Q"??7?|#?R?a%???w???????????X?gV?Z?j?,Y?? ,f???|d????1?9>|?KC4?"c\?2g?,? W?A0????@????j? ??~?x?h?????? ????/"??u??l????X?O????~?s !?A?>????>?,'?%??a3?bw??8???????? ?s?????x?2b]",?1?-Vq?????gN!?B '????[?B!???f??+WdJ?7n?? !?Bx??7? +??3e??9-n?d>?T??9?u?)??0N????V?Z???[o??<b?5`???0!??\??]?V\O?>?}?G}$Z 4h???O?+?? `Pu?!7kI +?x,?S?LQ?4WSgU?QA?t`B +????a +#GT`?2??V??v?97 ?9?9N?}???????????????#?? J??G??p??H??????!??X p?????.? ???? ???kh?-?vZ????-[?<^|??ujM??j??o?j `?4?????????Y?i?Ju?M?????a? v?? +>???E +?G????-??????|???{I'??z?????//?p??>,??,!??C????n??q!] ??????}?????I???'?Z??M`???c???q?Z?r??l???Gp? ?w? +?%??*?8?T?Ra?Z?n-VTX?!?0=??n|?c{???uJJ?? +p???H??? +?????2?????j??j????Q?F?U???:u???~?????.???? +o???;,??? ???M-??n??_????_]?g???+??lhV?D??????Q???#??G?p?S???????Aw@?xM;???={:(?#? v???(?G???T???y??-??M?6???U?2?}T?f=?hD??x .u? ?s??4h???V??p??;???????9-~??B??L^?pp???????'?>?? ??O?0v?7N?b?,X?h?D? ? +p +pB!?B(? !?B? +(6??6??D????x?P???z????$=????U???>,+{?? ????+???Z?c?>*-,??6l??$??j????(};_?|j?????[=?7w??j??u??f5??????4?c?????R7n??c;c??????3gBo???2e???|2s*K???s?S???|???????8???????????8P>??????y??E?w???~?>???? +????Y??K??_?ox?g??z?(??o?U?& ?]E?v?ZX%DG?0 +I?n?6e?yq-|?e'>??^???ye?E +p?????\>????#?W???t???????? +??|Bai+V???Lu??c?=&3??G???*:Xz0s??? -?;vL?e???3?5.^?a2dH????w??r?U?gTT4? + ????????Z??e ?????n +p +pBH4????5??WW??,88!$Z.(C? W???W??N??~?n?v?9????U?"E?#!??X??#?p????????$h????7?????]?lY??M????>?????j?G?????? ?'N?1? +pXt?a%x???T???C??CN??? +B?v??Y???x??3N??>?L??????/V?X!??????b*?.]???,(+Vk?.??kh?>D??8??2!??u?y?i??p????{.4x?%, ?7????q?z|??.??|???0vP?B????+h ??R!? +pB?? +?1??????#????B!?r?? ?[?nB!?B? 8!?B!??B!?P?S?' ??+Q??W?!?B(?)???? d??X?\??x??-?[???O=??7o???>??,???];94M?8??{?V??7O??????A?l???????9???B?????s6o????/????>?;wn5n?8???6mR?*URY?f??x??????-??9sfY?x??-?????U?Z?ls??x??q?3???1j?(U?tiu??Q?X???B"??v??%k%??1C]?xQ?"??? ?m?6Y????O?|??Z?z??Z??e??f??}U??E)?Y1#?d????5??\?????????^???dz??~??X9? 6????e??f??????1c??'}{???R????n???0???[?~???'?4h??????O????2"6??>q???[??N?X?illc?lqu??M,??r?R?g?V={??0?-Z?9-v?dwove????T??yU? ??.]?$V>??B"??j?r?x???YS?1?W?W?^?~??30p?????#?+W?,???."O?x]?vU???S??2??n????V?D ?x??PX?G ???#Gy??2o???????#Br??Y??V?H?{???W-Z?????n?s?q???? B???nq6o?\????j???"???_?xq?i??O:Nei?Q~???????k?^??>??$?? + 6????+??pl???b?NII {??oLQ ? ??????o?????+???pp?(\??|?h'>l??8\;?A#???q??d??c???#E???`???*???~?|??7??4????:Q?n]?c?????c?U?VIaM ??X?|`~??G"?\P???]?H??r??Ib?B?l?2G 8&{x???(?Y1???????????W?????\??$??????0f?(V??Xeu??c?=&3??G????n?w?'?{s+KsZ?????MSO?????????9??q?C????~?z^j???????G??V ++1?v?97??9?9N?}??????????????V,???p??"T7l???? +??w?B?C`?G??^??Z?~?|? +p +?h%j,e???i???[?%????Ca???X?x?m?? +??2o?????* ??Y?l??H?"????>??j????85n???@?|?????8???G???7??:??+ -?0??/?9-^?I??,?s?9??b???g??0_*??a???R??bd??a???H???F?j????????????* ??C?xs?????[?xoVVI??n?ge ??g?????????C!K???>%M?4Q?'O?Y? +Z??I???'??1?3?@??A??K??i?x???????d??XV?#??|??G????????l\???L??? '?us?? ?P?SH?Z?j? ?UDX??J??a +?f?'`???*^e?j?m ?? a??p??g???1????????|?0b??c????5?????V 4p=e??M?$n?7CN???m?F???k??R?JI??????W?U??n???8$???y?v?|?S??l}?*1}?u?j?? ?5??;?kcP6z?h_3??U?>?????6:\??b?v???F +~oz???(????WF?)))????}cz'`???G?????}?|?0w?\?I5???%X????]?? VL?Aca|??m??5??~n??;???????9-~?7- pX?Q?`MB^=??3?_vy ?,?;v??8n????????????:???3?`??wv??W?U?c??????A??O???#n????N?>?e???E??u??D~;vL?V?.??3???}X??????$p?@ r????t??c??? +??Ww??A??B????s???? +?? ?? v>?>2^?y9?*?3**? ??oN????vK?S>Y??[Y????~???&?8:?o??6L??C,??????,%A?[???x?k]Xm?J?"??f?Yot?X???*?????G?????R?'????[;?&????d??XV?????O?6M=????? ?~?a?[ +?~?|=?yLm????mp?D8?g?5m%f??????????v??X+????L?????j?Z?#L?`?W;%%E,?k???1? +???zK8p@?X??j??E?wXztw????wLV?BIf>h? ?YP????UK? +p???+???g?B? + A?cA???s????O?.????a?;???3G???Y?l??H?"R?/]??????Z?h?????(???c??T???^???9=n???7o.sl?;VD+?c????k?????S??@?????3z?0???* +?8?D?????I?????S???????j?v?n}?"*%e??1}??6e??:y??f?jO?Z?j"??}T??>?? ??C???? w?s???????Sb??6??G?????B??????n=??o????V?^-#GT`?2??V???9?????~Msz??9?9???[??????r?;?-?n??h?`?????c?%??@????c????l? !??+ 8f?? +;??uk????m?4??G?rl???b?MII?^???w`???G?????}?||0w?\?_6??k?q?Q?]????G???????`??,???m?> +?G????)O??????i??~/?!?B? +p,K??eK?o?>u??i?`?U?|???K?,?UW???+??o??9???KCa?U??????:$??UK?1"???M?T?|?? ;y????c??[??????? ?u$??[??'N?j?????RV???????????n????d/ ?v?o?i?{?9u?????????mY?=?J?0?P????-???+ +,?W%?Z?s?H`?? ?;?p?w|?{NSW?\9?? +"iJ??pk'??? ?b??????cC??6?a???e?d??4'?1rF??? ?+??;?1????????!?a?B=?[+A|? ??0??o????j?:?v???|???w????3??k?z?']?,???? ??O~?g?? O????UpgLv??S; 7?b??I??7?Cw?4?w,?E?????&"MpX?`???C???????????? .*???9^|z? @???????a???-kk??x??????*Z?(x?8?l???4??4?? a?9?1/8??~?[?dI?d???r???_??? +s??)????#;cIvTb? ?9/P?@???8f?????ocD? +??s???^??p|`??A?Y??U????O?>??Hs? ?????_ mlc?j?K1???T??yU? ???}???o?-?gcIn,?}?? ??P?B?????s?H`????;iB!i?????}??????e?? ???????b?o??&tl????????????n?r??r????"??tw??U?+WN>|X?"?i???[?%dQ #??E??X?x?m????y??a?;???3G?f???77???^P?R%y?d^u]?p!??????w??nu??^0?9y?d(L?"E???t???????S?[???e???#F?,Y?????gl? !??9f??-F3??? + ?a??65k? ???????G???/?:t??~??b?56??B??#/????o?? ?;X??????t?Z7?f>??????NpL2?N~?}??H???:tPe[?U??k?zg?;??????~Z*????&??Z???>??????? ??yv?5A?????X]u?1\?1? ??=y?d??`c??5?9??c??b".?8?`^??:H?>>??> +?/2?6???????r ??)????]xsy??? ?{P/P?p?[cV?\c??B!i?W_}5lb????????`??}?U???G*? ?M0ua????? +2Z?????o???g?A-?????^|za?6W?X?xR+N?q?:I?????e?V?m?????4i?,??Ub;u?$em???????Ex7n?X?????????-[?T???S?O?V ,P???? +)???p9rdX??y??-a>Vz???#Cc? +F??????z???B?U?ZU 0 P}?aB!?k~??g??B!?BH?8?!$?B!??B!? +p +pB!?B< +p?m?j?x??B!????I?????p??????????_"??D???%~?$????y?0????$?B!$?D?B3??????i????yS?q???~???U1???? \ No newline at end of file Modified: haiku/branches/releases/r1alpha1/docs/userguide/en/images/apps-images/poorman.png =================================================================== (Binary files differ) Modified: haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_dac.c =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_dac.c 2009-09-06 05:13:01 UTC (rev 32954) +++ haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_dac.c 2009-09-06 09:33:42 UTC (rev 32955) @@ -1,6 +1,6 @@ /* program the DAC */ /* Author: - Rudolf Cornelissen 12/2003-7/2009 + Rudolf Cornelissen 12/2003-9/2009 */ #define MODULE_BIT 0x00010000 @@ -200,6 +200,20 @@ /* Give the PIXPLL frequency some time to lock... (there's no indication bit available) */ snooze(1000); + + /* enable programmable PLLs */ + /* (confirmed PLLSEL to be a write-only register on NV04 and NV11!) */ + /* note: + * setup PLL assignment _after_ programming PLL */ + if (si->ps.secondary_head) { + if (si->ps.card_arch < NV40A) + DACW(PLLSEL, 0x30000f00); + else + DACW(PLLSEL, 0x30000f04); + } else { + DACW(PLLSEL, 0x10000700); + } + LOG(2,("DAC: PIX PLL frequency should be locked now...\n")); return B_OK; Modified: haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_dac2.c =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_dac2.c 2009-09-06 05:13:01 UTC (rev 32954) +++ haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_dac2.c 2009-09-06 09:33:42 UTC (rev 32955) @@ -1,6 +1,6 @@ /* program the secondary DAC */ /* Author: - Rudolf Cornelissen 12/2003-7/2009 + Rudolf Cornelissen 12/2003-9/2009 */ #define MODULE_BIT 0x00001000 @@ -203,6 +203,20 @@ /* Give the PIXPLL frequency some time to lock... (there's no indication bit available) */ snooze(1000); + + /* enable programmable PLLs */ + /* (confirmed PLLSEL to be a write-only register on NV04 and NV11!) */ + /* note: + * setup PLL assignment _after_ programming PLL */ + if (si->ps.secondary_head) { + if (si->ps.card_arch < NV40A) + DACW(PLLSEL, 0x30000f00); + else + DACW(PLLSEL, 0x30000f04); + } else { + DACW(PLLSEL, 0x10000700); + } + LOG(2,("DAC2: PIX PLL frequency should be locked now...\n")); return B_OK; Modified: haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_general.c =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_general.c 2009-09-06 05:13:01 UTC (rev 32954) +++ haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_general.c 2009-09-06 09:33:42 UTC (rev 32955) @@ -1,7 +1,7 @@ /* Authors: Mark Watson 12/1999, Apsed, - Rudolf Cornelissen 10/2002-8/2009 + Rudolf Cornelissen 10/2002-9/2009 tst.. */ @@ -92,7 +92,7 @@ { status_t status; - LOG(1,("POWERUP: Haiku nVidia Accelerant 0.98 running.\n")); + LOG(1,("POWERUP: Haiku nVidia Accelerant 1.00 running.\n")); /* log VBLANK INT usability status */ if (si->ps.int_assigned) @@ -1789,13 +1789,6 @@ DACW(GENCTRL, 0x00100100); if (si->ps.secondary_head) DAC2W(GENCTRL, 0x00100100); - /* enable programmable PLLs */ - /* (confirmed PLLSEL to be a write-only register on NV04 and NV11!) */ - if (si->ps.secondary_head) - DACW(PLLSEL, 0x30000f00); - else - DACW(PLLSEL, 0x10000700); - /* turn on DAC and make sure detection testsignal routing is disabled * (b16 = disable DAC, * b12 = enable testsignal output */ @@ -1804,9 +1797,20 @@ //It feels like in some screen configurations it can move the output to the other //output connector as well... DACW(TSTCTRL, (DACR(TSTCTRL) & 0xfffeefff)); + /* b20 enables DAC video output on some newer cards + * (confirmed video to be almost black if zero on Geforce 7300, id 0x01d1 (G72)) */ + if ((si->ps.card_type == NV44) || (si->ps.card_type >= G70)) + DACW(TSTCTRL, (DACR(TSTCTRL) | 0x00100000)); + /* turn on DAC2 if it exists * (NOTE: testsignal function block resides in DAC1 only (!)) */ - if (si->ps.secondary_head) DAC2W(TSTCTRL, (DAC2R(TSTCTRL) & 0xfffeefff)); + if (si->ps.secondary_head) { + DAC2W(TSTCTRL, (DAC2R(TSTCTRL) & 0xfffeefff)); + /* b20 might enable DAC video output on some newer cards + * (not confirmed yet) */ + if ((si->ps.card_type == NV44) || (si->ps.card_type >= G70)) + DAC2W(TSTCTRL, (DAC2R(TSTCTRL) | 0x00100000)); + } /* NV40 and NV45 need a 'tweak' to make sure the CRTC FIFO's/shiftregisters get * their data in time (otherwise momentarily ghost images of windows or such Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/graphics/nvidia/README.html =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/graphics/nvidia/README.html 2009-09-06 05:13:01 UTC (rev 32954) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/graphics/nvidia/README.html 2009-09-06 09:33:42 UTC (rev 32955) @@ -41,7 +41,7 @@
    • B_YCbCr422 hardware overlay support on both TNT and GeForce series cards, except for GeForce 6xxx and 7xxx series (GeForce 6800 works though). Overlay output 'follows head' in dualhead stretch/switch modes;
    • Dualhead support on GeForce dualhead cards (use 'Dualhead Setup' from BeBits for now);
    • DVI and laptop panel support; -
    • Widescreen mode support (all screens must be widescreen type and they must all be digitally connected); +
    • Widescreen mode support (all screens must be widescreen type;
    • Basic AGP mode support on AGP cards, using the new (seperate) Haiku AGP busmanager;
    • Basic ('legacy') PCIe support;
    • Coldstart support for analog connected screens on most cards except TNT1, GeForce 6xxx and 7xxx series; @@ -54,20 +54,20 @@
    • If the driver seems to create 'random' trouble make sure you have a fully functional VGA BIOS, or system BIOS for embedded cards (check for updates on the manufacturor's site). Make sure you mail me if you still have trouble but also if this version fixed that!
    • If on a laptop the internal panel doesn't work when you connect an external monitor, make sure you set 'output device selection' to 'internal' (instead of 'auto') in the system BIOS if it has such an option. If you have this symptom on a normal card, or on a laptop without that BIOS option then you are probably out of luck for dualhead support;
    • NV40 architecture cards: (GeForce 6xxx, but 6800 AGP seems to be OK)
      - Secondary analog monitor load detection doesn't work and we can't control very well to which connector the card's output gets routed (lack of specs). This means you might have to experiment a bit with the way you connect your monitor to the card. A single analog or DVI screen should work OK, and two analog screens should be OK as well. + We can't control very well to which connector the card's output gets routed (lack of specs). This means you might have to experiment a bit with the way you connect your monitor to the card.


    Installation:

    -If you encounter bugs, please checkout the driver's website to see if it's already on the todo list. You can also checkout the UPDATE file included with this driver to see if it should have been fixed. If you think it's prudent, or if you are unsure, then please fill out the bugreport form on the site or send me an Email. Make sure you are as precise as possible because that will make things easier to trackdown and fix...
    +If you encounter bugs, please see if a matching bug report already exists at the Haiku website. If not, or if you are unsure, file a new one. Make sure you are as precise as possible because that will make things easier to trackdown and fix...


    OK, now that's all said let's get to it ;-)

    -In contrary to what I have said before you don't need to de-install official Be drivers for this driver to work correctly. This driver will install in the user part of the BeOS, so not in the system part where the official drivers are.
    -BeOS first checks (during boot) if there are 'user-addons' that should be loaded for a device. If not, it loads it's own drivers (if any). You can select which driver should be loaded by hitting the spacebar as soon as the BeOS 'icons' screen appears. If you select disable user addons the system will load it's own drivers. If you don't do anything, the system will load the Haiku Nvidia TNT/GeForce graphics driver.
    +You don't need to de-install official drivers for this driver to work correctly. This driver will install in the user part of Haiku, so not in the system part where the official drivers are.
    +Haiku first checks (during boot) if there are 'user-addons' that should be loaded for a device. If not, it loads it's own drivers (if any). You can select which driver should be loaded by hitting the spacebar just before the Haiku 'icons' splash screen appears. If you select disable user addons the system will load it's own drivers. If you don't do anything, the system will load the Haiku Nvidia TNT/GeForce graphics driver.

    -Note: This might turn out to be handy if you run into trouble upon testing the driver, or if you are 'tweaking' the nv.settings file...
    +Note: This might turn out to be handy if you run into trouble upon testing the driver, or if you are 'tweaking' the nvidia.settings file...


    actual INSTALLATION:

    @@ -83,10 +83,10 @@
    Currently there's no uninstall script included. Just do it manually:

    -Delete the nv.accelerant file in home/config/add-ons/accelerants/
    -Delete the nv.driver file in home/config/add-ons/kernel/drivers/bin/
    -Delete the nv.settings file in home/config/settings/kernel/drivers/
    -Delete the nv.driver shortcut in home/config/add-ons/kernel/drivers/dev/graphics/ which pointed to the file nv.driver.
    +Delete the nvidia.accelerant file in home/config/add-ons/accelerants/
    +Delete the nvidia.driver file in home/config/add-ons/kernel/drivers/bin/
    +Delete the nvidia.settings file in home/config/settings/kernel/drivers/
    +Delete the nvidia.driver shortcut in home/config/add-ons/kernel/drivers/dev/graphics/ which pointed to the file nvidia.driver.

    You have to reboot in order to apply the original configuration.

    @@ -254,6 +254,6 @@

    Rudolf Cornelissen.
    -

    (Page last updated on August 23, 2009)

    +

    (Page last updated on September 5, 2009)

    Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html 2009-09-06 05:13:01 UTC (rev 32954) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html 2009-09-06 09:33:42 UTC (rev 32955) @@ -4,7 +4,7 @@

    Changes done for each driverversion:

    -

    head (SVN 0.98, Rudolf)

    +

    head (SVN 1.00, Rudolf)

    • Fixed driver assuming enabling AGP mode succeeded on some occasions if it did not block it itself. Blocking AGP mode completely via the AGP busmanager (option 'block_agp') resulted in a crashing acceleration engine because it was setup for AGP transfers instead of using PCI transfers. Error was solved with help from user kraton.
    • Fixed shared_info struct problem occuring when 3D 'accelerant' is used (tested Alpha 4.1): the TVencoder type definition list apparantly gets some memory assigned these days when done inside the definition of shared_info. Moved encoder list outside the shared_info definition. @@ -25,7 +25,8 @@
    • Corrected/Added detection of third I2C bus on cards that support it. The old detection method for a third and (non-existing) fourth bus was faulty. The driver uses I2C channels for monitor DDC/EDID and TVencoder communications.
    • DDC/EDID fetching now also works on GCC4 binaries due to a fixed fault in the accelerants/common code (which is used for that function);
    • Added support for Haiku specific driverhook GET_PREFERRED_DISPLAY_MODE. Laptops should now also startup in native mode automatically at first system boot; -
    • Rewrote framebuffer memory detection. Accelerant now only uses the amount of RAM mapped by the kerneldriver as maximum. This fixes black screen at app_server startup on a number of GF6xxx and GF7xxx cards. +
    • Rewrote framebuffer memory detection. Accelerant now only uses the amount of RAM mapped by the kerneldriver as maximum. This fixes black screen at app_server startup on a number of GF6xxx and GF7xxx cards; +
    • Finally(!) fixed PLL selection trouble on NV40 architecture (Geforce 6xxx and 7xxx) cards. Now dualhead should (almost) always work OK, and now low-res bootscreens should nolonger result in 'frequency out of range' messages on DVI connected screens.

    nv_driver 0.80 (Rudolf)

      Modified: haiku/branches/releases/r1alpha1/src/add-ons/tracker/opentargetfolder/Jamfile =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/tracker/opentargetfolder/Jamfile 2009-09-06 05:13:01 UTC (rev 32954) +++ haiku/branches/releases/r1alpha1/src/add-ons/tracker/opentargetfolder/Jamfile 2009-09-06 09:33:42 UTC (rev 32955) @@ -1,6 +1,6 @@ SubDir HAIKU_TOP src add-ons tracker opentargetfolder ; -Application Open\ Target\ Folder-T : +Application Open\ Target\ Folder-O : opentargetfolder.cpp : be tracker $(TARGET_LIBSUPC++) From stippi at mail.berlios.de Sun Sep 6 11:43:13 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Sun, 6 Sep 2009 11:43:13 +0200 Subject: [Haiku-commits] r32956 - haiku/branches/releases/r1alpha1/build/jam Message-ID: <200909060943.n869hDwc003173@sheep.berlios.de> Author: stippi Date: 2009-09-06 11:43:12 +0200 (Sun, 06 Sep 2009) New Revision: 32956 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32956&view=rev Modified: haiku/branches/releases/r1alpha1/build/jam/HaikuImage Log: Merged r32949 from trunk. Modified: haiku/branches/releases/r1alpha1/build/jam/HaikuImage =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/HaikuImage 2009-09-06 09:33:42 UTC (rev 32955) +++ haiku/branches/releases/r1alpha1/build/jam/HaikuImage 2009-09-06 09:43:12 UTC (rev 32956) @@ -136,7 +136,7 @@ Print\ To\ File Serial\ Port USB\ Port ; SYSTEM_ADD_ONS_SCREENSAVERS = DebugNow Flurry Haiku IFS Spider Message ; -SYSTEM_ADD_ONS_DRIVERS_AUDIO = auich auvia echo3g emuxki hda ; #humdinger: removed 'hda' +SYSTEM_ADD_ONS_DRIVERS_AUDIO = auich auvia echo3g emuxki hda ; SYSTEM_ADD_ONS_DRIVERS_AUDIO_OLD = ; #cmedia sis7018 usb_audio ; SYSTEM_ADD_ONS_DRIVERS_GRAPHICS = $(X86_ONLY)radeon $(X86_ONLY)nvidia $(X86_ONLY)neomagic $(X86_ONLY)matrox $(X86_ONLY)intel_extreme From stippi at mail.berlios.de Sun Sep 6 11:53:29 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Sun, 6 Sep 2009 11:53:29 +0200 Subject: [Haiku-commits] r32957 - in haiku/trunk: headers/private/shared src/kits/shared Message-ID: <200909060953.n869rTRw003923@sheep.berlios.de> Author: stippi Date: 2009-09-06 11:53:28 +0200 (Sun, 06 Sep 2009) New Revision: 32957 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32957&view=rev Modified: haiku/trunk/headers/private/shared/CommandPipe.h haiku/trunk/src/kits/shared/CommandPipe.cpp Log: Make the base class destructor of BCommandPipe::LineReader virtual, since that will fix the problem fixed in r32926 for all derived classes. Modified: haiku/trunk/headers/private/shared/CommandPipe.h =================================================================== --- haiku/trunk/headers/private/shared/CommandPipe.h 2009-09-06 09:43:12 UTC (rev 32956) +++ haiku/trunk/headers/private/shared/CommandPipe.h 2009-09-06 09:53:28 UTC (rev 32957) @@ -63,6 +63,7 @@ class LineReader { public: + virtual ~LineReader() {} virtual bool IsCanceled() = 0; virtual status_t ReadLine(const BString& line) = 0; // TODO: Add a Timeout() method. Modified: haiku/trunk/src/kits/shared/CommandPipe.cpp =================================================================== --- haiku/trunk/src/kits/shared/CommandPipe.cpp 2009-09-06 09:43:12 UTC (rev 32956) +++ haiku/trunk/src/kits/shared/CommandPipe.cpp 2009-09-06 09:53:28 UTC (rev 32957) @@ -304,10 +304,6 @@ fResult("") { } - - virtual ~AllLinesReader() - { - } virtual bool IsCanceled() { From rudolfc at mail.berlios.de Sun Sep 6 12:20:46 2009 From: rudolfc at mail.berlios.de (rudolfc at mail.berlios.de) Date: Sun, 6 Sep 2009 12:20:46 +0200 Subject: [Haiku-commits] r32958 - in haiku/trunk: headers/private/graphics/nvidia src/add-ons/accelerants/nvidia/engine src/add-ons/kernel/drivers/graphics/nvidia Message-ID: <200909061020.n86AKk7I006546@sheep.berlios.de> Author: rudolfc Date: 2009-09-06 12:20:42 +0200 (Sun, 06 Sep 2009) New Revision: 32958 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32958&view=rev Modified: haiku/trunk/headers/private/graphics/nvidia/nv_macros.h haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac.c haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac2.c haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html Log: the previous commit shifted the PLLsel problem from digitally connected screens to analog connected screens apparantly. That is now fixed and both should work OK. Bumped version to 1.01. +alphabranch. Modified: haiku/trunk/headers/private/graphics/nvidia/nv_macros.h =================================================================== --- haiku/trunk/headers/private/graphics/nvidia/nv_macros.h 2009-09-06 09:53:28 UTC (rev 32957) +++ haiku/trunk/headers/private/graphics/nvidia/nv_macros.h 2009-09-06 10:20:42 UTC (rev 32958) @@ -651,6 +651,7 @@ #define NVDAC_PLLSEL 0x0068050c #define NVDAC_OUTPUT 0x0068052c #define NVDAC_PIXPLLC2 0x00680578 +#define NVDAC_NV40_PLLSEL2 0x00680580 #define NVDAC_GENCTRL 0x00680600 #define NVDAC_TSTCTRL 0x00680608 #define NVDAC_TSTDATA 0x00680610 Modified: haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac.c =================================================================== --- haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac.c 2009-09-06 09:53:28 UTC (rev 32957) +++ haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac.c 2009-09-06 10:20:42 UTC (rev 32958) @@ -206,10 +206,12 @@ /* note: * setup PLL assignment _after_ programming PLL */ if (si->ps.secondary_head) { - if (si->ps.card_arch < NV40A) + if (si->ps.card_arch < NV40A) { DACW(PLLSEL, 0x30000f00); - else + } else { + DACW(NV40_PLLSEL2, (DACR(NV40_PLLSEL2) & ~0x10000100)); DACW(PLLSEL, 0x30000f04); + } } else { DACW(PLLSEL, 0x10000700); } Modified: haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac2.c =================================================================== --- haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac2.c 2009-09-06 09:53:28 UTC (rev 32957) +++ haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac2.c 2009-09-06 10:20:42 UTC (rev 32958) @@ -208,13 +208,11 @@ /* (confirmed PLLSEL to be a write-only register on NV04 and NV11!) */ /* note: * setup PLL assignment _after_ programming PLL */ - if (si->ps.secondary_head) { - if (si->ps.card_arch < NV40A) - DACW(PLLSEL, 0x30000f00); - else - DACW(PLLSEL, 0x30000f04); + if (si->ps.card_arch < NV40A) { + DACW(PLLSEL, 0x30000f00); } else { - DACW(PLLSEL, 0x10000700); + DACW(NV40_PLLSEL2, (DACR(NV40_PLLSEL2) & ~0x10000100)); + DACW(PLLSEL, 0x30000f04); } LOG(2,("DAC2: PIX PLL frequency should be locked now...\n")); Modified: haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c =================================================================== --- haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c 2009-09-06 09:53:28 UTC (rev 32957) +++ haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c 2009-09-06 10:20:42 UTC (rev 32958) @@ -92,7 +92,7 @@ { status_t status; - LOG(1,("POWERUP: Haiku nVidia Accelerant 1.00 running.\n")); + LOG(1,("POWERUP: Haiku nVidia Accelerant 1.01 running.\n")); /* log VBLANK INT usability status */ if (si->ps.int_assigned) Modified: haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html 2009-09-06 09:53:28 UTC (rev 32957) +++ haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html 2009-09-06 10:20:42 UTC (rev 32958) @@ -4,7 +4,7 @@

      Changes done for each driverversion:

      -

      head (SVN 1.00, Rudolf)

      +

      head (SVN 1.01, Rudolf)

      • Fixed driver assuming enabling AGP mode succeeded on some occasions if it did not block it itself. Blocking AGP mode completely via the AGP busmanager (option 'block_agp') resulted in a crashing acceleration engine because it was setup for AGP transfers instead of using PCI transfers. Error was solved with help from user kraton.
      • Fixed shared_info struct problem occuring when 3D 'accelerant' is used (tested Alpha 4.1): the TVencoder type definition list apparantly gets some memory assigned these days when done inside the definition of shared_info. Moved encoder list outside the shared_info definition. From stippi at mail.berlios.de Sun Sep 6 12:27:09 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Sun, 6 Sep 2009 12:27:09 +0200 Subject: [Haiku-commits] r32959 - haiku/trunk/src/apps/installer Message-ID: <200909061027.n86AR9Mc006988@sheep.berlios.de> Author: stippi Date: 2009-09-06 12:26:51 +0200 (Sun, 06 Sep 2009) New Revision: 32959 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32959&view=rev Added: haiku/trunk/src/apps/installer/ProgressReporter.cpp haiku/trunk/src/apps/installer/ProgressReporter.h Modified: haiku/trunk/src/apps/installer/Jamfile haiku/trunk/src/apps/installer/UnzipEngine.cpp haiku/trunk/src/apps/installer/UnzipEngine.h haiku/trunk/src/apps/installer/WorkerThread.cpp Log: * Changed the UnzipEngine to be a BCommandPipe::LineReader itself, this simplified the code somewhat (maintaining of state). * UnzipEngine does a more complete parsing of the .zip contents and maintains a hashmap of item names to byte size entries. During unzipping later on, this allows to know how many bytes were unzipped for the given item. * Test whether folders from the .zip already exists, and exclude them from the item count, since unzip will not report creating folders that already existed. * Added the unzipping of packages in the _package_ folder to WorkerThread, but it is currently commented out to keep Installer in a working state. It would work, but the problem is that the progress bar would reset itself at the moment (for every package). * Started a ProgressReporter class that will later be used by all CopyEngine and UnzipEngine instances. This is work in progress and not yet part of the build. Modified: haiku/trunk/src/apps/installer/Jamfile =================================================================== --- haiku/trunk/src/apps/installer/Jamfile 2009-09-06 10:20:42 UTC (rev 32958) +++ haiku/trunk/src/apps/installer/Jamfile 2009-09-06 10:26:51 UTC (rev 32959) @@ -3,12 +3,13 @@ UsePrivateHeaders shared storage tracker ; SubDirHdrs [ FDirName $(HAIKU_TOP) src kits tracker ] ; -Application Installer : +Application Installer : CopyEngine.cpp InstallerApp.cpp InstallerWindow.cpp PackageViews.cpp PartitionMenuItem.cpp + UnzipEngine.cpp WorkerThread.cpp - : be tracker translation $(TARGET_LIBSTDC++) + : be tracker translation libshared.a $(TARGET_LIBSTDC++) : Installer.rdef ; Added: haiku/trunk/src/apps/installer/ProgressReporter.cpp =================================================================== --- haiku/trunk/src/apps/installer/ProgressReporter.cpp 2009-09-06 10:20:42 UTC (rev 32958) +++ haiku/trunk/src/apps/installer/ProgressReporter.cpp 2009-09-06 10:26:51 UTC (rev 32959) @@ -0,0 +1,100 @@ +/* + * Copyright 2009, Stephan A?mus + * All rights reserved. Distributed under the terms of the MIT License. + */ + +#include "ProgressReporter.h" + +#include + +#include +#include +#include + + +using std::nothrow; + + +ProgressReporter::ProgressReporter(const BMessenger& messenger, + BMessage* message) + : + fBytesRead(0), + fItemsCopied(0), + fTimeRead(0), + + fBytesWritten(0), + fTimeWritten(0), + + fBytesToCopy(0), + fItemsToCopy(0), + + fMessenger(messenger), + fMessage(message) +{ +} + + +ProgressReporter::~ProgressReporter() +{ + delete fMessage; +} + + +void +ProgressReporter::Reset() +{ + fBytesRead = 0; + fItemsCopied = 0; + fTimeRead = 0; + + fBytesWritten = 0; + fTimeWritten = 0; + + fBytesToCopy = 0; + fItemsToCopy = 0; + + if (fMessage) { + BMessage message(*fMessage); + message.AddString("status", "Collecting copy information."); + fMessenger.SendMessage(&message); + } +} + + +void +ProgressReporter::AddItems(uint64 count, off_t bytes) +{ + // TODO ... +} + + +void +ProgressReporter::StartTimer() +{ + // TODO ... +} + + +void +ProgressReporter::ItemsCopied(uint64 items, off_t bytes, const char* itemName, + const char* targetFolder) +{ + // TODO ... +} + + +void +ProgressReporter::_UpdateProgress(const char* itemName, + const char* targetFolder) +{ + if (fMessage != NULL) { + BMessage message(*fMessage); + float progress = 100.0 * fBytesRead / fBytesToCopy; + message.AddFloat("progress", progress); + message.AddInt32("current", fItemsCopied); + message.AddInt32("maximum", fItemsToCopy); + message.AddString("item", itemName); + message.AddString("folder", targetFolder); + fMessenger.SendMessage(&message); + } +} Added: haiku/trunk/src/apps/installer/ProgressReporter.h =================================================================== --- haiku/trunk/src/apps/installer/ProgressReporter.h 2009-09-06 10:20:42 UTC (rev 32958) +++ haiku/trunk/src/apps/installer/ProgressReporter.h 2009-09-06 10:26:51 UTC (rev 32959) @@ -0,0 +1,48 @@ +/* + * Copyright 2009, Stephan A?mus + * All rights reserved. Distributed under the terms of the MIT License. + */ +#ifndef PROGRESS_REPORTER_H +#define PROGRESS_REPORTER_H + + +#include + + +class ProgressReporter { +public: + ProgressReporter(const BMessenger& messenger, + BMessage* message); + virtual ~ProgressReporter(); + + void Reset(); + + void AddItems(uint64 count, off_t bytes); + + void StartTimer(); + + void ItemsCopied(uint64 items, off_t bytes, + const char* itemName, + const char* targetFolder); + +private: + void _UpdateProgress(const char* itemName, + const char* targetFolder); + +private: + off_t fBytesRead; + uint64 fItemsCopied; + bigtime_t fTimeRead; + + off_t fBytesWritten; + bigtime_t fTimeWritten; + + off_t fBytesToCopy; + uint64 fItemsToCopy; + + BMessenger fMessenger; + BMessage* fMessage; +}; + + +#endif // PROGRESS_REPORTER_H Modified: haiku/trunk/src/apps/installer/UnzipEngine.cpp =================================================================== --- haiku/trunk/src/apps/installer/UnzipEngine.cpp 2009-09-06 10:20:42 UTC (rev 32958) +++ haiku/trunk/src/apps/installer/UnzipEngine.cpp 2009-09-06 10:26:51 UTC (rev 32959) @@ -1,5 +1,5 @@ /* - * Copyright 2008-2009, Stephan A?mus + * Copyright 2009, Stephan A?mus * All rights reserved. Distributed under the terms of the MIT License. */ @@ -26,20 +26,20 @@ using std::nothrow; -UnzipEngine::UnzipEngine(const BMessenger& messenger, BMessage* message) +UnzipEngine::UnzipEngine(const BMessenger& messenger, BMessage* message, + sem_id cancelSemaphore) : fPackage(""), + fRetrievingListing(false), fBytesToUncompress(0), fBytesUncompressed(0), fItemsToUncompress(0), fItemsUncompressed(0), - fCurrentTargetFolder(NULL), - fCurrentItem(NULL), - fMessenger(messenger), - fMessage(message) + fMessage(message), + fCancelSemaphore(cancelSemaphore) { } @@ -51,17 +51,23 @@ status_t -UnzipEngine::SetTo(const char* pathToPackage) +UnzipEngine::SetTo(const char* pathToPackage, const char* destinationFolder) { fPackage = pathToPackage; + fDestinationFolder = destinationFolder; + fEntrySizeMap.Clear(); + + fBytesToUncompress = 0; + fBytesUncompressed = 0; + fItemsToUncompress = 0; + fItemsUncompressed = 0; + BPrivate::BCommandPipe commandPipe; status_t ret = commandPipe.AddArg("unzip"); if (ret == B_OK) - ret = commandPipe.AddArg("-Z"); + ret = commandPipe.AddArg("-l"); if (ret == B_OK) - ret = commandPipe.AddArg("-t"); - if (ret == B_OK) ret = commandPipe.AddArg(fPackage.String()); if (ret != B_OK) return ret; @@ -72,30 +78,19 @@ if (unzipThread < 0) return (status_t)unzipThread; - BString result = commandPipe.ReadLines(stdOutAndErrPipe); - static const char* kListingFormat = "%llu files, %llu bytes uncompressed, " - "%llu bytes compressed: %f%%"; + fRetrievingListing = true; + ret = commandPipe.ReadLines(stdOutAndErrPipe, this); + fRetrievingListing = false; - uint64 bytesCompressed; - float compresssionRatio; - if (sscanf(result.String(), kListingFormat, &fItemsToUncompress, - &fBytesToUncompress, &bytesCompressed, &compresssionRatio) != 4) { - fBytesToUncompress = 0; - fItemsToUncompress = 0; - fprintf(stderr, "error reading command output: %s\n", result.String()); - return B_ERROR; - } - - printf("%s: %llu items in %llu bytes\n", pathToPackage, fItemsToUncompress, + printf("%llu items in %llu bytes\n", fItemsToUncompress, fBytesToUncompress); - return B_OK; + return ret; } status_t -UnzipEngine::UnzipPackage(const char* destinationFolder, - sem_id cancelSemaphore) +UnzipEngine::UnzipPackage() { if (fItemsToUncompress == 0) return B_NO_INIT; @@ -115,7 +110,7 @@ if (ret == B_OK) ret = commandPipe.AddArg("-d"); if (ret == B_OK) - ret = commandPipe.AddArg(destinationFolder); + ret = commandPipe.AddArg(fDestinationFolder.String()); if (ret == B_OK) ret = commandPipe.AddArg("-x"); if (ret == B_OK) @@ -129,87 +124,139 @@ if (unzipThread < 0) return (status_t)unzipThread; - return _ReadFromPipe(stdOutAndErrPipe, commandPipe, cancelSemaphore); + return commandPipe.ReadLines(stdOutAndErrPipe, this); } // #pragma mark - +bool +UnzipEngine::IsCanceled() +{ + if (fCancelSemaphore < 0) + return false; + + SemaphoreLocker locker(fCancelSemaphore); + return !locker.IsLocked(); +} + + status_t -UnzipEngine::_ReadFromPipe(FILE* stdOutAndErrPipe, - BPrivate::BCommandPipe& commandPipe, sem_id cancelSemaphore) +UnzipEngine::ReadLine(const BString& line) { - class LineReader : public BPrivate::BCommandPipe::LineReader { - public: - LineReader(sem_id cancelSemaphore, off_t bytesToUncompress, - uint64 itemsToUncompress, BMessenger& messenger, - const BMessage* message) - : - fCancelSemaphore(cancelSemaphore), + if (fRetrievingListing) + return _ReadLineListing(line); + else + return _ReadLineExtract(line); +} - fBytesToUncompress(itemsToUncompress), - fBytesUncompressed(0), - fItemsToUncompress(itemsToUncompress), - fItemsUncompressed(0), - fMessenger(messenger), - fMessage(message) - { - } +status_t +UnzipEngine::_ReadLineListing(const BString& line) +{ +// static const char* kListingFormat = "%llu files, %llu bytes uncompressed, " +// "%llu bytes compressed: %f%%"; +// +// uint64 bytesCompressed; +// float compresssionRatio; +// if (sscanf(line.String(), kListingFormat, &fItemsToUncompress, +// &fBytesToUncompress, &bytesCompressed, &compresssionRatio) != 4) { +// fBytesToUncompress = 0; +// fItemsToUncompress = 0; +// fprintf(stderr, "error reading command output: %s\n", line.String()); +// return B_ERROR; +// } - virtual bool IsCanceled() - { - if (fCancelSemaphore < 0) - return false; + static const char* kListingFormat = "%llu %s %s %s\n"; - SemaphoreLocker locker(fCancelSemaphore); - return !locker.IsLocked(); - } + const char* string = line.String(); + while (string[0] == ' ') + string++; - virtual status_t ReadLine(const BString& line) - { - char item[1024]; - char linkTarget[256]; - const char* kInflatingFormat = " inflating: %s\n"; - const char* kLinkingFormat = " linking: %s -> %s\n"; - if (sscanf(line.String(), kInflatingFormat, &item) == 1 - || sscanf(line.String(), kLinkingFormat, &item, - &linkTarget) == 2) { - BString itemPath(item); - int pos = itemPath.FindLast('/'); - BString itemName = itemPath.String() + pos + 1; - itemPath.Truncate(pos); - printf("extracted %s to %s\n", itemName.String(), - itemPath.String()); - } else { - printf("ignored: %s", line.String()); + uint64 bytes; + char date[16]; + char time[16]; + char path[1024]; + if (sscanf(string, kListingFormat, &bytes, &date, &time, &path) == 4) { + fBytesToUncompress += bytes; + + BString itemPath(path); + BString itemName(path); + int leafPos = itemPath.FindLast('/'); + if (leafPos >= 0) + itemName = itemPath.String() + leafPos + 1; + + // We check if the target folder exists and don't increment + // the item count in that case. Unzip won't report on folders that did + // not need to be created. This may mess up our current item count. + uint32 itemCount = 1; + if (bytes == 0 && itemName.Length() == 0) { + // a folder? + BPath destination(fDestinationFolder.String()); + if (destination.Append(itemPath.String()) == B_OK) { + BEntry test(destination.Path()); + if (test.Exists() && test.IsDirectory()) { + printf("ignoring %s\n", itemPath.String()); + itemCount = 0; + } } - - return B_OK; } - private: - sem_id fCancelSemaphore; + fItemsToUncompress += itemCount; - off_t fBytesToUncompress; - off_t fBytesUncompressed; - uint64 fItemsToUncompress; - uint64 fItemsUncompressed; + printf("item %s with %llu bytes to %s\n", itemName.String(), + bytes, itemPath.String()); - BMessenger& fMessenger; - const BMessage* fMessage; - }; + fEntrySizeMap.Put(itemName.String(), bytes); + } else { +// printf("listing not understood: %s", string); + } - LineReader lineReader(cancelSemaphore, fBytesToUncompress, - fItemsToUncompress, fMessenger, fMessage); + return B_OK; +} - return commandPipe.ReadLines(stdOutAndErrPipe, &lineReader); + +status_t +UnzipEngine::_ReadLineExtract(const BString& line) +{ + char item[1024]; + char linkTarget[256]; + const char* kCreatingFormat = " creating: %s\n"; + const char* kInflatingFormat = " inflating: %s\n"; + const char* kLinkingFormat = " linking: %s -> %s\n"; + if (sscanf(line.String(), kCreatingFormat, &item) == 1 + || sscanf(line.String(), kInflatingFormat, &item) == 1 + || sscanf(line.String(), kLinkingFormat, &item, + &linkTarget) == 2) { + + fItemsUncompressed++; + + BString itemPath(item); + int pos = itemPath.FindLast('/'); + BString itemName = itemPath.String() + pos + 1; + itemPath.Truncate(pos); + + off_t bytes = 0; + if (fEntrySizeMap.ContainsKey(itemName.String())) { + bytes = fEntrySizeMap.Get(itemName.String()); + fBytesUncompressed += bytes; + } + + printf("%llu extracted %s to %s (%llu)\n", fItemsUncompressed, + itemName.String(), itemPath.String(), bytes); + + _UpdateProgress(itemName.String(), itemPath.String()); + } else { +// printf("ignored: %s", line.String()); + } + + return B_OK; } void -UnzipEngine::_UpdateProgress() +UnzipEngine::_UpdateProgress(const char* item, const char* targetFolder) { if (fMessage != NULL) { BMessage message(*fMessage); @@ -217,8 +264,8 @@ message.AddFloat("progress", progress); message.AddInt32("current", fItemsUncompressed); message.AddInt32("maximum", fItemsToUncompress); - message.AddString("item", fCurrentItem); - message.AddString("folder", fCurrentTargetFolder); + message.AddString("item", item); + message.AddString("folder", targetFolder); fMessenger.SendMessage(&message); } } Modified: haiku/trunk/src/apps/installer/UnzipEngine.h =================================================================== --- haiku/trunk/src/apps/installer/UnzipEngine.h 2009-09-06 10:20:42 UTC (rev 32958) +++ haiku/trunk/src/apps/installer/UnzipEngine.h 2009-09-06 10:26:51 UTC (rev 32959) @@ -11,43 +11,60 @@ #include #include -namespace BPrivate { - class BCommandPipe; -} +#include "CommandPipe.h" +#include "HashMap.h" +#include "HashString.h" + class BMessage; class BMessenger; -class UnzipEngine { +class UnzipEngine : private BCommandPipe::LineReader { public: UnzipEngine(const BMessenger& messenger, - BMessage* message); + BMessage* message, + sem_id cancelSemaphore = -1); virtual ~UnzipEngine(); - status_t SetTo(const char* pathToPackage); + status_t SetTo(const char* pathToPackage, + const char* destinationFolder); - status_t UnzipPackage(const char* destinationFolder, - sem_id cancelSemaphore = -1); + inline off_t BytesToUncompress() const + { return fBytesToUncompress; } + inline uint64 ItemsToUncompress() const + { return fItemsToUncompress; } + status_t UnzipPackage(); + private: - status_t _ReadFromPipe(FILE* stdOutAndErrPipe, - BPrivate::BCommandPipe& commandPipe, - sem_id cancelSemaphore); - void _UpdateProgress(); + // BCommandPipe::LineReader + friend class BCommandPipe; + virtual bool IsCanceled(); + virtual status_t ReadLine(const BString& line); + + status_t _ReadLineListing(const BString& line); + status_t _ReadLineExtract(const BString& line); + + void _UpdateProgress(const char* item, + const char* targetFolder); + private: BString fPackage; + BString fDestinationFolder; + bool fRetrievingListing; + typedef HashMap EntrySizeMap; + EntrySizeMap fEntrySizeMap; + off_t fBytesToUncompress; off_t fBytesUncompressed; uint64 fItemsToUncompress; uint64 fItemsUncompressed; - const char* fCurrentTargetFolder; - const char* fCurrentItem; - BMessenger fMessenger; BMessage* fMessage; + sem_id fCancelSemaphore; }; Modified: haiku/trunk/src/apps/installer/WorkerThread.cpp =================================================================== --- haiku/trunk/src/apps/installer/WorkerThread.cpp 2009-09-06 10:20:42 UTC (rev 32958) +++ haiku/trunk/src/apps/installer/WorkerThread.cpp 2009-09-06 10:26:51 UTC (rev 32959) @@ -27,6 +27,7 @@ #include "InstallerWindow.h" #include "PackageViews.h" #include "PartitionMenuItem.h" +#include "UnzipEngine.h" //#define COPY_TRACE @@ -390,6 +391,8 @@ "version.", "Install Anyway", "Cancel", 0, B_WIDTH_AS_USUAL, B_STOP_ALERT))->Go() != 0)) { + // TODO: Would be cool to offer the option here to clean additional + // folders at the user's choice (like /boot/common and /boot/develop). err = B_CANCELED; goto error; } @@ -436,6 +439,38 @@ } } +#if 0 + // extract zip packages + // TODO: Put those in the optional packages list view + // TODO: Implement mechanism to handle dependencies between these + // packages. (Selecting one will auto-select others.) + { + BPath pkgRootDir(srcDirectory.Path(), PACKAGES_DIRECTORY); + BDirectory directory(pkgRootDir.Path()); + BEntry entry; + while (directory.GetNextEntry(&entry) == B_OK) { + char name[B_FILE_NAME_LENGTH]; + if (entry.GetName(name) != B_OK) + continue; + int nameLength = strlen(name); + if (nameLength <= 0) + continue; + char* nameExtension = name + nameLength - 4; +printf("inspecting %s (%s)\n", name, nameExtension); + if (strcasecmp(nameExtension, ".zip") != 0) + continue; + printf("found .zip package: %s\n", name); + + UnzipEngine unzipEngine(messenger, new BMessage(MSG_STATUS_MESSAGE), + fCancelSemaphore); + BPath path; + entry.GetPath(&path); + unzipEngine.SetTo(path.Path(), targetDirectory.Path()); + unzipEngine.UnzipPackage(); + } + } +#endif + _LaunchFinishScript(targetDirectory); BMessenger(fWindow).SendMessage(MSG_INSTALL_FINISHED); From rudolfc at mail.berlios.de Sun Sep 6 13:55:45 2009 From: rudolfc at mail.berlios.de (rudolfc at mail.berlios.de) Date: Sun, 6 Sep 2009 13:55:45 +0200 Subject: [Haiku-commits] r32960 - haiku/trunk/src/add-ons/accelerants/nvidia/engine Message-ID: <200909061155.n86BtjIG000529@sheep.berlios.de> Author: rudolfc Date: 2009-09-06 13:55:42 +0200 (Sun, 06 Sep 2009) New Revision: 32960 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32960&view=rev Modified: haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac.c haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac2.c haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c Log: oops. fixed singlehead DVI/laptop panel modes: pllsel needs to be set even if we don't program the pll itself. +alphabranch Modified: haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac.c =================================================================== --- haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac.c 2009-09-06 10:26:51 UTC (rev 32959) +++ haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac.c 2009-09-06 11:55:42 UTC (rev 32960) @@ -153,21 +153,6 @@ float pix_setting, req_pclk; status_t result; - /* we offer this option because some panels have very tight restrictions, - * and there's no overlapping settings range that makes them all work. - * note: - * this assumes the cards BIOS correctly programmed the panel (is likely) */ - //fixme: when VESA DDC EDID stuff is implemented, this option can be deleted... - if ((si->ps.monitors & CRTC1_TMDS) && !si->settings.pgm_panel) - { - LOG(4,("DAC: Not programming DFP refresh (specified in nvidia.settings)\n")); - - /* dump current setup for learning purposes */ - nv_dac_dump_pix_pll(); - - return B_OK; - } - /* fix a DVI or laptop flatpanel to 60Hz refresh! */ /* Note: * The pixelclock drives the flatpanel modeline, not the CRTC modeline. */ @@ -180,7 +165,6 @@ } req_pclk = (target.timing.pixel_clock)/1000.0; - LOG(4,("DAC: Setting PIX PLL for pixelclock %f\n", req_pclk)); /* signal that we actually want to set the mode */ result = nv_dac_pix_pll_find(target,&pix_setting,&m,&n,&p, 1); @@ -192,15 +176,28 @@ /* dump old setup for learning purposes */ nv_dac_dump_pix_pll(); - /* program new frequency */ - DACW(PIXPLLC, ((p << 16) | (n << 8) | m)); + /* we offer this option because some panels have very tight restrictions, + * and there's no overlapping settings range that makes them all work. + * note: + * this assumes the cards BIOS correctly programmed the panel (is likely) */ + //fixme: when VESA DDC EDID stuff is implemented, this option can be deleted... + if ((si->ps.monitors & CRTC1_TMDS) && !si->settings.pgm_panel) { + LOG(4,("DAC: Not programming DFP refresh (specified in nvidia.settings)\n")); + } else { + LOG(4,("DAC: Setting PIX PLL for pixelclock %f\n", req_pclk)); - /* program 2nd set N and M scalers if they exist (b31=1 enables them) */ - if (si->ps.ext_pll) DACW(PIXPLLC2, 0x80000401); + /* program new frequency */ + DACW(PIXPLLC, ((p << 16) | (n << 8) | m)); - /* Give the PIXPLL frequency some time to lock... (there's no indication bit available) */ - snooze(1000); + /* program 2nd set N and M scalers if they exist (b31=1 enables them) */ + if (si->ps.ext_pll) DACW(PIXPLLC2, 0x80000401); + /* Give the PIXPLL frequency some time to lock... (there's no indication bit available) */ + snooze(1000); + + LOG(2,("DAC: PIX PLL frequency should be locked now...\n")); + } + /* enable programmable PLLs */ /* (confirmed PLLSEL to be a write-only register on NV04 and NV11!) */ /* note: @@ -216,8 +213,6 @@ DACW(PLLSEL, 0x10000700); } - LOG(2,("DAC: PIX PLL frequency should be locked now...\n")); - return B_OK; } Modified: haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac2.c =================================================================== --- haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac2.c 2009-09-06 10:26:51 UTC (rev 32959) +++ haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac2.c 2009-09-06 11:55:42 UTC (rev 32960) @@ -156,21 +156,6 @@ float pix_setting, req_pclk; status_t result; - /* we offer this option because some panels have very tight restrictions, - * and there's no overlapping settings range that makes them all work. - * note: - * this assumes the cards BIOS correctly programmed the panel (is likely) */ - //fixme: when VESA DDC EDID stuff is implemented, this option can be deleted... - if ((si->ps.monitors & CRTC2_TMDS) && !si->settings.pgm_panel) - { - LOG(4,("DAC2: Not programming DFP refresh (specified in nvidia.settings)\n")); - - /* dump current setup for learning purposes */ - nv_dac2_dump_pix_pll(); - - return B_OK; - } - /* fix a DVI or laptop flatpanel to 60Hz refresh! */ /* Note: * The pixelclock drives the flatpanel modeline, not the CRTC modeline. */ @@ -183,7 +168,6 @@ } req_pclk = (target.timing.pixel_clock)/1000.0; - LOG(4,("DAC2: Setting PIX PLL for pixelclock %f\n", req_pclk)); /* signal that we actually want to set the mode */ result = nv_dac2_pix_pll_find(target,&pix_setting,&m,&n,&p, 1); @@ -195,15 +179,28 @@ /* dump old setup for learning purposes */ nv_dac2_dump_pix_pll(); - /* program new frequency */ - DAC2W(PIXPLLC, ((p << 16) | (n << 8) | m)); + /* we offer this option because some panels have very tight restrictions, + * and there's no overlapping settings range that makes them all work. + * note: + * this assumes the cards BIOS correctly programmed the panel (is likely) */ + //fixme: when VESA DDC EDID stuff is implemented, this option can be deleted... + if ((si->ps.monitors & CRTC2_TMDS) && !si->settings.pgm_panel) { + LOG(4,("DAC2: Not programming DFP refresh (specified in nvidia.settings)\n")); + } else { + LOG(4,("DAC2: Setting PIX PLL for pixelclock %f\n", req_pclk)); - /* program 2nd set N and M scalers if they exist (b31=1 enables them) */ - if (si->ps.ext_pll) DAC2W(PIXPLLC2, 0x80000401); + /* program new frequency */ + DAC2W(PIXPLLC, ((p << 16) | (n << 8) | m)); - /* Give the PIXPLL frequency some time to lock... (there's no indication bit available) */ - snooze(1000); + /* program 2nd set N and M scalers if they exist (b31=1 enables them) */ + if (si->ps.ext_pll) DAC2W(PIXPLLC2, 0x80000401); + /* Give the PIXPLL frequency some time to lock... (there's no indication bit available) */ + snooze(1000); + + LOG(2,("DAC2: PIX PLL frequency should be locked now...\n")); + } + /* enable programmable PLLs */ /* (confirmed PLLSEL to be a write-only register on NV04 and NV11!) */ /* note: @@ -215,8 +212,6 @@ DACW(PLLSEL, 0x30000f04); } - LOG(2,("DAC2: PIX PLL frequency should be locked now...\n")); - return B_OK; } Modified: haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c =================================================================== --- haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c 2009-09-06 10:26:51 UTC (rev 32959) +++ haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c 2009-09-06 11:55:42 UTC (rev 32960) @@ -92,7 +92,7 @@ { status_t status; - LOG(1,("POWERUP: Haiku nVidia Accelerant 1.01 running.\n")); + LOG(1,("POWERUP: Haiku nVidia Accelerant 1.02 running.\n")); /* log VBLANK INT usability status */ if (si->ps.int_assigned) From korli at mail.berlios.de Sun Sep 6 14:50:34 2009 From: korli at mail.berlios.de (korli at mail.berlios.de) Date: Sun, 6 Sep 2009 14:50:34 +0200 Subject: [Haiku-commits] r32961 - haiku/trunk/build/jam Message-ID: <200909061250.n86CoYGI006546@sheep.berlios.de> Author: korli Date: 2009-09-06 14:50:31 +0200 (Sun, 06 Sep 2009) New Revision: 32961 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32961&view=rev Modified: haiku/trunk/build/jam/ReleaseBuildProfiles Log: sync with alpha, added git and mercurial patch from #4363 Modified: haiku/trunk/build/jam/ReleaseBuildProfiles =================================================================== --- haiku/trunk/build/jam/ReleaseBuildProfiles 2009-09-06 11:55:42 UTC (rev 32960) +++ haiku/trunk/build/jam/ReleaseBuildProfiles 2009-09-06 12:50:31 UTC (rev 32961) @@ -13,8 +13,9 @@ AddOptionalHaikuImagePackages BePDF Clockwerk Firefox Pe Vision VLC WonderBrush ; - AddOptionalHaikuImagePackages CVS Development Subversion OpenSSH ; - AddOptionalHaikuImagePackages Welcome BeBook ; + AddOptionalHaikuImagePackages CVS Development Git Mercurial + Python Subversion OpenSSH ; + AddOptionalHaikuImagePackages Nano P7zip Welcome BeBook ; } case "beta-*" : { From bga at mail.berlios.de Sun Sep 6 15:01:26 2009 From: bga at mail.berlios.de (bga at mail.berlios.de) Date: Sun, 6 Sep 2009 15:01:26 +0200 Subject: [Haiku-commits] r32962 - haiku/trunk/src/apps/people Message-ID: <200909061301.n86D1Q0F007825@sheep.berlios.de> Author: bga Date: 2009-09-06 15:01:20 +0200 (Sun, 06 Sep 2009) New Revision: 32962 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32962&view=rev Modified: haiku/trunk/src/apps/people/PeopleWindow.cpp Log: - Fix break statements indentation. - Remove debug left-over. Modified: haiku/trunk/src/apps/people/PeopleWindow.cpp =================================================================== --- haiku/trunk/src/apps/people/PeopleWindow.cpp 2009-09-06 12:50:31 UTC (rev 32961) +++ haiku/trunk/src/apps/people/PeopleWindow.cpp 2009-09-06 13:01:20 UTC (rev 32962) @@ -210,8 +210,8 @@ BString name; if (msg->FindString("name", &name) == B_OK) SetTitle(name); + break; } - break; case B_ATTR_CHANGED: { @@ -224,15 +224,12 @@ } } } - } - break; - - default: - msg->PrintToStream(); + break; + } } } + break; } - break; default: BWindow::MessageReceived(msg); From bga at bug-br.org.br Sun Sep 6 13:22:56 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Sun, 06 Sep 2009 13:22:56 Subject: [Haiku-commits] r32912 - haiku/trunk/src/apps/people In-Reply-To: <20090905235227.577.1@knochen-vm.localdomain> Message-ID: <2526752984-BeMail@Gaspode> On Sat, 05 Sep 2009 23:52:27 +0200, Ingo Weinhold said: > > To be honest, this feature is very contained, if there would be > > something > > wrong with it (which I doubt), > > I quickly read through the patch and only spotted incorrectly > indented > "break"s and a missing, but harmless, "break" in a loop, so I tend to > agree, > but... BTW, as you took the time to look over it, you should have done the courtesy of pointing out where exactly you saw those. In any case, i fixed the breaks and there is no for loop in the latest version. > > it would only affect Peolpe and only in a > > circumstance in which it was arguably broken before. > > ... this assumption is just wrong. It is quite easy to introduce > crashes, > memory corruptions or leaks, infinite loops, etc. and those might not > just > be triggered in circumstances that were broken before. By claiming > shared > global resources infinite loops and memory leaks actually affect the > whole > system. As I said, I am fine with it not being in the alpha branch, but those examples you mentioned are way over the top for a change of few lines in a userland app. -Bruno From kirilla at mail.berlios.de Sun Sep 6 15:36:29 2009 From: kirilla at mail.berlios.de (kirilla at BerliOS) Date: Sun, 6 Sep 2009 15:36:29 +0200 Subject: [Haiku-commits] r32963 - haiku/trunk/data/common/boot/post_install Message-ID: <200909061336.n86DaTJq013120@sheep.berlios.de> Author: kirilla Date: 2009-09-06 15:36:28 +0200 (Sun, 06 Sep 2009) New Revision: 32963 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32963&view=rev Modified: haiku/trunk/data/common/boot/post_install/mime_update.sh Log: Mimeset based on query. This picks up bootman, desklink, mountvolume, urlwrapper, etc, the demos, and a bunch of Tracker, Print and Media add-ons - adding about 45 metamimes. Still harmless to LiveCD? Probably -alphabranch. Modified: haiku/trunk/data/common/boot/post_install/mime_update.sh =================================================================== --- haiku/trunk/data/common/boot/post_install/mime_update.sh 2009-09-06 13:01:20 UTC (rev 32962) +++ haiku/trunk/data/common/boot/post_install/mime_update.sh 2009-09-06 13:36:28 UTC (rev 32963) @@ -19,3 +19,5 @@ mimeset -apps -f "$SYSTEM/servers" mimeset -apps -f "/boot/apps" +query -f 'BEOS:APP_SIG=*' | xargs --no-run-if-empty mimeset -apps -f + From bga at mail.berlios.de Sun Sep 6 16:08:43 2009 From: bga at mail.berlios.de (bga at mail.berlios.de) Date: Sun, 6 Sep 2009 16:08:43 +0200 Subject: [Haiku-commits] r32964 - haiku/trunk/src/apps/people Message-ID: <200909061408.n86E8hgL021503@sheep.berlios.de> Author: bga Date: 2009-09-06 16:08:41 +0200 (Sun, 06 Sep 2009) New Revision: 32964 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32964&view=rev Modified: haiku/trunk/src/apps/people/PeopleWindow.cpp Log: - Update our entry_ref when the underlying file is moved. Modified: haiku/trunk/src/apps/people/PeopleWindow.cpp =================================================================== --- haiku/trunk/src/apps/people/PeopleWindow.cpp 2009-09-06 13:36:28 UTC (rev 32963) +++ haiku/trunk/src/apps/people/PeopleWindow.cpp 2009-09-06 14:08:41 UTC (rev 32964) @@ -205,11 +205,24 @@ case B_ENTRY_MOVED: { - // We may have renamed our entry. Update the title - // just in case. + // We may have renamed our entry. Obtain relevant data + // from message. BString name; - if (msg->FindString("name", &name) == B_OK) - SetTitle(name); + msg->FindString("name", &name); + + int64 directory; + msg->FindInt64("to directory", &directory); + + int32 device; + msg->FindInt32("device", &device); + + // Update our ref. + delete fRef; + fRef = new entry_ref(device, directory, name.String()); + + + // And our window title. + SetTitle(name); break; } From bga at bug-br.org.br Sun Sep 6 14:08:50 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Sun, 06 Sep 2009 14:08:50 Subject: [Haiku-commits] r32928 - haiku/trunk/src/apps/people In-Reply-To: <6132908538-BeMail@kirilla> Message-ID: <5280466951-BeMail@Gaspode> On Sat, 05 Sep 2009 17:34:44 +0200 CEST, Jonas Sundstr?m said: > > This ended up having a nice side effect. If you > > do some changes and then the backing file is deleted, > > People will automatically ask if you want to save > > changes before closing the window, which is nice. > > If there are no changes, the window will close right > > away. > > It still doesn't work right though: > > 1. If you open a person file, move the file, and > open the file from its new location, it opens a > second window for the already open file. Fixed. I was not updating the window's entry ref when the file was moved. I am doing it now although I may also switch to a node-ref to avoid this. > 2. The window currently closes if the file gets > deleted. That's good, but what I meant about > mimicing Tracker was to close the Person window > when/if its file gets -moved- to Trash. > > Tracker windows get closed when you move them to > Trash, and if you happen to (re)open them from Trash > they get (re)closed if you empty Trash. I will think about doing this, but this would require more extensive changes as all the file logic is inside the window. It would not be the same but I could, say, hide the window in this case (sounds like a hack tough). -Bruno From rudolfc at mail.berlios.de Sun Sep 6 16:42:15 2009 From: rudolfc at mail.berlios.de (rudolfc at mail.berlios.de) Date: Sun, 6 Sep 2009 16:42:15 +0200 Subject: [Haiku-commits] r32965 - in haiku/trunk: headers/private/graphics/nvidia src/add-ons/accelerants/nvidia/engine src/add-ons/kernel/drivers/graphics/nvidia Message-ID: <200909061442.n86EgFeG026384@sheep.berlios.de> Author: rudolfc Date: 2009-09-06 16:42:11 +0200 (Sun, 06 Sep 2009) New Revision: 32965 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32965&view=rev Modified: haiku/trunk/headers/private/graphics/nvidia/nv_macros.h haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac.c haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac2.c haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html Log: added disabling of spread spectrum-ing DAC clocks on NV30 and later: my laptop display nolonger shivers on the secondary output. version is 1.03. +alphabranch. Modified: haiku/trunk/headers/private/graphics/nvidia/nv_macros.h =================================================================== --- haiku/trunk/headers/private/graphics/nvidia/nv_macros.h 2009-09-06 14:08:41 UTC (rev 32964) +++ haiku/trunk/headers/private/graphics/nvidia/nv_macros.h 2009-09-06 14:42:11 UTC (rev 32965) @@ -649,6 +649,7 @@ #define NVDAC_NV10_CURSYNC 0x00680404 #define NVDAC_PIXPLLC 0x00680508 #define NVDAC_PLLSEL 0x0068050c +#define NVDAC_NV30_PLLSETUP 0x00680524 #define NVDAC_OUTPUT 0x0068052c #define NVDAC_PIXPLLC2 0x00680578 #define NVDAC_NV40_PLLSEL2 0x00680580 Modified: haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac.c =================================================================== --- haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac.c 2009-09-06 14:08:41 UTC (rev 32964) +++ haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac.c 2009-09-06 14:42:11 UTC (rev 32965) @@ -168,14 +168,24 @@ /* signal that we actually want to set the mode */ result = nv_dac_pix_pll_find(target,&pix_setting,&m,&n,&p, 1); - if (result != B_OK) - { - return result; - } + if (result != B_OK) return result; /* dump old setup for learning purposes */ nv_dac_dump_pix_pll(); + /* some logging for learning purposes */ + LOG(4,("DAC: current NV30_PLLSETUP settings: $%08x\n", DACR(NV30_PLLSETUP))); + /* this register seems to (dis)connect functions blocks and PLLs: + * there seem to be two PLL types per function block (on some cards), + * b16-17 DAC1clk, b18-19 DAC2clk, b20-21 GPUclk, b22-23 MEMclk. */ + LOG(4,("DAC: current (0x0000c040) settings: $%08x\n", NV_REG32(0x0000c040))); + + /* disable spread spectrum modes for the pixelPLLs _first_ */ + /* spread spectrum: b0,1 = GPUclk, b2,3 = MEMclk, b4,5 = DAC1clk, b6,7 = DAC2clk; + * b16-19 influence clock routing to digital outputs (internal/external LVDS transmitters?) */ + if (si->ps.card_arch >= NV30A) + DACW(NV30_PLLSETUP, (DACR(NV30_PLLSETUP) & ~0x000000f0)); + /* we offer this option because some panels have very tight restrictions, * and there's no overlapping settings range that makes them all work. * note: Modified: haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac2.c =================================================================== --- haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac2.c 2009-09-06 14:08:41 UTC (rev 32964) +++ haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_dac2.c 2009-09-06 14:42:11 UTC (rev 32965) @@ -171,14 +171,24 @@ /* signal that we actually want to set the mode */ result = nv_dac2_pix_pll_find(target,&pix_setting,&m,&n,&p, 1); - if (result != B_OK) - { - return result; - } + if (result != B_OK) return result; /* dump old setup for learning purposes */ nv_dac2_dump_pix_pll(); + /* some logging for learning purposes */ + LOG(4,("DAC2: current NV30_PLLSETUP settings: $%08x\n", DACR(NV30_PLLSETUP))); + /* this register seems to (dis)connect functions blocks and PLLs: + * there seem to be two PLL types per function block (on some cards), + * b16-17 DAC1clk, b18-19 DAC2clk, b20-21 GPUclk, b22-23 MEMclk. */ + LOG(4,("DAC2: current (0x0000c040) settings: $%08x\n", NV_REG32(0x0000c040))); + + /* disable spread spectrum modes for the pixelPLLs _first_ */ + /* spread spectrum: b0,1 = GPUclk, b2,3 = MEMclk, b4,5 = DAC1clk, b6,7 = DAC2clk; + * b16-19 influence clock routing to digital outputs (internal/external LVDS transmitters?) */ + if (si->ps.card_arch >= NV30A) + DACW(NV30_PLLSETUP, (DACR(NV30_PLLSETUP) & ~0x000000f0)); + /* we offer this option because some panels have very tight restrictions, * and there's no overlapping settings range that makes them all work. * note: Modified: haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c =================================================================== --- haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c 2009-09-06 14:08:41 UTC (rev 32964) +++ haiku/trunk/src/add-ons/accelerants/nvidia/engine/nv_general.c 2009-09-06 14:42:11 UTC (rev 32965) @@ -92,7 +92,7 @@ { status_t status; - LOG(1,("POWERUP: Haiku nVidia Accelerant 1.02 running.\n")); + LOG(1,("POWERUP: Haiku nVidia Accelerant 1.03 running.\n")); /* log VBLANK INT usability status */ if (si->ps.int_assigned) Modified: haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html 2009-09-06 14:08:41 UTC (rev 32964) +++ haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html 2009-09-06 14:42:11 UTC (rev 32965) @@ -4,7 +4,7 @@

        Changes done for each driverversion:

        -

        head (SVN 1.01, Rudolf)

        +

        head (SVN 1.03, Rudolf)

        • Fixed driver assuming enabling AGP mode succeeded on some occasions if it did not block it itself. Blocking AGP mode completely via the AGP busmanager (option 'block_agp') resulted in a crashing acceleration engine because it was setup for AGP transfers instead of using PCI transfers. Error was solved with help from user kraton.
        • Fixed shared_info struct problem occuring when 3D 'accelerant' is used (tested Alpha 4.1): the TVencoder type definition list apparantly gets some memory assigned these days when done inside the definition of shared_info. Moved encoder list outside the shared_info definition. @@ -26,7 +26,8 @@
        • DDC/EDID fetching now also works on GCC4 binaries due to a fixed fault in the accelerants/common code (which is used for that function);
        • Added support for Haiku specific driverhook GET_PREFERRED_DISPLAY_MODE. Laptops should now also startup in native mode automatically at first system boot;
        • Rewrote framebuffer memory detection. Accelerant now only uses the amount of RAM mapped by the kerneldriver as maximum. This fixes black screen at app_server startup on a number of GF6xxx and GF7xxx cards; -
        • Finally(!) fixed PLL selection trouble on NV40 architecture (Geforce 6xxx and 7xxx) cards. Now dualhead should (almost) always work OK, and now low-res bootscreens should nolonger result in 'frequency out of range' messages on DVI connected screens. +
        • Finally(!) fixed PLL selection trouble on NV40 architecture (Geforce 6xxx and 7xxx) cards. Now dualhead should (almost) always work OK, and now low-res bootscreens should nolonger result in 'frequency out of range' messages on DVI connected screens; +
        • Fixed shivering display on some systems (confirmed a Geforce 5200 laptop): Pixelclocks should never be setup for spread spectrum on analog connections.

        nv_driver 0.80 (Rudolf)

          From mmlr at mlotz.ch Sun Sep 6 15:19:41 2009 From: mmlr at mlotz.ch (Michael Lotz) Date: Sun, 06 Sep 2009 15:19:41 Subject: [Haiku-commits] r32963 - haiku/trunk/data/common/boot/post_install In-Reply-To: <200909061336.n86DaTJq013120@sheep.berlios.de> Message-ID: <2111801624-BeMail@laptop> > Author: kirilla > Date: 2009-09-06 15:36:28 +0200 (Sun, 06 Sep 2009) > New Revision: 32963 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32963&view=rev > > Modified: > haiku/trunk/data/common/boot/post_install/mime_update.sh > Log: > Mimeset based on query. This picks up bootman, desklink, mountvolume, > urlwrapper, etc, the demos, and a bunch of Tracker, Print and Media add -ons - adding about 45 metamimes. Still harmless to LiveCD? Probably - alphabranch. I don't like it. The query will re-find and re-mimeset all the other apps/servers as well, adding unnecessary work. If we go that route then the other explicit mimesetting should be removed. On the LiveCD this will simply fail to work, as there is no query support, so at least for that there needs to be path based, forced mimesetting. It is annoying that the Tracker add-ons aren't mimeset, so for example Zip-O-Matic needs to be run manually before working from the context menu, but for the other things you list I don't see the real relevance. So just adding the Tracker add-on path to the others would make more sense IMO. Regards Michael From jonas at kirilla.com Sun Sep 6 17:54:47 2009 From: jonas at kirilla.com (Jonas =?iso-8859-1?q?Sundstr=F6m?=) Date: Sun, 06 Sep 2009 17:54:47 +0200 CEST Subject: [Haiku-commits] r32963 - haiku/trunk/data/common/boot/post_install In-Reply-To: <2111801624-BeMail@laptop> Message-ID: <17008326425-BeMail@kirilla> "Michael Lotz" wrote: > > Author: kirilla > > Date: 2009-09-06 15:36:28 +0200 (Sun, 06 Sep 2009) > > New Revision: 32963 > > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32963&view=rev > > > > Modified: > > haiku/trunk/data/common/boot/post_install/mime_update.sh > > Log: > > Mimeset based on query. This picks up bootman, desklink, > > mountvolume, > > urlwrapper, etc, the demos, and a bunch of Tracker, Print and Media > > add > -ons - adding about 45 metamimes. Still harmless to LiveCD? Probably > - > alphabranch. > > I don't like it. The query will re-find and re-mimeset all the other > apps/servers as well, adding unnecessary work. If we go that route > then > the other explicit mimesetting should be removed. On the LiveCD this > will simply fail to work, as there is no query support, Yes, it's a no op with the Live CD. That's the point. The intent of the query-based mimesetting is to catch -everything- with a signature and do so for the real post install case: first boot on a r/w BFS volume, with no drive seek issues. How about removing the -f switch maybe. The metamimes of apps already mimeset should be in the cache, so does it really add that much extra work? > so at least for that there needs to be path based, > forced mimesetting. One could split the post_install.sh script. The LiveCD isn't exactly post-install. > It is annoying that the Tracker add-ons aren't mimeset, > so for example Zip-O-Matic needs to be run manually before > working from the context menu, but for the other things you > list I don't see the real relevance. So just adding the > Tracker add-on path to the others would make more sense IMO. Urlwrapper and mountvolume are sometimes called by signature. Desklink holds the volume Deskbar replicant which relies on its signature to be found. These are just prominent examples. /Jonas. From kirilla at mail.berlios.de Sun Sep 6 18:38:25 2009 From: kirilla at mail.berlios.de (kirilla at BerliOS) Date: Sun, 6 Sep 2009 18:38:25 +0200 Subject: [Haiku-commits] r32966 - haiku/trunk/src/apps/people Message-ID: <200909061638.n86GcPcR011937@sheep.berlios.de> Author: kirilla Date: 2009-09-06 18:38:00 +0200 (Sun, 06 Sep 2009) New Revision: 32966 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32966&view=rev Modified: haiku/trunk/src/apps/people/People.rdef Log: Also state Be, Inc. copyright. Remove bitmap icons. -alphabranch Modified: haiku/trunk/src/apps/people/People.rdef =================================================================== --- haiku/trunk/src/apps/people/People.rdef 2009-09-06 14:42:11 UTC (rev 32965) +++ haiku/trunk/src/apps/people/People.rdef 2009-09-06 16:38:00 UTC (rev 32966) @@ -10,7 +10,7 @@ internal = 0, short_info = "People", - long_info = "People ?2005-2007 Haiku, Inc." + long_info = "People ?1999 Be, Inc. ?2005-2009 Haiku, Inc." }; resource app_flags B_SINGLE_LAUNCH; @@ -19,8 +19,6 @@ "types" = "application/x-person" }; -#ifdef HAIKU_TARGET_PLATFORM_HAIKU - resource vector_icon { $"6E636966120500020006023CADF43D104EBF02CA3EA2224BB02046648D00FFDB" $"97FFFCAF29020006023CADF43D104EBF02CA3EA2224BB02046648D00D5DCFFFF" @@ -51,60 +49,3 @@ $"0815FF" }; -#else // HAIKU_TARGET_PLATFORM_HAIKU - -resource large_icon { - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFF02020008FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFF041B18110802FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFF041B3F3F1B150900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFF021B3F3F1B150B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFF04151C1B18110800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFF02081516150B0800FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFF00F9000A0B080B00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFF003FF97D000000007D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFF00F93F3F7D7D7D7D7D7DF900FFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFF00F9F9F93F3FF9F9F9F97D00FFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFF00F9F9F9F9F93F3FF97D7D00FFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFF00F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFF00F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFF00F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFF00F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFF00F9F9F9F9F9F9F97D7D7D00FFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFF00F9F9F9F9F9F97D7DC500FFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFF00F9F9F9F9F9F97DC500FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFF00F9F9C5F9F9F9C5C500FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFF00F9F9C5F9F9C5C57D000AFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFF00F9F9C5F9F97D7D7D000A0B0AFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFF00F9F9C5F9F97D7D7D000A0B0A0B0BFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFF00F9F9C5F9F97D7D7D000A0B0A0B0B0A0BFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFF00F9F9C5F9F97D7D7D000A0B0A0B0B0A0B0B0AFFFFFFFFFFFF" - $"FFFFFFFFFFFFFF00F9F9C5F9F97D7D7D000A0B0A0B0B0A0B0B0AFFFFFFFFFFFF" - $"FFFFFFFFFFFFFF00F9F9C5F9F97D7D7D000A0B0A0B0B0A0BFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFF0000F9C5F9F97D7D7D000A0B0A0B0BFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFF0000F9F97D7D000A0B0A0BFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFF000000000A0B0A0BFFFFFFFFFFFFFFFFFFFFFFFFFF" -}; - -resource mini_icon { - $"FFFFFFFFFF020200FFFFFFFFFFFFFFFF" - $"FFFFFFFF04151E1500FFFFFFFFFFFFFF" - $"FFFFFFFF021D1E1C00FFFFFFFFFFFFFF" - $"FFFFFFFF00151B1600FFFFFFFFFFFFFF" - $"FFFFFF00FA0000000000FFFFFFFFFFFF" - $"FFFFFF00F9F9FAFAFAFA00FFFFFFFFFF" - $"FFFFFF00F9F9F9F97D7D00FFFFFFFFFF" - $"FFFFFF00F9F9F9F97D7D00FFFFFFFFFF" - $"FFFFFF00F9F9F9F97D7D00FFFFFFFFFF" - $"FFFFFFFF00F9F9F97D7D00FFFFFFFFFF" - $"FFFFFFFF00F9F97D7D00FFFFFFFFFFFF" - $"FFFFFFFF00F9F97D7D00FFFFFFFFFFFF" - $"FFFFFFFF00F9F97D7D00FFFFFFFFFFFF" - $"FFFFFFFF00F9F97D7D000A0BFFFFFFFF" - $"FFFFFFFF0000F97D7D000A0B0AFFFFFF" - $"FFFFFFFFFFFF0000000A0B0A0BFFFFFF" -}; - -#endif // HAIKU_TARGET_PLATFORM_HAIKU From stippi at mail.berlios.de Sun Sep 6 19:23:39 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Sun, 6 Sep 2009 19:23:39 +0200 Subject: [Haiku-commits] r32967 - haiku/trunk/src/apps/installer Message-ID: <200909061723.n86HNdx9030731@sheep.berlios.de> Author: stippi Date: 2009-09-06 19:23:31 +0200 (Sun, 06 Sep 2009) New Revision: 32967 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32967&view=rev Modified: haiku/trunk/src/apps/installer/CopyEngine.cpp haiku/trunk/src/apps/installer/CopyEngine.h haiku/trunk/src/apps/installer/Jamfile haiku/trunk/src/apps/installer/ProgressReporter.cpp haiku/trunk/src/apps/installer/ProgressReporter.h haiku/trunk/src/apps/installer/UnzipEngine.cpp haiku/trunk/src/apps/installer/UnzipEngine.h haiku/trunk/src/apps/installer/WorkerThread.cpp haiku/trunk/src/apps/installer/WorkerThread.h Log: * Finished ProgressReporter * Integrated ProgressReporter into CopyEngine and UnzipEngine. * Integrated unzipping to main installer engine. Since there are currently no .zip files in the _packages_ folder (and not even a _packages_ folder itself), this is completely invisible, but it works. TODO: Adjust the build system to optionally copy packages into _packages_ instead of extracting them. Like for the CD build profile mode. Modified: haiku/trunk/src/apps/installer/CopyEngine.cpp =================================================================== --- haiku/trunk/src/apps/installer/CopyEngine.cpp 2009-09-06 16:38:00 UTC (rev 32966) +++ haiku/trunk/src/apps/installer/CopyEngine.cpp 2009-09-06 17:23:31 UTC (rev 32967) @@ -22,19 +22,22 @@ #include "InstallerWindow.h" // TODO: For PACKAGES_DIRECTORY and VAR_DIRECTORY, not so nice... #include "SemaphoreLocker.h" +#include "ProgressReporter.h" using std::nothrow; -CopyEngine::CopyEngine(const BMessenger& messenger, BMessage* message) +CopyEngine::CopyEngine(ProgressReporter* reporter) : fBufferQueue(), fWriterThread(-1), fQuitting(false), fBytesRead(0), + fLastBytesRead(0), fItemsCopied(0), + fLastItemsCopied(0), fTimeRead(0), fBytesWritten(0), @@ -46,8 +49,7 @@ fCurrentTargetFolder(NULL), fCurrentItem(NULL), - fMessenger(messenger), - fMessage(message) + fProgressReporter(reporter) { fWriterThread = spawn_thread(_WriteThreadEntry, "buffer writer", B_NORMAL_PRIORITY, this); @@ -73,16 +75,19 @@ int32 exitValue; wait_for_thread(fWriterThread, &exitValue); } - - delete fMessage; } void CopyEngine::ResetTargets() { + // TODO: One could subtract the bytes/items which were added to the + // ProgressReporter before resetting them... + fBytesRead = 0; + fLastBytesRead = 0; fItemsCopied = 0; + fLastItemsCopied = 0; fTimeRead = 0; fBytesWritten = 0; @@ -93,12 +98,6 @@ fCurrentTargetFolder = NULL; fCurrentItem = NULL; - - if (fMessage) { - BMessage message(*fMessage); - message.AddString("status", "Collecting copy information."); - fMessenger.SendMessage(&message); - } } @@ -106,7 +105,10 @@ CopyEngine::CollectTargets(const char* source, sem_id cancelSemaphore) { int32 level = 0; - return _CollectCopyInfo(source, level, cancelSemaphore); + status_t ret = _CollectCopyInfo(source, level, cancelSemaphore); + if (ret == B_OK && fProgressReporter != NULL) + fProgressReporter->AddItems(fItemsToCopy, fBytesToCopy); + return ret; } @@ -114,14 +116,6 @@ CopyEngine::CopyFolder(const char* source, const char* destination, sem_id cancelSemaphore) { - printf("%lld bytes to read in %lld files\n", fBytesToCopy, fItemsToCopy); - - if (fMessage) { - BMessage message(*fMessage); - message.AddString("status", "Performing installation."); - fMessenger.SendMessage(&message); - } - int32 level = 0; return _CopyFolder(source, destination, level, cancelSemaphore); } @@ -475,16 +469,23 @@ void CopyEngine::_UpdateProgress() { - if (fMessage != NULL) { - BMessage message(*fMessage); - float progress = 100.0 * fBytesRead / fBytesToCopy; - message.AddFloat("progress", progress); - message.AddInt32("current", fItemsCopied); - message.AddInt32("maximum", fItemsToCopy); - message.AddString("item", fCurrentItem); - message.AddString("folder", fCurrentTargetFolder); - fMessenger.SendMessage(&message); + if (fProgressReporter == NULL) + return; + + uint64 items = 0; + if (fLastItemsCopied < fItemsCopied) { + items = fItemsCopied - fLastItemsCopied; + fLastItemsCopied = fItemsCopied; } + + off_t bytes = 0; + if (fLastBytesRead < fBytesRead) { + bytes = fBytesRead - fLastBytesRead; + fLastBytesRead = fBytesRead; + } + + fProgressReporter->ItemsWritten(items, bytes, fCurrentItem, + fCurrentTargetFolder); } Modified: haiku/trunk/src/apps/installer/CopyEngine.h =================================================================== --- haiku/trunk/src/apps/installer/CopyEngine.h 2009-09-06 16:38:00 UTC (rev 32966) +++ haiku/trunk/src/apps/installer/CopyEngine.h 2009-09-06 17:23:31 UTC (rev 32967) @@ -15,14 +15,12 @@ #include "BlockingQueue.h" class BFile; -class BMessage; -class BMessenger; +class ProgressReporter; class CopyEngine { public: - CopyEngine(const BMessenger& messenger, - BMessage* message); + CopyEngine(ProgressReporter* reporter); virtual ~CopyEngine(); void ResetTargets(); @@ -93,7 +91,9 @@ volatile bool fQuitting; off_t fBytesRead; + uint64 fLastBytesRead; uint64 fItemsCopied; + uint64 fLastItemsCopied; bigtime_t fTimeRead; off_t fBytesWritten; @@ -105,8 +105,7 @@ const char* fCurrentTargetFolder; const char* fCurrentItem; - BMessenger fMessenger; - BMessage* fMessage; + ProgressReporter* fProgressReporter; }; Modified: haiku/trunk/src/apps/installer/Jamfile =================================================================== --- haiku/trunk/src/apps/installer/Jamfile 2009-09-06 16:38:00 UTC (rev 32966) +++ haiku/trunk/src/apps/installer/Jamfile 2009-09-06 17:23:31 UTC (rev 32967) @@ -9,6 +9,7 @@ InstallerWindow.cpp PackageViews.cpp PartitionMenuItem.cpp + ProgressReporter.cpp UnzipEngine.cpp WorkerThread.cpp : be tracker translation libshared.a $(TARGET_LIBSTDC++) Modified: haiku/trunk/src/apps/installer/ProgressReporter.cpp =================================================================== --- haiku/trunk/src/apps/installer/ProgressReporter.cpp 2009-09-06 16:38:00 UTC (rev 32966) +++ haiku/trunk/src/apps/installer/ProgressReporter.cpp 2009-09-06 17:23:31 UTC (rev 32967) @@ -5,28 +5,19 @@ #include "ProgressReporter.h" -#include - -#include #include -#include -using std::nothrow; - - ProgressReporter::ProgressReporter(const BMessenger& messenger, BMessage* message) : - fBytesRead(0), - fItemsCopied(0), - fTimeRead(0), + fStartTime(0), + fBytesToWrite(0), fBytesWritten(0), - fTimeWritten(0), - fBytesToCopy(0), - fItemsToCopy(0), + fItemsToWrite(0), + fItemsWritten(0), fMessenger(messenger), fMessage(message) @@ -43,15 +34,11 @@ void ProgressReporter::Reset() { - fBytesRead = 0; - fItemsCopied = 0; - fTimeRead = 0; - + fBytesToWrite = 0; fBytesWritten = 0; - fTimeWritten = 0; - fBytesToCopy = 0; - fItemsToCopy = 0; + fItemsToWrite = 0; + fItemsWritten = 0; if (fMessage) { BMessage message(*fMessage); @@ -64,22 +51,35 @@ void ProgressReporter::AddItems(uint64 count, off_t bytes) { - // TODO ... + fBytesToWrite += bytes; + fItemsToWrite += count; } void ProgressReporter::StartTimer() { - // TODO ... + fStartTime = system_time(); + + printf("%lld bytes to write in %lld files\n", fBytesToWrite, + fItemsToWrite); + + if (fMessage) { + BMessage message(*fMessage); + message.AddString("status", "Performing installation."); + fMessenger.SendMessage(&message); + } } void -ProgressReporter::ItemsCopied(uint64 items, off_t bytes, const char* itemName, - const char* targetFolder) +ProgressReporter::ItemsWritten(uint64 items, off_t bytes, + const char* itemName, const char* targetFolder) { - // TODO ... + fItemsWritten += items; + fBytesWritten += bytes; + + _UpdateProgress(itemName, targetFolder); } @@ -87,14 +87,17 @@ ProgressReporter::_UpdateProgress(const char* itemName, const char* targetFolder) { - if (fMessage != NULL) { - BMessage message(*fMessage); - float progress = 100.0 * fBytesRead / fBytesToCopy; - message.AddFloat("progress", progress); - message.AddInt32("current", fItemsCopied); - message.AddInt32("maximum", fItemsToCopy); - message.AddString("item", itemName); - message.AddString("folder", targetFolder); - fMessenger.SendMessage(&message); - } + if (fMessage == NULL) + return; + + // TODO: Could add time to finish calculation here... + + BMessage message(*fMessage); + float progress = 100.0 * fBytesWritten / fBytesToWrite; + message.AddFloat("progress", progress); + message.AddInt32("current", fItemsWritten); + message.AddInt32("maximum", fItemsToWrite); + message.AddString("item", itemName); + message.AddString("folder", targetFolder); + fMessenger.SendMessage(&message); } Modified: haiku/trunk/src/apps/installer/ProgressReporter.h =================================================================== --- haiku/trunk/src/apps/installer/ProgressReporter.h 2009-09-06 16:38:00 UTC (rev 32966) +++ haiku/trunk/src/apps/installer/ProgressReporter.h 2009-09-06 17:23:31 UTC (rev 32967) @@ -21,24 +21,24 @@ void StartTimer(); - void ItemsCopied(uint64 items, off_t bytes, + void ItemsWritten(uint64 items, off_t bytes, const char* itemName, const char* targetFolder); + // TODO: Perhaps move cancelling here as well... + private: void _UpdateProgress(const char* itemName, const char* targetFolder); private: - off_t fBytesRead; - uint64 fItemsCopied; - bigtime_t fTimeRead; + bigtime_t fStartTime; + off_t fBytesToWrite; off_t fBytesWritten; - bigtime_t fTimeWritten; - off_t fBytesToCopy; - uint64 fItemsToCopy; + uint64 fItemsToWrite; + uint64 fItemsWritten; BMessenger fMessenger; BMessage* fMessage; Modified: haiku/trunk/src/apps/installer/UnzipEngine.cpp =================================================================== --- haiku/trunk/src/apps/installer/UnzipEngine.cpp 2009-09-06 16:38:00 UTC (rev 32966) +++ haiku/trunk/src/apps/installer/UnzipEngine.cpp 2009-09-06 17:23:31 UTC (rev 32967) @@ -21,12 +21,13 @@ #include "CommandPipe.h" #include "SemaphoreLocker.h" +#include "ProgressReporter.h" using std::nothrow; -UnzipEngine::UnzipEngine(const BMessenger& messenger, BMessage* message, +UnzipEngine::UnzipEngine(ProgressReporter* reporter, sem_id cancelSemaphore) : fPackage(""), @@ -34,11 +35,12 @@ fBytesToUncompress(0), fBytesUncompressed(0), + fLastBytesUncompressed(0), fItemsToUncompress(0), fItemsUncompressed(0), + fLastItemsUncompressed(0), - fMessenger(messenger), - fMessage(message), + fProgressReporter(reporter), fCancelSemaphore(cancelSemaphore) { } @@ -46,7 +48,6 @@ UnzipEngine::~UnzipEngine() { - delete fMessage; } @@ -60,8 +61,10 @@ fBytesToUncompress = 0; fBytesUncompressed = 0; + fLastBytesUncompressed = 0; fItemsToUncompress = 0; fItemsUncompressed = 0; + fLastItemsUncompressed = 0; BPrivate::BCommandPipe commandPipe; status_t ret = commandPipe.AddArg("unzip"); @@ -95,12 +98,6 @@ if (fItemsToUncompress == 0) return B_NO_INIT; - if (fMessage) { - BMessage message(*fMessage); - message.AddString("status", "Extracting package."); - fMessenger.SendMessage(&message); - } - BPrivate::BCommandPipe commandPipe; status_t ret = commandPipe.AddArg("unzip"); if (ret == B_OK) @@ -155,19 +152,6 @@ status_t UnzipEngine::_ReadLineListing(const BString& line) { -// static const char* kListingFormat = "%llu files, %llu bytes uncompressed, " -// "%llu bytes compressed: %f%%"; -// -// uint64 bytesCompressed; -// float compresssionRatio; -// if (sscanf(line.String(), kListingFormat, &fItemsToUncompress, -// &fBytesToUncompress, &bytesCompressed, &compresssionRatio) != 4) { -// fBytesToUncompress = 0; -// fItemsToUncompress = 0; -// fprintf(stderr, "error reading command output: %s\n", line.String()); -// return B_ERROR; -// } - static const char* kListingFormat = "%llu %s %s %s\n"; const char* string = line.String(); @@ -197,7 +181,7 @@ if (destination.Append(itemPath.String()) == B_OK) { BEntry test(destination.Path()); if (test.Exists() && test.IsDirectory()) { - printf("ignoring %s\n", itemPath.String()); +// printf("ignoring %s\n", itemPath.String()); itemCount = 0; } } @@ -205,8 +189,8 @@ fItemsToUncompress += itemCount; - printf("item %s with %llu bytes to %s\n", itemName.String(), - bytes, itemPath.String()); +// printf("item %s with %llu bytes to %s\n", itemName.String(), +// bytes, itemPath.String()); fEntrySizeMap.Put(itemName.String(), bytes); } else { @@ -243,8 +227,8 @@ fBytesUncompressed += bytes; } - printf("%llu extracted %s to %s (%llu)\n", fItemsUncompressed, - itemName.String(), itemPath.String(), bytes); +// printf("%llu extracted %s to %s (%llu)\n", fItemsUncompressed, +// itemName.String(), itemPath.String(), bytes); _UpdateProgress(itemName.String(), itemPath.String()); } else { @@ -258,14 +242,20 @@ void UnzipEngine::_UpdateProgress(const char* item, const char* targetFolder) { - if (fMessage != NULL) { - BMessage message(*fMessage); - float progress = 100.0 * fBytesUncompressed / fBytesToUncompress; - message.AddFloat("progress", progress); - message.AddInt32("current", fItemsUncompressed); - message.AddInt32("maximum", fItemsToUncompress); - message.AddString("item", item); - message.AddString("folder", targetFolder); - fMessenger.SendMessage(&message); + if (fProgressReporter == NULL) + return; + + uint64 items = 0; + if (fLastItemsUncompressed < fItemsUncompressed) { + items = fItemsUncompressed - fLastItemsUncompressed; + fLastItemsUncompressed = fItemsUncompressed; } + + off_t bytes = 0; + if (fLastBytesUncompressed < fBytesUncompressed) { + bytes = fBytesUncompressed - fLastBytesUncompressed; + fLastBytesUncompressed = fBytesUncompressed; + } + + fProgressReporter->ItemsWritten(items, bytes, item, targetFolder); } Modified: haiku/trunk/src/apps/installer/UnzipEngine.h =================================================================== --- haiku/trunk/src/apps/installer/UnzipEngine.h 2009-09-06 16:38:00 UTC (rev 32966) +++ haiku/trunk/src/apps/installer/UnzipEngine.h 2009-09-06 17:23:31 UTC (rev 32967) @@ -15,14 +15,12 @@ #include "HashMap.h" #include "HashString.h" -class BMessage; -class BMessenger; +class ProgressReporter; class UnzipEngine : private BCommandPipe::LineReader { public: - UnzipEngine(const BMessenger& messenger, - BMessage* message, + UnzipEngine(ProgressReporter* reporter, sem_id cancelSemaphore = -1); virtual ~UnzipEngine(); @@ -59,11 +57,12 @@ off_t fBytesToUncompress; off_t fBytesUncompressed; + off_t fLastBytesUncompressed; uint64 fItemsToUncompress; uint64 fItemsUncompressed; + uint64 fLastItemsUncompressed; - BMessenger fMessenger; - BMessage* fMessage; + ProgressReporter* fProgressReporter; sem_id fCancelSemaphore; }; Modified: haiku/trunk/src/apps/installer/WorkerThread.cpp =================================================================== --- haiku/trunk/src/apps/installer/WorkerThread.cpp 2009-09-06 16:38:00 UTC (rev 32966) +++ haiku/trunk/src/apps/installer/WorkerThread.cpp 2009-09-06 17:23:31 UTC (rev 32967) @@ -27,6 +27,7 @@ #include "InstallerWindow.h" #include "PackageViews.h" #include "PartitionMenuItem.h" +#include "ProgressReporter.h" #include "UnzipEngine.h" @@ -251,7 +252,9 @@ entry_ref testRef; BMessenger messenger(fWindow); - CopyEngine engine(messenger, new BMessage(MSG_STATUS_MESSAGE)); + ProgressReporter reporter(messenger, new BMessage(MSG_STATUS_MESSAGE)); + CopyEngine engine(&reporter); + BList unzipEngines; PartitionMenuItem* targetItem = (PartitionMenuItem*)targetMenu->FindMarked(); PartitionMenuItem* srcItem = (PartitionMenuItem*)srcMenu->FindMarked(); @@ -397,6 +400,7 @@ goto error; } + // Begin actuall installation _LaunchInitScript(targetDirectory); @@ -419,6 +423,14 @@ } } + // collect information about all zip packages + err = _ProcessZipPackages(srcDirectory.Path(), targetDirectory.Path(), + &reporter, unzipEngines); + if (err != B_OK) + goto error; + + reporter.StartTimer(); + // copy source volume err = engine.CopyFolder(srcDirectory.Path(), targetDirectory.Path(), fCancelSemaphore); @@ -439,37 +451,17 @@ } } -#if 0 - // extract zip packages - // TODO: Put those in the optional packages list view - // TODO: Implement mechanism to handle dependencies between these - // packages. (Selecting one will auto-select others.) - { - BPath pkgRootDir(srcDirectory.Path(), PACKAGES_DIRECTORY); - BDirectory directory(pkgRootDir.Path()); - BEntry entry; - while (directory.GetNextEntry(&entry) == B_OK) { - char name[B_FILE_NAME_LENGTH]; - if (entry.GetName(name) != B_OK) - continue; - int nameLength = strlen(name); - if (nameLength <= 0) - continue; - char* nameExtension = name + nameLength - 4; -printf("inspecting %s (%s)\n", name, nameExtension); - if (strcasecmp(nameExtension, ".zip") != 0) - continue; - printf("found .zip package: %s\n", name); - - UnzipEngine unzipEngine(messenger, new BMessage(MSG_STATUS_MESSAGE), - fCancelSemaphore); - BPath path; - entry.GetPath(&path); - unzipEngine.SetTo(path.Path(), targetDirectory.Path()); - unzipEngine.UnzipPackage(); - } + // Extract all zip packages. If an error occured, delete the rest of + // the engines, but stop extracting. + for (int32 i = 0; i < unzipEngines.CountItems(); i++) { + UnzipEngine* engine = reinterpret_cast( + unzipEngines.ItemAtFast(i)); + if (err == B_OK) + err = engine->UnzipPackage(); + delete engine; } -#endif + if (err != B_OK) + goto error; _LaunchFinishScript(targetDirectory); @@ -487,6 +479,48 @@ } +status_t +WorkerThread::_ProcessZipPackages(const char* sourcePath, + const char* targetPath, ProgressReporter* reporter, BList& unzipEngines) +{ + // TODO: Put those in the optional packages list view + // TODO: Implement mechanism to handle dependencies between these + // packages. (Selecting one will auto-select others.) + BPath pkgRootDir(sourcePath, PACKAGES_DIRECTORY); + BDirectory directory(pkgRootDir.Path()); + BEntry entry; + while (directory.GetNextEntry(&entry) == B_OK) { + char name[B_FILE_NAME_LENGTH]; + if (entry.GetName(name) != B_OK) + continue; + int nameLength = strlen(name); + if (nameLength <= 0) + continue; + char* nameExtension = name + nameLength - 4; + if (strcasecmp(nameExtension, ".zip") != 0) + continue; + printf("found .zip package: %s\n", name); + + UnzipEngine* unzipEngine = new(std::nothrow) UnzipEngine(reporter, + fCancelSemaphore); + if (unzipEngine == NULL || !unzipEngines.AddItem(unzipEngine)) { + delete unzipEngine; + return B_NO_MEMORY; + } + BPath path; + entry.GetPath(&path); + status_t ret = unzipEngine->SetTo(path.Path(), targetPath); + if (ret != B_OK) + return ret; + + reporter->AddItems(unzipEngine->ItemsToUncompress(), + unzipEngine->BytesToUncompress()); + } + + return B_OK; +} + + void WorkerThread::_SetStatusMessage(const char *status) { Modified: haiku/trunk/src/apps/installer/WorkerThread.h =================================================================== --- haiku/trunk/src/apps/installer/WorkerThread.h 2009-09-06 16:38:00 UTC (rev 32966) +++ haiku/trunk/src/apps/installer/WorkerThread.h 2009-09-06 17:23:31 UTC (rev 32967) @@ -16,6 +16,7 @@ class BList; class BMenu; class InstallerWindow; +class ProgressReporter; class WorkerThread : public BLooper { public: @@ -41,7 +42,12 @@ void _LaunchInitScript(BPath& path); void _LaunchFinishScript(BPath& path); - void _PerformInstall(BMenu* srcMenu, BMenu* dstMenu); + void _PerformInstall(BMenu* srcMenu, + BMenu* dstMenu); + status_t _ProcessZipPackages(const char* sourcePath, + const char* targetPath, + ProgressReporter* reporter, + BList& unzipEngines); void _SetStatusMessage(const char* status); From leavengood at gmail.com Sun Sep 6 19:28:29 2009 From: leavengood at gmail.com (Ryan Leavengood) Date: Sun, 6 Sep 2009 13:28:29 -0400 Subject: [Haiku-commits] r32948 - haiku/trunk/src/add-ons/tracker/opentargetfolder In-Reply-To: <20090906073915.39870@gmx.net> References: <4AA29CF9.6090007@googlemail.com> <12991136370-BeMail@kirilla> <20090906073915.39870@gmx.net> Message-ID: On Sun, Sep 6, 2009 at 3:39 AM, Stephan Assmus wrote: > > By now it is clear that you are a vivid advertizer of the DRY concept... :-) ;) > Anyway, this mistake was something completely different, and had nothing TODO > with the problem of repeated code. At one place, the name of the add-on was > established (in it's Jamfile), in another place, the add-on was declared to > go onto the image (HaikuImage Jamfile). You cannot suddenly refer to another > name in HaikuImage without changing the actual name... And that means the name is repeated. It had to be changed in two places. DRY isn't just about code, it is also about information. Of course this is not necessarily fixable with Jam, since unique names are the best way to refer to targets. And we generally want to separate the building of targets from placing them in an image. But it is still a case of repetition causing problems. Of course even in the Ruby world were DRY is the mantra, some repetition is unavoidable. This may be such a case as well. -- Regards, Ryan From humdingerb at mail.berlios.de Sun Sep 6 19:30:49 2009 From: humdingerb at mail.berlios.de (humdingerb at mail.berlios.de) Date: Sun, 6 Sep 2009 19:30:49 +0200 Subject: [Haiku-commits] r32968 - in haiku/trunk/docs/userguide: en en/applications images images/gui-images Message-ID: <200909061730.n86HUnfa006514@sheep.berlios.de> Author: humdingerb Date: 2009-09-06 19:30:37 +0200 (Sun, 06 Sep 2009) New Revision: 32968 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32968&view=rev Added: haiku/trunk/docs/userguide/images/gui-images/ haiku/trunk/docs/userguide/images/gui-images/replicant.png Modified: haiku/trunk/docs/userguide/en/applications/activitymonitor.html haiku/trunk/docs/userguide/en/applications/deskcalc.html haiku/trunk/docs/userguide/en/contents.html haiku/trunk/docs/userguide/en/deskbar.html haiku/trunk/docs/userguide/en/gui.html haiku/trunk/docs/userguide/en/workspaces.html Log: * Added a small section about Replicants to gui.html. If there's more (for the enduser) interesting info, please add to it. * Linked to the Replicant section where appropriate. * Added gui-images folder for language-independent images. +alphabranch Modified: haiku/trunk/docs/userguide/en/applications/activitymonitor.html =================================================================== --- haiku/trunk/docs/userguide/en/applications/activitymonitor.html 2009-09-06 17:23:31 UTC (rev 32967) +++ haiku/trunk/docs/userguide/en/applications/activitymonitor.html 2009-09-06 17:30:37 UTC (rev 32968) @@ -51,7 +51,7 @@

          Below the graphics is a legend (hideable from the context menu). You can change their colors and that of the graph's background via drag&drop from any color picker, e.g. from Icon-O-Matic.

          You can add more views from the File menu if it gets too crowded.

          The Settings menu opens a panel where you can set the update interval.

          -

          Each view has it's own Replicator handle and can thus be arranged, for example, on the Desktop.

          +

          Each view has it's own Replicant handle and can thus be arranged, for example, on the Desktop.

          Modified: haiku/trunk/docs/userguide/en/applications/deskcalc.html =================================================================== --- haiku/trunk/docs/userguide/en/applications/deskcalc.html 2009-09-06 17:23:31 UTC (rev 32967) +++ haiku/trunk/docs/userguide/en/applications/deskcalc.html 2009-09-06 17:30:37 UTC (rev 32968) @@ -45,7 +45,7 @@


          DeskCalc is a simple calculator that nevertheless has some nice features that aren't apparent on first sight.

          -deskcalc.png +deskcalc.png
          • DeskCalc understands much more than its simple keypad suggests.
            Besides the operators +, -, *, /, %, ^ and the constants pi and e the following math functions are supported:
            @@ -60,7 +60,7 @@ 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.

          • +
          • 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 ??.

          • 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.

            Modified: haiku/trunk/docs/userguide/en/contents.html =================================================================== --- haiku/trunk/docs/userguide/en/contents.html 2009-09-06 17:23:31 UTC (rev 32967) +++ haiku/trunk/docs/userguide/en/contents.html 2009-09-06 17:30:37 UTC (rev 32968) @@ -56,7 +56,8 @@ Haiku's GUI + - Favorites and recent folders
          • +
          • Replicants
          Learn about the basic elements of the graphical user interface. Workspaces
          • The Workspaces Applet
          • Modified: haiku/trunk/docs/userguide/en/deskbar.html =================================================================== --- haiku/trunk/docs/userguide/en/deskbar.html 2009-09-06 17:23:31 UTC (rev 32967) +++ haiku/trunk/docs/userguide/en/deskbar.html 2009-09-06 17:30:37 UTC (rev 32968) @@ -60,7 +60,7 @@
          • About This System... - Shows some basic information of the system, licenses and the credits of the Haiku project.

          • Find... - Opens the Query dialog.

          • -
          • Show Replicants - Shows/hides the little Replicant widget you use to drag it around, remove or access its context menu.

          • +
          • Show Replicants - Shows/hides the little Replicant widget you use to drag it around, remove or access its context menu.

          • Mount - Offers the same options as when invoked by right-clicking the Desktop (see Mounting Volumes).

          • Deskbar Settings

            Modified: haiku/trunk/docs/userguide/en/gui.html =================================================================== --- haiku/trunk/docs/userguide/en/gui.html 2009-09-06 17:23:31 UTC (rev 32967) +++ haiku/trunk/docs/userguide/en/gui.html 2009-09-06 17:30:37 UTC (rev 32968) @@ -84,6 +84,15 @@

            To add a Favorite, you simply navigate to your destination and choose Favorites | Add Current Folder. From now on it will appear in every open/save panel. To remove a Favorite, choose Favorites | Configure Favorites... and delete its entry.
            All Favorites are kept in /boot/home/config/settings/Tracker/Go/. So you might as well add and remove links to files and folders there directly.

            +

            +index +Replicants

            +

            Replicants are small self-contained parts of applications that can be integrated into other programs. Provided Deskbar's option to Show Replicants is activated, you'll recognize a replicantable part of an appliction by its small handle, normally in the bottom right corner:

            +replicant.png +

            The most prominent place that accepts Replicants is the Desktop: You simply drag&drop the little handle onto it. From now on it's part of the Desktop and the Replicant's originating app doesn't have to be started for it to work.
            +A right-click on a Replicant handle offers a context menu to show the originating app's About window and to Remove Replicant.

            +

            Examples for replicatable applications are the graphs of the ActivityMonitor, the Workspaces applet or DeskCalc.

            +
            Modified: haiku/trunk/docs/userguide/en/workspaces.html =================================================================== --- haiku/trunk/docs/userguide/en/workspaces.html 2009-09-06 17:23:31 UTC (rev 32967) +++ haiku/trunk/docs/userguide/en/workspaces.html 2009-09-06 17:30:37 UTC (rev 32968) @@ -51,7 +51,7 @@ workspaces.png

            You find the Workspaces applet with the other Desktop Applets in the Deskbar. It shows a miniature version of all workspaces. There are several options available from the context menu of the applet's window, which are all pretty self-explaining.
            Change Workspace Count... will open the Screen preferences where you set the number of workspaces and their arrangement (how many rows and columns).

            -

            Since the applet is a Replicant, you can resize the window as desired and then drag&drop it by its handle onto the desktop (make sure "Show Replicants" is activated in the Deskbar menu).

            +

            Since the applet is a Replicant, you can resize the window as desired and then drag&drop it by its handle onto the desktop (make sure "Show Replicants" is activated in the Deskbar menu).

            index Added: haiku/trunk/docs/userguide/images/gui-images/replicant.png =================================================================== (Binary files differ) Property changes on: haiku/trunk/docs/userguide/images/gui-images/replicant.png ___________________________________________________________________ Name: svn:mime-type + application/octet-stream From leavengood at mail.berlios.de Sun Sep 6 19:43:48 2009 From: leavengood at mail.berlios.de (leavengood at BerliOS) Date: Sun, 6 Sep 2009 19:43:48 +0200 Subject: [Haiku-commits] r32969 - haiku/trunk/build/jam Message-ID: <200909061743.n86Hhmth028473@sheep.berlios.de> Author: leavengood Date: 2009-09-06 19:43:47 +0200 (Sun, 06 Sep 2009) New Revision: 32969 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32969&view=rev Modified: haiku/trunk/build/jam/OptionalPackages Log: Commit patch from scottmc (#4363, OptionalPackages7.diff) to update the libiconv optional package. +alphabranch Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-09-06 17:30:37 UTC (rev 32968) +++ haiku/trunk/build/jam/OptionalPackages 2009-09-06 17:43:47 UTC (rev 32969) @@ -492,8 +492,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package LibIconv available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage libiconv-1.13.1-x86-gcc2-2009-07-07 - : $(baseURL)/libiconv-1.13.1-x86-gcc2-2009-07-07.zip + InstallOptionalHaikuImagePackage libiconv-1.13.1-r1a1-x86-gcc2-2009-09-06 + : $(baseURL)/libiconv-1.13.1-r1a1-x86-gcc2-2009-09-06.zip : ; } From kirilla at mail.berlios.de Sun Sep 6 20:37:49 2009 From: kirilla at mail.berlios.de (kirilla at BerliOS) Date: Sun, 6 Sep 2009 20:37:49 +0200 Subject: [Haiku-commits] r32970 - haiku/trunk/src/apps/people Message-ID: <200909061837.n86Ibnpv004751@sheep.berlios.de> Author: kirilla Date: 2009-09-06 20:37:48 +0200 (Sun, 06 Sep 2009) New Revision: 32970 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32970&view=rev Modified: haiku/trunk/src/apps/people/PeopleApp.cpp haiku/trunk/src/apps/people/PersonIcons.h Log: ?\194?\161Ya basta! No more bitmap icons. Modified: haiku/trunk/src/apps/people/PeopleApp.cpp =================================================================== --- haiku/trunk/src/apps/people/PeopleApp.cpp 2009-09-06 17:43:47 UTC (rev 32969) +++ haiku/trunk/src/apps/people/PeopleApp.cpp 2009-09-06 18:37:48 UTC (rev 32970) @@ -106,16 +106,10 @@ } } if (!valid) { - BBitmap largeIcon(BRect(0, 0, B_LARGE_ICON - 1, B_LARGE_ICON - 1), B_CMAP8); - BBitmap miniIcon(BRect(0, 0, B_MINI_ICON - 1, B_MINI_ICON - 1), B_CMAP8); - mime.Install(); - largeIcon.SetBits(kLargePersonIcon, largeIcon.BitsLength(), 0, B_CMAP8); - miniIcon.SetBits(kSmallPersonIcon, miniIcon.BitsLength(), 0, B_CMAP8); mime.SetShortDescription("Person"); mime.SetLongDescription("Contact information for a person."); - mime.SetIcon(&largeIcon, B_LARGE_ICON); - mime.SetIcon(&miniIcon, B_MINI_ICON); + mime.SetIcon(kPersonIcon, sizeof(kPersonIcon)); mime.SetPreferredApp(APP_SIG); // add relevant person fields to meta-mime type Modified: haiku/trunk/src/apps/people/PersonIcons.h =================================================================== --- haiku/trunk/src/apps/people/PersonIcons.h 2009-09-06 17:43:47 UTC (rev 32969) +++ haiku/trunk/src/apps/people/PersonIcons.h 2009-09-06 18:37:48 UTC (rev 32970) @@ -1,97 +1,40 @@ -//-------------------------------------------------------------------- -// -// PersonIcons.h -// -// Written by: Robert Polic -// -//-------------------------------------------------------------------- -/* - Copyright 1999, Be Incorporated. All Rights Reserved. - This file may be used under the terms of the Be Sample Code License. -*/ -const uint8 kLargePersonIcon [] = { - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x02,0x02,0x00,0x08,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x04,0x1b,0x18,0x11,0x08,0x02,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x04,0x1b,0x3f,0x3f,0x1b,0x15,0x09,0x00, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x02,0x1b,0x3f,0x3f,0x1b,0x15,0x0b,0x00, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x04,0x15,0x1c,0x1b,0x18,0x11,0x08,0x00, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x02,0x08,0x15,0x16,0x15,0x0b,0x08,0x00, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0x00,0x0a,0x0b,0x08,0x0b,0x00,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x3f,0xf9,0x7d,0x00,0x00,0x00,0x00,0x7d,0x00, - 0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0x3f,0x3f,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d, - 0xf9,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xf9,0x3f,0x3f,0xf9,0xf9,0xf9,0xf9, - 0x7d,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xf9,0xf9,0xf9,0x3f,0x3f,0xf9,0x7d, - 0x7d,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0x7d,0x7d, - 0x7d,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0x7d,0x7d, - 0x7d,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0x7d,0x7d, - 0x7d,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0x7d,0x7d, - 0x7d,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0x7d,0x7d, - 0x7d,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0x7d,0x7d, - 0xc5,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0x7d,0xc5, - 0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xc5,0xf9,0xf9,0xf9,0xc5,0xc5, - 0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xc5,0xf9,0xf9,0xc5,0xc5,0x7d, - 0x00,0x0a,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xc5,0xf9,0xf9,0x7d,0x7d,0x7d, - 0x00,0x0a,0x0b,0x0a,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xc5,0xf9,0xf9,0x7d,0x7d,0x7d, - 0x00,0x0a,0x0b,0x0a,0x0b,0x0b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xc5,0xf9,0xf9,0x7d,0x7d,0x7d, - 0x00,0x0a,0x0b,0x0a,0x0b,0x0b,0x0a,0x0b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xc5,0xf9,0xf9,0x7d,0x7d,0x7d, - 0x00,0x0a,0x0b,0x0a,0x0b,0x0b,0x0a,0x0b,0x0b,0x0a,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xc5,0xf9,0xf9,0x7d,0x7d,0x7d, - 0x00,0x0a,0x0b,0x0a,0x0b,0x0b,0x0a,0x0b,0x0b,0x0a,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xc5,0xf9,0xf9,0x7d,0x7d,0x7d, - 0x00,0x0a,0x0b,0x0a,0x0b,0x0b,0x0a,0x0b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xf9,0xc5,0xf9,0xf9,0x7d,0x7d,0x7d, - 0x00,0x0a,0x0b,0x0a,0x0b,0x0b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xf9,0xf9,0x7d,0x7d,0x00, - 0x0a,0x0b,0x0a,0x0b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x0a, - 0x0b,0x0a,0x0b,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff +const uint8 kPersonIcon[] = { + 0x6e, 0x63, 0x69, 0x66, 0x08, 0x05, 0x00, 0x02, 0x00, 0x06, 0x02, 0x3c, + 0xad, 0xf4, 0x3d, 0x10, 0x4e, 0xbf, 0x02, 0xca, 0x3e, 0xa2, 0x22, 0x4a, + 0xf0, 0x20, 0x46, 0x64, 0x8d, 0x00, 0xff, 0xdb, 0x97, 0xff, 0xfc, 0xaf, + 0x29, 0x02, 0x00, 0x06, 0x02, 0x3a, 0x64, 0x96, 0xba, 0x3f, 0x15, 0x3e, + 0xbc, 0xdd, 0x3e, 0xea, 0x91, 0x46, 0x59, 0x6a, 0x43, 0xb1, 0x57, 0x00, + 0xff, 0xf7, 0xea, 0xfe, 0xfd, 0xd1, 0x7b, 0x02, 0x00, 0x06, 0x02, 0x3a, + 0xb3, 0x67, 0x37, 0x51, 0xb2, 0xbc, 0x59, 0x78, 0x3f, 0xd2, 0xd7, 0x4a, + 0xe3, 0xf1, 0x46, 0xf8, 0x59, 0x00, 0xc8, 0x58, 0x05, 0xff, 0xf0, 0x63, + 0x06, 0x02, 0x01, 0x06, 0x03, 0x3b, 0xc7, 0x1c, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x3b, 0xb6, 0xdb, 0x48, 0xd4, 0x00, 0x45, 0x30, 0x00, 0x00, + 0xf2, 0xf2, 0xf2, 0xab, 0x7d, 0x7a, 0x7a, 0xff, 0xbc, 0xa1, 0x84, 0x04, + 0x01, 0x6c, 0x03, 0xa3, 0x29, 0x04, 0x02, 0x00, 0x06, 0x02, 0x38, 0x8a, + 0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x4a, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x58, 0x04, 0xff, 0xdc, 0x95, 0x2f, + 0x09, 0x0a, 0x0d, 0x2c, 0x32, 0x2c, 0x43, 0x30, 0x47, 0x30, 0x58, 0x34, + 0x5a, 0x36, 0x5a, 0x37, 0xca, 0xb5, 0x3c, 0x5e, 0x44, 0x56, 0x44, 0x4b, + 0x48, 0x47, 0x48, 0x35, 0x35, 0x2c, 0x0a, 0x0b, 0x2c, 0x32, 0x2c, 0x43, + 0x30, 0x47, 0x30, 0x58, 0x34, 0x5a, 0x36, 0x5a, 0x37, 0xca, 0xb5, 0x3c, + 0x5e, 0x3c, 0x4d, 0x40, 0x4d, 0x40, 0x3b, 0x0a, 0x06, 0x2c, 0x32, 0x40, + 0x3b, 0x48, 0x35, 0x3a, 0x34, 0xbf, 0xbf, 0xb9, 0xc5, 0x35, 0x2c, 0x0a, + 0x08, 0x40, 0x4d, 0x3c, 0x4d, 0x3c, 0x5e, 0x44, 0x56, 0x44, 0x4b, 0x48, + 0x47, 0x48, 0x35, 0x40, 0x3b, 0x02, 0x04, 0x3a, 0x22, 0x3e, 0x22, 0x36, + 0x22, 0x32, 0x2a, 0x32, 0x26, 0x32, 0x2e, 0x3a, 0x32, 0x36, 0x32, 0x3e, + 0x32, 0x42, 0x2a, 0x42, 0x2e, 0x42, 0x26, 0x06, 0x07, 0xfe, 0x1b, 0x3c, + 0x60, 0x46, 0x60, 0x41, 0x60, 0x4b, 0x60, 0xc8, 0x04, 0xcb, 0x59, 0xc6, + 0x35, 0xcb, 0x4a, 0xcc, 0x25, 0xcb, 0x81, 0xcb, 0x40, 0xc8, 0xa9, 0xcd, + 0xca, 0xc9, 0x75, 0xc9, 0xb9, 0xc8, 0x2f, 0xc6, 0x91, 0xc7, 0x6b, 0x54, + 0xc8, 0x37, 0xc5, 0x1c, 0xc6, 0x67, 0x46, 0x50, 0x57, 0x0a, 0x04, 0x3c, + 0x4d, 0x3c, 0x53, 0x44, 0x4b, 0x40, 0x4d, 0x0a, 0x03, 0x3a, 0x34, 0x48, + 0x35, 0x40, 0x31, 0x0a, 0x04, 0x34, 0x5a, 0x36, 0x5a, 0x36, 0x4c, 0x34, + 0x4b, 0x0a, 0x0a, 0x05, 0x01, 0x05, 0x00, 0x0a, 0x00, 0x01, 0x00, 0x10, + 0x01, 0x17, 0x84, 0x00, 0x04, 0x0a, 0x01, 0x01, 0x01, 0x00, 0x0a, 0x02, + 0x01, 0x02, 0x00, 0x0a, 0x03, 0x01, 0x03, 0x00, 0x0a, 0x06, 0x01, 0x06, + 0x00, 0x0a, 0x07, 0x01, 0x07, 0x00, 0x0a, 0x00, 0x01, 0x04, 0x10, 0x01, + 0x17, 0x84, 0x00, 0x04, 0x0a, 0x04, 0x01, 0x04, 0x00, 0x0a, 0x03, 0x01, + 0x08, 0x08, 0x15, 0xff }; -const uint8 kSmallPersonIcon [] = { - 0xff,0xff,0xff,0xff,0xff,0x02,0x02,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0x04,0x15,0x1e,0x15,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0x02,0x1d,0x1e,0x1c,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0x00,0x15,0x1b,0x16,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0x00,0xfa,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0x00,0xf9,0xf9,0xfa,0xfa,0xfa,0xfa,0x00,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0x00,0xf9,0xf9,0xf9,0xf9,0x7d,0x7d,0x00,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0x00,0xf9,0xf9,0xf9,0xf9,0x7d,0x7d,0x00,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0x00,0xf9,0xf9,0xf9,0xf9,0x7d,0x7d,0x00,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0xf9,0x7d,0x7d,0x00,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0x7d,0x7d,0x00,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0x7d,0x7d,0x00,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0x7d,0x7d,0x00,0xff,0xff,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0x00,0xf9,0xf9,0x7d,0x7d,0x00,0x0a,0x0b,0xff,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0x00,0x00,0xf9,0x7d,0x7d,0x00,0x0a,0x0b,0x0a,0xff,0xff,0xff, - 0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x0a,0x0b,0x0a,0x0b,0xff,0xff,0xff -}; From korli at mail.berlios.de Sun Sep 6 21:22:05 2009 From: korli at mail.berlios.de (korli at mail.berlios.de) Date: Sun, 6 Sep 2009 21:22:05 +0200 Subject: [Haiku-commits] r32971 - in haiku/trunk/src/add-ons: kernel/drivers/audio/hda media/media-add-ons/multi_audio Message-ID: <200909061922.n86JM45S009256@sheep.berlios.de> Author: korli Date: 2009-09-06 21:22:01 +0200 (Sun, 06 Sep 2009) New Revision: 32971 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32971&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp haiku/trunk/src/add-ons/media/media-add-ons/multi_audio/MultiAudioUtility.cpp Log: the float format is not supposed to be selected yet, as we don't support the float format in multi_audio. dump more audio formats in hda. 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-09-06 18:37:48 UTC (rev 32970) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp 2009-09-06 19:22:01 UTC (rev 32971) @@ -1,10 +1,11 @@ /* - * Copyright 2007-2008, Haiku, Inc. All Rights Reserved. + * Copyright 2007-2009, Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. * * Authors: * Ithamar Adema, ithamar AT unet DOT nl * Axel D?rfler, axeld at pinc-software.de + * J?r?me Duval, korli at users.berlios.de */ @@ -153,12 +154,15 @@ static void dump_widget_stream_support(hda_widget& widget) { - dprintf("\tSupported formats: %s%s%s%s%s\n", + dprintf("\tSupported formats: %s%s%s%s%s%s%s%s\n", widget.d.io.formats & B_FMT_8BIT_S ? "8bits " : "", widget.d.io.formats & B_FMT_16BIT ? "16bits " : "", widget.d.io.formats & B_FMT_20BIT ? "20bits " : "", widget.d.io.formats & B_FMT_24BIT ? "24bits " : "", - widget.d.io.formats & B_FMT_32BIT ? "32bits " : ""); + widget.d.io.formats & B_FMT_32BIT ? "32bits " : "", + widget.d.io.formats & B_FMT_FLOAT ? "float " : "", + widget.d.io.formats & B_FMT_DOUBLE ? "double " : "", + widget.d.io.formats & B_FMT_EXTENDED ? "extended " : ""); dprintf("\tSupported rates: %s%s%s%s%s%s%s%s%s%s%s%s\n", widget.d.io.rates & B_SR_8000 ? "8khz " : "", widget.d.io.rates & B_SR_11025 ? "11khz " : "", Modified: haiku/trunk/src/add-ons/media/media-add-ons/multi_audio/MultiAudioUtility.cpp =================================================================== --- haiku/trunk/src/add-ons/media/media-add-ons/multi_audio/MultiAudioUtility.cpp 2009-09-06 18:37:48 UTC (rev 32970) +++ haiku/trunk/src/add-ons/media/media-add-ons/multi_audio/MultiAudioUtility.cpp 2009-09-06 19:22:01 UTC (rev 32971) @@ -141,8 +141,9 @@ select_format(uint32 format) { // best format - if (format & B_FMT_FLOAT) - return B_FMT_FLOAT; + // TODO ensure we support this format + /*if (format & B_FMT_FLOAT) + return B_FMT_FLOAT;*/ if (format & B_FMT_32BIT) return B_FMT_32BIT; if (format & B_FMT_24BIT) From kirilla at mail.berlios.de Sun Sep 6 22:42:25 2009 From: kirilla at mail.berlios.de (kirilla at BerliOS) Date: Sun, 6 Sep 2009 22:42:25 +0200 Subject: [Haiku-commits] r32972 - haiku/trunk/src/apps/people Message-ID: <200909062042.n86KgPJ7017720@sheep.berlios.de> Author: kirilla Date: 2009-09-06 22:42:23 +0200 (Sun, 06 Sep 2009) New Revision: 32972 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32972&view=rev Modified: haiku/trunk/src/apps/people/PeopleWindow.cpp Log: If moved to Trash, close window. Modified: haiku/trunk/src/apps/people/PeopleWindow.cpp =================================================================== --- haiku/trunk/src/apps/people/PeopleWindow.cpp 2009-09-06 19:22:01 UTC (rev 32971) +++ haiku/trunk/src/apps/people/PeopleWindow.cpp 2009-09-06 20:42:23 UTC (rev 32972) @@ -22,6 +22,7 @@ #include #include #include +#include #include "PeopleApp.h" #include "PeopleView.h" @@ -223,6 +224,20 @@ // And our window title. SetTitle(name); + + // If moved to Trash, close window. + BVolume volume(device); + BPath trash; + find_directory(B_TRASH_DIRECTORY, &trash, false, + &volume); + BPath folder(fRef); + folder.GetParent(&folder); + if (folder == trash) { + delete fRef; + fRef = NULL; + PostMessage(B_QUIT_REQUESTED); + } + break; } From jonas at kirilla.com Sun Sep 6 22:59:45 2009 From: jonas at kirilla.com (Jonas =?iso-8859-1?q?Sundstr=F6m?=) Date: Sun, 06 Sep 2009 22:59:45 +0200 CEST Subject: [Haiku-commits] r32972 - haiku/trunk/src/apps/people In-Reply-To: <200909062042.n86KgPJ7017720@sheep.berlios.de> Message-ID: <35306288167-BeMail@kirilla> kirilla at BerliOS wrote: > Author: kirilla > Date: 2009-09-06 22:42:23 +0200 (Sun, 06 Sep 2009) > New Revision: 32972 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32972&view=rev > > Modified: > haiku/trunk/src/apps/people/PeopleWindow.cpp > Log: > If moved to Trash, close window. Bruno, if you're about to demo using People: Doing this with multiple windows can trigger an issue where all windows hang. And the app sometimes fails to quit. I'll see if I can find what causes it. /Jonas. From kirilla at mail.berlios.de Sun Sep 6 23:02:12 2009 From: kirilla at mail.berlios.de (kirilla at BerliOS) Date: Sun, 6 Sep 2009 23:02:12 +0200 Subject: [Haiku-commits] r32973 - haiku/trunk/src/apps/pairs Message-ID: <200909062102.n86L2CQY019111@sheep.berlios.de> Author: kirilla Date: 2009-09-06 23:02:11 +0200 (Sun, 06 Sep 2009) New Revision: 32973 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32973&view=rev Removed: haiku/trunk/src/apps/pairs/bitmaps/ Log: Removing unused bitmaps on request by Ralf Sch?\195?\188lke. Thanks. From korli at mail.berlios.de Mon Sep 7 00:18:12 2009 From: korli at mail.berlios.de (korli at mail.berlios.de) Date: Mon, 7 Sep 2009 00:18:12 +0200 Subject: [Haiku-commits] r32974 - haiku/trunk/build/jam Message-ID: <200909062218.n86MICZO032530@sheep.berlios.de> Author: korli Date: 2009-09-07 00:18:10 +0200 (Mon, 07 Sep 2009) New Revision: 32974 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32974&view=rev Modified: haiku/trunk/build/jam/OptionalPackages Log: added an optional package for OCaml Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-09-06 21:02:11 UTC (rev 32973) +++ haiku/trunk/build/jam/OptionalPackages 2009-09-06 22:18:10 UTC (rev 32974) @@ -40,6 +40,7 @@ # Nano - the command line text editor # Neon - support libraries used for example by SVN # NetSurf - the web browser +# OCaml - the Objective Caml language # OpenSound - additional audio driver package # OpenSSH - the secure shell # OpenSSL - secure sockets library @@ -601,6 +602,25 @@ } +# OCaml +if [ IsOptionalHaikuImagePackageAdded OCaml ] { + if $(TARGET_ARCH) != x86 { + Echo "No optional package OCaml available for $(TARGET_ARCH)" ; + } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) { + Echo "No optional package OCaml available for gcc4" ; + } else { + InstallOptionalHaikuImagePackage ocaml-3.11.1-r1a1-x86-gcc2-2009-09-06 + : http://jerome.duval.free.fr/obos/ocaml-3.11.1-r1a1-x86-gcc2-2009-09-06.zip + : + ; + InstallOptionalHaikuImagePackage camlp5-5.12-r1a1-x86-gcc2-2009-09-06 + : http://jerome.duval.free.fr/obos/camlp5-5.12-r1a1-x86-gcc2-2009-09-06.zip + : + ; + } +} + + # OpenSound drivers if [ IsOptionalHaikuImagePackageAdded OpenSound ] { if $(TARGET_ARCH) != x86 { From mmlr at mail.berlios.de Mon Sep 7 00:47:18 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 7 Sep 2009 00:47:18 +0200 Subject: [Haiku-commits] r32975 - haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay Message-ID: <200909062247.n86MlI7X015735@sheep.berlios.de> Author: mmlr Date: 2009-09-07 00:47:16 +0200 (Mon, 07 Sep 2009) New Revision: 32975 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32975&view=rev Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp Log: Applying locking addition only from r32937 on trunk. This should fix #4441. Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-06 22:18:10 UTC (rev 32974) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-06 22:47:16 UTC (rev 32975) @@ -13,6 +13,7 @@ #include #include +#include #include #include @@ -105,6 +106,9 @@ status_t InitCheck(); + bool Lock() { return recursive_lock_lock(&fLock) == B_OK; } + void Unlock() { recursive_lock_unlock(&fLock); } + bool IsVirtual() { return fIsVirtual; } bool IsModified() { return fIsModified; } @@ -168,6 +172,7 @@ status_t _CreateCommon(const char *name, int type, int perms, ino_t *newInodeNumber, OverlayInode **node); + recursive_lock fLock; OverlayVolume * fVolume; OverlayInode * fParentDir; const char * fName; @@ -222,6 +227,7 @@ { TRACE("inode created %lld\n", fInodeNumber); + recursive_lock_init(&fLock, "write overlay inode lock"); if (superVnode != NULL) fSuperVnode = *superVnode; else { @@ -258,6 +264,8 @@ for (uint32 i = 0; i < fDirentCount; i++) free(fDirents[i]); free(fDirents); + + recursive_lock_destroy(&fLock); } @@ -295,6 +303,7 @@ void OverlayInode::SetParentDir(OverlayInode *parentDir) { + RecursiveLocker locker(fLock); fParentDir = parentDir; if (fHasDirents && fDirentCount >= 2) fDirents[1]->inode_number = parentDir->InodeNumber(); @@ -304,6 +313,7 @@ bool OverlayInode::IsNonEmptyDirectory() { + RecursiveLocker locker(fLock); if (!fHasStat) ReadStat(NULL); @@ -320,12 +330,14 @@ status_t OverlayInode::Lookup(const char *name, ino_t *inodeNumber) { + RecursiveLocker locker(fLock); if (!fHasDirents) _PopulateDirents(); for (uint32 i = 0; i < fDirentCount; i++) { if (strcmp(fDirents[i]->name, name) == 0) { *inodeNumber = fDirents[i]->inode_number; + locker.Unlock(); OverlayInode *node = NULL; status_t result = get_vnode(Volume(), *inodeNumber, @@ -343,6 +355,7 @@ void OverlayInode::SetName(const char *name) { + RecursiveLocker locker(fLock); fName = name; if (!fIsModified) SetModified(); @@ -352,6 +365,7 @@ status_t OverlayInode::GetName(char *buffer, size_t bufferSize) { + RecursiveLocker locker(fLock); if (fName != NULL) { strlcpy(buffer, fName, bufferSize); return B_OK; @@ -371,6 +385,7 @@ status_t OverlayInode::ReadStat(struct stat *stat) { + RecursiveLocker locker(fLock); if (!fHasStat) { if (fSuperVnode.ops->read_stat == NULL) return B_UNSUPPORTED; @@ -395,6 +410,7 @@ status_t OverlayInode::WriteStat(const struct stat *stat, uint32 statMask) { + RecursiveLocker locker(fLock); if (!fHasStat) ReadStat(NULL); @@ -446,6 +462,7 @@ status_t OverlayInode::Open(int openMode, void **_cookie) { + RecursiveLocker locker(fLock); if (!fHasStat) ReadStat(NULL); @@ -528,6 +545,7 @@ OverlayInode::Read(void *_cookie, off_t position, void *buffer, size_t *length, bool readPages, IORequest *ioRequest) { + RecursiveLocker locker(fLock); if (position >= fStat.st_size) { *length = 0; return B_OK; @@ -638,6 +656,7 @@ OverlayInode::Write(void *_cookie, off_t position, const void *buffer, size_t length, IORequest *ioRequest) { + RecursiveLocker locker(fLock); if (_cookie != NULL) { open_cookie *cookie = (open_cookie *)_cookie; if (cookie->open_mode & O_APPEND) @@ -789,6 +808,7 @@ status_t OverlayInode::OpenDir(void **cookie) { + RecursiveLocker locker(fLock); if (!fHasDirents) _PopulateDirents(); @@ -822,6 +842,7 @@ OverlayInode::ReadDir(void *cookie, struct dirent *buffer, size_t bufferSize, uint32 *num) { + RecursiveLocker locker(fLock); open_dir_cookie *dirCookie = (open_dir_cookie *)cookie; if (dirCookie->index >= fDirentCount) { *num = 0; @@ -887,6 +908,7 @@ status_t OverlayInode::AddEntry(overlay_dirent *entry) { + RecursiveLocker locker(fLock); if (!fHasDirents) _PopulateDirents(); @@ -912,6 +934,7 @@ status_t OverlayInode::RemoveEntry(const char *name, overlay_dirent **_entry) { + RecursiveLocker locker(fLock); if (!fHasDirents) _PopulateDirents(); @@ -1111,12 +1134,15 @@ OverlayInode::_CreateCommon(const char *name, int type, int perms, ino_t *newInodeNumber, OverlayInode **_node) { + RecursiveLocker locker(fLock); if (!fHasStat) ReadStat(NULL); if (!S_ISDIR(fStat.st_mode)) return B_NOT_A_DIRECTORY; + locker.Unlock(); + overlay_dirent *entry = (overlay_dirent *)malloc(sizeof(overlay_dirent)); if (entry == NULL) return B_NO_MEMORY; @@ -1153,8 +1179,10 @@ return result; } + node->Lock(); node->SetModified(); node->CreateCache(); + node->Unlock(); if (newInodeNumber != NULL) *newInodeNumber = entry->inode_number; From ingo_weinhold at gmx.de Mon Sep 7 00:46:33 2009 From: ingo_weinhold at gmx.de (Ingo Weinhold) Date: Mon, 07 Sep 2009 00:46:33 +0200 Subject: [Haiku-commits] r32948 - haiku/trunk/src/add-ons/tracker/opentargetfolder In-Reply-To: References: <4AA29CF9.6090007@googlemail.com> <12991136370-BeMail@kirilla> <20090906073915.39870@gmx.net> Message-ID: <20090907004633.574.1@knochen-vm.localdomain> On 2009-09-06 at 19:28:29 [+0200], Ryan Leavengood wrote: > On Sun, Sep 6, 2009 at 3:39 AM, Stephan Assmus wrote: > > > > By now it is clear that you are a vivid advertizer of the DRY concept... > > :-) > > ;) > > > Anyway, this mistake was something completely different, and had nothing > > TODO > > with the problem of repeated code. At one place, the name of the add-on > > was > > established (in it's Jamfile), in another place, the add-on was declared > > to > > go onto the image (HaikuImage Jamfile). You cannot suddenly refer to > > another > > name in HaikuImage without changing the actual name... > > And that means the name is repeated. It had to be changed in two > places. DRY isn't just about code, it is also about information. > > Of course this is not necessarily fixable with Jam, since unique names > are the best way to refer to targets. And we generally want to > separate the building of targets from placing them in an image. But it > is still a case of repetition causing problems. Since the information is needed in two places, some kind of repetition is needed at any rate. Even if you'd introduce a variable for the name of the add-on, you'd have to repeat the variable name. The real problem here is that the shortcut key is encoded in the add-on name. I can't be the only one finding that obscene. CU, Ingo From jonas at kirilla.com Mon Sep 7 01:12:19 2009 From: jonas at kirilla.com (Jonas =?iso-8859-1?q?Sundstr=F6m?=) Date: Mon, 07 Sep 2009 01:12:19 +0200 CEST Subject: [Haiku-commits] r32948 - haiku/trunk/src/add-ons/tracker/opentargetfolder In-Reply-To: <20090907004633.574.1@knochen-vm.localdomain> Message-ID: <1526322879-BeMail@kirilla> Ingo Weinhold wrote: ... > The real problem here is that the shortcut key is > encoded in the add-on name. I can't be the only > one finding that obscene. Especially when having a filesystem that supports extended attributes for metadata. /Jonas. From mmlr at mail.berlios.de Mon Sep 7 01:15:26 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 7 Sep 2009 01:15:26 +0200 Subject: [Haiku-commits] r32976 - haiku/trunk/src/system/kernel/fs Message-ID: <200909062315.n86NFQ9V012258@sheep.berlios.de> Author: mmlr Date: 2009-09-07 01:15:23 +0200 (Mon, 07 Sep 2009) New Revision: 32976 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32976&view=rev Modified: haiku/trunk/src/system/kernel/fs/vfs_boot.cpp Log: If the boot volume is BFS and read-only mount it with the write_overlay. This allows for BFS based LiveCDs. Still this whole name matching feels hacky. Modified: haiku/trunk/src/system/kernel/fs/vfs_boot.cpp =================================================================== --- haiku/trunk/src/system/kernel/fs/vfs_boot.cpp 2009-09-06 22:47:16 UTC (rev 32975) +++ haiku/trunk/src/system/kernel/fs/vfs_boot.cpp 2009-09-06 23:15:23 UTC (rev 32976) @@ -452,6 +452,10 @@ if (strcmp(bootPartition->ContentType(), "ISO9660 File System") == 0) { fsName = "iso9660:write_overlay:attribute_overlay"; readOnly = true; + } else if (bootPartition->IsReadOnly() + && strcmp(bootPartition->ContentType(), "Be File System") == 0) { + fsName = "bfs:write_overlay"; + readOnly = true; } TRACE(("trying to mount boot partition: %s\n", path.Path())); From marcusoverhagen at mail.berlios.de Mon Sep 7 02:46:04 2009 From: marcusoverhagen at mail.berlios.de (marcusoverhagen at mail.berlios.de) Date: Mon, 7 Sep 2009 02:46:04 +0200 Subject: [Haiku-commits] r32977 - haiku/trunk/src/add-ons/kernel/generic/ata_adapter Message-ID: <200909070046.n870k4cA008631@sheep.berlios.de> Author: marcusoverhagen Date: 2009-09-07 02:46:02 +0200 (Mon, 07 Sep 2009) New Revision: 32977 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32977&view=rev Modified: haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c Log: This should fix interrupt timeouts when using DMA mode. Also ignore simplex bit for Intel controllers, and use DMA for both channels. Modified: haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c =================================================================== --- haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-09-06 23:15:23 UTC (rev 32976) +++ haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-09-07 00:46:02 UTC (rev 32977) @@ -184,22 +184,28 @@ pci_device *device = channel->device; uint8 statusATA, statusBM; - // this could be a spurious interrupt, so always read status - // register unconditionally to acknowledge those - statusATA = pci->read_io_8(device, channel->command_block_base + 7); - - if (!channel->dmaing) + if (!channel->dmaing) { + // this could be a spurious interrupt, so read status + // register unconditionally to acknowledge those + pci->read_io_8(device, channel->command_block_base + 7); return B_UNHANDLED_INTERRUPT; + } - // read bus master DMA status to test if the interrupt was - // really generated by our controller + // need to read bus master status first, because some controllers + // will clear the interrupt status bit once ATA status is read statusBM = pci->read_io_8(device, channel->bus_master_base + ATA_BM_STATUS_REG); + // test if the interrupt was really generated by our controller if (statusBM & ATA_BM_STATUS_INTERRUPT) { - // clear pending PCI bus master DMA interrupt + // read ATA status register to acknowledge interrupt + statusATA = pci->read_io_8(device, channel->command_block_base + 7); + + // clear pending PCI bus master DMA interrupt, for those + // controllers who don't clear it themselves pci->write_io_8(device, channel->bus_master_base + ATA_BM_STATUS_REG, (statusBM & 0xf8) | ATA_BM_STATUS_INTERRUPT); + // signal interrupt to ATA stack return sATA->interrupt_handler(channel->ataChannel, statusATA); } else { @@ -484,6 +490,7 @@ uint8 api; uint16 pcicmdOld; uint16 pcicmdNew; + uint16 pciVendor; SHOW_FLOW0( 3, "" ); @@ -539,9 +546,9 @@ } if (pcicmdOld != pcicmdNew) { pci->write_pci_config(pci_device, PCI_command, 2, pcicmdNew); + TRACE("PCI-ATA: pcicmd changed from 0x%04x to 0x%04x\n", + pcicmdOld, pcicmdNew); } - TRACE("PCI-ATA: pcicmd old 0x%04x, new 0x%04x\n", - pcicmdOld, pcicmdNew); if (supports_compatibility_mode) { @@ -555,8 +562,16 @@ // better were to use a controller lock, but this had to be done in the IDE // bus manager, and I don't see any reason to add extra code for old // simplex controllers - TRACE("PCI-ATA: Simplex controller - disabling DMA of secondary channel\n"); - controller_can_dma = false; + + // Intel controllers use this bit for something else and are not simplex. + pciVendor = pci->read_pci_config(pci_device, PCI_vendor_id, 2); + + if (pciVendor != 0x8086) { + TRACE("PCI-ATA: Simplex controller - disabling DMA of secondary channel\n"); + controller_can_dma = false; + } else { + TRACE("PCI-ATA: Simplex bit ignored - Intel controller\n"); + } } } From marcusoverhagen at mail.berlios.de Mon Sep 7 02:58:34 2009 From: marcusoverhagen at mail.berlios.de (marcusoverhagen at mail.berlios.de) Date: Mon, 7 Sep 2009 02:58:34 +0200 Subject: [Haiku-commits] r32978 - haiku/trunk/src/add-ons/kernel/bus_managers/ata Message-ID: <200909070058.n870wYmU011762@sheep.berlios.de> Author: marcusoverhagen Date: 2009-09-07 02:58:31 +0200 (Mon, 07 Sep 2009) New Revision: 32978 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32978&view=rev Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAModule.cpp haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h Log: Faster bus scan by reusing device presence information that is available before resetting the bus. This allows to skip devices that are not present. Works for most but not all devices. Sometimes device 0 pretends that a device 1 exists, but it's usefull anyway. Allow working device 1 only configurations by not selecting device 0 anymore for identification. Moved indentification from Reset into BusScan to do everything in a single step. A SATA emulation in combined mode might have a slave (device 1) only configuration when only one device is connected, depending on the port. Also tested with PATA. Recovery for lost interrupts. Works but is dead slow because of the timeout. Bus reset isn't possible anymore, this needs to be implemented in a save way. Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp 2009-09-07 00:46:02 UTC (rev 32977) +++ haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp 2009-09-07 00:58:31 UTC (rev 32978) @@ -115,23 +115,115 @@ } +bool +ATAChannel::_DevicePresent(int device) +{ + SelectDevice(device); + + if (SelectedDevice() != device) { + TRACE_ALWAYS("_DevicePresent: device selection failed for device %i\n", + device); + return false; + } + + ata_task_file taskFile; + taskFile.chs.sector_count = 0x5a; + taskFile.chs.sector_number = 0xa5; + if (_WriteRegs(&taskFile, ATA_MASK_SECTOR_COUNT + | ATA_MASK_SECTOR_NUMBER) != B_OK) { + TRACE_ERROR("_DevicePresent: writing registers failed\n"); + return false; + } + if (_ReadRegs(&taskFile, ATA_MASK_SECTOR_COUNT + | ATA_MASK_SECTOR_NUMBER) != B_OK) { + TRACE_ERROR("_DevicePresent: reading registers failed\n"); + return false; + } + bool present = (taskFile.chs.sector_count == 0x5a && + taskFile.chs.sector_number == 0xa5); + + TRACE_ALWAYS("_DevicePresent: device %i, presence %d\n", device, present); + return present; +} + + status_t ATAChannel::ScanBus() { - bool devicePresent[fDeviceCount]; - uint16 deviceSignature[fDeviceCount]; - status_t result = Reset(devicePresent, deviceSignature); + uint deviceMask = 0; + + for (int i = 0; i < fDeviceCount; i++) + deviceMask |= (int)_DevicePresent(i) << i; + + status_t result = Reset(); if (result != B_OK) { TRACE_ERROR("resetting the channel failed\n"); return result; } - for (uint8 i = 0; i < fDeviceCount; i++) { - if (!devicePresent[i]) + TRACE_ALWAYS("deviceMask %d\n", deviceMask); + + for (int i = 0; i < fDeviceCount; i++) { + if (!(deviceMask & (1 << i))) { + TRACE_ALWAYS("ignoring device %d\n", i); continue; + } + TRACE_ALWAYS("probing device %d\n", i); + SelectDevice(i); + + // ensure interrupts are disabled for this device + _WriteControl(ATA_DEVICE_CONTROL_DISABLE_INTS); + + // wait up to 3 seconds for busy to clear + if (Wait(0, ATA_STATUS_BUSY, 0, 3 * 1000 * 1000) != B_OK) { + uint8 status = AltStatus(); + if (status == 0xff || status == 0x7f) { + TRACE_ALWAYS("illegal status value 0x%02x for device %d\n", + status, i); + continue; + } else { + TRACE_ALWAYS("device %d is slow\n", i); + } + } + + // wait up to 31 seconds for busy to clear (already 3 sec. waited) + if (Wait(0, ATA_STATUS_BUSY, 0, 28 * 1000 * 1000) != B_OK) { + TRACE_ALWAYS("device %d reset timeout\n", i); + continue; + } + + // reselect device + SelectDevice(i); + WaitForIdle(); + + if (SelectedDevice() != i) { + TRACE_ALWAYS("device selection failed for device %i\n", i); + continue; + } + + ata_task_file taskFile; + if (_ReadRegs(&taskFile, ATA_MASK_LBA_MID | ATA_MASK_LBA_HIGH + | ATA_MASK_ERROR) != B_OK) { + TRACE_ERROR("reading status failed\n"); + return B_ERROR; + } + + // for information only + if ((i == 0) && (taskFile.read.error & 0x80)) { + TRACE_ERROR("device 0 indicates that device 1 failed" + " error code is 0x%02x\n", taskFile.read.error); + } else if (taskFile.read.error != 0x01) { + TRACE_ERROR("device %d failed, error code is 0x%02x\n", + i, taskFile.read.error); + } + + uint16 signature = taskFile.lba.lba_8_15 + | (((uint16)taskFile.lba.lba_16_23) << 8); + TRACE_ALWAYS("signature of device %d: 0x%04x\n", i, signature); + ATADevice *device = NULL; - if (deviceSignature[i] == ATA_SIGNATURE_ATAPI) + if (signature == ATA_SIGNATURE_ATAPI) device = new(std::nothrow) ATAPIDevice(this, i); else device = new(std::nothrow) ATADevice(this, i); @@ -290,7 +382,7 @@ status_t -ATAChannel::Reset(bool *presence, uint16 *signatures) +ATAChannel::Reset() { TRACE_FUNCTION("\n"); @@ -313,95 +405,6 @@ _FlushAndWait(150 * 1000); - for (uint8 i = 0; i < fDeviceCount; i++) - presence[i] = false; - - // up to 2 devices on each channel - for (uint8 i = 0; i < fDeviceCount; i++) { - TRACE_ALWAYS("probing device %d\n", i); - SelectDevice(i); - if (i == 1) { - if (presence[0]) { - TRACE_ALWAYS("possibly master and slave configuration...\n"); - } else { - TRACE_ALWAYS("possibly single device 1 configuration...\n"); - int maxtrys; - for (maxtrys = 20; maxtrys > 0; maxtrys--) { - SelectDevice(1); - ata_task_file taskFile; - taskFile.chs.sector_count = 0x5a; - taskFile.chs.sector_number = 0xa5; - if (_WriteRegs(&taskFile, ATA_MASK_SECTOR_COUNT - | ATA_MASK_SECTOR_NUMBER) != B_OK) { - TRACE_ERROR("writing registers failed\n"); - return B_ERROR; - } - if (_ReadRegs(&taskFile, ATA_MASK_SECTOR_COUNT - | ATA_MASK_SECTOR_NUMBER) != B_OK) { - TRACE_ERROR("reading registers failed\n"); - return B_ERROR; - } - if (taskFile.chs.sector_count == 0x5a && - taskFile.chs.sector_number == 0xa5) - break; - snooze(100000); - } - if (maxtrys == 0) { - TRACE_ALWAYS("Can't access device 1\n"); - continue; - } - } - } - - // ensure interrupts are disabled for this device - _WriteControl(ATA_DEVICE_CONTROL_DISABLE_INTS); - - if (AltStatus() == 0xff) - snooze(150 * 1000); - - if (AltStatus() == 0xff) { - TRACE_ALWAYS("illegal status value for device %d\n", i); - continue; - } - - // wait up to 31 seconds for busy to clear - if (Wait(0, ATA_STATUS_BUSY, 0, 31 * 1000 * 1000) != B_OK) { - TRACE_ALWAYS("device %d reset timeout\n", i); - continue; - } - - // reselect device - SelectDevice(i); - - if (SelectedDevice() != i) { - TRACE_ALWAYS("device selection failed for device %i\n", i); - continue; - } - - ata_task_file taskFile; - if (_ReadRegs(&taskFile, ATA_MASK_LBA_MID | ATA_MASK_LBA_HIGH - | ATA_MASK_ERROR) != B_OK) { - TRACE_ERROR("reading status failed\n"); - return B_ERROR; - } - - // for information only - if ((i == 0) && (taskFile.read.error & 0x80)) { - TRACE_ERROR("device 0 indicates that device 1 failed" - " error code is 0x%02x\n", taskFile.read.error); - } else if (taskFile.read.error != 0x01) { - TRACE_ERROR("device %d failed, error code is 0x%02x\n", - i, taskFile.read.error); - } - - presence[i] = true; - - signatures[i] = taskFile.lba.lba_8_15 - | (((uint16)taskFile.lba.lba_16_23) << 8); - TRACE_ALWAYS("signature of device %d: 0x%04x\n", i, signatures[i]); - - } - return B_OK; } @@ -413,7 +416,7 @@ bigtime_t startTime = system_time(); _FlushAndWait(1); - TRACE("waiting for set bits 0x%02x and cleared bits 0x%02x\n", + TRACE("wait for set bits 0x%02x and cleared bits 0x%02x\n", setBits, clearedBits); #if ATA_TRACING @@ -424,34 +427,39 @@ if ((flags & ATA_CHECK_ERROR_BIT) != 0 && (status & ATA_STATUS_BUSY) == 0 && (status & ATA_STATUS_ERROR) != 0) { - TRACE("error bit set while waiting\n"); + TRACE("wait failed, error bit set, status 0x%02x\n", status); return B_ERROR; } if ((flags & ATA_CHECK_DEVICE_FAULT) != 0 && (status & ATA_STATUS_BUSY) == 0 && (status & ATA_STATUS_DEVICE_FAULT) != 0) { - TRACE("device fault bit set while waiting\n"); + TRACE("wait failed, device fault bit set, status 0x%02x\n", status); return B_ERROR; } if ((status & clearedBits) == 0) { - if ((flags & ATA_WAIT_ANY_BIT) != 0 && (status & setBits) != 0) + if ((flags & ATA_WAIT_ANY_BIT) != 0 && (status & setBits) != 0) { + TRACE("wait success, status 0x%02x\n", status); return B_OK; - if ((status & setBits) == setBits) + } + if ((status & setBits) == setBits) { + TRACE("wait success, status 0x%02x\n", status); return B_OK; + } } bigtime_t elapsedTime = system_time() - startTime; #if ATA_TRACING if (lastStatus != status) { - TRACE("wait status after %lld: 0x%02x\n", elapsedTime, status); + TRACE("wait status changed after %lld, status 0x%02x\n", + elapsedTime, status); lastStatus = status; } #endif if (elapsedTime > timeout) { - TRACE("timeout, wait status after %lld: 0x%02x\n", + TRACE("wait timeout after %lld, status 0x%02x\n", elapsedTime, status); return B_TIMED_OUT; } @@ -492,6 +500,27 @@ } +status_t +ATAChannel::Interrupt(uint8 status) +{ + SpinLocker locker(fInterruptLock); + if (!fExpectsInterrupt) { + TRACE("interrupt when not expecting transfer\n"); + return B_UNHANDLED_INTERRUPT; + } + + if ((status & ATA_STATUS_BUSY) != 0) { + TRACE("interrupt while device is busy\n"); + return B_UNHANDLED_INTERRUPT; + } + + TRACE("interrupt\n"); + + fInterruptCondition.NotifyAll(); + return B_INVOKE_SCHEDULER; +} + + void ATAChannel::PrepareWaitingForInterrupt() { @@ -516,11 +545,15 @@ fExpectsInterrupt = false; locker.Unlock(); + if (result != B_OK) { + TRACE_ERROR("timeout waiting for interrupt\n"); + result = RecoverLostInterrupt(); + } + // disable interrupts _WriteControl(ATA_DEVICE_CONTROL_DISABLE_INTS); if (result != B_OK) { - TRACE_ERROR("timeout waiting for interrupt\n"); return B_TIMED_OUT; } @@ -529,8 +562,22 @@ status_t +ATAChannel::RecoverLostInterrupt() +{ + uint8 status = AltStatus(); + if (status & (ATA_STATUS_BUSY | ATA_STATUS_DATA_REQUEST)) { + TRACE_ERROR("RecoverLostInterrupt: device busy, status 0x%02x\n", status); + return B_ERROR; + } + TRACE_ERROR("RecoverLostInterrupt: lost interrupt, status 0x%02x\n", status); + return B_OK; +} + + +status_t ATAChannel::SendRequest(ATARequest *request, uint32 flags) { + TRACE_FUNCTION("\n"); ATADevice *device = request->Device(); if (device->Select() != B_OK || WaitForIdle() != B_OK) { // resetting the device here will discard current configuration, @@ -561,6 +608,7 @@ status_t ATAChannel::FinishRequest(ATARequest *request, uint32 flags, uint8 errorMask) { + TRACE_FUNCTION("\n"); if (flags & ATA_WAIT_FINISH) { // wait for the device to finish current command (device no longer busy) status_t result = Wait(0, ATA_STATUS_BUSY, flags, request->Timeout()); @@ -603,8 +651,8 @@ if ((taskFile->read.error & ATA_ERROR_MEDIUM_CHANGED) != ATA_ERROR_MEDIUM_CHANGED) { - TRACE_ERROR("command failed, error bit is set: 0x%02x\n", - taskFile->read.error); + TRACE_ERROR("command failed, error bit is set. status 0x%02x, error 0x%02x\n", + taskFile->read.status, taskFile->read.error); } uint8 error = taskFile->read.error & errorMask; @@ -757,25 +805,6 @@ status_t -ATAChannel::Interrupt(uint8 status) -{ - SpinLocker locker(fInterruptLock); - if (!fExpectsInterrupt) { - TRACE("interrupt when not expecting transfer\n"); - return B_UNHANDLED_INTERRUPT; - } - - if ((status & ATA_STATUS_BUSY) != 0) { - TRACE(("interrupt while device is busy\n")); - return B_UNHANDLED_INTERRUPT; - } - - fInterruptCondition.NotifyAll(); - return B_INVOKE_SCHEDULER; -} - - -status_t ATAChannel::_ReadRegs(ata_task_file *taskFile, ata_reg_mask mask) { return fController->read_command_block_regs(fCookie, taskFile, mask); Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAModule.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAModule.cpp 2009-09-07 00:46:02 UTC (rev 32977) +++ haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAModule.cpp 2009-09-07 00:58:31 UTC (rev 32978) @@ -138,7 +138,8 @@ if (channel->Bus() == NULL) return SCSI_NO_HBA; - channel->Reset(NULL, NULL); + //channel->Reset(); + panic("asking for trouble"); return SCSI_REQ_CMP; } Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h 2009-09-07 00:46:02 UTC (rev 32977) +++ haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h 2009-09-07 00:58:31 UTC (rev 32978) @@ -79,7 +79,7 @@ status_t SelectDevice(uint8 index); uint8 SelectedDevice(); - status_t Reset(bool *presence, uint16 *signatures); + status_t Reset(); bool UseDMA() { return fUseDMA; }; @@ -91,6 +91,7 @@ void PrepareWaitingForInterrupt(); status_t WaitForInterrupt(bigtime_t timeout); + status_t RecoverLostInterrupt(); // request handling status_t SendRequest(ATARequest *request, @@ -107,7 +108,6 @@ status_t ReadRegs(ATADevice *device); uint8 AltStatus(); - bool IsDMAInterruptSet(); status_t ReadPIO(uint8 *buffer, size_t length); status_t WritePIO(uint8 *buffer, size_t length); @@ -123,6 +123,8 @@ void _FlushAndWait(bigtime_t waitTime); + bool _DevicePresent(int device); + status_t _ReadPIOBlock(ATARequest *request, size_t length); status_t _WritePIOBlock(ATARequest *request, From mmlr at mail.berlios.de Mon Sep 7 03:37:26 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 7 Sep 2009 03:37:26 +0200 Subject: [Haiku-commits] r32979 - haiku/trunk/src/servers/input Message-ID: <200909070137.n871bQGq015474@sheep.berlios.de> Author: mmlr Date: 2009-09-07 03:37:22 +0200 (Mon, 07 Sep 2009) New Revision: 32979 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32979&view=rev Modified: haiku/trunk/src/servers/input/InputServer.cpp haiku/trunk/src/servers/input/InputServer.h Log: * Initialize member variables. * Remove some unused members. * Avoid initializing the mouse position to non-integer coordinates. * The frame right/bottom are width/height - 1. Modified: haiku/trunk/src/servers/input/InputServer.cpp =================================================================== --- haiku/trunk/src/servers/input/InputServer.cpp 2009-09-07 00:58:31 UTC (rev 32978) +++ haiku/trunk/src/servers/input/InputServer.cpp 2009-09-07 01:37:22 UTC (rev 32979) @@ -147,11 +147,14 @@ InputServer::InputServer() : BApplication(INPUTSERVER_SIGNATURE), fSafeMode(false), + fKeyboardID(0), fInputDeviceListLocker("input server device list"), fKeyboardSettings(), fMouseSettings(), fChars(NULL), fScreen(B_MAIN_SCREEN_ID), + fEventQueueLock("input server event queue"), + fReplicantMessenger(NULL), fInputMethodWindow(NULL), fInputMethodAware(false), fCursorSem(-1), @@ -273,9 +276,12 @@ fFrame = fScreen.Frame(); if (fFrame == BRect(0, 0, 0, 0)) - fFrame = BRect(0, 0, 800, 600); - fMousePos = BPoint(fFrame.right / 2, fFrame.bottom / 2); + fFrame = BRect(0, 0, 799, 599); + fMousePos = BPoint((int32)((fFrame.right + 1) / 2), + (int32)((fFrame.bottom + 1) / 2)); + memset(&fKeyInfo, 0, sizeof(fKeyInfo)); + if (_LoadKeymap() != B_OK) _LoadSystemKeymap(); Modified: haiku/trunk/src/servers/input/InputServer.h =================================================================== --- haiku/trunk/src/servers/input/InputServer.h 2009-09-07 00:58:31 UTC (rev 32978) +++ haiku/trunk/src/servers/input/InputServer.h 2009-09-07 01:37:22 UTC (rev 32979) @@ -209,10 +209,7 @@ void _ReleaseInput(BMessage* message); private: - bool fEventLoopRunning; bool fSafeMode; - port_id fEventPort; - uint16 fKeyboardID; BList fInputDeviceList; @@ -251,7 +248,6 @@ #else uint32* fCursorBuffer; #endif - }; extern InputServer* gInputServer; From mmlr at mail.berlios.de Mon Sep 7 04:08:11 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 7 Sep 2009 04:08:11 +0200 Subject: [Haiku-commits] r32980 - haiku/trunk/src/system/kernel/vm Message-ID: <200909070208.n8728Bf2020682@sheep.berlios.de> Author: mmlr Date: 2009-09-07 04:08:09 +0200 (Mon, 07 Sep 2009) New Revision: 32980 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32980&view=rev Modified: haiku/trunk/src/system/kernel/vm/vm_page.cpp Log: * When reserving pages and there aren't yet enough free pages, only steal as many pages as are actually missing, not the full count. * Take into account that free_page_queue_count() can be less than sReservedPages (when some of the reserved pages have been allocated already) in vm_page_num_unused_pages(). Before it could return negative and therefore wrapped numbers. * Simplify the page scrubber loop by continuing early. Also avoids a needless interrupt spin lock acquisition when there's nothing to do. * Some minor coding style cleanup. * Fix a typo. Modified: haiku/trunk/src/system/kernel/vm/vm_page.cpp =================================================================== --- haiku/trunk/src/system/kernel/vm/vm_page.cpp 2009-09-07 01:37:22 UTC (rev 32979) +++ haiku/trunk/src/system/kernel/vm/vm_page.cpp 2009-09-07 02:08:09 UTC (rev 32980) @@ -847,60 +847,55 @@ for (;;) { snooze(100000); // 100ms - if (sFreePageQueue.count > 0) { - vm_page *page[SCRUB_SIZE]; - int32 i, scrubCount; + if (sFreePageQueue.count == 0) + continue; - // get some pages from the free queue + InterruptsSpinLocker locker(sPageLock); - InterruptsSpinLocker locker(sPageLock); + // Since we temporarily remove pages from the free pages reserve, + // we must make sure we don't cause a violation of the page + // reservation warranty. The following is usually stricter than + // necessary, because we don't have information on how many of the + // reserved pages have already been allocated. + int32 scrubCount = SCRUB_SIZE; + uint32 freeCount = free_page_queue_count(); + if (freeCount <= sReservedPages) + continue; - // Since we temporarily remove pages from the free pages reserve, - // we must make sure we don't cause a violation of the page - // reservation warranty. The following is usually stricter than - // necessary, because we don't have information on how many of the - // reserved pages have already been allocated. - scrubCount = SCRUB_SIZE; - uint32 freeCount = free_page_queue_count(); - if (freeCount < sReservedPages) - scrubCount = 0; - else if ((uint32)scrubCount > freeCount - sReservedPages) - scrubCount = freeCount - sReservedPages; + if ((uint32)scrubCount > freeCount - sReservedPages) + scrubCount = freeCount - sReservedPages; - for (i = 0; i < scrubCount; i++) { - page[i] = dequeue_page(&sFreePageQueue); - if (page[i] == NULL) - break; - page[i]->state = PAGE_STATE_BUSY; + // get some pages from the free queue + vm_page *page[SCRUB_SIZE]; + for (int32 i = 0; i < scrubCount; i++) { + page[i] = dequeue_page(&sFreePageQueue); + if (page[i] == NULL) { + scrubCount = i; + break; } - scrubCount = i; + page[i]->state = PAGE_STATE_BUSY; + } - if (scrubCount > 0) { - T(ScrubbingPages(scrubCount)); - } + if (scrubCount == 0) + continue; - locker.Unlock(); + T(ScrubbingPages(scrubCount)); + locker.Unlock(); - // clear them + // clear them + for (int32 i = 0; i < scrubCount; i++) + clear_page(page[i]); - for (i = 0; i < scrubCount; i++) { - clear_page(page[i]); - } + locker.Lock(); - locker.Lock(); + // and put them into the clear queue + for (int32 i = 0; i < scrubCount; i++) { + page[i]->state = PAGE_STATE_CLEAR; + enqueue_page(&sClearPageQueue, page[i]); + } - // and put them into the clear queue - - for (i = 0; i < scrubCount; i++) { - page[i]->state = PAGE_STATE_CLEAR; - enqueue_page(&sClearPageQueue, page[i]); - } - - if (scrubCount > 0) { - T(ScrubbedPages(scrubCount)); - } - } + T(ScrubbedPages(scrubCount)); } return 0; @@ -1443,9 +1438,9 @@ page->state = PAGE_STATE_FREE; T(StolenPage()); - } else if (stolen < maxCount) { + } else if (stolen < maxCount) pages[stolen] = page; - } + stolen++; count--; } else @@ -1870,6 +1865,7 @@ if (sReservedPages <= freePages) return; + count = sReservedPages - freePages; locker.Unlock(); steal_pages(NULL, count + 1, true); @@ -1932,7 +1928,7 @@ panic("queue %p corrupted, count = %d\n", queue, queue->count); #endif - // if the primary queue was empty, grap the page from the + // if the primary queue was empty, grab the page from the // secondary queue page = dequeue_page(otherQueue); } @@ -2005,8 +2001,7 @@ InterruptsSpinLocker locker(sPageLock); - if (sFreePageQueue.count + sClearPageQueue.count - sReservedPages - < length) { + if (free_page_queue_count() - sReservedPages < length) { // TODO: add more tries, ie. free some inactive, ... // no free space return NULL; @@ -2183,7 +2178,12 @@ size_t vm_page_num_unused_pages(void) { - return free_page_queue_count() - sReservedPages; + size_t reservedPages = sReservedPages; + size_t count = free_page_queue_count(); + if (reservedPages >= count) + return 0; + + return count - reservedPages; } From kirilla at mail.berlios.de Mon Sep 7 06:12:24 2009 From: kirilla at mail.berlios.de (kirilla at BerliOS) Date: Mon, 7 Sep 2009 06:12:24 +0200 Subject: [Haiku-commits] r32981 - haiku/trunk/src/apps/people Message-ID: <200909070412.n874COVu006329@sheep.berlios.de> Author: kirilla Date: 2009-09-07 06:12:22 +0200 (Mon, 07 Sep 2009) New Revision: 32981 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32981&view=rev Modified: haiku/trunk/src/apps/people/PeopleApp.cpp haiku/trunk/src/apps/people/PeopleApp.h haiku/trunk/src/apps/people/PeopleWindow.cpp Log: Simplified window accounting and application quitting. Added silent relaunch. Serialize prefs saving through app. Replaced deprecated B_CLOSE_REQUESTED with B_QUIT_REQUESTED for Command-W. Set Command-Q to target application. Modified: haiku/trunk/src/apps/people/PeopleApp.cpp =================================================================== --- haiku/trunk/src/apps/people/PeopleApp.cpp 2009-09-07 02:08:09 UTC (rev 32980) +++ haiku/trunk/src/apps/people/PeopleApp.cpp 2009-09-07 04:12:22 UTC (rev 32981) @@ -49,7 +49,7 @@ TPeopleApp::TPeopleApp(void) : BApplication(APP_SIG), - fHaveWindow(false) + fWindowCount(0) { fPosition.Set(6, TITLE_BAR_HEIGHT, 6 + WIND_WIDTH, TITLE_BAR_HEIGHT + WIND_HEIGHT); BPoint pos = fPosition.LeftTop(); @@ -179,9 +179,17 @@ { switch (msg->what) { case M_NEW: + case B_SILENT_RELAUNCH: NewWindow(); break; + case M_WINDOW_QUITS: + SavePreferences(msg); + fWindowCount--; + if (fWindowCount < 1) + PostMessage(B_QUIT_REQUESTED); + break; + default: BApplication::MessageReceived(msg); } @@ -212,7 +220,7 @@ void TPeopleApp::ReadyToRun(void) { - if (!fHaveWindow) + if (fWindowCount < 1) NewWindow(); } @@ -224,7 +232,7 @@ window = new TPeopleWindow(fPosition, "New Person", ref); window->Show(); - fHaveWindow = true; + fWindowCount++; fPosition.OffsetBy(20, 20); if (fPosition.bottom > BScreen(B_MAIN_SCREEN_ID).Frame().bottom) @@ -248,3 +256,20 @@ } return NULL; } + + +void +TPeopleApp::SavePreferences(BMessage* message) +{ + BRect frame; + if (message->FindRect("frame", &frame) != B_OK) + return; + + BPoint leftTop = frame.LeftTop(); + + if (fPrefs) { + fPrefs->Seek(0, 0); + fPrefs->Write(&leftTop, sizeof(BPoint)); + } +} + Modified: haiku/trunk/src/apps/people/PeopleApp.h =================================================================== --- haiku/trunk/src/apps/people/PeopleApp.h 2009-09-07 02:08:09 UTC (rev 32980) +++ haiku/trunk/src/apps/people/PeopleApp.h 2009-09-07 04:12:22 UTC (rev 32981) @@ -34,7 +34,8 @@ M_UNDO, M_SELECT, M_GROUP_MENU, M_DIRTY, M_NAME, M_NICKNAME, M_COMPANY, M_ADDRESS, M_CITY, M_STATE, M_ZIP, M_COUNTRY, M_HPHONE, - M_WPHONE, M_FAX, M_EMAIL, M_URL, M_GROUP + M_WPHONE, M_FAX, M_EMAIL, M_URL, M_GROUP, + M_WINDOW_QUITS }; enum fields { @@ -63,8 +64,11 @@ BFile *fPrefs; private: - bool fHaveWindow; + void SavePreferences(BMessage* message); + + uint32 fWindowCount; BRect fPosition; }; #endif /* PEOPLEAPP_H */ + Modified: haiku/trunk/src/apps/people/PeopleWindow.cpp =================================================================== --- haiku/trunk/src/apps/people/PeopleWindow.cpp 2009-09-07 02:08:09 UTC (rev 32980) +++ haiku/trunk/src/apps/people/PeopleWindow.cpp 2009-09-07 04:12:22 UTC (rev 32981) @@ -44,7 +44,7 @@ menu = new BMenu("File"); menu->AddItem(item = new BMenuItem("New Person" B_UTF8_ELLIPSIS, new BMessage(M_NEW), 'N')); item->SetTarget(NULL, be_app); - menu->AddItem(new BMenuItem("Close", new BMessage(B_CLOSE_REQUESTED), 'W')); + menu->AddItem(new BMenuItem("Close", new BMessage(B_QUIT_REQUESTED), 'W')); menu->AddSeparatorItem(); menu->AddItem(fSave = new BMenuItem("Save", new BMessage(M_SAVE), 'S')); fSave->SetEnabled(FALSE); @@ -52,7 +52,9 @@ menu->AddItem(fRevert = new BMenuItem("Revert", new BMessage(M_REVERT), 'R')); fRevert->SetEnabled(FALSE); menu->AddSeparatorItem(); - menu->AddItem(new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED), 'Q')); + item = new BMenuItem("Quit", new BMessage(B_QUIT_REQUESTED), 'Q'); + item->SetTarget(NULL, be_app); + menu->AddItem(item); menuBar->AddItem(menu); menu = new BMenu("Edit"); @@ -93,7 +95,6 @@ WatchChanges(false); delete fRef; - delete fPanel; } @@ -268,13 +269,10 @@ bool TPeopleWindow::QuitRequested(void) { - int32 count = 0; - int32 index = 0; - BPoint pos; - BRect r; - status_t result; - TPeopleWindow *window; + printf("TPeopleWindow::QuitRequested(void)\n"); + status_t result; + if (fView->CheckSave()) { result = (new BAlert("", "Save changes before quitting?", "Cancel", "Quit", "Save"))->Go(); @@ -289,20 +287,16 @@ return false; } - while ((window = (TPeopleWindow *)be_app->WindowAt(index++))) { - if (window->FindView("PeopleView")) - count++; - } + if (fPanel) + delete fPanel; - if (count == 1) { - r = Frame(); - pos = r.LeftTop(); - if (((TPeopleApp*)be_app)->fPrefs) { - ((TPeopleApp*)be_app)->fPrefs->Seek(0, 0); - ((TPeopleApp*)be_app)->fPrefs->Write(&pos, sizeof(BPoint)); - } - be_app->PostMessage(B_QUIT_REQUESTED); + BMessage message(M_WINDOW_QUITS); + message.AddRect("frame", Frame()); + if (be_app->Lock()) { + be_app->PostMessage(&message); + be_app->Unlock(); } + return true; } From kirilla at mail.berlios.de Mon Sep 7 06:19:02 2009 From: kirilla at mail.berlios.de (kirilla at BerliOS) Date: Mon, 7 Sep 2009 06:19:02 +0200 Subject: [Haiku-commits] r32982 - haiku/trunk/src/apps/people Message-ID: <200909070419.n874J2nS006735@sheep.berlios.de> Author: kirilla Date: 2009-09-07 06:19:01 +0200 (Mon, 07 Sep 2009) New Revision: 32982 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32982&view=rev Modified: haiku/trunk/src/apps/people/PeopleWindow.cpp Log: Removing printf committed by accident. Modified: haiku/trunk/src/apps/people/PeopleWindow.cpp =================================================================== --- haiku/trunk/src/apps/people/PeopleWindow.cpp 2009-09-07 04:12:22 UTC (rev 32981) +++ haiku/trunk/src/apps/people/PeopleWindow.cpp 2009-09-07 04:19:01 UTC (rev 32982) @@ -269,8 +269,6 @@ bool TPeopleWindow::QuitRequested(void) { - printf("TPeopleWindow::QuitRequested(void)\n"); - status_t result; if (fView->CheckSave()) { From leavengood at gmail.com Mon Sep 7 06:40:03 2009 From: leavengood at gmail.com (Ryan Leavengood) Date: Mon, 7 Sep 2009 00:40:03 -0400 Subject: [Haiku-commits] r32948 - haiku/trunk/src/add-ons/tracker/opentargetfolder In-Reply-To: <1526322879-BeMail@kirilla> References: <20090907004633.574.1@knochen-vm.localdomain> <1526322879-BeMail@kirilla> Message-ID: 2009/9/6 Jonas Sundstr?m : > Ingo Weinhold wrote: > ?... >> The real problem here is that the shortcut key is >> encoded in the add-on name. I can't be the only >> one finding that obscene. > > Especially when having a filesystem that supports > extended attributes for metadata. Hehehe, good point. I guess we have just gotten used to it but I must admit it's pretty obscene. I can't imagine it would be that hard to add an attribute and eventually a simple preference pane to allow the add-on shortcuts to be configured. Unless it is fairly easy to edit attributes in Tracker (can't say I've done that recently.) I'll log an enhancement and it can be done whenever (for alpha2, or R1, or R2...) -- Regards, Ryan From leavengood at gmail.com Mon Sep 7 06:45:35 2009 From: leavengood at gmail.com (Ryan Leavengood) Date: Mon, 7 Sep 2009 00:45:35 -0400 Subject: [Haiku-commits] r32974 - haiku/trunk/build/jam In-Reply-To: <200909062218.n86MICZO032530@sheep.berlios.de> References: <200909062218.n86MICZO032530@sheep.berlios.de> Message-ID: On Sun, Sep 6, 2009 at 6:18 PM, wrote: > > added an optional package for OCaml Oh cool! With the talk of Ada and other alternative languages I was thinking about OCaml. Though to be honest I've never really learned it, just checked out small aspects of it. But it might be neat to try it out on Haiku. If you have any recommended web-sites or tutorials about learning it, let me know. -- Regards, Ryan From leavengood at mail.berlios.de Mon Sep 7 06:46:22 2009 From: leavengood at mail.berlios.de (leavengood at BerliOS) Date: Mon, 7 Sep 2009 06:46:22 +0200 Subject: [Haiku-commits] r32983 - haiku/trunk/build/jam Message-ID: <200909070446.n874kMZQ023875@sheep.berlios.de> Author: leavengood Date: 2009-09-07 06:46:20 +0200 (Mon, 07 Sep 2009) New Revision: 32983 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32983&view=rev Modified: haiku/trunk/build/jam/OptionalPackages Log: Update libiconv to the latest which has shared libraries that were missing from the previous version (which at least broke BeZilla.) This is part of #4363. +alphabranch Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-09-07 04:19:01 UTC (rev 32982) +++ haiku/trunk/build/jam/OptionalPackages 2009-09-07 04:46:20 UTC (rev 32983) @@ -493,8 +493,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package LibIconv available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage libiconv-1.13.1-r1a1-x86-gcc2-2009-09-06 - : $(baseURL)/libiconv-1.13.1-r1a1-x86-gcc2-2009-09-06.zip + InstallOptionalHaikuImagePackage libiconv-1.13.1-r1a1-x86-gcc2-2009-09-07 + : $(baseURL)/libiconv-1.13.1-r1a1-x86-gcc2-2009-09-07.zip : ; } From leavengood at gmail.com Mon Sep 7 06:50:05 2009 From: leavengood at gmail.com (Ryan Leavengood) Date: Mon, 7 Sep 2009 00:50:05 -0400 Subject: [Haiku-commits] r32976 - haiku/trunk/src/system/kernel/fs In-Reply-To: <200909062315.n86NFQ9V012258@sheep.berlios.de> References: <200909062315.n86NFQ9V012258@sheep.berlios.de> Message-ID: On Sun, Sep 6, 2009 at 7:15 PM, wrote: > > If the boot volume is BFS and read-only mount it with the write_overlay. This > allows for BFS based LiveCDs. Still this whole name matching feels hacky. If there are no other use cases for this, couldn't there just be a kernel setting or special file on the CD image to indicate that write_overlay should be used? Because I agree it is a bit hacky. -- Regards, Ryan From imker at mail.berlios.de Mon Sep 7 08:08:06 2009 From: imker at mail.berlios.de (imker at BerliOS) Date: Mon, 7 Sep 2009 08:08:06 +0200 Subject: [Haiku-commits] r32984 - haiku/trunk/build/jam Message-ID: <200909070608.n87686pG011352@sheep.berlios.de> Author: imker Date: 2009-09-07 08:08:05 +0200 (Mon, 07 Sep 2009) New Revision: 32984 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32984&view=rev Modified: haiku/trunk/build/jam/OptionalPackages Log: - KeymapSwitcher and Vim packages were updated for Alpha-1; - Bugs #4218 #4275 are fixed with this version of KeymapSwitcher. Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-09-07 04:46:20 UTC (rev 32983) +++ haiku/trunk/build/jam/OptionalPackages 2009-09-07 06:08:05 UTC (rev 32984) @@ -478,8 +478,8 @@ : /boot/common/bin/KeymapSwitcher ; } else { InstallOptionalHaikuImagePackage - KeymapSwitcher-1.2.3-x86-gcc2-2009-05-31 - : $(baseURL)/KeymapSwitcher-1.2.3-x86-gcc2-2009-05-31.zip + KeymapSwitcher-1.2.4-r1a1-x86-gcc2-2009-09-06 + : $(baseURL)/KeymapSwitcher-1.2.4-r1a1-x86-gcc2-2009-09-06.zip : ; AddSymlinkToHaikuImage home config be Desktop\ Applets @@ -861,8 +861,8 @@ AddSymlinkToHaikuImage home config be Applications : /boot/common/bin/gvim ; } else { - InstallOptionalHaikuImagePackage vim-7.2-x86-gcc2-2009-05-31 - : $(baseURL)/vim-7.2-x86-gcc2-2009-05-31.zip + InstallOptionalHaikuImagePackage vim-7.2-r1a1-x86-gcc2-2009-09-06 + : $(baseURL)/vim-7.2-r1a1-x86-gcc2-2009-09-06.zip : ; AddSymlinkToHaikuImage home config be Applications From korli at users.berlios.de Mon Sep 7 11:19:04 2009 From: korli at users.berlios.de (=?ISO-8859-1?B?Suly9G1lIER1dmFs?=) Date: Mon, 7 Sep 2009 11:19:04 +0200 Subject: [Haiku-commits] r32974 - haiku/trunk/build/jam In-Reply-To: References: <200909062218.n86MICZO032530@sheep.berlios.de> Message-ID: Hi Ryan, 2009/9/7 Ryan Leavengood : > On Sun, Sep 6, 2009 at 6:18 PM, wrote: >> >> added an optional package for OCaml > > Oh cool! With the talk of Ada and other alternative languages I was > thinking about OCaml. Though to be honest I've never really learned > it, just checked out small aspects of it. But it might be neat to try > it out on Haiku. I'll provide the patch to haiku-ports (mostly missing nice() and SOCK_SEQPACKET). I built OCaml to try to use this software http://cristal.inria.fr/~ddr/GeneWeb/en/index.html This way I could check OCaml was working good enough on Haiku. Tools include an compiler to bytecode, an interpreter for this bytecode, a native code compiler. > > If you have any recommended web-sites or tutorials about learning it, > let me know. The manual is available here: http://caml.inria.fr/pub/docs/manual-ocaml/index.html I'll look in adding the documentation to the package. Bye, J?r?me From aljen at mail.berlios.de Mon Sep 7 20:41:17 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Mon, 7 Sep 2009 20:41:17 +0200 Subject: [Haiku-commits] r32985 - in haiku/branches/components/gallium3d: . 3rdparty/mmu_man/onlinedemo build/jam build/scripts data/artwork data/artwork/cursors data/artwork/icons data/common/boot/post_install data/config/boot data/system/boot docs docs/userguide docs/userguide/en docs/userguide/en/applications docs/userguide/en/desktop-applets docs/userguide/en/images docs/userguide/en/images/apps-images docs/userguide/en/images/gui-images docs/userguide/en/images/prefs-images docs/userguide/en/images/workspaces-images docs/userguide/en/installation docs/userguide/en/preferences docs/userguide/images docs/userguide/images/apps-images docs/userguide/images/gui-images docs/welcome docs/welcome/en docs/welcome/en/images docs/welcome/images headers/build/os headers/build/os/add-ons headers/build/os/app headers/build/os/storage headers/build/os/support headers/libs headers/libs/fluidsynth/fluidsynth headers/libs/freetype2/freetype/config headers/libs/jpeg headers/libs/png headers/os headers/os! /add-ons/graphics headers/os/add-ons/input_server headers/os/app headers/os/device headers/os/drivers headers/os/game headers/os/interface headers/os/kernel headers/os/mail headers/os/media headers/os/net headers/os/opengl headers/os/support headers/os/translation headers/posix headers/posix/netinet headers/private/app headers/private/bluetooth headers/private/graphics/nvidia headers/private/interface headers/private/kernel headers/private/kernel/arch headers/private/kernel/arch/mipsel headers/private/kernel/boot/platform headers/private/kernel/boot/platform/routerboard_mipsel headers/private/kernel/disk_device_manager headers/private/libroot headers/private/shared headers/private/system/arch headers/private/system/arch/mipsel src/add-ons/accelerants/common src/add-ons/accelerants/nvidia src/add-ons/accelerants/nvidia/engine src/add-ons/disk_systems/intel src/add-ons/input_server/devices/mouse src/add-ons/kernel/bus_managers/ata src/add-ons/kernel/bus_managers/pci src/add-o! ns/kernel/busses/usb src/add-ons/kernel/drivers/audio/ac97 src! /add-ons Message-ID: <200909071841.n87IfHMT024469@sheep.berlios.de> Author: aljen Date: 2009-09-07 20:09:35 +0200 (Mon, 07 Sep 2009) New Revision: 32985 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32985&view=rev Added: haiku/branches/components/gallium3d/data/artwork/cursors/ haiku/branches/components/gallium3d/data/artwork/cursors/Overlays_Tracker haiku/branches/components/gallium3d/data/artwork/icons/App_DOS-Box haiku/branches/components/gallium3d/data/artwork/icons/App_Old haiku/branches/components/gallium3d/data/artwork/icons/App_TV_2 haiku/branches/components/gallium3d/data/artwork/icons/App_YAB haiku/branches/components/gallium3d/data/artwork/icons/Color_01_Black haiku/branches/components/gallium3d/data/artwork/icons/Color_02_Dark_Grey haiku/branches/components/gallium3d/data/artwork/icons/Color_03_Grey haiku/branches/components/gallium3d/data/artwork/icons/Color_04_Light_Grey haiku/branches/components/gallium3d/data/artwork/icons/Color_05_White haiku/branches/components/gallium3d/data/artwork/icons/Color_06_Red haiku/branches/components/gallium3d/data/artwork/icons/Color_07_Rose haiku/branches/components/gallium3d/data/artwork/icons/Color_08_Orange haiku/branches/components/gallium3d/data/artwork/icons/Color_09_Apricot haiku/branches/components/gallium3d/data/artwork/icons/Color_10_Yellow haiku/branches/components/gallium3d/data/artwork/icons/Color_11_Cream haiku/branches/components/gallium3d/data/artwork/icons/Color_12_Green haiku/branches/components/gallium3d/data/artwork/icons/Color_13_Lime haiku/branches/components/gallium3d/data/artwork/icons/Color_14_Turquoise haiku/branches/components/gallium3d/data/artwork/icons/Color_15_Aquamarine haiku/branches/components/gallium3d/data/artwork/icons/Color_16_Blue haiku/branches/components/gallium3d/data/artwork/icons/Color_17_Cyan haiku/branches/components/gallium3d/data/artwork/icons/Color_18_Violet haiku/branches/components/gallium3d/data/artwork/icons/Color_19_Mauve haiku/branches/components/gallium3d/data/artwork/icons/Color_20_Magenta haiku/branches/components/gallium3d/data/artwork/icons/Color_21_Pink haiku/branches/components/gallium3d/data/artwork/icons/Color_22_Brown haiku/branches/components/gallium3d/data/artwork/icons/Color_23_Beige haiku/branches/components/gallium3d/data/artwork/icons/Device_Harddisk_development haiku/branches/components/gallium3d/data/artwork/icons/Device_MemoryStick haiku/branches/components/gallium3d/data/artwork/icons/File_Archive_XZ haiku/branches/components/gallium3d/data/artwork/icons/File_Image_2 haiku/branches/components/gallium3d/data/artwork/icons/File_Image_3 haiku/branches/components/gallium3d/data/artwork/icons/File_New_Mail haiku/branches/components/gallium3d/data/artwork/icons/Misc_Book haiku/branches/components/gallium3d/data/artwork/icons/Misc_R.I.P. haiku/branches/components/gallium3d/data/artwork/icons/Misc_Tracker_Copy haiku/branches/components/gallium3d/data/artwork/icons/Misc_USB_beige haiku/branches/components/gallium3d/data/artwork/icons/Misc_USB_black haiku/branches/components/gallium3d/data/artwork/icons/Prefs_Devices_2 haiku/branches/components/gallium3d/data/config/boot/UserBootscript haiku/branches/components/gallium3d/docs/userguide/en/applications/activitymonitor.html haiku/branches/components/gallium3d/docs/userguide/en/applications/bepdf.html haiku/branches/components/gallium3d/docs/userguide/en/applications/bezillabrowser.html haiku/branches/components/gallium3d/docs/userguide/en/applications/cdplayer.html haiku/branches/components/gallium3d/docs/userguide/en/applications/charactermap.html haiku/branches/components/gallium3d/docs/userguide/en/applications/codycam.html haiku/branches/components/gallium3d/docs/userguide/en/applications/deskcalc.html haiku/branches/components/gallium3d/docs/userguide/en/applications/diskprobe.html haiku/branches/components/gallium3d/docs/userguide/en/applications/diskusage.html haiku/branches/components/gallium3d/docs/userguide/en/applications/drivesetup.html haiku/branches/components/gallium3d/docs/userguide/en/applications/expander.html haiku/branches/components/gallium3d/docs/userguide/en/applications/icon-o-matic.html haiku/branches/components/gallium3d/docs/userguide/en/applications/installer.html haiku/branches/components/gallium3d/docs/userguide/en/applications/magnify.html haiku/branches/components/gallium3d/docs/userguide/en/applications/mail.html haiku/branches/components/gallium3d/docs/userguide/en/applications/mediaplayer.html haiku/branches/components/gallium3d/docs/userguide/en/applications/midiplayer.html haiku/branches/components/gallium3d/docs/userguide/en/applications/packageinstaller.html haiku/branches/components/gallium3d/docs/userguide/en/applications/pe.html haiku/branches/components/gallium3d/docs/userguide/en/applications/people.html haiku/branches/components/gallium3d/docs/userguide/en/applications/poorman.html haiku/branches/components/gallium3d/docs/userguide/en/applications/screenshot.html haiku/branches/components/gallium3d/docs/userguide/en/applications/showimage.html haiku/branches/components/gallium3d/docs/userguide/en/applications/soundrecorder.html haiku/branches/components/gallium3d/docs/userguide/en/applications/stylededit.html haiku/branches/components/gallium3d/docs/userguide/en/applications/terminal.html haiku/branches/components/gallium3d/docs/userguide/en/applications/textsearch.html haiku/branches/components/gallium3d/docs/userguide/en/applications/tv.html haiku/branches/components/gallium3d/docs/userguide/en/applications/vision.html haiku/branches/components/gallium3d/docs/userguide/en/applications/vlc.html haiku/branches/components/gallium3d/docs/userguide/en/applications/wonderbrush.html haiku/branches/components/gallium3d/docs/userguide/en/desktop-applets/launchbox.html haiku/branches/components/gallium3d/docs/userguide/en/desktop-applets/networkstatus.html haiku/branches/components/gallium3d/docs/userguide/en/desktop-applets/processcontroller.html haiku/branches/components/gallium3d/docs/userguide/en/images/apps-images/drivesetup-create.png haiku/branches/components/gallium3d/docs/userguide/en/images/apps-images/drivesetup-initialize.png haiku/branches/components/gallium3d/docs/userguide/en/images/apps-images/drivesetup.png haiku/branches/components/gallium3d/docs/userguide/en/images/apps-images/magnify.png haiku/branches/components/gallium3d/docs/userguide/en/images/logo.png haiku/branches/components/gallium3d/docs/userguide/en/preferences/appearance.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/backgrounds.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/datatranslations.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/e-mail.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/filetypes.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/fonts.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/keyboard.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/keymap.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/media.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/mouse.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/network.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/printers.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/screen.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/screensaver.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/sounds.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/time.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/tracker.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/virtualmemory.html haiku/branches/components/gallium3d/docs/userguide/images/bg-page.png haiku/branches/components/gallium3d/docs/userguide/images/gui-images/ haiku/branches/components/gallium3d/docs/userguide/images/gui-images/replicant.png haiku/branches/components/gallium3d/docs/welcome/en/images/ haiku/branches/components/gallium3d/docs/welcome/en/images/logo.png haiku/branches/components/gallium3d/docs/welcome/images/bg-page.png haiku/branches/components/gallium3d/docs/welcome/images/up.png haiku/branches/components/gallium3d/headers/libs/jpeg/ haiku/branches/components/gallium3d/headers/libs/jpeg/jconfig.h haiku/branches/components/gallium3d/headers/libs/jpeg/jerror.h haiku/branches/components/gallium3d/headers/libs/jpeg/jmorecfg.h haiku/branches/components/gallium3d/headers/libs/jpeg/jpeglib.h haiku/branches/components/gallium3d/headers/private/interface/PrivateScreen.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/ haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_cpu.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_int.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_kernel.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_kernel_args.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_mmu.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_platform.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_system_info.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_thread.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_thread_types.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_user_debugger.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_vm.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_vm_translation_map.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_vm_types.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/cpu.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/ktypes.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/types.h haiku/branches/components/gallium3d/headers/private/kernel/boot/platform/routerboard_mipsel/ haiku/branches/components/gallium3d/headers/private/kernel/boot/platform/routerboard_mipsel/platform_arch.h haiku/branches/components/gallium3d/headers/private/kernel/boot/platform/routerboard_mipsel/platform_kernel_args.h haiku/branches/components/gallium3d/headers/private/kernel/boot/platform/routerboard_mipsel/platform_stage2_args.h haiku/branches/components/gallium3d/headers/private/shared/ShakeTrackingFilter.h haiku/branches/components/gallium3d/headers/private/shared/TrackerAddOnAppLaunch.h haiku/branches/components/gallium3d/headers/private/system/arch/mipsel/ haiku/branches/components/gallium3d/headers/private/system/arch/mipsel/arch_commpage_defs.h haiku/branches/components/gallium3d/headers/private/system/arch/mipsel/arch_config.h haiku/branches/components/gallium3d/headers/private/system/arch/mipsel/arch_elf.h haiku/branches/components/gallium3d/headers/private/system/arch/mipsel/arch_real_time_data.h haiku/branches/components/gallium3d/headers/private/system/arch/mipsel/asm_defs.h haiku/branches/components/gallium3d/src/add-ons/media/media-add-ons/usb_webcam/sensors/pas106b.cpp haiku/branches/components/gallium3d/src/add-ons/media/media-add-ons/usb_webcam/sensors/tas5130d1b.cpp haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/aac_adtstoasc_bsf.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/aaccoder.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/aacenc.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/api-example.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/avpacket.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/cga_data.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/cga_data.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/dctref.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/dpx.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/eac3dec_data.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/eac3dec_data.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/eamad.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/flac.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/flacdata.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/flacdata.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/get_bits.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libopencore-amr.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mlpdsp.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/pcxenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/vp3dsp_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/psymodel.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/psymodel.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/put_bits.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/rv10enc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/rv20enc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/tmv.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/v210dec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/v210enc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/v210x.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vaapi.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vaapi.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vaapi_internal.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vaapi_mpeg2.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vaapi_mpeg4.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vaapi_vc1.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vc1dec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/wmaprodata.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/wmaprodec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/mlpdsp.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/xsubenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/apetag.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/apetag.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/avlanguage.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/avlanguage.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/id3v1.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/id3v1.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/output-example.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/qcp.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtmp.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtmppkt.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtmppkt.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtmpproto.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtp_amr.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtp_asf.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtp_asf.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtp_h263.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtp_vorbis.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtp_vorbis.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/sox.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/soxdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/soxenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/spdif.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/timefilter.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/timefilter.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/tmv.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/vqf.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/sha.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/sha.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/softfloat.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/x86/timer.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/options.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/ppc/ haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/ppc/swscale_altivec_template.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/ppc/yuv2rgb_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/sparc/ haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/sparc/yuv2rgb_vis.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/x86/ haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/x86/yuv2rgb_mmx.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/x86/yuv2rgb_template.c haiku/branches/components/gallium3d/src/apps/installer/ProgressReporter.cpp haiku/branches/components/gallium3d/src/apps/installer/ProgressReporter.h haiku/branches/components/gallium3d/src/apps/installer/SemaphoreLocker.h haiku/branches/components/gallium3d/src/apps/installer/UnzipEngine.cpp haiku/branches/components/gallium3d/src/apps/installer/UnzipEngine.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/alignof.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/bitrotate.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/memchr.valgrind haiku/branches/components/gallium3d/src/bin/coreutils/lib/memchr2.valgrind haiku/branches/components/gallium3d/src/bin/coreutils/lib/sockets.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/sockets.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/stddef.in.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/str-two-way.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/strstr.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/w32sock.h haiku/branches/components/gallium3d/src/bin/coreutils/man/stdbuf.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/stdbuf.x haiku/branches/components/gallium3d/src/bin/coreutils/src/libstdbuf.c haiku/branches/components/gallium3d/src/bin/coreutils/src/stdbuf.c haiku/branches/components/gallium3d/src/bin/network/wakeonlan.cpp haiku/branches/components/gallium3d/src/build/libroot/fs_attr_bsdxattr.h haiku/branches/components/gallium3d/src/data/beos_mime/application/vnd.ms-excel haiku/branches/components/gallium3d/src/data/beos_mime/application/vnd.ms-powerpoint haiku/branches/components/gallium3d/src/data/beos_mime/application/vnd.ms-works haiku/branches/components/gallium3d/src/data/beos_mime/application/x-msaccess haiku/branches/components/gallium3d/src/data/beos_mime/application/x-xz haiku/branches/components/gallium3d/src/data/beos_mime/audio/ogg haiku/branches/components/gallium3d/src/data/beos_mime/text/css haiku/branches/components/gallium3d/src/data/beos_mime/text/csv haiku/branches/components/gallium3d/src/data/beos_mime/video/3gpp haiku/branches/components/gallium3d/src/data/beos_mime/video/3gpp2 haiku/branches/components/gallium3d/src/data/beos_mime/video/ogg haiku/branches/components/gallium3d/src/kits/debug/arch/mipsel/ haiku/branches/components/gallium3d/src/kits/debug/arch/mipsel/arch_debug_support.cpp haiku/branches/components/gallium3d/src/kits/libbe_test_versions haiku/branches/components/gallium3d/src/kits/shared/ShakeTrackingFilter.cpp haiku/branches/components/gallium3d/src/kits/tracker/Cursors.h haiku/branches/components/gallium3d/src/libs/jpeg/ haiku/branches/components/gallium3d/src/libs/jpeg/Jamfile haiku/branches/components/gallium3d/src/libs/jpeg/README haiku/branches/components/gallium3d/src/libs/jpeg/__changes_by_Shard.txt haiku/branches/components/gallium3d/src/libs/jpeg/cderror.h haiku/branches/components/gallium3d/src/libs/jpeg/cdjpeg.c haiku/branches/components/gallium3d/src/libs/jpeg/cdjpeg.h haiku/branches/components/gallium3d/src/libs/jpeg/filelist.txt haiku/branches/components/gallium3d/src/libs/jpeg/jcapimin.c haiku/branches/components/gallium3d/src/libs/jpeg/jcapistd.c haiku/branches/components/gallium3d/src/libs/jpeg/jccoefct.c haiku/branches/components/gallium3d/src/libs/jpeg/jccolor.c haiku/branches/components/gallium3d/src/libs/jpeg/jcdctmgr.c haiku/branches/components/gallium3d/src/libs/jpeg/jcdiffct.c haiku/branches/components/gallium3d/src/libs/jpeg/jchuff.c haiku/branches/components/gallium3d/src/libs/jpeg/jchuff.h haiku/branches/components/gallium3d/src/libs/jpeg/jcinit.c haiku/branches/components/gallium3d/src/libs/jpeg/jclhuff.c haiku/branches/components/gallium3d/src/libs/jpeg/jclossls.c haiku/branches/components/gallium3d/src/libs/jpeg/jclossy.c haiku/branches/components/gallium3d/src/libs/jpeg/jcmainct.c haiku/branches/components/gallium3d/src/libs/jpeg/jcmarker.c haiku/branches/components/gallium3d/src/libs/jpeg/jcmaster.c haiku/branches/components/gallium3d/src/libs/jpeg/jcodec.c haiku/branches/components/gallium3d/src/libs/jpeg/jcomapi.c haiku/branches/components/gallium3d/src/libs/jpeg/jconfig.doc haiku/branches/components/gallium3d/src/libs/jpeg/jcparam.c haiku/branches/components/gallium3d/src/libs/jpeg/jcphuff.c haiku/branches/components/gallium3d/src/libs/jpeg/jcpred.c haiku/branches/components/gallium3d/src/libs/jpeg/jcprepct.c haiku/branches/components/gallium3d/src/libs/jpeg/jcsample.c haiku/branches/components/gallium3d/src/libs/jpeg/jcscale.c haiku/branches/components/gallium3d/src/libs/jpeg/jcshuff.c haiku/branches/components/gallium3d/src/libs/jpeg/jctrans.c haiku/branches/components/gallium3d/src/libs/jpeg/jdapimin.c haiku/branches/components/gallium3d/src/libs/jpeg/jdapistd.c haiku/branches/components/gallium3d/src/libs/jpeg/jdatadst.c haiku/branches/components/gallium3d/src/libs/jpeg/jdatasrc.c haiku/branches/components/gallium3d/src/libs/jpeg/jdcoefct.c haiku/branches/components/gallium3d/src/libs/jpeg/jdcolor.c haiku/branches/components/gallium3d/src/libs/jpeg/jdct.h haiku/branches/components/gallium3d/src/libs/jpeg/jddctmgr.c haiku/branches/components/gallium3d/src/libs/jpeg/jddiffct.c haiku/branches/components/gallium3d/src/libs/jpeg/jdhuff.c haiku/branches/components/gallium3d/src/libs/jpeg/jdhuff.h haiku/branches/components/gallium3d/src/libs/jpeg/jdinput.c haiku/branches/components/gallium3d/src/libs/jpeg/jdlhuff.c haiku/branches/components/gallium3d/src/libs/jpeg/jdlossls.c haiku/branches/components/gallium3d/src/libs/jpeg/jdlossy.c haiku/branches/components/gallium3d/src/libs/jpeg/jdmainct.c haiku/branches/components/gallium3d/src/libs/jpeg/jdmarker.c haiku/branches/components/gallium3d/src/libs/jpeg/jdmaster.c haiku/branches/components/gallium3d/src/libs/jpeg/jdmerge.c haiku/branches/components/gallium3d/src/libs/jpeg/jdphuff.c haiku/branches/components/gallium3d/src/libs/jpeg/jdpostct.c haiku/branches/components/gallium3d/src/libs/jpeg/jdpred.c haiku/branches/components/gallium3d/src/libs/jpeg/jdsample.c haiku/branches/components/gallium3d/src/libs/jpeg/jdscale.c haiku/branches/components/gallium3d/src/libs/jpeg/jdshuff.c haiku/branches/components/gallium3d/src/libs/jpeg/jdtrans.c haiku/branches/components/gallium3d/src/libs/jpeg/jerror.c haiku/branches/components/gallium3d/src/libs/jpeg/jfdctflt.c haiku/branches/components/gallium3d/src/libs/jpeg/jfdctfst.c haiku/branches/components/gallium3d/src/libs/jpeg/jfdctint.c haiku/branches/components/gallium3d/src/libs/jpeg/jidctflt.c haiku/branches/components/gallium3d/src/libs/jpeg/jidctfst.c haiku/branches/components/gallium3d/src/libs/jpeg/jidctint.c haiku/branches/components/gallium3d/src/libs/jpeg/jidctred.c haiku/branches/components/gallium3d/src/libs/jpeg/jinclude.h haiku/branches/components/gallium3d/src/libs/jpeg/jlossls.h haiku/branches/components/gallium3d/src/libs/jpeg/jlossy.h haiku/branches/components/gallium3d/src/libs/jpeg/jmemansi.c haiku/branches/components/gallium3d/src/libs/jpeg/jmemmgr.c haiku/branches/components/gallium3d/src/libs/jpeg/jmemname.c haiku/branches/components/gallium3d/src/libs/jpeg/jmemnobs.c haiku/branches/components/gallium3d/src/libs/jpeg/jmemsys.h haiku/branches/components/gallium3d/src/libs/jpeg/jpegint.h haiku/branches/components/gallium3d/src/libs/jpeg/jpegtran.c haiku/branches/components/gallium3d/src/libs/jpeg/jquant1.c haiku/branches/components/gallium3d/src/libs/jpeg/jquant2.c haiku/branches/components/gallium3d/src/libs/jpeg/jutils.c haiku/branches/components/gallium3d/src/libs/jpeg/jversion.h haiku/branches/components/gallium3d/src/libs/jpeg/rdswitch.c haiku/branches/components/gallium3d/src/libs/jpeg/transupp.c haiku/branches/components/gallium3d/src/libs/jpeg/transupp.h haiku/branches/components/gallium3d/src/servers/app/DirectWindowInfo.cpp haiku/branches/components/gallium3d/src/servers/app/DirectWindowInfo.h haiku/branches/components/gallium3d/src/servers/app/ScreenConfigurations.cpp haiku/branches/components/gallium3d/src/servers/app/ScreenConfigurations.h haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/ haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/Jamfile haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/console.cpp haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/console.h haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/cpu.cpp haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/cpu.h haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/debug.c haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/devices.cpp haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/keyboard.cpp haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/keyboard.h haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/menu.cpp haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/mmu.cpp haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/mmu.h haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/serial.cpp haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/serial.h haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/start.c haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/video.cpp haiku/branches/components/gallium3d/src/system/kernel/arch/mipsel/arch_atomic.c haiku/branches/components/gallium3d/src/system/kernel/arch/mipsel/arch_exceptions.S haiku/branches/components/gallium3d/src/system/kernel/debug/safemode_settings.cpp haiku/branches/components/gallium3d/src/system/kernel/lib/arch/mipsel/Jamfile haiku/branches/components/gallium3d/src/system/kernel/platform/routerboard_mipsel/ haiku/branches/components/gallium3d/src/system/kernel/platform/routerboard_mipsel/Jamfile haiku/branches/components/gallium3d/src/system/kernel/platform/routerboard_mipsel/platform.cpp haiku/branches/components/gallium3d/src/system/ldscripts/mipsel/ haiku/branches/components/gallium3d/src/system/ldscripts/mipsel/boot_loader_routerboard_mipsel.ld haiku/branches/components/gallium3d/src/system/libroot/posix/malloc_debug/ haiku/branches/components/gallium3d/src/system/libroot/posix/malloc_debug/Jamfile haiku/branches/components/gallium3d/src/system/libroot/posix/malloc_debug/heap.cpp haiku/branches/components/gallium3d/src/tests/add-ons/kernel/busses/usb/ haiku/branches/components/gallium3d/src/tests/add-ons/kernel/busses/usb/Jamfile haiku/branches/components/gallium3d/src/tests/add-ons/kernel/busses/usb/uhci_decode.cpp haiku/branches/components/gallium3d/src/tests/kits/shared/ haiku/branches/components/gallium3d/src/tests/kits/shared/Jamfile haiku/branches/components/gallium3d/src/tests/kits/shared/shake_filter/ haiku/branches/components/gallium3d/src/tests/kits/shared/shake_filter/Jamfile haiku/branches/components/gallium3d/src/tests/kits/shared/shake_filter/ShakeFilterTest.cpp haiku/branches/components/gallium3d/src/tests/servers/app/run haiku/branches/components/gallium3d/src/tests/servers/registrar/run_test_registrar.cpp Removed: haiku/branches/components/gallium3d/data/artwork/cursors/Overlays_Tracker haiku/branches/components/gallium3d/data/config/boot/UserBootscript.sample haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-activitymonitor.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-bepdf.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-bezillabrowser.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-cdplayer.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-charactermap.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-codycam.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-deskcalc.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-diskprobe.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-diskusage.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-drivesetup.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-expander.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-icon-o-matic.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-installer.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-magnify.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-mail.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-mediaplayer.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-midiplayer.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-packageinstaller.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-pe.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-people.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-poorman.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-screenshot.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-showimage.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-soundrecorder.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-stylededit.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-terminal.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-textsearch.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-tv.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-vision.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-vlc.html haiku/branches/components/gallium3d/docs/userguide/en/applications/apps-wonderbrush.html haiku/branches/components/gallium3d/docs/userguide/en/desktop-applets/desktop-applets-launchbox.html haiku/branches/components/gallium3d/docs/userguide/en/desktop-applets/desktop-applets-networkstatus.html haiku/branches/components/gallium3d/docs/userguide/en/desktop-applets/desktop-applets-processcontroller.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-appearance.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-backgrounds.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-datatranslations.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-e-mail.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-filetypes.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-fonts.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-keyboard.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-keymap.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-media.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-mouse.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-network.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-printers.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-screen.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-screensaver.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-sounds.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-time.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-tracker.html haiku/branches/components/gallium3d/docs/userguide/en/preferences/prefs-virtualmemory.html haiku/branches/components/gallium3d/docs/userguide/images/apps-images/magnify.png haiku/branches/components/gallium3d/docs/userguide/images/gui-images/replicant.png haiku/branches/components/gallium3d/docs/userguide/images/logo.png haiku/branches/components/gallium3d/docs/welcome/en/images/logo.png haiku/branches/components/gallium3d/docs/welcome/images/logo.png haiku/branches/components/gallium3d/headers/build/os/AppKit.h haiku/branches/components/gallium3d/headers/build/os/Be.h haiku/branches/components/gallium3d/headers/build/os/DeviceKit.h haiku/branches/components/gallium3d/headers/build/os/GameKit.h haiku/branches/components/gallium3d/headers/build/os/InterfaceKit.h haiku/branches/components/gallium3d/headers/build/os/KernelKit.h haiku/branches/components/gallium3d/headers/build/os/MailKit.h haiku/branches/components/gallium3d/headers/build/os/MediaKit.h haiku/branches/components/gallium3d/headers/build/os/MidiKit.h haiku/branches/components/gallium3d/headers/build/os/NetKit.h haiku/branches/components/gallium3d/headers/build/os/NetworkKit.h haiku/branches/components/gallium3d/headers/build/os/OpenGLKit.h haiku/branches/components/gallium3d/headers/build/os/StorageKit.h haiku/branches/components/gallium3d/headers/build/os/SupportKit.h haiku/branches/components/gallium3d/headers/build/os/TranslationKit.h haiku/branches/components/gallium3d/headers/build/os/add-ons/mail_daemon/ haiku/branches/components/gallium3d/headers/build/os/be_apps/ haiku/branches/components/gallium3d/headers/build/os/device/ haiku/branches/components/gallium3d/headers/build/os/game/ haiku/branches/components/gallium3d/headers/build/os/mail/ haiku/branches/components/gallium3d/headers/build/os/media/ haiku/branches/components/gallium3d/headers/build/os/midi/ haiku/branches/components/gallium3d/headers/build/os/midi2/ haiku/branches/components/gallium3d/headers/build/os/net/ haiku/branches/components/gallium3d/headers/build/os/opengl/ haiku/branches/components/gallium3d/headers/build/os/storage/Alias.h haiku/branches/components/gallium3d/headers/build/os/support/BufferIO.h haiku/branches/components/gallium3d/headers/build/os/translation/ haiku/branches/components/gallium3d/headers/libs/jpeg/jconfig.h haiku/branches/components/gallium3d/headers/libs/jpeg/jerror.h haiku/branches/components/gallium3d/headers/libs/jpeg/jmorecfg.h haiku/branches/components/gallium3d/headers/libs/jpeg/jpeglib.h haiku/branches/components/gallium3d/headers/os/translation/TranslationKit.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_cpu.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_int.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_kernel.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_kernel_args.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_mmu.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_platform.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_system_info.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_thread.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_thread_types.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_user_debugger.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_vm.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_vm_translation_map.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/arch_vm_types.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/cpu.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/ktypes.h haiku/branches/components/gallium3d/headers/private/kernel/arch/mipsel/types.h haiku/branches/components/gallium3d/headers/private/kernel/boot/platform/routerboard_mipsel/platform_arch.h haiku/branches/components/gallium3d/headers/private/kernel/boot/platform/routerboard_mipsel/platform_kernel_args.h haiku/branches/components/gallium3d/headers/private/kernel/boot/platform/routerboard_mipsel/platform_stage2_args.h haiku/branches/components/gallium3d/headers/private/libroot/dirent_private.h haiku/branches/components/gallium3d/headers/private/system/arch/mipsel/arch_commpage_defs.h haiku/branches/components/gallium3d/headers/private/system/arch/mipsel/arch_config.h haiku/branches/components/gallium3d/headers/private/system/arch/mipsel/arch_elf.h haiku/branches/components/gallium3d/headers/private/system/arch/mipsel/arch_real_time_data.h haiku/branches/components/gallium3d/headers/private/system/arch/mipsel/asm_defs.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/apiexample.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/bitstream.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/fdctref.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/imgconvert_template.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/imgresample.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libamr.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/gcc_fixes.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/imgresample_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/imgresample_altivec.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/snow_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/qcelp_lsp.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/dsputil_mmx_avg.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/dsputil_mmx_qns.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/dsputil_mmx_rnd.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/framehook.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/framehook.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/random.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/random.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/sha1.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/string.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/internal_bfin.S haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/ppc/swscale_altivec_template.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/ppc/yuv2rgb_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/sparc/yuv2rgb_vis.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/swscale_altivec_template.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/swscale_avoption.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/swscale_bfin.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/x86/yuv2rgb_mmx.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/x86/yuv2rgb_template.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/yuv2rgb_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/yuv2rgb_bfin.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/yuv2rgb_mlib.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/yuv2rgb_template.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/yuv2rgb_vis.c haiku/branches/components/gallium3d/src/add-ons/translators/jpeg/libjpeg/ haiku/branches/components/gallium3d/src/apps/pairs/bitmaps/ haiku/branches/components/gallium3d/src/bin/coreutils/lib/TODO haiku/branches/components/gallium3d/src/bin/coreutils/lib/fpurge.h haiku/branches/components/gallium3d/src/build/libbe/support/BufferIO.cpp haiku/branches/components/gallium3d/src/kits/debug/arch/mipsel/arch_debug_support.cpp haiku/branches/components/gallium3d/src/kits/interface/PNGDump.cpp haiku/branches/components/gallium3d/src/kits/interface/PNGDump.h haiku/branches/components/gallium3d/src/kits/interface/PrivateScreen.h haiku/branches/components/gallium3d/src/kits/storage/LibBeAdapter.cpp haiku/branches/components/gallium3d/src/libs/jpeg/Jamfile haiku/branches/components/gallium3d/src/libs/jpeg/README haiku/branches/components/gallium3d/src/libs/jpeg/__changes_by_Shard.txt haiku/branches/components/gallium3d/src/libs/jpeg/cderror.h haiku/branches/components/gallium3d/src/libs/jpeg/cdjpeg.c haiku/branches/components/gallium3d/src/libs/jpeg/cdjpeg.h haiku/branches/components/gallium3d/src/libs/jpeg/filelist.txt haiku/branches/components/gallium3d/src/libs/jpeg/jcapimin.c haiku/branches/components/gallium3d/src/libs/jpeg/jcapistd.c haiku/branches/components/gallium3d/src/libs/jpeg/jccoefct.c haiku/branches/components/gallium3d/src/libs/jpeg/jccolor.c haiku/branches/components/gallium3d/src/libs/jpeg/jcdctmgr.c haiku/branches/components/gallium3d/src/libs/jpeg/jcdiffct.c haiku/branches/components/gallium3d/src/libs/jpeg/jchuff.c haiku/branches/components/gallium3d/src/libs/jpeg/jchuff.h haiku/branches/components/gallium3d/src/libs/jpeg/jcinit.c haiku/branches/components/gallium3d/src/libs/jpeg/jclhuff.c haiku/branches/components/gallium3d/src/libs/jpeg/jclossls.c haiku/branches/components/gallium3d/src/libs/jpeg/jclossy.c haiku/branches/components/gallium3d/src/libs/jpeg/jcmainct.c haiku/branches/components/gallium3d/src/libs/jpeg/jcmarker.c haiku/branches/components/gallium3d/src/libs/jpeg/jcmaster.c haiku/branches/components/gallium3d/src/libs/jpeg/jcodec.c haiku/branches/components/gallium3d/src/libs/jpeg/jcomapi.c haiku/branches/components/gallium3d/src/libs/jpeg/jconfig.doc haiku/branches/components/gallium3d/src/libs/jpeg/jcparam.c haiku/branches/components/gallium3d/src/libs/jpeg/jcphuff.c haiku/branches/components/gallium3d/src/libs/jpeg/jcpred.c haiku/branches/components/gallium3d/src/libs/jpeg/jcprepct.c haiku/branches/components/gallium3d/src/libs/jpeg/jcsample.c haiku/branches/components/gallium3d/src/libs/jpeg/jcscale.c haiku/branches/components/gallium3d/src/libs/jpeg/jcshuff.c haiku/branches/components/gallium3d/src/libs/jpeg/jctrans.c haiku/branches/components/gallium3d/src/libs/jpeg/jdapimin.c haiku/branches/components/gallium3d/src/libs/jpeg/jdapistd.c haiku/branches/components/gallium3d/src/libs/jpeg/jdatadst.c haiku/branches/components/gallium3d/src/libs/jpeg/jdatasrc.c haiku/branches/components/gallium3d/src/libs/jpeg/jdcoefct.c haiku/branches/components/gallium3d/src/libs/jpeg/jdcolor.c haiku/branches/components/gallium3d/src/libs/jpeg/jdct.h haiku/branches/components/gallium3d/src/libs/jpeg/jddctmgr.c haiku/branches/components/gallium3d/src/libs/jpeg/jddiffct.c haiku/branches/components/gallium3d/src/libs/jpeg/jdhuff.c haiku/branches/components/gallium3d/src/libs/jpeg/jdhuff.h haiku/branches/components/gallium3d/src/libs/jpeg/jdinput.c haiku/branches/components/gallium3d/src/libs/jpeg/jdlhuff.c haiku/branches/components/gallium3d/src/libs/jpeg/jdlossls.c haiku/branches/components/gallium3d/src/libs/jpeg/jdlossy.c haiku/branches/components/gallium3d/src/libs/jpeg/jdmainct.c haiku/branches/components/gallium3d/src/libs/jpeg/jdmarker.c haiku/branches/components/gallium3d/src/libs/jpeg/jdmaster.c haiku/branches/components/gallium3d/src/libs/jpeg/jdmerge.c haiku/branches/components/gallium3d/src/libs/jpeg/jdphuff.c haiku/branches/components/gallium3d/src/libs/jpeg/jdpostct.c haiku/branches/components/gallium3d/src/libs/jpeg/jdpred.c haiku/branches/components/gallium3d/src/libs/jpeg/jdsample.c haiku/branches/components/gallium3d/src/libs/jpeg/jdscale.c haiku/branches/components/gallium3d/src/libs/jpeg/jdshuff.c haiku/branches/components/gallium3d/src/libs/jpeg/jdtrans.c haiku/branches/components/gallium3d/src/libs/jpeg/jerror.c haiku/branches/components/gallium3d/src/libs/jpeg/jfdctflt.c haiku/branches/components/gallium3d/src/libs/jpeg/jfdctfst.c haiku/branches/components/gallium3d/src/libs/jpeg/jfdctint.c haiku/branches/components/gallium3d/src/libs/jpeg/jidctflt.c haiku/branches/components/gallium3d/src/libs/jpeg/jidctfst.c haiku/branches/components/gallium3d/src/libs/jpeg/jidctint.c haiku/branches/components/gallium3d/src/libs/jpeg/jidctred.c haiku/branches/components/gallium3d/src/libs/jpeg/jinclude.h haiku/branches/components/gallium3d/src/libs/jpeg/jlossls.h haiku/branches/components/gallium3d/src/libs/jpeg/jlossy.h haiku/branches/components/gallium3d/src/libs/jpeg/jmemansi.c haiku/branches/components/gallium3d/src/libs/jpeg/jmemmgr.c haiku/branches/components/gallium3d/src/libs/jpeg/jmemname.c haiku/branches/components/gallium3d/src/libs/jpeg/jmemnobs.c haiku/branches/components/gallium3d/src/libs/jpeg/jmemsys.h haiku/branches/components/gallium3d/src/libs/jpeg/jpegint.h haiku/branches/components/gallium3d/src/libs/jpeg/jpegtran.c haiku/branches/components/gallium3d/src/libs/jpeg/jquant1.c haiku/branches/components/gallium3d/src/libs/jpeg/jquant2.c haiku/branches/components/gallium3d/src/libs/jpeg/jutils.c haiku/branches/components/gallium3d/src/libs/jpeg/jversion.h haiku/branches/components/gallium3d/src/libs/jpeg/rdswitch.c haiku/branches/components/gallium3d/src/libs/jpeg/transupp.c haiku/branches/components/gallium3d/src/libs/jpeg/transupp.h haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/Jamfile haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/console.cpp haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/console.h haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/cpu.cpp haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/cpu.h haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/debug.c haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/devices.cpp haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/keyboard.cpp haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/keyboard.h haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/menu.cpp haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/mmu.cpp haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/mmu.h haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/serial.cpp haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/serial.h haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/start.c haiku/branches/components/gallium3d/src/system/boot/platform/routerboard_mipsel/video.cpp haiku/branches/components/gallium3d/src/system/kernel/device_manager/settings.cpp haiku/branches/components/gallium3d/src/system/kernel/platform/routerboard_mipsel/Jamfile haiku/branches/components/gallium3d/src/system/kernel/platform/routerboard_mipsel/platform.cpp haiku/branches/components/gallium3d/src/system/ldscripts/mipsel/boot_loader_routerboard_mipsel.ld haiku/branches/components/gallium3d/src/system/libroot/posix/malloc_debug/Jamfile haiku/branches/components/gallium3d/src/system/libroot/posix/malloc_debug/heap.cpp haiku/branches/components/gallium3d/src/tests/add-ons/kernel/busses/usb/Jamfile haiku/branches/components/gallium3d/src/tests/add-ons/kernel/busses/usb/uhci_decode.cpp haiku/branches/components/gallium3d/src/tests/kits/shared/Jamfile haiku/branches/components/gallium3d/src/tests/kits/shared/shake_filter/ haiku/branches/components/gallium3d/src/tests/kits/shared/shake_filter/Jamfile haiku/branches/components/gallium3d/src/tests/kits/shared/shake_filter/ShakeFilterTest.cpp haiku/branches/components/gallium3d/src/tests/servers/app/archived_view/run haiku/branches/components/gallium3d/src/tests/servers/app/async_drawing/run haiku/branches/components/gallium3d/src/tests/servers/app/benchmark/run haiku/branches/components/gallium3d/src/tests/servers/app/bitmap_bounds/run haiku/branches/components/gallium3d/src/tests/servers/app/bitmap_drawing/run haiku/branches/components/gallium3d/src/tests/servers/app/constrain_clipping_region/run haiku/branches/components/gallium3d/src/tests/servers/app/copy_bits/run haiku/branches/components/gallium3d/src/tests/servers/app/draw_after_children/run haiku/branches/components/gallium3d/src/tests/servers/app/find_view/run haiku/branches/components/gallium3d/src/tests/servers/app/following/run haiku/branches/components/gallium3d/src/tests/servers/app/lagging_get_mouse/run haiku/branches/components/gallium3d/src/tests/servers/app/playground/run haiku/branches/components/gallium3d/src/tests/servers/app/resize_limits/run haiku/branches/components/gallium3d/src/tests/servers/app/scrollbar/run haiku/branches/components/gallium3d/src/tests/servers/app/scrolling/run haiku/branches/components/gallium3d/src/tests/servers/app/statusbar/run haiku/branches/components/gallium3d/src/tests/servers/app/stress_test/run haiku/branches/components/gallium3d/src/tests/servers/app/textview/run haiku/branches/components/gallium3d/src/tests/servers/registrar/run_haiku_registrar.cpp Modified: haiku/branches/components/gallium3d/3rdparty/mmu_man/onlinedemo/haiku.php haiku/branches/components/gallium3d/build/jam/BuildSetup haiku/branches/components/gallium3d/build/jam/HaikuImage haiku/branches/components/gallium3d/build/jam/NetBootArchive haiku/branches/components/gallium3d/build/jam/OptionalBuildFeatures haiku/branches/components/gallium3d/build/jam/OptionalPackageDependencies haiku/branches/components/gallium3d/build/jam/OptionalPackages haiku/branches/components/gallium3d/build/jam/ReleaseBuildProfiles haiku/branches/components/gallium3d/build/jam/TestsRules haiku/branches/components/gallium3d/build/scripts/build_haiku_image haiku/branches/components/gallium3d/configure haiku/branches/components/gallium3d/data/artwork/icons/Misc_Deskbar_Group haiku/branches/components/gallium3d/data/common/boot/post_install/mime_update.sh haiku/branches/components/gallium3d/data/system/boot/Bootscript haiku/branches/components/gallium3d/data/system/boot/Bootscript.cd haiku/branches/components/gallium3d/data/system/boot/InstallerFinishScript haiku/branches/components/gallium3d/docs/Haiku-doc.css haiku/branches/components/gallium3d/docs/userguide/en/applications.html haiku/branches/components/gallium3d/docs/userguide/en/attributes.html haiku/branches/components/gallium3d/docs/userguide/en/bash-scripting.html haiku/branches/components/gallium3d/docs/userguide/en/bootloader.html haiku/branches/components/gallium3d/docs/userguide/en/contents.html haiku/branches/components/gallium3d/docs/userguide/en/demos.html haiku/branches/components/gallium3d/docs/userguide/en/deskbar.html haiku/branches/components/gallium3d/docs/userguide/en/desktop-applets.html haiku/branches/components/gallium3d/docs/userguide/en/filesystem-layout.html haiku/branches/components/gallium3d/docs/userguide/en/filetypes.html haiku/branches/components/gallium3d/docs/userguide/en/gui.html haiku/branches/components/gallium3d/docs/userguide/en/images/apps-images/poorman.png haiku/branches/components/gallium3d/docs/userguide/en/images/gui-images/gui.png haiku/branches/components/gallium3d/docs/userguide/en/images/prefs-images/e-mail-mailbox.png haiku/branches/components/gallium3d/docs/userguide/en/images/workspaces-images/workspaces.png haiku/branches/components/gallium3d/docs/userguide/en/index.html haiku/branches/components/gallium3d/docs/userguide/en/installation.html haiku/branches/components/gallium3d/docs/userguide/en/installation/install-boot-process.html haiku/branches/components/gallium3d/docs/userguide/en/installation/install-raw.html haiku/branches/components/gallium3d/docs/userguide/en/installation/install-source-beos.html haiku/branches/components/gallium3d/docs/userguide/en/installation/install-source-linux.html haiku/branches/components/gallium3d/docs/userguide/en/installation/install-source-mac.html haiku/branches/components/gallium3d/docs/userguide/en/installation/install-source-windows.html haiku/branches/components/gallium3d/docs/userguide/en/installation/install-usb.html haiku/branches/components/gallium3d/docs/userguide/en/installation/install-vm.html haiku/branches/components/gallium3d/docs/userguide/en/keyboard-shortcuts.html haiku/branches/components/gallium3d/docs/userguide/en/preferences.html haiku/branches/components/gallium3d/docs/userguide/en/queries.html haiku/branches/components/gallium3d/docs/userguide/en/teammonitor.html haiku/branches/components/gallium3d/docs/userguide/en/tracker-add-ons.html haiku/branches/components/gallium3d/docs/userguide/en/tracker.html haiku/branches/components/gallium3d/docs/userguide/en/twitcher.html haiku/branches/components/gallium3d/docs/userguide/en/workshop-filetypes+attributes.html haiku/branches/components/gallium3d/docs/userguide/en/workspaces.html haiku/branches/components/gallium3d/docs/userguide/images/up.png haiku/branches/components/gallium3d/docs/userguide/languages.html haiku/branches/components/gallium3d/docs/welcome/en/bugreports.html haiku/branches/components/gallium3d/docs/welcome/welcome.html haiku/branches/components/gallium3d/headers/build/os/app/PropertyInfo.h haiku/branches/components/gallium3d/headers/build/os/support/Beep.h haiku/branches/components/gallium3d/headers/build/os/support/ClassInfo.h haiku/branches/components/gallium3d/headers/build/os/support/UTF8.h haiku/branches/components/gallium3d/headers/libs/fluidsynth/fluidsynth/version.h haiku/branches/components/gallium3d/headers/libs/freetype2/freetype/config/ftoption.h haiku/branches/components/gallium3d/headers/libs/png/png.h haiku/branches/components/gallium3d/headers/libs/png/pngconf.h haiku/branches/components/gallium3d/headers/os/BeBuild.h haiku/branches/components/gallium3d/headers/os/add-ons/graphics/Accelerant.h haiku/branches/components/gallium3d/headers/os/add-ons/graphics/GraphicsCard.h haiku/branches/components/gallium3d/headers/os/add-ons/input_server/InputServerDevice.h haiku/branches/components/gallium3d/headers/os/add-ons/input_server/InputServerFilter.h haiku/branches/components/gallium3d/headers/os/add-ons/input_server/InputServerMethod.h haiku/branches/components/gallium3d/headers/os/app/PropertyInfo.h haiku/branches/components/gallium3d/headers/os/device/A2D.h haiku/branches/components/gallium3d/headers/os/device/CAM.h haiku/branches/components/gallium3d/headers/os/device/D2A.h haiku/branches/components/gallium3d/headers/os/device/DigitalPort.h haiku/branches/components/gallium3d/headers/os/device/Joystick.h haiku/branches/components/gallium3d/headers/os/device/SerialPort.h haiku/branches/components/gallium3d/headers/os/drivers/PCI.h haiku/branches/components/gallium3d/headers/os/drivers/USB_printer.h haiku/branches/components/gallium3d/headers/os/drivers/USB_rle.h haiku/branches/components/gallium3d/headers/os/drivers/USB_spec.h haiku/branches/components/gallium3d/headers/os/drivers/bus_manager.h haiku/branches/components/gallium3d/headers/os/drivers/midi_driver.h haiku/branches/components/gallium3d/headers/os/game/WindowScreen.h haiku/branches/components/gallium3d/headers/os/interface/AbstractLayoutItem.h haiku/branches/components/gallium3d/headers/os/interface/Alert.h haiku/branches/components/gallium3d/headers/os/interface/Alignment.h haiku/branches/components/gallium3d/headers/os/interface/Bitmap.h haiku/branches/components/gallium3d/headers/os/interface/Button.h haiku/branches/components/gallium3d/headers/os/interface/CardLayout.h haiku/branches/components/gallium3d/headers/os/interface/ChannelControl.h haiku/branches/components/gallium3d/headers/os/interface/ChannelSlider.h haiku/branches/components/gallium3d/headers/os/interface/CheckBox.h haiku/branches/components/gallium3d/headers/os/interface/ColorControl.h haiku/branches/components/gallium3d/headers/os/interface/Control.h haiku/branches/components/gallium3d/headers/os/interface/ControlLook.h haiku/branches/components/gallium3d/headers/os/interface/Deskbar.h haiku/branches/components/gallium3d/headers/os/interface/Dragger.h haiku/branches/components/gallium3d/headers/os/interface/Font.h haiku/branches/components/gallium3d/headers/os/interface/Gradient.h haiku/branches/components/gallium3d/headers/os/interface/GradientConic.h haiku/branches/components/gallium3d/headers/os/interface/GradientDiamond.h haiku/branches/components/gallium3d/headers/os/interface/GradientLinear.h haiku/branches/components/gallium3d/headers/os/interface/GradientRadial.h haiku/branches/components/gallium3d/headers/os/interface/GradientRadialFocus.h haiku/branches/components/gallium3d/headers/os/interface/GraphicsDefs.h haiku/branches/components/gallium3d/headers/os/interface/GridLayout.h haiku/branches/components/gallium3d/headers/os/interface/GridLayoutBuilder.h haiku/branches/components/gallium3d/headers/os/interface/GridView.h haiku/branches/components/gallium3d/headers/os/interface/GroupLayout.h haiku/branches/components/gallium3d/headers/os/interface/GroupLayoutBuilder.h haiku/branches/components/gallium3d/headers/os/interface/GroupView.h haiku/branches/components/gallium3d/headers/os/interface/Input.h haiku/branches/components/gallium3d/headers/os/interface/InterfaceDefs.h haiku/branches/components/gallium3d/headers/os/interface/Layout.h haiku/branches/components/gallium3d/headers/os/interface/LayoutBuilder.h haiku/branches/components/gallium3d/headers/os/interface/LayoutContext.h haiku/branches/components/gallium3d/headers/os/interface/LayoutItem.h haiku/branches/components/gallium3d/headers/os/interface/LayoutUtils.h haiku/branches/components/gallium3d/headers/os/interface/ListItem.h haiku/branches/components/gallium3d/headers/os/interface/ListView.h haiku/branches/components/gallium3d/headers/os/interface/Menu.h haiku/branches/components/gallium3d/headers/os/interface/MenuBar.h haiku/branches/components/gallium3d/headers/os/interface/MenuField.h haiku/branches/components/gallium3d/headers/os/interface/MenuItem.h haiku/branches/components/gallium3d/headers/os/interface/MultiChannelControl.h haiku/branches/components/gallium3d/headers/os/interface/OptionControl.h haiku/branches/components/gallium3d/headers/os/interface/OptionPopUp.h haiku/branches/components/gallium3d/headers/os/interface/OutlineListView.h haiku/branches/components/gallium3d/headers/os/interface/Picture.h haiku/branches/components/gallium3d/headers/os/interface/PictureButton.h haiku/branches/components/gallium3d/headers/os/interface/Point.h haiku/branches/components/gallium3d/headers/os/interface/Polygon.h haiku/branches/components/gallium3d/headers/os/interface/PopUpMenu.h haiku/branches/components/gallium3d/headers/os/interface/PrintJob.h haiku/branches/components/gallium3d/headers/os/interface/RadioButton.h haiku/branches/components/gallium3d/headers/os/interface/Rect.h haiku/branches/components/gallium3d/headers/os/interface/Region.h haiku/branches/components/gallium3d/headers/os/interface/Screen.h haiku/branches/components/gallium3d/headers/os/interface/ScrollBar.h haiku/branches/components/gallium3d/headers/os/interface/ScrollView.h haiku/branches/components/gallium3d/headers/os/interface/SeparatorItem.h haiku/branches/components/gallium3d/headers/os/interface/SeparatorView.h haiku/branches/components/gallium3d/headers/os/interface/Shape.h haiku/branches/components/gallium3d/headers/os/interface/Shelf.h haiku/branches/components/gallium3d/headers/os/interface/Size.h haiku/branches/components/gallium3d/headers/os/interface/Slider.h haiku/branches/components/gallium3d/headers/os/interface/SpaceLayoutItem.h haiku/branches/components/gallium3d/headers/os/interface/SplitLayoutBuilder.h haiku/branches/components/gallium3d/headers/os/interface/SplitView.h haiku/branches/components/gallium3d/headers/os/interface/StatusBar.h haiku/branches/components/gallium3d/headers/os/interface/StringItem.h haiku/branches/components/gallium3d/headers/os/interface/StringView.h haiku/branches/components/gallium3d/headers/os/interface/TabView.h haiku/branches/components/gallium3d/headers/os/interface/TextControl.h haiku/branches/components/gallium3d/headers/os/interface/TextView.h haiku/branches/components/gallium3d/headers/os/interface/TwoDimensionalLayout.h haiku/branches/components/gallium3d/headers/os/interface/UnicodeBlockObjects.h haiku/branches/components/gallium3d/headers/os/interface/View.h haiku/branches/components/gallium3d/headers/os/interface/Window.h haiku/branches/components/gallium3d/headers/os/kernel/scheduler.h haiku/branches/components/gallium3d/headers/os/mail/E-mail.h haiku/branches/components/gallium3d/headers/os/media/Buffer.h haiku/branches/components/gallium3d/headers/os/media/BufferConsumer.h haiku/branches/components/gallium3d/headers/os/media/BufferProducer.h haiku/branches/components/gallium3d/headers/os/media/Controllable.h haiku/branches/components/gallium3d/headers/os/media/FileInterface.h haiku/branches/components/gallium3d/headers/os/media/MediaAddOn.h haiku/branches/components/gallium3d/headers/os/media/MediaDefs.h haiku/branches/components/gallium3d/headers/os/media/MediaEncoder.h haiku/branches/components/gallium3d/headers/os/media/MediaEventLooper.h haiku/branches/components/gallium3d/headers/os/media/MediaFile.h haiku/branches/components/gallium3d/headers/os/media/MediaFiles.h haiku/branches/components/gallium3d/headers/os/media/MediaNode.h haiku/branches/components/gallium3d/headers/os/media/PlaySound.h haiku/branches/components/gallium3d/headers/os/media/RealtimeAlloc.h haiku/branches/components/gallium3d/headers/os/media/Sound.h haiku/branches/components/gallium3d/headers/os/media/SoundFile.h haiku/branches/components/gallium3d/headers/os/media/SoundPlayer.h haiku/branches/components/gallium3d/headers/os/media/TimeCode.h haiku/branches/components/gallium3d/headers/os/media/TimeSource.h haiku/branches/components/gallium3d/headers/os/media/TimedEventQueue.h haiku/branches/components/gallium3d/headers/os/net/net_settings.h haiku/branches/components/gallium3d/headers/os/opengl/GLView.h haiku/branches/components/gallium3d/headers/os/support/Archivable.h haiku/branches/components/gallium3d/headers/os/support/Errors.h haiku/branches/components/gallium3d/headers/os/translation/BitmapStream.h haiku/branches/components/gallium3d/headers/os/translation/TranslationDefs.h haiku/branches/components/gallium3d/headers/os/translation/TranslationErrors.h haiku/branches/components/gallium3d/headers/os/translation/TranslationUtils.h haiku/branches/components/gallium3d/headers/os/translation/Translator.h haiku/branches/components/gallium3d/headers/os/translation/TranslatorAddOn.h haiku/branches/components/gallium3d/headers/os/translation/TranslatorFormats.h haiku/branches/components/gallium3d/headers/os/translation/TranslatorRoster.h haiku/branches/components/gallium3d/headers/posix/dirent.h haiku/branches/components/gallium3d/headers/posix/netinet/in.h haiku/branches/components/gallium3d/headers/private/app/RegistrarDefs.h haiku/branches/components/gallium3d/headers/private/app/ServerProtocol.h haiku/branches/components/gallium3d/headers/private/bluetooth/PincodeWindow.h haiku/branches/components/gallium3d/headers/private/bluetooth/PortListener.h haiku/branches/components/gallium3d/headers/private/graphics/nvidia/DriverInterface.h haiku/branches/components/gallium3d/headers/private/graphics/nvidia/nv_macros.h haiku/branches/components/gallium3d/headers/private/interface/ColumnListView.h haiku/branches/components/gallium3d/headers/private/interface/MenuWindow.h haiku/branches/components/gallium3d/headers/private/kernel/disk_device_manager/KPartition.h haiku/branches/components/gallium3d/headers/private/kernel/kscheduler.h haiku/branches/components/gallium3d/headers/private/kernel/smp.h haiku/branches/components/gallium3d/headers/private/kernel/thread.h haiku/branches/components/gallium3d/headers/private/shared/CommandPipe.h haiku/branches/components/gallium3d/src/add-ons/accelerants/common/dump_edid.c haiku/branches/components/gallium3d/src/add-ons/accelerants/common/i2c.c haiku/branches/components/gallium3d/src/add-ons/accelerants/nvidia/GetAccelerantHook.c haiku/branches/components/gallium3d/src/add-ons/accelerants/nvidia/GetDeviceInfo.c haiku/branches/components/gallium3d/src/add-ons/accelerants/nvidia/ProposeDisplayMode.c haiku/branches/components/gallium3d/src/add-ons/accelerants/nvidia/be_driver_proto.h haiku/branches/components/gallium3d/src/add-ons/accelerants/nvidia/engine/nv_dac.c haiku/branches/components/gallium3d/src/add-ons/accelerants/nvidia/engine/nv_dac2.c haiku/branches/components/gallium3d/src/add-ons/accelerants/nvidia/engine/nv_general.c haiku/branches/components/gallium3d/src/add-ons/accelerants/nvidia/engine/nv_i2c.c haiku/branches/components/gallium3d/src/add-ons/accelerants/nvidia/engine/nv_info.c haiku/branches/components/gallium3d/src/add-ons/accelerants/nvidia/engine/nv_proto.h haiku/branches/components/gallium3d/src/add-ons/disk_systems/intel/ExtendedPartitionAddOn.cpp haiku/branches/components/gallium3d/src/add-ons/disk_systems/intel/Jamfile haiku/branches/components/gallium3d/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAModule.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/pci/pci.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/pci/pci_module.c haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/pci/pci_private.h haiku/branches/components/gallium3d/src/add-ons/kernel/busses/usb/ohci.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/ac97/ac97.c haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.c haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/hda/driver.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/hda/driver.h haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/bluetooth/h2/h2generic/h2generic.c haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/bluetooth/h2/h2generic/h2transactions.c haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk.h haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/disk/usb/usb_disk/usb_disk_scsi.h haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/graphics/nvidia/Jamfile haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/graphics/nvidia/README.html haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/graphics/nvidia/driver.c haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/input/usb_hid/HIDParser.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/input/usb_hid/KeyboardDevice.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/input/usb_hid/MouseDevice.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/power/acpi_battery/acpi_battery.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/Jamfile haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/bfs/bfs.h haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/layers/attribute_overlay/attribute_overlay.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/layers/write_overlay/Jamfile haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/ntfs/Jamfile haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/ntfs/fs_func.c haiku/branches/components/gallium3d/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c haiku/branches/components/gallium3d/src/add-ons/kernel/generic/scsi_periph/io.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/partitioning_systems/intel/PartitionMapWriter.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/partitioning_systems/intel/intel.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/partitioning_systems/intel/write_support.cpp haiku/branches/components/gallium3d/src/add-ons/media/media-add-ons/multi_audio/MultiAudioUtility.cpp haiku/branches/components/gallium3d/src/add-ons/media/media-add-ons/usb_webcam/CamDevice.cpp haiku/branches/components/gallium3d/src/add-ons/media/media-add-ons/usb_webcam/Jamfile haiku/branches/components/gallium3d/src/add-ons/media/media-add-ons/usb_webcam/addons/sonix/SonixCamDevice.cpp haiku/branches/components/gallium3d/src/add-ons/media/media-add-ons/usb_webcam/addons/sonix/SonixCamDevice.h haiku/branches/components/gallium3d/src/add-ons/media/media-add-ons/usb_webcam/sensors/hv7131e1.cpp haiku/branches/components/gallium3d/src/add-ons/media/media-add-ons/usb_webcam/sensors/tas5110c1b.cpp haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/AVCodecDecoder.cpp haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/AVCodecEncoder.cpp haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/AVCodecEncoder.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/AVFormatReader.cpp haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/CodecTable.cpp haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/DemuxerTable.cpp haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/config.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/gfx_util.cpp haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/4xm.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/8bps.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/8svx.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/Jamfile haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/aac.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/aac.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/aac_ac3_parser.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/aac_ac3_parser.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/aac_parser.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/aac_parser.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/aacdectab.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/aacenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/aacpsy.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/aactab.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/aactab.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/aasc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ac3.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ac3.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ac3_parser.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ac3_parser.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ac3dec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ac3dec.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ac3dec_data.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ac3dec_data.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ac3enc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ac3tab.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ac3tab.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/acelp_filters.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/acelp_filters.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/acelp_vectors.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/acelp_vectors.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/adpcm.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/adxdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/alac.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/alacenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/allcodecs.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/apedec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/asv1.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/atrac3.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/atrac3data.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/audioconvert.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/audioconvert.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/avcodec.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/avs.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/bethsoftvideo.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/bfi.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/bitstream.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/bmp.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/bmpenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/c93.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/cabac.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/cabac.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/cavs.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/cavsdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/celp_filters.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/celp_filters.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/cinepak.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/cljr.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/cook.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/cscd.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/cyuv.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/dca.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/dct-test.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/dnxhddec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/dnxhdenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/dpcm.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/dsicinav.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/dsputil.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/dsputil.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/dv.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/dvbsub_parser.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/dvbsubdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/dvdata.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/dvdsubdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/dxa.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/eac3dec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/eacmv.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/eatgq.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/eatgv.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/eatqi.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/elbg.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/elbg.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/error_resilience.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/escape124.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/eval.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/eval.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/faxcompr.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/fft-test.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/fft.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ffv1.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/flac.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/flacdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/flacenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/flashsv.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/flashsvenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/flicvideo.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/fraps.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/g726.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/g729.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/g729data.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/g729dec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/gif.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/gifdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/golomb.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/h261dec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/h261enc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/h263.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/h263.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/h263dec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/h264.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/h264.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/h264_mp4toannexb_bsf.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/h264_parser.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/h264enc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/h264pred.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/huffman.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/huffman.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/huffyuv.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/idcinvideo.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/iirfilter.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/imc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/imgconvert.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/imgconvert.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/indeo2.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/indeo3.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/internal.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/interplayvideo.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/intrax8.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/intrax8.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/jpeglsdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/jpeglsenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/jrevdct.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/kmvc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/lcldec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/lclenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libdirac.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libdirac_libschro.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libdirac_libschro.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libdiracdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libdiracenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libfaad.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libgsm.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libopenjpeg.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libschroedinger.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libschroedinger.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libschroedingerdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libschroedingerenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libspeexdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libtheoraenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libvorbis.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/libx264.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ljpegenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/loco.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/lsp.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/lsp.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/lzw.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/lzwenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mace.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mathops.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mdct.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mimic.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mjpeg.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mjpeg_parser.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mjpegbdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mjpegdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mjpegdec.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mjpegenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mlp.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mlp.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mlp_parser.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mlp_parser.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mlpdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mmvideo.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/motion-test.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/motionpixels.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpc.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpc7.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpc8.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpeg12.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpeg12.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpeg12enc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpeg4audio.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpeg4audio.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpegaudio.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpegaudio_parser.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpegaudiodec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpegaudiodecheader.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpegaudioenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpegvideo.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpegvideo.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpegvideo_common.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpegvideo_enc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/mpegvideo_parser.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/msmpeg4.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/msmpeg4.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/msmpeg4data.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/msrle.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/msrledec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/msrledec.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/msvideo1.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/nellymoser.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/nellymoserdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/nellymoserenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/nuv.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/opt.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/opt.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/options.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/parser.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/pcm.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/pcx.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/pixdesc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/pixdesc.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/pngdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/pnm.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/pnmenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/check_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/dsputil_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/dsputil_ppc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/dsputil_ppc.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/fdct_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/fft_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/float_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/gmc_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/h264_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/h264_template_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/idct_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/int_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/mathops.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/mpegvideo_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ppc/vc1dsp_altivec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ptx.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/qcelpdata.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/qcelpdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/qdm2.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/qdrw.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/qpeg.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/qtrle.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/qtrleenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ra144.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ra288.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/rangecoder.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ratecontrol.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/raw.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/rawdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/rawenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/resample.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/resample2.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/rl.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/rl2.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/roqvideo.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/roqvideodec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/roqvideoenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/rpza.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/rtjpeg.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/rtjpeg.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/rv10.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/rv30.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/rv34.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/rv34.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/rv40.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/sgidec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/sgienc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/shorten.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/simple_idct.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/smacker.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/smc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/snow.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/sonic.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/sp5xdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/sunrast.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/svq1dec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/svq1enc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/svq3.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/targa.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/tiertexseqv.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/tiff.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/tiffenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/truemotion1.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/truemotion2.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/truespeech.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/tscc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/tta.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/txd.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ulti.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/unary.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/utils.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vb.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vc1.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vc1.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vc1_parser.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vc1data.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vc1dsp.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vcr1.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vdpau.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vmdav.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vmnc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vorbis.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vorbis_dec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vorbis_enc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vp3.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vp5.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vp56.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vp56.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vp6.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/vqavideo.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/w32thread.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/wavpack.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/wma.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/wma.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/wmadec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/wmaenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/wmv2enc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/wnv1.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/ws-snd1.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/Jamfile haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/cavsdsp_mmx.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/cpuid.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/dsputil_mmx.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/dsputil_mmx_rnd_template.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/dsputilenc_mmx.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/fft_mmx.nasm haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/fft_sse.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/h264_deblock_sse2.nasm haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/h264_idct_sse2.nasm haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/h264dsp_mmx.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/motion_est_mmx.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/mpegvideo_mmx.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/snowdsp_mmx.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/vc1dsp_mmx.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/x86inc.asm haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/x86/x86util.asm haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/xan.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/xl.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/xsubdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/xvmc.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/zmbv.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavcodec/zmbvenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/Jamfile haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/adtsenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/aiff.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/allformats.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/ape.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/asf.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/asf.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/asfdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/asfenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/au.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/audiointerleave.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/audiointerleave.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/avc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/avformat.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/avidec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/avienc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/avio.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/avio.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/aviobuf.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/avisynth.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/dv.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/dvenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/dxa.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/electronicarts.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/ffmdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/ffmenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/file.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/flacdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/flv.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/flvdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/flvenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/gif.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/gxfenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/http.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/id3v2.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/id3v2.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/idroq.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/img2.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/isom.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/isom.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/libnut.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/matroska.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/matroskadec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/matroskaenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/mmf.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/mov.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/movenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/mp3.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/mpc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/mpc8.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/mpeg.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/mpegenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/mpegts.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/mpegts.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/mpegtsenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/mtv.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/mxfdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/mxfenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/nsvdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/nutdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/nutenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/nuv.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/oggdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/oggdec.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/oggenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/oggparseflac.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/oggparseogm.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/oggparsespeex.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/oggparsetheora.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/oggparsevorbis.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/oma.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/options.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/os_support.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/pva.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/qtpalette.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/raw.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rdt.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/riff.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/riff.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rm.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rmdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rmenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtp.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtp_aac.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtp_h264.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtp_mpv.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtpdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtpdec.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtpenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtpenc.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtpenc_h264.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtpproto.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtsp.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/rtsp.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/sdp.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/smacker.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/swf.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/swfdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/swfenc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/tcp.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/tta.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/txd.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/udp.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/utils.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/vocdec.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/wav.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/wc3movie.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/westwood.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/wv.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavformat/yuv4mpeg.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/Jamfile haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/adler32.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/aes.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/avutil.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/base64.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/base64.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/bswap.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/common.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/crc.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/des.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/fifo.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/fifo.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/integer.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/internal.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/intreadwrite.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/lfg.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/lls.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/log.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/lzo.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/mathematics.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/mathematics.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/md5.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/mem.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/pca.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/pixfmt.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/random_seed.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/rational.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/rc4.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/sha1.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/timer.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/tree.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/tree.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libavutil/x86_cpu.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/Jamfile haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/rgb2rgb.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/rgb2rgb.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/rgb2rgb_template.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/swscale.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/swscale.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/swscale_internal.h haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/swscale_template.c haiku/branches/components/gallium3d/src/add-ons/media/plugins/ffmpeg/libswscale/yuv2rgb.c haiku/branches/components/gallium3d/src/add-ons/tracker/mark_as/MarkAsNew.rdef haiku/branches/components/gallium3d/src/add-ons/tracker/mark_as/MarkAsRead.rdef haiku/branches/components/gallium3d/src/add-ons/tracker/opentargetfolder/Jamfile haiku/branches/components/gallium3d/src/add-ons/translators/bmp/BMPMain.cpp haiku/branches/components/gallium3d/src/add-ons/translators/exr/main.cpp haiku/branches/components/gallium3d/src/add-ons/translators/gif/GIFTranslator.cpp haiku/branches/components/gallium3d/src/add-ons/translators/hvif/HVIFMain.cpp haiku/branches/components/gallium3d/src/add-ons/translators/ico/main.cpp haiku/branches/components/gallium3d/src/add-ons/translators/jpeg/Jamfile haiku/branches/components/gallium3d/src/add-ons/translators/pcx/main.cpp haiku/branches/components/gallium3d/src/add-ons/translators/png/PNGMain.cpp haiku/branches/components/gallium3d/src/add-ons/translators/ppm/PPMMain.cpp haiku/branches/components/gallium3d/src/add-ons/translators/raw/main.cpp haiku/branches/components/gallium3d/src/add-ons/translators/rtf/convert.cpp haiku/branches/components/gallium3d/src/add-ons/translators/rtf/main.cpp haiku/branches/components/gallium3d/src/add-ons/translators/sgi/SGIMain.cpp haiku/branches/components/gallium3d/src/add-ons/translators/stxt/STXTMain.cpp haiku/branches/components/gallium3d/src/add-ons/translators/tga/TGAMain.cpp haiku/branches/components/gallium3d/src/add-ons/translators/tiff/TIFFMain.cpp haiku/branches/components/gallium3d/src/add-ons/translators/wonderbrush/WonderBrushMain.cpp haiku/branches/components/gallium3d/src/apps/aboutsystem/AboutSystem.cpp haiku/branches/components/gallium3d/src/apps/codycam/CodyCam.cpp haiku/branches/components/gallium3d/src/apps/codycam/CodyCam.rdef haiku/branches/components/gallium3d/src/apps/codycam/VideoConsumer.cpp haiku/branches/components/gallium3d/src/apps/codycam/VideoConsumer.h haiku/branches/components/gallium3d/src/apps/deskbar/Switcher.cpp haiku/branches/components/gallium3d/src/apps/diskprobe/OpenWindow.cpp haiku/branches/components/gallium3d/src/apps/diskprobe/OpenWindow.h haiku/branches/components/gallium3d/src/apps/diskusage/App.cpp haiku/branches/components/gallium3d/src/apps/diskusage/Common.h haiku/branches/components/gallium3d/src/apps/diskusage/DiskUsage.cpp haiku/branches/components/gallium3d/src/apps/diskusage/DiskUsage.rdef haiku/branches/components/gallium3d/src/apps/diskusage/Jamfile haiku/branches/components/gallium3d/src/apps/drivesetup/DriveSetup.cpp haiku/branches/components/gallium3d/src/apps/drivesetup/Jamfile haiku/branches/components/gallium3d/src/apps/drivesetup/MainWindow.cpp haiku/branches/components/gallium3d/src/apps/drivesetup/MainWindow.h haiku/branches/components/gallium3d/src/apps/drivesetup/PartitionList.cpp haiku/branches/components/gallium3d/src/apps/drivesetup/PartitionList.h haiku/branches/components/gallium3d/src/apps/expander/Expander.rdef haiku/branches/components/gallium3d/src/apps/haiku3d/App.cpp haiku/branches/components/gallium3d/src/apps/haiku3d/Haiku3d.rdef haiku/branches/components/gallium3d/src/apps/icon-o-matic/Jamfile haiku/branches/components/gallium3d/src/apps/icon-o-matic/gui/PathListView.cpp haiku/branches/components/gallium3d/src/apps/icon-o-matic/shape/commands/AddPathsCommand.cpp haiku/branches/components/gallium3d/src/apps/installer/CopyEngine.cpp haiku/branches/components/gallium3d/src/apps/installer/CopyEngine.h haiku/branches/components/gallium3d/src/apps/installer/Jamfile haiku/branches/components/gallium3d/src/apps/installer/WorkerThread.cpp haiku/branches/components/gallium3d/src/apps/installer/WorkerThread.h haiku/branches/components/gallium3d/src/apps/mandelbrot/Mandelbrot.cpp haiku/branches/components/gallium3d/src/apps/mandelbrot/Mandelbrot.rdef haiku/branches/components/gallium3d/src/apps/mediaconverter/MediaConverter.rdef haiku/branches/components/gallium3d/src/apps/mediaplayer/MainWin.cpp haiku/branches/components/gallium3d/src/apps/mediaplayer/playlist/PlaylistWindow.cpp haiku/branches/components/gallium3d/src/apps/pairs/Pairs.cpp haiku/branches/components/gallium3d/src/apps/pairs/Pairs.rdef haiku/branches/components/gallium3d/src/apps/people/People.rdef haiku/branches/components/gallium3d/src/apps/people/PeopleApp.cpp haiku/branches/components/gallium3d/src/apps/people/PeopleApp.h haiku/branches/components/gallium3d/src/apps/people/PeopleView.cpp haiku/branches/components/gallium3d/src/apps/people/PeopleView.h haiku/branches/components/gallium3d/src/apps/people/PeopleWindow.cpp haiku/branches/components/gallium3d/src/apps/people/PeopleWindow.h haiku/branches/components/gallium3d/src/apps/people/PersonIcons.h haiku/branches/components/gallium3d/src/apps/poorman/PoorMan.rdef haiku/branches/components/gallium3d/src/apps/poorman/PoorManView.cpp haiku/branches/components/gallium3d/src/apps/poorman/PoorManView.h haiku/branches/components/gallium3d/src/apps/poorman/StatusSlider.cpp haiku/branches/components/gallium3d/src/apps/poorman/StatusSlider.h haiku/branches/components/gallium3d/src/apps/poorman/constants.cpp haiku/branches/components/gallium3d/src/apps/powerstatus/PowerStatusView.cpp haiku/branches/components/gallium3d/src/apps/processcontroller/PCWorld.cpp haiku/branches/components/gallium3d/src/apps/processcontroller/ProcessController.rdef haiku/branches/components/gallium3d/src/apps/screenshot/Screenshot.cpp haiku/branches/components/gallium3d/src/apps/screenshot/Screenshot.rdef haiku/branches/components/gallium3d/src/apps/screenshot/ScreenshotWindow.cpp haiku/branches/components/gallium3d/src/apps/showimage/ShowImageWindow.cpp haiku/branches/components/gallium3d/src/apps/terminal/TermParse.cpp haiku/branches/components/gallium3d/src/apps/terminal/TermParse.h haiku/branches/components/gallium3d/src/apps/terminal/TermWindow.cpp haiku/branches/components/gallium3d/src/apps/text_search/GlobalDefs.h haiku/branches/components/gallium3d/src/apps/text_search/TextSearch.cpp haiku/branches/components/gallium3d/src/apps/text_search/TextSearch.rdef haiku/branches/components/gallium3d/src/apps/tv/config.h haiku/branches/components/gallium3d/src/apps/tv/tv.rdef haiku/branches/components/gallium3d/src/apps/workspaces/Workspaces.cpp haiku/branches/components/gallium3d/src/bin/clockconfig.c haiku/branches/components/gallium3d/src/bin/coreutils/AUTHORS haiku/branches/components/gallium3d/src/bin/coreutils/ChangeLog haiku/branches/components/gallium3d/src/bin/coreutils/ChangeLog-2005 haiku/branches/components/gallium3d/src/bin/coreutils/ChangeLog-2006 haiku/branches/components/gallium3d/src/bin/coreutils/ChangeLog-2007 haiku/branches/components/gallium3d/src/bin/coreutils/ChangeLog-2008 haiku/branches/components/gallium3d/src/bin/coreutils/INSTALL haiku/branches/components/gallium3d/src/bin/coreutils/Makefile.am haiku/branches/components/gallium3d/src/bin/coreutils/Makefile.in haiku/branches/components/gallium3d/src/bin/coreutils/NEWS haiku/branches/components/gallium3d/src/bin/coreutils/README haiku/branches/components/gallium3d/src/bin/coreutils/THANKS haiku/branches/components/gallium3d/src/bin/coreutils/aclocal.m4 haiku/branches/components/gallium3d/src/bin/coreutils/bootstrap haiku/branches/components/gallium3d/src/bin/coreutils/bootstrap.conf haiku/branches/components/gallium3d/src/bin/coreutils/configure haiku/branches/components/gallium3d/src/bin/coreutils/configure.ac haiku/branches/components/gallium3d/src/bin/coreutils/doc/ChangeLog-2007 haiku/branches/components/gallium3d/src/bin/coreutils/doc/Makefile.in haiku/branches/components/gallium3d/src/bin/coreutils/doc/coreutils.info haiku/branches/components/gallium3d/src/bin/coreutils/doc/coreutils.texi haiku/branches/components/gallium3d/src/bin/coreutils/doc/perm.texi haiku/branches/components/gallium3d/src/bin/coreutils/doc/stamp-vti haiku/branches/components/gallium3d/src/bin/coreutils/doc/version.texi haiku/branches/components/gallium3d/src/bin/coreutils/lib/ChangeLog-2007 haiku/branches/components/gallium3d/src/bin/coreutils/lib/Makefile.in haiku/branches/components/gallium3d/src/bin/coreutils/lib/argv-iter.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/buffer-lcm.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/config.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/config.hin haiku/branches/components/gallium3d/src/bin/coreutils/lib/dup2.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/errno.in.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/error.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/euidaccess-stat.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/exclude.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/exclude.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/fchdir.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/fd-reopen.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/fd-reopen.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/fflush.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/fnmatch.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/fpurge.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/fseeko.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/fts.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/getdate.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/getdelim.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/gethostname.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/getloadavg.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/gettimeofday.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/getugroups.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/gnulib.mk haiku/branches/components/gallium3d/src/bin/coreutils/lib/hash.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/hash.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/iconv_open-aix.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/iconv_open-hpux.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/iconv_open-irix.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/iconv_open-osf.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/math.in.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/md5.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/memxfrm.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/mgetgroups.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/open-safer.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/open.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/openat.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/rand-isaac.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/rand-isaac.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/randint.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/randint.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/randperm.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/randread.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/root-dev-ino.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/root-dev-ino.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/selinux-at.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/sha1.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/sha256.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/sha512.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/stdio-write.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/stdio.in.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/stdlib.in.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/strerror.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/string.in.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/strintcmp.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/strnumcmp-in.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/strnumcmp.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/sys_select.in.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/sys_socket.in.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/tempname.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/tempname.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/time.in.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/unistd.in.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/vasnprintf.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/version-etc.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/version-etc.h haiku/branches/components/gallium3d/src/bin/coreutils/lib/write.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/xfreopen.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/xfts.c haiku/branches/components/gallium3d/src/bin/coreutils/lib/xmemxfrm.c haiku/branches/components/gallium3d/src/bin/coreutils/man/Makefile.am haiku/branches/components/gallium3d/src/bin/coreutils/man/Makefile.in haiku/branches/components/gallium3d/src/bin/coreutils/man/base64.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/basename.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/cat.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/chcon.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/chgrp.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/chmod.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/chmod.x haiku/branches/components/gallium3d/src/bin/coreutils/man/chown.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/chown.x haiku/branches/components/gallium3d/src/bin/coreutils/man/chroot.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/cksum.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/comm.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/comm.x haiku/branches/components/gallium3d/src/bin/coreutils/man/cp.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/csplit.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/cut.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/date.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/dd.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/df.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/df.x haiku/branches/components/gallium3d/src/bin/coreutils/man/dir.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/dircolors.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/dirname.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/du.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/du.x haiku/branches/components/gallium3d/src/bin/coreutils/man/echo.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/env.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/expand.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/expr.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/factor.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/false.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/fmt.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/fold.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/groups.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/head.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/hostid.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/id.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/install.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/join.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/join.x haiku/branches/components/gallium3d/src/bin/coreutils/man/kill.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/link.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/ln.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/logname.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/ls.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/md5sum.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/mkdir.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/mkfifo.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/mknod.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/mktemp.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/mv.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/nice.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/nl.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/nohup.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/od.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/paste.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/pathchk.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/pinky.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/pr.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/printenv.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/printf.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/ptx.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/pwd.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/readlink.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/readlink.x haiku/branches/components/gallium3d/src/bin/coreutils/man/rm.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/rm.x haiku/branches/components/gallium3d/src/bin/coreutils/man/rmdir.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/runcon.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/seq.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/sha1sum.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/sha224sum.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/sha256sum.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/sha384sum.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/sha512sum.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/shred.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/shuf.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/sleep.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/sort.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/split.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/stat.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/stty.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/sum.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/sync.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/tac.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/tail.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/tee.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/test.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/timeout.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/touch.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/tr.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/true.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/truncate.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/tsort.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/tty.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/uname.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/unexpand.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/uniq.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/uniq.x haiku/branches/components/gallium3d/src/bin/coreutils/man/unlink.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/uptime.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/users.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/vdir.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/wc.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/who.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/whoami.1 haiku/branches/components/gallium3d/src/bin/coreutils/man/yes.1 haiku/branches/components/gallium3d/src/bin/coreutils/src/Makefile.am haiku/branches/components/gallium3d/src/bin/coreutils/src/Makefile.in haiku/branches/components/gallium3d/src/bin/coreutils/src/base64.c haiku/branches/components/gallium3d/src/bin/coreutils/src/basename.c haiku/branches/components/gallium3d/src/bin/coreutils/src/chcon.c haiku/branches/components/gallium3d/src/bin/coreutils/src/chown-core.c haiku/branches/components/gallium3d/src/bin/coreutils/src/chown-core.h haiku/branches/components/gallium3d/src/bin/coreutils/src/chroot.c haiku/branches/components/gallium3d/src/bin/coreutils/src/cksum.c haiku/branches/components/gallium3d/src/bin/coreutils/src/comm.c haiku/branches/components/gallium3d/src/bin/coreutils/src/copy.c haiku/branches/components/gallium3d/src/bin/coreutils/src/copy.h haiku/branches/components/gallium3d/src/bin/coreutils/src/cp-hash.c haiku/branches/components/gallium3d/src/bin/coreutils/src/cp.c haiku/branches/components/gallium3d/src/bin/coreutils/src/csplit.c haiku/branches/components/gallium3d/src/bin/coreutils/src/cut.c haiku/branches/components/gallium3d/src/bin/coreutils/src/date.c haiku/branches/components/gallium3d/src/bin/coreutils/src/dcgen haiku/branches/components/gallium3d/src/bin/coreutils/src/dd.c haiku/branches/components/gallium3d/src/bin/coreutils/src/dircolors.c haiku/branches/components/gallium3d/src/bin/coreutils/src/dircolors.h haiku/branches/components/gallium3d/src/bin/coreutils/src/dircolors.hin haiku/branches/components/gallium3d/src/bin/coreutils/src/dirname.c haiku/branches/components/gallium3d/src/bin/coreutils/src/env.c haiku/branches/components/gallium3d/src/bin/coreutils/src/expr.c haiku/branches/components/gallium3d/src/bin/coreutils/src/extract-magic haiku/branches/components/gallium3d/src/bin/coreutils/src/factor.c haiku/branches/components/gallium3d/src/bin/coreutils/src/fmt.c haiku/branches/components/gallium3d/src/bin/coreutils/src/fold.c haiku/branches/components/gallium3d/src/bin/coreutils/src/getlimits.c haiku/branches/components/gallium3d/src/bin/coreutils/src/group-list.h haiku/branches/components/gallium3d/src/bin/coreutils/src/groups.c haiku/branches/components/gallium3d/src/bin/coreutils/src/head.c haiku/branches/components/gallium3d/src/bin/coreutils/src/hostname.c haiku/branches/components/gallium3d/src/bin/coreutils/src/install.c haiku/branches/components/gallium3d/src/bin/coreutils/src/join.c haiku/branches/components/gallium3d/src/bin/coreutils/src/kill.c haiku/branches/components/gallium3d/src/bin/coreutils/src/link.c haiku/branches/components/gallium3d/src/bin/coreutils/src/logname.c haiku/branches/components/gallium3d/src/bin/coreutils/src/ls.c haiku/branches/components/gallium3d/src/bin/coreutils/src/md5sum.c haiku/branches/components/gallium3d/src/bin/coreutils/src/mkdir.c haiku/branches/components/gallium3d/src/bin/coreutils/src/mkfifo.c haiku/branches/components/gallium3d/src/bin/coreutils/src/mknod.c haiku/branches/components/gallium3d/src/bin/coreutils/src/mktemp.c haiku/branches/components/gallium3d/src/bin/coreutils/src/mv.c haiku/branches/components/gallium3d/src/bin/coreutils/src/nice.c haiku/branches/components/gallium3d/src/bin/coreutils/src/nl.c haiku/branches/components/gallium3d/src/bin/coreutils/src/nohup.c haiku/branches/components/gallium3d/src/bin/coreutils/src/od.c haiku/branches/components/gallium3d/src/bin/coreutils/src/operand2sig.h haiku/branches/components/gallium3d/src/bin/coreutils/src/paste.c haiku/branches/components/gallium3d/src/bin/coreutils/src/pinky.c haiku/branches/components/gallium3d/src/bin/coreutils/src/printenv.c haiku/branches/components/gallium3d/src/bin/coreutils/src/prog-fprintf.c haiku/branches/components/gallium3d/src/bin/coreutils/src/readlink.c haiku/branches/components/gallium3d/src/bin/coreutils/src/remove.c haiku/branches/components/gallium3d/src/bin/coreutils/src/remove.h haiku/branches/components/gallium3d/src/bin/coreutils/src/rm.c haiku/branches/components/gallium3d/src/bin/coreutils/src/rmdir.c haiku/branches/components/gallium3d/src/bin/coreutils/src/runcon.c haiku/branches/components/gallium3d/src/bin/coreutils/src/setuidgid.c haiku/branches/components/gallium3d/src/bin/coreutils/src/shuf.c haiku/branches/components/gallium3d/src/bin/coreutils/src/sleep.c haiku/branches/components/gallium3d/src/bin/coreutils/src/sort.c haiku/branches/components/gallium3d/src/bin/coreutils/src/split.c haiku/branches/components/gallium3d/src/bin/coreutils/src/su.c haiku/branches/components/gallium3d/src/bin/coreutils/src/sum.c haiku/branches/components/gallium3d/src/bin/coreutils/src/sync.c haiku/branches/components/gallium3d/src/bin/coreutils/src/system.h haiku/branches/components/gallium3d/src/bin/coreutils/src/tac-pipe.c haiku/branches/components/gallium3d/src/bin/coreutils/src/tac.c haiku/branches/components/gallium3d/src/bin/coreutils/src/tail.c haiku/branches/components/gallium3d/src/bin/coreutils/src/tee.c haiku/branches/components/gallium3d/src/bin/coreutils/src/timeout.c haiku/branches/components/gallium3d/src/bin/coreutils/src/tr.c haiku/branches/components/gallium3d/src/bin/coreutils/src/true.c haiku/branches/components/gallium3d/src/bin/coreutils/src/truncate.c haiku/branches/components/gallium3d/src/bin/coreutils/src/tsort.c haiku/branches/components/gallium3d/src/bin/coreutils/src/tty.c haiku/branches/components/gallium3d/src/bin/coreutils/src/uname.c haiku/branches/components/gallium3d/src/bin/coreutils/src/uniq.c haiku/branches/components/gallium3d/src/bin/coreutils/src/unlink.c haiku/branches/components/gallium3d/src/bin/coreutils/src/uptime.c haiku/branches/components/gallium3d/src/bin/coreutils/src/users.c haiku/branches/components/gallium3d/src/bin/coreutils/src/wheel-gen.pl haiku/branches/components/gallium3d/src/bin/coreutils/src/who.c haiku/branches/components/gallium3d/src/bin/coreutils/src/whoami.c haiku/branches/components/gallium3d/src/bin/coreutils/src/yes.c haiku/branches/components/gallium3d/src/bin/debug/strace/strace.cpp haiku/branches/components/gallium3d/src/bin/listdev/listdev.c haiku/branches/components/gallium3d/src/bin/makebootable/platform/bios_ia32/makebootable.cpp haiku/branches/components/gallium3d/src/bin/mount.c haiku/branches/components/gallium3d/src/bin/network/Jamfile haiku/branches/components/gallium3d/src/bin/network/traceroute/findsaddr-haiku.c haiku/branches/components/gallium3d/src/bin/rescan.c haiku/branches/components/gallium3d/src/bin/urlwrapper.cpp haiku/branches/components/gallium3d/src/build/libbe/support/Jamfile haiku/branches/components/gallium3d/src/build/libroot/fs_attr_untyped.cpp haiku/branches/components/gallium3d/src/build/libroot/fs_attr_xattr.h haiku/branches/components/gallium3d/src/data/beos_mime/application.super haiku/branches/components/gallium3d/src/data/beos_mime/application/msword haiku/branches/components/gallium3d/src/data/beos_mime/application/ogg haiku/branches/components/gallium3d/src/data/beos_mime/application/x-7z-compressed haiku/branches/components/gallium3d/src/data/beos_mime/application/x-bzip2 haiku/branches/components/gallium3d/src/data/beos_mime/application/x-gzip haiku/branches/components/gallium3d/src/data/beos_mime/application/x-lharc haiku/branches/components/gallium3d/src/data/beos_mime/application/x-tar haiku/branches/components/gallium3d/src/data/beos_mime/application/zip haiku/branches/components/gallium3d/src/data/beos_mime/audio/ac3 haiku/branches/components/gallium3d/src/data/beos_mime/image.super haiku/branches/components/gallium3d/src/data/etc/keymaps/Colemak.keymap haiku/branches/components/gallium3d/src/data/etc/timezones/africa haiku/branches/components/gallium3d/src/data/etc/timezones/antarctica haiku/branches/components/gallium3d/src/data/etc/timezones/asia haiku/branches/components/gallium3d/src/data/etc/timezones/australasia haiku/branches/components/gallium3d/src/data/etc/timezones/backward haiku/branches/components/gallium3d/src/data/etc/timezones/etcetera haiku/branches/components/gallium3d/src/data/etc/timezones/europe haiku/branches/components/gallium3d/src/data/etc/timezones/factory haiku/branches/components/gallium3d/src/data/etc/timezones/iso3166.tab haiku/branches/components/gallium3d/src/data/etc/timezones/leapseconds haiku/branches/components/gallium3d/src/data/etc/timezones/northamerica haiku/branches/components/gallium3d/src/data/etc/timezones/pacificnew haiku/branches/components/gallium3d/src/data/etc/timezones/solar87 haiku/branches/components/gallium3d/src/data/etc/timezones/solar88 haiku/branches/components/gallium3d/src/data/etc/timezones/solar89 haiku/branches/components/gallium3d/src/data/etc/timezones/southamerica haiku/branches/components/gallium3d/src/data/etc/timezones/systemv haiku/branches/components/gallium3d/src/data/etc/timezones/zone.tab haiku/branches/components/gallium3d/src/kits/Jamfile haiku/branches/components/gallium3d/src/kits/app/MessageAdapter.cpp haiku/branches/components/gallium3d/src/kits/app/RegistrarDefs.cpp haiku/branches/components/gallium3d/src/kits/bluetooth/UI/PincodeWindow.cpp haiku/branches/components/gallium3d/src/kits/device/A2D.cpp haiku/branches/components/gallium3d/src/kits/device/D2A.cpp haiku/branches/components/gallium3d/src/kits/game/DirectWindow.cpp haiku/branches/components/gallium3d/src/kits/game/GameSoundDevice.cpp haiku/branches/components/gallium3d/src/kits/game/WindowScreen.cpp haiku/branches/components/gallium3d/src/kits/interface/Bitmap.cpp haiku/branches/components/gallium3d/src/kits/interface/ChannelSlider.cpp haiku/branches/components/gallium3d/src/kits/interface/CheckBox.cpp haiku/branches/components/gallium3d/src/kits/interface/ColumnListView.cpp haiku/branches/components/gallium3d/src/kits/interface/InterfaceDefs.cpp haiku/branches/components/gallium3d/src/kits/interface/Jamfile haiku/branches/components/gallium3d/src/kits/interface/ListView.cpp haiku/branches/components/gallium3d/src/kits/interface/Menu.cpp haiku/branches/components/gallium3d/src/kits/interface/MenuBar.cpp haiku/branches/components/gallium3d/src/kits/interface/MenuWindow.cpp haiku/branches/components/gallium3d/src/kits/interface/PictureButton.cpp haiku/branches/components/gallium3d/src/kits/interface/Polygon.cpp haiku/branches/components/gallium3d/src/kits/interface/PrivateScreen.cpp haiku/branches/components/gallium3d/src/kits/interface/Screen.cpp haiku/branches/components/gallium3d/src/kits/interface/ScrollBar.cpp haiku/branches/components/gallium3d/src/kits/interface/ScrollView.cpp haiku/branches/components/gallium3d/src/kits/interface/StatusBar.cpp haiku/branches/components/gallium3d/src/kits/interface/StringView.cpp haiku/branches/components/gallium3d/src/kits/interface/TabView.cpp haiku/branches/components/gallium3d/src/kits/interface/View.cpp haiku/branches/components/gallium3d/src/kits/interface/Window.cpp haiku/branches/components/gallium3d/src/kits/media/MediaDefs.cpp haiku/branches/components/gallium3d/src/kits/media/MediaFiles.cpp haiku/branches/components/gallium3d/src/kits/media/MediaNode.cpp haiku/branches/components/gallium3d/src/kits/media/TimeCode.cpp haiku/branches/components/gallium3d/src/kits/opengl/GLView.cpp haiku/branches/components/gallium3d/src/kits/shared/CommandPipe.cpp haiku/branches/components/gallium3d/src/kits/shared/Jamfile haiku/branches/components/gallium3d/src/kits/storage/Directory.cpp haiku/branches/components/gallium3d/src/kits/storage/Entry.cpp haiku/branches/components/gallium3d/src/kits/storage/Jamfile haiku/branches/components/gallium3d/src/kits/storage/Node.cpp haiku/branches/components/gallium3d/src/kits/storage/Volume.cpp haiku/branches/components/gallium3d/src/kits/support/Locker.cpp haiku/branches/components/gallium3d/src/kits/tracker/ContainerWindow.cpp haiku/branches/components/gallium3d/src/kits/tracker/DesktopPoseView.cpp haiku/branches/components/gallium3d/src/kits/tracker/FSUtils.cpp haiku/branches/components/gallium3d/src/kits/tracker/FavoritesConfig.cpp haiku/branches/components/gallium3d/src/kits/tracker/FilePanelPriv.cpp haiku/branches/components/gallium3d/src/kits/tracker/Pose.cpp haiku/branches/components/gallium3d/src/kits/tracker/Pose.h haiku/branches/components/gallium3d/src/kits/tracker/PoseView.cpp haiku/branches/components/gallium3d/src/kits/tracker/SettingsViews.cpp haiku/branches/components/gallium3d/src/kits/tracker/TextWidget.cpp haiku/branches/components/gallium3d/src/kits/tracker/TextWidget.h haiku/branches/components/gallium3d/src/kits/tracker/TrackerSettings.cpp haiku/branches/components/gallium3d/src/kits/translation/BitmapStream.cpp haiku/branches/components/gallium3d/src/libs/Jamfile haiku/branches/components/gallium3d/src/libs/fluidsynth/AUTHORS haiku/branches/components/gallium3d/src/libs/fluidsynth/src/config.h haiku/branches/components/gallium3d/src/libs/fluidsynth/src/fluid_adriver.c haiku/branches/components/gallium3d/src/libs/fluidsynth/src/fluid_chan.c haiku/branches/components/gallium3d/src/libs/fluidsynth/src/fluid_chan.h haiku/branches/components/gallium3d/src/libs/fluidsynth/src/fluid_conv.h haiku/branches/components/gallium3d/src/libs/fluidsynth/src/fluid_defsfont.c haiku/branches/components/gallium3d/src/libs/fluidsynth/src/fluid_mdriver.c haiku/branches/components/gallium3d/src/libs/fluidsynth/src/fluid_midi.c haiku/branches/components/gallium3d/src/libs/fluidsynth/src/fluid_midi.h haiku/branches/components/gallium3d/src/libs/fluidsynth/src/fluid_mod.c haiku/branches/components/gallium3d/src/libs/fluidsynth/src/fluid_synth.c haiku/branches/components/gallium3d/src/libs/fluidsynth/src/fluid_synth.h haiku/branches/components/gallium3d/src/libs/fluidsynth/src/fluid_sys.c haiku/branches/components/gallium3d/src/libs/fluidsynth/src/fluid_sys.h haiku/branches/components/gallium3d/src/libs/fluidsynth/src/fluid_voice.c haiku/branches/components/gallium3d/src/libs/fluidsynth/src/fluidsynth.c haiku/branches/components/gallium3d/src/libs/gnu/xattr.cpp haiku/branches/components/gallium3d/src/libs/png/LICENSE haiku/branches/components/gallium3d/src/libs/png/png.c haiku/branches/components/gallium3d/src/libs/png/pngerror.c haiku/branches/components/gallium3d/src/libs/png/pngget.c haiku/branches/components/gallium3d/src/libs/png/pngmem.c haiku/branches/components/gallium3d/src/libs/png/pngpread.c haiku/branches/components/gallium3d/src/libs/png/pngread.c haiku/branches/components/gallium3d/src/libs/png/pngrio.c haiku/branches/components/gallium3d/src/libs/png/pngrtran.c haiku/branches/components/gallium3d/src/libs/png/pngrutil.c haiku/branches/components/gallium3d/src/libs/png/pngset.c haiku/branches/components/gallium3d/src/libs/png/pngtrans.c haiku/branches/components/gallium3d/src/libs/png/pngwio.c haiku/branches/components/gallium3d/src/libs/png/pngwrite.c haiku/branches/components/gallium3d/src/libs/png/pngwtran.c haiku/branches/components/gallium3d/src/libs/png/pngwutil.c haiku/branches/components/gallium3d/src/preferences/appearance/Appearance.rdef haiku/branches/components/gallium3d/src/preferences/appearance/defs.h haiku/branches/components/gallium3d/src/preferences/backgrounds/Backgrounds.cpp haiku/branches/components/gallium3d/src/preferences/backgrounds/BackgroundsView.cpp haiku/branches/components/gallium3d/src/preferences/backgrounds/BackgroundsView.h haiku/branches/components/gallium3d/src/preferences/bluetooth/BluetoothSettingsView.cpp haiku/branches/components/gallium3d/src/preferences/datatranslations/DataTranslations.cpp haiku/branches/components/gallium3d/src/preferences/datatranslations/DataTranslations.rdef haiku/branches/components/gallium3d/src/preferences/devices/Devices.cpp haiku/branches/components/gallium3d/src/preferences/devices/Devices.rdef haiku/branches/components/gallium3d/src/preferences/devices/pci.ids haiku/branches/components/gallium3d/src/preferences/dun/DUN.cpp haiku/branches/components/gallium3d/src/preferences/dun/DUN.rdef haiku/branches/components/gallium3d/src/preferences/mouse/Mouse.cpp haiku/branches/components/gallium3d/src/preferences/mouse/Mouse.h haiku/branches/components/gallium3d/src/preferences/mouse/MouseConstants.h haiku/branches/components/gallium3d/src/preferences/mouse/MouseSettings.cpp haiku/branches/components/gallium3d/src/preferences/mouse/MouseSettings.h haiku/branches/components/gallium3d/src/preferences/mouse/MouseView.cpp haiku/branches/components/gallium3d/src/preferences/mouse/MouseView.h haiku/branches/components/gallium3d/src/preferences/mouse/MouseWindow.cpp haiku/branches/components/gallium3d/src/preferences/mouse/MouseWindow.h haiku/branches/components/gallium3d/src/preferences/mouse/SettingsView.cpp haiku/branches/components/gallium3d/src/preferences/mouse/SettingsView.h haiku/branches/components/gallium3d/src/preferences/screen/AlertView.cpp haiku/branches/components/gallium3d/src/preferences/screen/AlertView.h haiku/branches/components/gallium3d/src/preferences/screen/MonitorView.cpp haiku/branches/components/gallium3d/src/preferences/screen/MonitorView.h haiku/branches/components/gallium3d/src/preferences/screen/ScreenWindow.cpp haiku/branches/components/gallium3d/src/preferences/time/DateTimeEdit.cpp haiku/branches/components/gallium3d/src/preferences/time/TZDisplay.cpp haiku/branches/components/gallium3d/src/preferences/virtualmemory/SettingsWindow.cpp haiku/branches/components/gallium3d/src/servers/app/AppServer.cpp haiku/branches/components/gallium3d/src/servers/app/BitmapManager.cpp haiku/branches/components/gallium3d/src/servers/app/BitmapManager.h haiku/branches/components/gallium3d/src/servers/app/DefaultDecorator.cpp haiku/branches/components/gallium3d/src/servers/app/Desktop.cpp haiku/branches/components/gallium3d/src/servers/app/Desktop.h haiku/branches/components/gallium3d/src/servers/app/DesktopSettings.cpp haiku/branches/components/gallium3d/src/servers/app/Jamfile haiku/branches/components/gallium3d/src/servers/app/MultiLocker.h haiku/branches/components/gallium3d/src/servers/app/Screen.cpp haiku/branches/components/gallium3d/src/servers/app/Screen.h haiku/branches/components/gallium3d/src/servers/app/ScreenManager.cpp haiku/branches/components/gallium3d/src/servers/app/ServerApp.cpp haiku/branches/components/gallium3d/src/servers/app/ServerApp.h haiku/branches/components/gallium3d/src/servers/app/ServerWindow.cpp haiku/branches/components/gallium3d/src/servers/app/ServerWindow.h haiku/branches/components/gallium3d/src/servers/app/View.cpp haiku/branches/components/gallium3d/src/servers/app/VirtualScreen.cpp haiku/branches/components/gallium3d/src/servers/app/VirtualScreen.h haiku/branches/components/gallium3d/src/servers/app/Window.cpp haiku/branches/components/gallium3d/src/servers/app/Window.h haiku/branches/components/gallium3d/src/servers/app/Workspace.cpp haiku/branches/components/gallium3d/src/servers/app/Workspace.h haiku/branches/components/gallium3d/src/servers/app/WorkspacePrivate.h haiku/branches/components/gallium3d/src/servers/app/WorkspacesView.cpp haiku/branches/components/gallium3d/src/servers/app/drawing/AccelerantHWInterface.cpp haiku/branches/components/gallium3d/src/servers/app/drawing/AccelerantHWInterface.h haiku/branches/components/gallium3d/src/servers/app/drawing/BitmapHWInterface.cpp haiku/branches/components/gallium3d/src/servers/app/drawing/BitmapHWInterface.h haiku/branches/components/gallium3d/src/servers/app/drawing/DWindowHWInterface.cpp haiku/branches/components/gallium3d/src/servers/app/drawing/DWindowHWInterface.h haiku/branches/components/gallium3d/src/servers/app/drawing/HWInterface.cpp haiku/branches/components/gallium3d/src/servers/app/drawing/HWInterface.h haiku/branches/components/gallium3d/src/servers/app/drawing/ViewHWInterface.cpp haiku/branches/components/gallium3d/src/servers/app/drawing/ViewHWInterface.h haiku/branches/components/gallium3d/src/servers/input/InputServer.cpp haiku/branches/components/gallium3d/src/servers/input/InputServer.h haiku/branches/components/gallium3d/src/servers/registrar/ShutdownProcess.cpp haiku/branches/components/gallium3d/src/system/boot/loader/Jamfile haiku/branches/components/gallium3d/src/system/boot/loader/load_driver_settings.cpp haiku/branches/components/gallium3d/src/system/boot/loader/menu.cpp haiku/branches/components/gallium3d/src/system/boot/platform/bios_ia32/acpi.cpp haiku/branches/components/gallium3d/src/system/boot/platform/bios_ia32/acpi.h haiku/branches/components/gallium3d/src/system/boot/platform/bios_ia32/smp.cpp haiku/branches/components/gallium3d/src/system/boot/platform/bios_ia32/stage1.S haiku/branches/components/gallium3d/src/system/boot/platform/bios_ia32/stage1.bin haiku/branches/components/gallium3d/src/system/kernel/arch/mipsel/Jamfile haiku/branches/components/gallium3d/src/system/kernel/arch/mipsel/arch_asm.S haiku/branches/components/gallium3d/src/system/kernel/arch/mipsel/arch_cpu.cpp haiku/branches/components/gallium3d/src/system/kernel/arch/mipsel/arch_debug_console.cpp haiku/branches/components/gallium3d/src/system/kernel/arch/mipsel/arch_int.cpp haiku/branches/components/gallium3d/src/system/kernel/arch/mipsel/arch_platform.cpp haiku/branches/components/gallium3d/src/system/kernel/arch/mipsel/arch_real_time_clock.cpp haiku/branches/components/gallium3d/src/system/kernel/arch/mipsel/arch_system_info.cpp haiku/branches/components/gallium3d/src/system/kernel/arch/mipsel/arch_thread.c haiku/branches/components/gallium3d/src/system/kernel/arch/mipsel/arch_vm.cpp haiku/branches/components/gallium3d/src/system/kernel/arch/mipsel/arch_vm_translation_map.cpp haiku/branches/components/gallium3d/src/system/kernel/debug/Jamfile haiku/branches/components/gallium3d/src/system/kernel/debug/debug.cpp haiku/branches/components/gallium3d/src/system/kernel/device_manager/IORequest.cpp haiku/branches/components/gallium3d/src/system/kernel/device_manager/IORequest.h haiku/branches/components/gallium3d/src/system/kernel/device_manager/IOScheduler.cpp haiku/branches/components/gallium3d/src/system/kernel/device_manager/Jamfile haiku/branches/components/gallium3d/src/system/kernel/device_manager/devfs.cpp haiku/branches/components/gallium3d/src/system/kernel/disk_device_manager/KDiskDeviceManager.cpp haiku/branches/components/gallium3d/src/system/kernel/disk_device_manager/KPartition.cpp haiku/branches/components/gallium3d/src/system/kernel/fs/rootfs.cpp haiku/branches/components/gallium3d/src/system/kernel/fs/vfs.cpp haiku/branches/components/gallium3d/src/system/kernel/fs/vfs_boot.cpp haiku/branches/components/gallium3d/src/system/kernel/fs/vfs_request_io.cpp haiku/branches/components/gallium3d/src/system/kernel/heap.cpp haiku/branches/components/gallium3d/src/system/kernel/module.cpp haiku/branches/components/gallium3d/src/system/kernel/scheduler/scheduler.cpp haiku/branches/components/gallium3d/src/system/kernel/scheduler/scheduler_affine.cpp haiku/branches/components/gallium3d/src/system/kernel/scheduler/scheduler_simple.cpp haiku/branches/components/gallium3d/src/system/kernel/sem.cpp haiku/branches/components/gallium3d/src/system/kernel/signal.cpp haiku/branches/components/gallium3d/src/system/kernel/smp.cpp haiku/branches/components/gallium3d/src/system/kernel/team.cpp haiku/branches/components/gallium3d/src/system/kernel/thread.cpp haiku/branches/components/gallium3d/src/system/kernel/vm/vm_page.cpp haiku/branches/components/gallium3d/src/system/libroot/os/Jamfile haiku/branches/components/gallium3d/src/system/libroot/os/fs_attr.cpp haiku/branches/components/gallium3d/src/system/libroot/os/fs_index.c haiku/branches/components/gallium3d/src/system/libroot/os/fs_query.cpp haiku/branches/components/gallium3d/src/system/libroot/posix/Jamfile haiku/branches/components/gallium3d/src/system/libroot/posix/arch/mipsel/Jamfile haiku/branches/components/gallium3d/src/system/libroot/posix/arch/mipsel/setjmp_internal.h haiku/branches/components/gallium3d/src/system/libroot/posix/arch/mipsel/siglongjmp.S haiku/branches/components/gallium3d/src/system/libroot/posix/arch/mipsel/sigsetjmp.S haiku/branches/components/gallium3d/src/system/libroot/posix/dirent.c haiku/branches/components/gallium3d/src/system/libroot/posix/glob.c haiku/branches/components/gallium3d/src/system/libroot/posix/string/strerror.c haiku/branches/components/gallium3d/src/system/libroot/posix/sys/utimes.c haiku/branches/components/gallium3d/src/system/libroot/posix/utime.c haiku/branches/components/gallium3d/src/tests/add-ons/kernel/busses/Jamfile haiku/branches/components/gallium3d/src/tests/kits/Jamfile haiku/branches/components/gallium3d/src/tests/kits/game/chart/ChartRender.cpp haiku/branches/components/gallium3d/src/tests/kits/game/chart/ChartWindow.cpp haiku/branches/components/gallium3d/src/tests/servers/app/Jamfile haiku/branches/components/gallium3d/src/tests/servers/app/NOTES haiku/branches/components/gallium3d/src/tests/servers/registrar/Jamfile haiku/branches/components/gallium3d/src/tests/system/libroot/posix/dirent_test.cpp Log: merged changes from trunk r32501-r32984 Modified: haiku/branches/components/gallium3d/3rdparty/mmu_man/onlinedemo/haiku.php =================================================================== --- haiku/branches/components/gallium3d/3rdparty/mmu_man/onlinedemo/haiku.php 2009-09-07 06:08:05 UTC (rev 32984) +++ haiku/branches/components/gallium3d/3rdparty/mmu_man/onlinedemo/haiku.php 2009-09-07 18:09:35 UTC (rev 32985) @@ -2,7 +2,9 @@ /* * haiku.php - an online Haiku demo using qemu and vnc. - * Copyright 2007, Francois Revol, revol at free.fr. + * + * Copyright 2007-2009, Francois Revol, revol at free.fr. + * Distributed under the terms of the MIT License. */ // parts inspired by the Free Live OS Zoo @@ -34,6 +36,13 @@ define("VNCJAR", "VncViewer.jar"); define("VNCCLASS", "VncViewer.class"); +// do not show applet controls +define("VNC_HIDE_CONTROLS", true); + +// generate and use (plain text) passwords +// NOT IMPLEMENTED +//define("VNC_USE_PASS", true); + // maximum count of qemu instances. define("MAX_QEMUS", 2); @@ -577,7 +586,8 @@ echo "[connection]\n"; echo "host=" . vnc_addr() . "\n"; echo "port=" . vnc_display() . "\n"; - //echo "password=XXX\n"; + if (defined('VNC_USE_PASS') && VNC_USE_PASS) + echo "password=" . $_SESSION['VNC_PASS'] . "\n"; //echo "[options]\n"; // cf. http://www.realvnc.com/pipermail/vnc-list/1999-December/011086.html // cf. http://www.tek-tips.com/viewthread.cfm?qid=1173303&page=1 @@ -638,7 +648,12 @@ //not needed //echo "\n"; echo "\n"; - echo "\n"; + $pass = ''; + if (defined('VNC_USE_PASS') && VNC_USE_PASS) + $pass = $_SESSION['VNC_PASS']; + echo "\n"; + if (defined("VNC_HIDE_CONTROLS") && VNC_HIDE_CONTROLS) + echo "\n"; //echo ""; echo "\n"; echo "\n"; Modified: haiku/branches/components/gallium3d/build/jam/BuildSetup =================================================================== --- haiku/branches/components/gallium3d/build/jam/BuildSetup 2009-09-07 06:08:05 UTC (rev 32984) +++ haiku/branches/components/gallium3d/build/jam/BuildSetup 2009-09-07 18:09:35 UTC (rev 32985) @@ -233,10 +233,11 @@ { HAIKU_DEFINES += __MIPSEL__ ; # RouterBOARD firmware (ELF image over TFTP) - HAIKU_BOOT_PLATFORM = routerboot_mipsel ; + HAIKU_BOOT_PLATFORM = routerboard_mipsel ; # offset in floppy image (>= sizeof(haiku_loader)) - HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 192 ; # in kB - todo/fixme - HAIKU_NO_WERROR = 1 ; # we use #warning as placeholders for things to write... + HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET = 192 ; # in kB + HAIKU_NO_WERROR = 1 ; + # we use #warning as placeholders for things to write... } case * : Exit "Currently unsupported target CPU:" $(HAIKU_CPU) ; @@ -245,7 +246,7 @@ HAIKU_ARCH_MACRO_DEFINE = ARCH_$(HAIKU_ARCH) ; HAIKU_DEFINES += $(HAIKU_ARCH_MACRO_DEFINE) ; HAIKU_DEFINES += BOOT_ARCHIVE_IMAGE_OFFSET=$(HAIKU_BOOT_ARCHIVE_IMAGE_OFFSET) ; -HAIKU_ATA_STACK ?= 0 ; +HAIKU_ATA_STACK ?= 1 ; # directories HAIKU_OBJECT_BASE_DIR = [ FDirName $(HAIKU_OBJECT_DIR) haiku ] ; @@ -322,6 +323,18 @@ HAIKU_C++FLAGS += [ FDefines DEBUG_PRINTF=$(DEBUG_PRINTF) ] ; } +# If the environment variable HAIKU_INCLUDE_PATENTED_CODE is defined, we +# define an equally named macro to the variable value. Some components use the +# macro to allow compilation of code known to implemented patented ideas and/or +# techniques, for example the Freetype bytecode hinter or sub-pixel rendering +# as well as some problematic media codecs. +if $(HAIKU_INCLUDE_PATENTED_CODE) { + HAIKU_CCFLAGS += [ FDefines + HAIKU_INCLUDE_PATENTED_CODE=$(HAIKU_INCLUDE_PATENTED_CODE) ] ; + HAIKU_C++FLAGS += [ FDefines + HAIKU_INCLUDE_PATENTED_CODE=$(HAIKU_INCLUDE_PATENTED_CODE) ] ; +} + # warning flags HAIKU_WARNING_CCFLAGS = -Wall -Wno-trigraphs -Wmissing-prototypes -Wpointer-arith -Wcast-align -Wsign-compare -Wno-multichar ; @@ -954,7 +967,7 @@ # library name map TARGET_LIBRARY_NAME_MAP = LIBBE_LIBRARY_NAME_MAP ; - LIBBE_LIBRARY_NAME_MAP_be = libbe_haiku.so ; + LIBBE_LIBRARY_NAME_MAP_be = libbe_test.so ; } Modified: haiku/branches/components/gallium3d/build/jam/HaikuImage =================================================================== --- haiku/branches/components/gallium3d/build/jam/HaikuImage 2009-09-07 06:08:05 UTC (rev 32984) +++ haiku/branches/components/gallium3d/build/jam/HaikuImage 2009-09-07 18:09:35 UTC (rev 32985) @@ -29,9 +29,9 @@ SYSTEM_BIN = "[" addattr alert arp base64 basename bash bc beep bootman bzip2 cal cat catattr checkfs chgrp chmod chop chown chroot cksum clear - clockconfig cmp collectcatkeys comm compress copyattr CortexAddOnHost cp + clockconfig cmp comm compress copyattr CortexAddOnHost cp csplit ctags cut date dc dd desklink df diff diff3 dircolors dirname - draggers driveinfo dstcheck du dumpcatalog + draggers driveinfo dstcheck du echo eject env error expand expr factor false fdinfo ffm filepanel find finddir fmt fold fortune frcode ftp ftpd @@ -41,7 +41,7 @@ id ident ideinfo idestatus ifconfig install installsound iroster isvolume join - keymap kill less lessecho lesskey link linkcatkeys listarea listattr + keymap kill less lessecho lesskey link listarea listattr listimage listdev listport listres listsem listusb ln locate logger login logname ls lsindex makebootable md5sum merge message mimeset mkdos mkdir mkfifo mkfs mkindex @@ -71,17 +71,18 @@ ShowImage SoundRecorder StyledEdit Terminal TextSearch TV Workspaces ; SYSTEM_PREFERENCES = Appearance Backgrounds CPUFrequency DataTranslations E-mail - FileTypes Fonts Keyboard Keymap Media Mouse Network Printers + FileTypes Fonts Keyboard Keymap Media Mouse Network Printers Screen ScreenSaver Sounds Time Touchpad Tracker VirtualMemory -; # Locale +; SYSTEM_DEMOS = BSnow Chart Clock Cortex FontDemo GLTeapot Haiku3d Mandelbrot Pairs Playground Pulse Sudoku Gradients ; SYSTEM_LIBS = libalm.so libbe.so libbsd.so libbnetapi.so libdebug.so libdevice.so libfluidsynth.so libfreetype.so libgame.so libGL.so libgnu.so - libilmimf.so liblinprog.so liblpsolve55.so libmail.so libmedia.so libmidi.so - libmidi2.so libnetwork.so libpng.so libroot.so libscreensaver.so - libtextencoding.so libtracker.so libtranslation.so libz.so + libilmimf.so libjpeg.so liblinprog.so liblpsolve55.so libmail.so libmedia.so + libmidi.so libmidi2.so libnetwork.so libpng.so libroot.so + libscreensaver.so libtextencoding.so libtracker.so libtranslation.so + libz.so $(HAIKU_SHARED_LIBSTDC++) $(HAIKU_SHARED_LIBSUPC++) ; SYSTEM_SERVERS = app_server cddb_daemon debug_server input_server mail_daemon @@ -158,8 +159,7 @@ $(IDE_ONLY)ide scsi config_manager agp_gart usb firewire $(X86_ONLY)acpi ; SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs cdda ext2 fat iso9660 nfs attribute_overlay - write_overlay $(GPL_ONLY)ntfs $(GPL_ONLY)reiserfs ; -#googlefs ; + write_overlay ntfs reiserfs ; #googlefs # modules @@ -337,10 +337,13 @@ SEARCH on $(bootScripts) = [ FDirName $(HAIKU_TOP) data system boot ] ; AddFilesToHaikuImage system boot : $(bootScripts) ; -local userBootScripts = UserBootscript.sample UserSetupEnvironment.sample ; +local userBootScripts = UserBootscript UserSetupEnvironment.sample ; SEARCH on $(userBootScripts) = [ FDirName $(HAIKU_TOP) data config boot ] ; AddFilesToHaikuImage home config boot : $(userBootScripts) ; +# Add boot launch directory +AddDirectoryToHaikuImage home config boot launch ; + local logoArtwork = "HAIKU logo - white on blue - big.png" "HAIKU logo - white on blue - normal.png" ; SEARCH on $(logoArtwork) = [ FDirName $(HAIKU_TOP) data artwork ] ; @@ -358,11 +361,6 @@ = [ FDirName $(HAIKU_TOP) src apps mail ] ; AddFilesToHaikuImage system etc word_dictionary : $(spellFiles) ; -# Locale kit language files -local languageDir = [ FDirName $(HAIKU_TOP) src data etc locale languages ] ; -local languages = [ Glob $(languageDir) : *.language ] ; -AddFilesToHaikuImage system data locale languages : $(languages) ; - local etcFiles = bash_completion inputrc profile teapot.data ; etcFiles = $(etcFiles:G=etc) ; SEARCH on $(etcFiles) = [ FDirName $(HAIKU_TOP) data etc ] ; @@ -473,7 +471,7 @@ AddFilesToHaikuImage system add-ons media plugins : $(SYSTEM_ADD_ONS_MEDIA_PLUGINS) ; AddFilesToHaikuImage system add-ons Tracker - : FileType-F ZipOMatic-Z Open\ Target\ Folder-T OpenTerminal-T ; + : FileType-F Mark\ as\ New-N Mark\ as\ Read-R Open\ Target\ Folder-O OpenTerminal-T ZipOMatic-Z ; AddSymlinkToHaikuImage system add-ons Tracker : /boot/system/preferences/Backgrounds : Background-B ; AddSymlinkToHaikuImage system add-ons Tracker Modified: haiku/branches/components/gallium3d/build/jam/NetBootArchive =================================================================== --- haiku/branches/components/gallium3d/build/jam/NetBootArchive 2009-09-07 06:08:05 UTC (rev 32984) +++ haiku/branches/components/gallium3d/build/jam/NetBootArchive 2009-09-07 18:09:35 UTC (rev 32985) @@ -118,7 +118,7 @@ # archive target HAIKU_NET_BOOT_ARCHIVE = haiku-netboot.tgz ; -MakeLocate $(haiku-netboot-archive) : $(HAIKU_OUTPUT_DIR) ; +MakeLocate $(HAIKU_NET_BOOT_ARCHIVE) : $(HAIKU_OUTPUT_DIR) ; # the pseudo target all archive contents is attached to NotFile $(HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME) ; Modified: haiku/branches/components/gallium3d/build/jam/OptionalBuildFeatures =================================================================== --- haiku/branches/components/gallium3d/build/jam/OptionalBuildFeatures 2009-09-07 06:08:05 UTC (rev 32984) +++ haiku/branches/components/gallium3d/build/jam/OptionalBuildFeatures 2009-09-07 18:09:35 UTC (rev 32985) @@ -12,7 +12,7 @@ } local baseURL = http://haiku-files.org/files/optional-packages ; -HAIKU_OPENSSL_PACKAGE = openssl-0.9.8k-gcc2-haiku-2009-05-10 ; +HAIKU_OPENSSL_PACKAGE = openssl-0.9.8k-r1a1-x86-gcc2-2009-08-30 ; HAIKU_OPENSSL_URL = $(baseURL)/$(HAIKU_OPENSSL_PACKAGE).zip ; if $(HAIKU_BUILD_FEATURE_SSL) { Modified: haiku/branches/components/gallium3d/build/jam/OptionalPackageDependencies =================================================================== --- haiku/branches/components/gallium3d/build/jam/OptionalPackageDependencies 2009-09-07 06:08:05 UTC (rev 32984) +++ haiku/branches/components/gallium3d/build/jam/OptionalPackageDependencies 2009-09-07 18:09:35 UTC (rev 32985) @@ -4,7 +4,7 @@ # dependencies. OptionalPackageDependencies Subversion : APR-util Neon LibIconv LibXML2 OpenSSL SQLite ; -OptionalPackageDependencies APR-util : APR ; +OptionalPackageDependencies APR-util : APR Expat ; OptionalPackageDependencies BeHappy : BeBook NetSurf ; OptionalPackageDependencies Development : DevelopmentBase Perl ; OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ; @@ -12,3 +12,5 @@ OptionalPackageDependencies LibLayout : DevelopmentBase ; OptionalPackageDependencies NetSurf : OpenSSL ; OptionalPackageDependencies OpenSSH : OpenSSL ; +OptionalPackageDependencies Mercurial : Python ; +OptionalPackageDependencies Git : Expat Curl OpenSSL ; Modified: haiku/branches/components/gallium3d/build/jam/OptionalPackages =================================================================== --- haiku/branches/components/gallium3d/build/jam/OptionalPackages 2009-09-07 06:08:05 UTC (rev 32984) +++ haiku/branches/components/gallium3d/build/jam/OptionalPackages 2009-09-07 18:09:35 UTC (rev 32985) @@ -23,19 +23,24 @@ # CDRecord - the command line CD writing tools # Clockwerk - native audio/video compositing # CLucene - indexed file search +# Curl - a client that groks URLs # CVS - the version control system # Development - more complete dev environment (including autotools) # DevelopmentBase - basic development environment (gcc, headers, libs,...) # DevelopmentMin - development headers, libs, tools, from sources only +# Expat - XML parsing libraries # Firefox - the webbrowser +# Git - the distributed version control system # KeymapSwitcher - Desktop utility # LibIconv - text encoding conversion library # LibLayout - GCC2 package needed by some BeOS apps to compile # LibXML2 - the XML support libary # Links - the web browser +# Mercurial - the distributed version control system # Nano - the command line text editor # Neon - support libraries used for example by SVN # NetSurf - the web browser +# OCaml - the Objective Caml language # OpenSound - additional audio driver package # OpenSSH - the secure shell # OpenSSL - secure sockets library @@ -62,8 +67,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package APR available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage apr-1.3.5-x86-gcc2-2009-07-05 - : $(baseURL)/apr-1.3.5-x86-gcc2-2009-07-05.zip + InstallOptionalHaikuImagePackage apr-1.3.8-r1a1-x86-gcc2-2009-08-29 + : $(baseURL)/apr-1.3.8-r1a1-x86-gcc2-2009-08-29.zip : ; } @@ -75,8 +80,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package APR-util available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage apr-util-1.3.7-x86-gcc2-2009-07-05 - : $(baseURL)/apr-util-1.3.7-x86-gcc2-2009-07-05.zip + InstallOptionalHaikuImagePackage apr-util-1.3.9-r1a1-x86-gcc2-2009-08-29 + : $(baseURL)/apr-util-1.3.9-r1a1-x86-gcc2-2009-08-29.zip : ; } @@ -153,8 +158,8 @@ } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) { Echo "No optional package BePDF available for gcc4" ; } else { - InstallOptionalHaikuImagePackage BePDF-1.1.1b1.x86 - : $(baseURL)/BePDF-1.1.1b1.x86.zip + InstallOptionalHaikuImagePackage BePDF-1.1.1b2-r1a1-x86-gcc2-2009-09-03 + : $(baseURL)/BePDF-1.1.1b2-r1a1-x86-gcc2-2009-09-03.zip : apps ; AddSymlinkToHaikuImage home config be Applications @@ -191,8 +196,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package CDRecord available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage cdrecord-2.01.01a59-x86-gcc2-2009-05-26 - : $(baseURL)/cdrecord-2.01.01a59-x86-gcc2-2009-05-26.zip + InstallOptionalHaikuImagePackage cdrecord-2.01.01a63-r1a1-x86-gcc2-2009-08-28 + : $(baseURL)/cdrecord-2.01.01a63-r1a1-x86-gcc2-2009-08-28.zip : ; } @@ -237,13 +242,27 @@ } +# Curl +if [ IsOptionalHaikuImagePackageAdded Curl ] { + if $(TARGET_ARCH) != x86 { + Echo "No optional package Curl available for $(TARGET_ARCH)" ; + } else { + InstallOptionalHaikuImagePackage curl-7.19.6-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/curl-7.19.6-r1a1-x86-gcc2-2009-08-30.zip + + : + ; + } +} + + # CVS if [ IsOptionalHaikuImagePackageAdded CVS ] { if $(TARGET_ARCH) != x86 { Echo "No optional package CVS available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage cvs-1.12.13-x86-gcc2-2009-07-06 - : $(baseURL)/cvs-1.12.13-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage cvs-1.12.13-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/cvs-1.12.13-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -253,14 +272,14 @@ # Development if [ IsOptionalHaikuImagePackageAdded Development ] && $(TARGET_ARCH) = x86 { # autotools - InstallOptionalHaikuImagePackage autoconf-2.63-gcc2-2008-11-05 - : $(baseURL)/autoconf-2.63-gcc2-2008-11-05.zip ; - InstallOptionalHaikuImagePackage automake-1.10.1-gcc2-2008-11-06 - : $(baseURL)/automake-1.10.1-gcc2-2008-11-06.zip ; - InstallOptionalHaikuImagePackage libtool-2.2.6a-gcc2-2008-11-09 - : $(baseURL)/libtool-2.2.6a-gcc2-2008-11-09.zip ; - InstallOptionalHaikuImagePackage texinfo-4.13a-gcc2-2008-11-09 - : $(baseURL)/texinfo-4.13a-gcc2-2008-11-09.zip ; + InstallOptionalHaikuImagePackage autoconf-2.64-r1a1-x86-gcc2-2009-08-27 + : $(baseURL)/autoconf-2.64-r1a1-x86-gcc2-2009-08-27.zip ; + InstallOptionalHaikuImagePackage automake-1.11-r1a1-x86-gcc2-2009-08-27 + : $(baseURL)/automake-1.11-r1a1-x86-gcc2-2009-08-27.zip ; + InstallOptionalHaikuImagePackage libtool-2.2.6a-r1a1-x86-gcc2-2009-08-28 + : $(baseURL)/libtool-2.2.6a-r1a1-x86-gcc2-2009-08-28.zip ; + InstallOptionalHaikuImagePackage texinfo-4.13a-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/texinfo-4.13a-r1a1-x86-gcc2-2009-08-30.zip ; } @@ -269,13 +288,13 @@ && $(TARGET_ARCH) = x86 { # gcc and binutils if $(HAIKU_GCC_VERSION[1]) = 2 || $(isHybridBuild) { - InstallOptionalHaikuImagePackage gcc-2.95.3-x86-gcc2-2009-06-29 - : $(baseURL)/gcc-2.95.3-x86-gcc2-2009-06-29.zip ; + InstallOptionalHaikuImagePackage gcc-2.95.3-r1a1-x86-gcc2-2009-08-26 + : $(baseURL)/gcc-2.95.3-r1a1-x86-gcc2-2009-08-26.zip ; } if $(HAIKU_GCC_VERSION[1]) = 4 || $(isHybridBuild) { - InstallOptionalHaikuImagePackage gcc-4.3.3-x86-gcc4-2009-06-29-2 - : $(baseURL)/gcc-4.3.3-x86-gcc4-2009-06-29-2.zip ; + InstallOptionalHaikuImagePackage gcc-4.3.3-r1a1-x86-gcc4-2009-06-29 + : $(baseURL)/gcc-4.3.3-r1a1-x86-gcc4-2009-06-29.zip ; # symlink cpp to g++'s headers AddSymlinkToHaikuImage develop abi x86 gcc4 headers @@ -283,14 +302,14 @@ } # other commonly used tools - InstallOptionalHaikuImagePackage bison-2.4.1-x86-gcc2-2009-07-05 - : $(baseURL)/bison-2.4.1-x86-gcc2-2009-07-05.zip ; - InstallOptionalHaikuImagePackage m4-1.4.12-gcc2-2008-11-04 - : $(baseURL)/m4-1.4.12-gcc2-2008-11-04.zip ; - InstallOptionalHaikuImagePackage flex-2.5.35-x86-gcc2-2009-08-17 - : $(baseURL)/flex-2.5.35-x86-gcc2-2009-08-17.zip ; - InstallOptionalHaikuImagePackage jam-2.5-x86-gcc2-2009-05-26 - : $(baseURL)/jam-2.5-x86-gcc2-2009-05-26.zip ; + InstallOptionalHaikuImagePackage bison-2.4.1-r1a1-x86-gcc2-2009-08-31 + : $(baseURL)/bison-2.4.1-r1a1-x86-gcc2-2009-08-31.zip ; + InstallOptionalHaikuImagePackage m4-1.4.13-r1a1-x86-gcc2-2009-08-28 + : $(baseURL)/m4-1.4.13-r1a1-x86-gcc2-2009-08-28.zip ; + InstallOptionalHaikuImagePackage flex-2.5.35-r1a1-x86-gcc2-2009-08-31 + : $(baseURL)/flex-2.5.35-r1a1-x86-gcc2-2009-08-31.zip ; + InstallOptionalHaikuImagePackage jam-2.5-r1a1-x86-gcc2-2009-08-31 + : $(baseURL)/jam-2.5-r1a1-x86-gcc2-2009-08-31.zip ; } @@ -379,6 +398,7 @@ # third party libs headers AddHeaderDirectoryToHaikuImage libs freetype2 : 3rdparty ; + AddHeaderDirectoryToHaikuImage libs jpeg : 3rdparty ; AddHeaderDirectoryToHaikuImage libs ncurses : 3rdparty ; AddHeaderDirectoryToHaikuImage libs png : 3rdparty ; AddHeaderDirectoryToHaikuImage libs termcap : 3rdparty ; @@ -395,6 +415,19 @@ } +# Expat +if [ IsOptionalHaikuImagePackageAdded Expat ] { + if $(TARGET_ARCH) != x86 { + Echo "No optional package Expat available for $(TARGET_ARCH)" ; + } else { + InstallOptionalHaikuImagePackage expat-2.0.1-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/expat-2.0.1-r1a1-x86-gcc2-2009-08-30.zip + : + ; + } +} + + # Firefox web browser if [ IsOptionalHaikuImagePackageAdded Firefox ] { if $(TARGET_ARCH) != x86 { @@ -418,6 +451,19 @@ } +# Git +if [ IsOptionalHaikuImagePackageAdded Git ] { + if $(TARGET_ARCH) != x86 { + Echo "No optional package Git available for $(TARGET_ARCH)" ; + } else { + InstallOptionalHaikuImagePackage git-1.6.4.2-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/git-1.6.4.2-r1a1-x86-gcc2-2009-08-30.zip + : + ; + } +} + + # KeymapSwitcher if [ IsOptionalHaikuImagePackageAdded KeymapSwitcher ] { if $(TARGET_ARCH) != x86 { @@ -432,8 +478,8 @@ : /boot/common/bin/KeymapSwitcher ; } else { InstallOptionalHaikuImagePackage - KeymapSwitcher-1.2.3-x86-gcc2-2009-05-31 - : $(baseURL)/KeymapSwitcher-1.2.3-x86-gcc2-2009-05-31.zip + KeymapSwitcher-1.2.4-r1a1-x86-gcc2-2009-09-06 + : $(baseURL)/KeymapSwitcher-1.2.4-r1a1-x86-gcc2-2009-09-06.zip : ; AddSymlinkToHaikuImage home config be Desktop\ Applets @@ -447,8 +493,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package LibIconv available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage libiconv-1.13.1-x86-gcc2-2009-07-07 - : $(baseURL)/libiconv-1.13.1-x86-gcc2-2009-07-07.zip + InstallOptionalHaikuImagePackage libiconv-1.13.1-r1a1-x86-gcc2-2009-09-07 + : $(baseURL)/libiconv-1.13.1-r1a1-x86-gcc2-2009-09-07.zip : ; } @@ -475,8 +521,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package LibXML2 available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage libxml2-2.7.3-x86-gcc2-2009-07-06 - : $(baseURL)/libxml2-2.7.3-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage libxml2-2.7.3-git-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/libxml2-2.7.3-git-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -500,13 +546,26 @@ } +# Mercurial +if [ IsOptionalHaikuImagePackageAdded Mercurial ] { + if $(TARGET_ARCH) != x86 { + Echo "No optional package Mercurial available for $(TARGET_ARCH)" ; + } else { + InstallOptionalHaikuImagePackage mercurial-1.3.1-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/mercurial-1.3.1-r1a1-x86-gcc2-2009-08-30.zip + : + ; + } +} + + # Nano if [ IsOptionalHaikuImagePackageAdded Nano ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Nano available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage nano-2.0.9-x86-gcc2-2009-07-06 - : $(baseURL)/nano-2.0.9-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage nano-2.0.9-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/nano-2.0.9-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -518,8 +577,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Neon available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage neon-0.28.5-x86-gcc2-2009-07-06 - : $(baseURL)/neon-0.28.5-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage neon-0.28.6-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/neon-0.28.6-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -543,6 +602,25 @@ } +# OCaml +if [ IsOptionalHaikuImagePackageAdded OCaml ] { + if $(TARGET_ARCH) != x86 { + Echo "No optional package OCaml available for $(TARGET_ARCH)" ; + } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) { + Echo "No optional package OCaml available for gcc4" ; + } else { + InstallOptionalHaikuImagePackage ocaml-3.11.1-r1a1-x86-gcc2-2009-09-06 + : http://jerome.duval.free.fr/obos/ocaml-3.11.1-r1a1-x86-gcc2-2009-09-06.zip + : + ; + InstallOptionalHaikuImagePackage camlp5-5.12-r1a1-x86-gcc2-2009-09-06 + : http://jerome.duval.free.fr/obos/camlp5-5.12-r1a1-x86-gcc2-2009-09-06.zip + : + ; + } +} + + # OpenSound drivers if [ IsOptionalHaikuImagePackageAdded OpenSound ] { if $(TARGET_ARCH) != x86 { @@ -567,8 +645,8 @@ "variable to be set!" ; } - InstallOptionalHaikuImagePackage openssh-5.2p1-x86-gcc2-2009-05-27 - : $(baseURL)/openssh-5.2p1-x86-gcc2-2009-05-27.zip + InstallOptionalHaikuImagePackage openssh-5.2p1-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/openssh-5.2p1-r1a1-x86-gcc2-2009-08-30.zip : ; @@ -598,14 +676,14 @@ } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) { Echo "No optional package P7zip available for gcc4" ; } else { - InstallOptionalHaikuImagePackage p7zip-4.65-x86-gcc2-2009-05-24 - : $(baseURL)/p7zip-4.65-x86-gcc2-2009-05-24.zip + InstallOptionalHaikuImagePackage p7zip-9.04-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/p7zip-9.04-r1a1-x86-gcc2-2009-08-30.zip : ; actions BuildHaikuImageExpanderRules { - echo "\"application/x-7z-compressed\"\t.7z\t\"7za l \0045s\"\t\"7za x -y \0045s\"" > $(1) + echo -e "\"application/x-7z-compressed\"\t.7z\t\"7za l \0045s\"\t\"7za x -y \0045s\"" > $(1) } Always expander.rules ; @@ -626,8 +704,8 @@ : $(baseURL)/Pe-2.4.2-x86-gcc4-2009-08-04.zip ; } else { - InstallOptionalHaikuImagePackage Pe-2.4.2-x86-gcc2-2009-07-05 - : $(baseURL)/Pe-2.4.2-x86-gcc2-2009-07-05.zip + InstallOptionalHaikuImagePackage Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-04 + : $(baseURL)/Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-04.zip ; } @@ -657,8 +735,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Python available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage python-2.6.2-x86-gcc2-2009-07-12 - : $(baseURL)/python-2.6.2-x86-gcc2-2009-07-12.zip + InstallOptionalHaikuImagePackage python-2.6.2-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/python-2.6.2-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -670,8 +748,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Rsync available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage rsync-3.0.6-x86-gcc2-2009-05-26 - : $(baseURL)/rsync-3.0.6-x86-gcc2-2009-05-26.zip + InstallOptionalHaikuImagePackage rsync-3.0.6-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/rsync-3.0.6-r1a1-x86-gcc2-2009-08-30.zip : ; } @@ -683,8 +761,9 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package SQLite available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage sqlite-3.6.16-x86-gcc2-2009-07-06 - : $(baseURL)/sqlite-3.6.16-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage sqlite-3.6.17-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/sqlite-3.6.17-r1a1-x86-gcc2-2009-08-30.zip + : ; } @@ -696,8 +775,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Subversion available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage subversion-1.6.2-x86-gcc2-2009-05-20 - : $(baseURL)/subversion-1.6.2-x86-gcc2-2009-05-20.zip + InstallOptionalHaikuImagePackage subversion-1.6.5-r1a1-x86-gcc2-2009-09-02 + : $(baseURL)/subversion-1.6.5-r1a1-x86-gcc2-2009-09-02.zip : ; } @@ -782,8 +861,8 @@ AddSymlinkToHaikuImage home config be Applications : /boot/common/bin/gvim ; } else { - InstallOptionalHaikuImagePackage vim-7.2-x86-gcc2-2009-05-31 - : $(baseURL)/vim-7.2-x86-gcc2-2009-05-31.zip + InstallOptionalHaikuImagePackage vim-7.2-r1a1-x86-gcc2-2009-09-06 + : $(baseURL)/vim-7.2-r1a1-x86-gcc2-2009-09-06.zip : ; AddSymlinkToHaikuImage home config be Applications @@ -871,8 +950,9 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Yasm available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage yasm-0.8.0-x86-gcc2-2009-07-06 - : $(baseURL)/yasm-0.8.0-x86-gcc2-2009-07-06.zip + InstallOptionalHaikuImagePackage yasm-0.8.0-r1a1-x86-gcc2-2009-08-30 + : $(baseURL)/yasm-0.8.0-r1a1-x86-gcc2-2009-08-30.zip + : ; } Modified: haiku/branches/components/gallium3d/build/jam/ReleaseBuildProfiles =================================================================== --- haiku/branches/components/gallium3d/build/jam/ReleaseBuildProfiles 2009-09-07 06:08:05 UTC (rev 32984) +++ haiku/branches/components/gallium3d/build/jam/ReleaseBuildProfiles 2009-09-07 18:09:35 UTC (rev 32985) @@ -9,12 +9,13 @@ HAIKU_ROOT_USER_REAL_NAME = "Yourself" ; AddGroupToHaikuImage party : 101 : user sshd ; HAIKU_IMAGE_HOST_NAME = shredder ; - HAIKU_IMAGE_SIZE = 500 ; + HAIKU_IMAGE_SIZE = 600 ; AddOptionalHaikuImagePackages BePDF Clockwerk Firefox Pe Vision VLC WonderBrush ; - AddOptionalHaikuImagePackages CVS Development Subversion OpenSSH ; - AddOptionalHaikuImagePackages Welcome BeBook ; + AddOptionalHaikuImagePackages CVS Development Git Mercurial + Python Subversion OpenSSH ; + AddOptionalHaikuImagePackages Nano P7zip Welcome BeBook ; } case "beta-*" : { Modified: haiku/branches/components/gallium3d/build/jam/TestsRules =================================================================== --- haiku/branches/components/gallium3d/build/jam/TestsRules 2009-09-07 06:08:05 UTC (rev 32984) +++ haiku/branches/components/gallium3d/build/jam/TestsRules 2009-09-07 18:09:35 UTC (rev 32985) @@ -9,7 +9,7 @@ local lib = $(1) ; local sources = $(2) ; local libraries = $(3) ; - + # if TEST_DEBUG is defined, we turn on debugging if $(TEST_DEBUG) { DEBUG on $(lib) [ FGristFiles $(sources:S=$(SUFOBJ)) ] ?= 1 ; @@ -21,7 +21,7 @@ # make the target depend on the installed libbe libraries Depends $(lib) : - libbe_haiku.so libbeadapter.so ; + libbe_test.so ; } else { ObjectDefines $(2) : TEST_R5 ; } @@ -49,7 +49,7 @@ # make the target depend on the installed libbe libraries Depends $(target) : - libbe_haiku.so libbeadapter.so ; + libbe_test.so ; } else { ObjectDefines $(2) : TEST_R5 ; } @@ -106,6 +106,6 @@ relPath = $(SUBDIR_TOKENS[2-]) ; } MakeLocate $(target) : [ FDirName $(HAIKU_TEST_DIR) $(relPath) ] ; - + BuildPlatformMain $(target) : $(sources) ; } Modified: haiku/branches/components/gallium3d/build/scripts/build_haiku_image =================================================================== --- haiku/branches/components/gallium3d/build/scripts/build_haiku_image 2009-09-07 06:08:05 UTC (rev 32984) +++ haiku/branches/components/gallium3d/build/scripts/build_haiku_image 2009-09-07 18:09:35 UTC (rev 32985) @@ -35,7 +35,7 @@ # path of the actual device path under Linux). if readlink -f "$imagePath" &> /dev/null; then normalizedImagePath=$(readlink -f "$imagePath") - if [ $normalizedImagePath ]; then + if [ "$normalizedImagePath" ]; then imagePath="$normalizedImagePath" fi fi Modified: haiku/branches/components/gallium3d/configure =================================================================== --- haiku/branches/components/gallium3d/configure 2009-09-07 06:08:05 UTC (rev 32984) +++ haiku/branches/components/gallium3d/configure 2009-09-07 18:09:35 UTC (rev 32985) @@ -57,6 +57,12 @@ default -- any other distro (default value). --help Prints out this help. --include-gpl-addons Include GPL licensed add-ons. + --include-patented-code Enable code that is known to implemented patented + ideas and techniques. If this option is not + specified, the resulting distribution may still + implement patented ideas and techniques. This + option only disables code that is currently known + to be problematic. --include-3rdparty Include 3rdparty/ in the build system. --enable-multiuser Enable experimental multiuser support. --target=TARGET Select build target platform. [default=${target}] @@ -259,6 +265,7 @@ hostGCCVersion=`gcc -dumpversion` bochsDebug=0 includeGPLAddOns=0 +includePatentedCode=0 include3rdParty=0 enableMultiuser=0 distroCompatibility=default @@ -328,6 +335,7 @@ ;; --help | -h) usage; exit 0;; --include-gpl-addons) includeGPLAddOns=1; shift 1;; + --include-patented-code) includePatentedCode=1; shift 1;; --include-3rdparty) include3rdParty=1; shift 1;; --enable-multiuser) enableMultiuser=1; shift 1;; --distro-compatibility) @@ -403,7 +411,7 @@ # check for case-sensitive filesystem if on darwin if [ $buildPlatform = "darwin" ]; then - diskutil info . | grep -i "case-sensitive" > /dev/null + diskutil info $(pwd) | grep -i "case-sensitive" > /dev/null if [ $? != 0 ]; then echo "You need a case-sensitive file-system to build Haiku." echo "Please see the following guide on how to set one up:" @@ -462,6 +470,7 @@ BOCHS_DEBUG_HACK ?= "${bochsDebug}" ; INCLUDE_GPL_ADDONS ?= "${includeGPLAddOns}" ; +HAIKU_INCLUDE_PATENTED_CODE ?= "${includePatentedCode}" ; HAIKU_INCLUDE_3RDPARTY ?= "${include3rdParty}" ; HAIKU_ENABLE_MULTIUSER ?= "${enableMultiuser}" ; HAIKU_DISTRO_COMPATIBILITY ?= "${distroCompatibility}" ; Copied: haiku/branches/components/gallium3d/data/artwork/cursors (from rev 32984, haiku/trunk/data/artwork/cursors) Deleted: haiku/branches/components/gallium3d/data/artwork/cursors/Overlays_Tracker Copied: haiku/branches/components/gallium3d/data/artwork/cursors/Overlays_Tracker (from rev 32984, haiku/trunk/data/artwork/cursors/Overlays_Tracker) Copied: haiku/branches/components/gallium3d/data/artwork/icons/App_DOS-Box (from rev 32984, haiku/trunk/data/artwork/icons/App_DOS-Box) Copied: haiku/branches/components/gallium3d/data/artwork/icons/App_Old (from rev 32984, haiku/trunk/data/artwork/icons/App_Old) Copied: haiku/branches/components/gallium3d/data/artwork/icons/App_TV_2 (from rev 32984, haiku/trunk/data/artwork/icons/App_TV_2) Copied: haiku/branches/components/gallium3d/data/artwork/icons/App_YAB (from rev 32984, haiku/trunk/data/artwork/icons/App_YAB) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_01_Black (from rev 32984, haiku/trunk/data/artwork/icons/Color_01_Black) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_02_Dark_Grey (from rev 32984, haiku/trunk/data/artwork/icons/Color_02_Dark_Grey) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_03_Grey (from rev 32984, haiku/trunk/data/artwork/icons/Color_03_Grey) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_04_Light_Grey (from rev 32984, haiku/trunk/data/artwork/icons/Color_04_Light_Grey) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_05_White (from rev 32984, haiku/trunk/data/artwork/icons/Color_05_White) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_06_Red (from rev 32984, haiku/trunk/data/artwork/icons/Color_06_Red) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_07_Rose (from rev 32984, haiku/trunk/data/artwork/icons/Color_07_Rose) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_08_Orange (from rev 32984, haiku/trunk/data/artwork/icons/Color_08_Orange) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_09_Apricot (from rev 32984, haiku/trunk/data/artwork/icons/Color_09_Apricot) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_10_Yellow (from rev 32984, haiku/trunk/data/artwork/icons/Color_10_Yellow) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_11_Cream (from rev 32984, haiku/trunk/data/artwork/icons/Color_11_Cream) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_12_Green (from rev 32984, haiku/trunk/data/artwork/icons/Color_12_Green) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_13_Lime (from rev 32984, haiku/trunk/data/artwork/icons/Color_13_Lime) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_14_Turquoise (from rev 32984, haiku/trunk/data/artwork/icons/Color_14_Turquoise) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_15_Aquamarine (from rev 32984, haiku/trunk/data/artwork/icons/Color_15_Aquamarine) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_16_Blue (from rev 32984, haiku/trunk/data/artwork/icons/Color_16_Blue) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_17_Cyan (from rev 32984, haiku/trunk/data/artwork/icons/Color_17_Cyan) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_18_Violet (from rev 32984, haiku/trunk/data/artwork/icons/Color_18_Violet) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_19_Mauve (from rev 32984, haiku/trunk/data/artwork/icons/Color_19_Mauve) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_20_Magenta (from rev 32984, haiku/trunk/data/artwork/icons/Color_20_Magenta) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_21_Pink (from rev 32984, haiku/trunk/data/artwork/icons/Color_21_Pink) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_22_Brown (from rev 32984, haiku/trunk/data/artwork/icons/Color_22_Brown) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Color_23_Beige (from rev 32984, haiku/trunk/data/artwork/icons/Color_23_Beige) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Device_Harddisk_development (from rev 32984, haiku/trunk/data/artwork/icons/Device_Harddisk_development) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Device_MemoryStick (from rev 32984, haiku/trunk/data/artwork/icons/Device_MemoryStick) Copied: haiku/branches/components/gallium3d/data/artwork/icons/File_Archive_XZ (from rev 32984, haiku/trunk/data/artwork/icons/File_Archive_XZ) Copied: haiku/branches/components/gallium3d/data/artwork/icons/File_Image_2 (from rev 32984, haiku/trunk/data/artwork/icons/File_Image_2) Copied: haiku/branches/components/gallium3d/data/artwork/icons/File_Image_3 (from rev 32984, haiku/trunk/data/artwork/icons/File_Image_3) Copied: haiku/branches/components/gallium3d/data/artwork/icons/File_New_Mail (from rev 32984, haiku/trunk/data/artwork/icons/File_New_Mail) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Misc_Book (from rev 32984, haiku/trunk/data/artwork/icons/Misc_Book) Modified: haiku/branches/components/gallium3d/data/artwork/icons/Misc_Deskbar_Group =================================================================== (Binary files differ) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Misc_R.I.P. (from rev 32984, haiku/trunk/data/artwork/icons/Misc_R.I.P.) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Misc_Tracker_Copy (from rev 32984, haiku/trunk/data/artwork/icons/Misc_Tracker_Copy) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Misc_USB_beige (from rev 32984, haiku/trunk/data/artwork/icons/Misc_USB_beige) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Misc_USB_black (from rev 32984, haiku/trunk/data/artwork/icons/Misc_USB_black) Copied: haiku/branches/components/gallium3d/data/artwork/icons/Prefs_Devices_2 (from rev 32984, haiku/trunk/data/artwork/icons/Prefs_Devices_2) Modified: haiku/branches/components/gallium3d/data/common/boot/post_install/mime_update.sh =================================================================== --- haiku/branches/components/gallium3d/data/common/boot/post_install/mime_update.sh 2009-09-07 06:08:05 UTC (rev 32984) +++ haiku/branches/components/gallium3d/data/common/boot/post_install/mime_update.sh 2009-09-07 18:09:35 UTC (rev 32985) @@ -19,3 +19,5 @@ mimeset -apps -f "$SYSTEM/servers" mimeset -apps -f "/boot/apps" +query -f 'BEOS:APP_SIG=*' | xargs --no-run-if-empty mimeset -apps -f + Copied: haiku/branches/components/gallium3d/data/config/boot/UserBootscript (from rev 32984, haiku/trunk/data/config/boot/UserBootscript) Deleted: haiku/branches/components/gallium3d/data/config/boot/UserBootscript.sample Modified: haiku/branches/components/gallium3d/data/system/boot/Bootscript =================================================================== --- haiku/branches/components/gallium3d/data/system/boot/Bootscript 2009-09-07 06:08:05 UTC (rev 32984) +++ haiku/branches/components/gallium3d/data/system/boot/Bootscript 2009-09-07 18:09:35 UTC (rev 32985) @@ -102,6 +102,10 @@ # Now ask the user if he wants to run the Installer or continue to the Desktop. if [ "$isReadOnly" = "yes" ]; then + # Create Installer links (using the write overlay) + ln -sf /boot/system/apps/Installer /boot/home/Desktop/Installer + ln -sf /boot/system/apps/Installer /boot/home/config/be/Applications/Installer + /bin/alert "Do you wish to run the Installer or continue booting to the Desktop?" "Installer" "Desktop" if [ $? -eq 0 ]; then launchscript $SCRIPTS/Bootscript.cd Modified: haiku/branches/components/gallium3d/data/system/boot/Bootscript.cd =================================================================== --- haiku/branches/components/gallium3d/data/system/boot/Bootscript.cd 2009-09-07 06:08:05 UTC (rev 32984) +++ haiku/branches/components/gallium3d/data/system/boot/Bootscript.cd 2009-09-07 18:09:35 UTC (rev 32985) @@ -45,19 +45,13 @@ ## -# Launch Terminal or consoled depending on $SAFEMODE -if [ "$SAFEMODE" != "yes" ]; then - cd /boot/home - if [ -x /boot/system/apps/Installer ]; then - /boot/system/apps/Installer - #/boot/system/apps/Terminal -x /boot/system/apps/Installer - else - /boot/system/apps/Terminal - fi - #launch system/apps/Terminal +# Launch Installer + +cd /boot/home +if [ -x /boot/system/apps/Installer ]; then + /boot/system/apps/Installer else - launch system/bin/consoled - exit 0 # return so we don't eject and reboot + /boot/system/apps/Terminal fi # sync disks Modified: haiku/branches/components/gallium3d/data/system/boot/InstallerFinishScript =================================================================== --- haiku/branches/components/gallium3d/data/system/boot/InstallerFinishScript 2009-09-07 06:08:05 UTC (rev 32984) +++ haiku/branches/components/gallium3d/data/system/boot/InstallerFinishScript 2009-09-07 18:09:35 UTC (rev 32985) @@ -1,19 +1,22 @@ #!/bin/sh ## The installer finish script. -mount=$1 +target=$1 -if [ -z "$mount" ]; then - echo "Usage: $0 volume" +if [ -z "$target" ]; then + echo "Usage: $0 " exit 1 fi -if [ ! -d "$mount" ]; then - echo "$mount isn't mounted" +if [ ! -d "$target" ]; then + echo "$target isn't mounted" exit 1 fi -mkdir -p "$mount/var/tmp" +mkdir -p "$target/var/tmp" -makebootable "$mount" +# remove Installer links +rm -f $target/home/Desktop/Installer +rm -f $target/home/config/be/Applications/Installer +makebootable "$target" Modified: haiku/branches/components/gallium3d/docs/Haiku-doc.css =================================================================== --- haiku/branches/components/gallium3d/docs/Haiku-doc.css 2009-09-07 06:08:05 UTC (rev 32984) +++ haiku/branches/components/gallium3d/docs/Haiku-doc.css 2009-09-07 18:09:35 UTC (rev 32985) @@ -12,13 +12,16 @@ html { margin: 0px; padding: 0px; + background: #FFF url(userguide/images/bg-page.png) top left repeat-x; } [... truncated: 165271 lines follow ...] From stippi at mail.berlios.de Mon Sep 7 21:45:41 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Mon, 7 Sep 2009 21:45:41 +0200 Subject: [Haiku-commits] r32986 - haiku/trunk/src/apps/installer Message-ID: <200909071945.n87JjfBA031926@sheep.berlios.de> Author: stippi Date: 2009-09-07 21:45:39 +0200 (Mon, 07 Sep 2009) New Revision: 32986 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32986&view=rev Modified: haiku/trunk/src/apps/installer/UnzipEngine.cpp Log: Handle the .OptionalPackageDescription files correctly in the UnzipEngine. Decided it would be easiest there, since it already needed to know about them. Tested with a whole bunch of our packages and it appends them correctly to the AboutSystem COPYRIGHTS attribute. Modified: haiku/trunk/src/apps/installer/UnzipEngine.cpp =================================================================== --- haiku/trunk/src/apps/installer/UnzipEngine.cpp 2009-09-07 18:09:35 UTC (rev 32985) +++ haiku/trunk/src/apps/installer/UnzipEngine.cpp 2009-09-07 19:45:39 UTC (rev 32986) @@ -7,17 +7,15 @@ #include -#include #include #include -#include #include -#include -#include +#include +#include +#include #include #include -#include #include "CommandPipe.h" #include "SemaphoreLocker.h" @@ -108,12 +106,11 @@ ret = commandPipe.AddArg("-d"); if (ret == B_OK) ret = commandPipe.AddArg(fDestinationFolder.String()); - if (ret == B_OK) - ret = commandPipe.AddArg("-x"); - if (ret == B_OK) - ret = commandPipe.AddArg(".OptionalPackageDescription"); - if (ret != B_OK) + if (ret != B_OK) { + fprintf(stderr, "Faild to construct argument list for unzip " + "process: %s\n", strerror(ret)); return ret; + } // Launch the unzip thread and start reading the stdout and stderr output. FILE* stdOutAndErrPipe = NULL; @@ -121,7 +118,104 @@ if (unzipThread < 0) return (status_t)unzipThread; - return commandPipe.ReadLines(stdOutAndErrPipe, this); + ret = commandPipe.ReadLines(stdOutAndErrPipe, this); + if (ret != B_OK) { + fprintf(stderr, "Piping the unzip process failed: %s\n", + strerror(ret)); + return ret; + } + + // Add the contents of a potentially existing .OptionalPackageDescription + // to the COPYRIGHTS attribute of AboutSystem. + BPath descriptionPath(fDestinationFolder.String(), + ".OptionalPackageDescription"); + ret = descriptionPath.InitCheck(); + if (ret != B_OK) { + fprintf(stderr, "Failed to construct path to " + ".OptionalPackageDescription: %s\n", strerror(ret)); + return ret; + } + + BEntry descriptionEntry(descriptionPath.Path()); + if (!descriptionEntry.Exists()) + return B_OK; + + BFile descriptionFile(&descriptionEntry, B_READ_ONLY); + ret = descriptionFile.InitCheck(); + if (ret != B_OK) { + fprintf(stderr, "Failed to construct file to " + ".OptionalPackageDescription: %s\n", strerror(ret)); + return ret; + } + + BPath aboutSystemPath(fDestinationFolder.String(), + "system/apps/AboutSystem"); + ret = aboutSystemPath.InitCheck(); + if (ret != B_OK) { + fprintf(stderr, "Failed to construct path to AboutSystem: %s\n", + strerror(ret)); + return ret; + } + + BNode aboutSystemNode(aboutSystemPath.Path()); + ret = aboutSystemNode.InitCheck(); + if (ret != B_OK) { + fprintf(stderr, "Failed to construct node to AboutSystem: %s\n", + strerror(ret)); + return ret; + } + + const char* kCopyrightsAttrName = "COPYRIGHTS"; + + BString copyrightAttr; + ret = aboutSystemNode.ReadAttrString(kCopyrightsAttrName, ©rightAttr); + if (ret != B_OK && ret != B_ENTRY_NOT_FOUND) { + fprintf(stderr, "Failed to read current COPYRIGHTS attribute from " + "AboutSystem: %s\n", strerror(ret)); + return ret; + } + + // Append the contents of the current optional package description to + // the existing COPYRIGHTS attribute from AboutSystem + size_t bufferSize = 2048; + char buffer[bufferSize + 1]; + buffer[bufferSize] = '\0'; + while (true) { + ssize_t read = descriptionFile.Read(buffer, bufferSize); + if (read > 0) { + int32 length = copyrightAttr.Length(); + if (read < bufferSize) + buffer[read] = '\0'; + int32 bufferLength = strlen(buffer); + // Should be "read", but maybe we have a zero in the + // buffer in which case the next check would be fooled. + copyrightAttr << buffer; + if (copyrightAttr.Length() != length + bufferLength) { + fprintf(stderr, "Failed to append buffer to COPYRIGHTS " + "attribute.\n"); + return B_NO_MEMORY; + } + } else + break; + } + + if (copyrightAttr[copyrightAttr.Length() - 1] != '\n') + copyrightAttr << '\n\n'; + else + copyrightAttr << '\n'; + + ret = aboutSystemNode.WriteAttrString(kCopyrightsAttrName, ©rightAttr); + if (ret != B_OK && ret != B_ENTRY_NOT_FOUND) { + fprintf(stderr, "Failed to read current COPYRIGHTS attribute from " + "AboutSystem: %s\n", strerror(ret)); + return ret; + } + + // Don't leave the .OptionalPackageDescription behind. + descriptionFile.Unset(); + descriptionEntry.Remove(); + + return B_OK; } From stippi at mail.berlios.de Mon Sep 7 21:46:42 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Mon, 7 Sep 2009 21:46:42 +0200 Subject: [Haiku-commits] r32987 - haiku/trunk/src/apps/installer Message-ID: <200909071946.n87Jkg18032017@sheep.berlios.de> Author: stippi Date: 2009-09-07 21:46:40 +0200 (Mon, 07 Sep 2009) New Revision: 32987 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32987&view=rev Modified: haiku/trunk/src/apps/installer/UnzipEngine.cpp Log: Fixed warning. Modified: haiku/trunk/src/apps/installer/UnzipEngine.cpp =================================================================== --- haiku/trunk/src/apps/installer/UnzipEngine.cpp 2009-09-07 19:45:39 UTC (rev 32986) +++ haiku/trunk/src/apps/installer/UnzipEngine.cpp 2009-09-07 19:46:40 UTC (rev 32987) @@ -184,7 +184,7 @@ ssize_t read = descriptionFile.Read(buffer, bufferSize); if (read > 0) { int32 length = copyrightAttr.Length(); - if (read < bufferSize) + if (read < (ssize_t)bufferSize) buffer[read] = '\0'; int32 bufferLength = strlen(buffer); // Should be "read", but maybe we have a zero in the From marcusoverhagen at mail.berlios.de Tue Sep 8 01:41:54 2009 From: marcusoverhagen at mail.berlios.de (marcusoverhagen at mail.berlios.de) Date: Tue, 8 Sep 2009 01:41:54 +0200 Subject: [Haiku-commits] r32988 - haiku/trunk/src/add-ons/kernel/busses/ata/silicon_image_3112 Message-ID: <200909072341.n87NfsNM009724@sheep.berlios.de> Author: marcusoverhagen Date: 2009-09-08 01:41:53 +0200 (Tue, 08 Sep 2009) New Revision: 32988 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32988&view=rev Modified: haiku/trunk/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c Log: Use kernel tracing for debugging output. Fix interrupt handling for bus master DMA. Modified: haiku/trunk/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c =================================================================== --- haiku/trunk/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c 2009-09-07 19:46:40 UTC (rev 32987) +++ haiku/trunk/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c 2009-09-07 23:41:53 UTC (rev 32988) @@ -1,5 +1,5 @@ /* - * Copyright 2006, Marcus Overhagen. All rights reserved. + * Copyright 2006-2009, Marcus Overhagen. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -8,9 +8,10 @@ #include #include +#include -#define TRACE(x...) dprintf("si-3112: " x) -//#define FLOW(x...) dprintf("si-3112: " x) +#define TRACE(x...) do { dprintf("si-3112: " x); ktrace_printf("si-3112: " x); } while (0) +//#define FLOW(x...) ktrace_printf("si-3112: " x) #define FLOW(x...) @@ -24,20 +25,13 @@ ASIC_SI3114 = 1, }; -#if 0 -static const char *adapter_asic_names[] = { - "si3112", - "si3114", - NULL -}; -#endif - static const struct { uint16 channel_count; uint32 mmio_bar_size; + const char *asic_name; } kASICData[2] = { - { 2, 0x200 }, - { 4, 0x400 }, + { 2, 0x200, "si3112" }, + { 4, 0x400, "si3114" }, }; static const struct { @@ -291,9 +285,10 @@ sDeviceManager->get_driver(parent, (driver_module_info **)&pci, (void **)&device); sDeviceManager->put_node(parent); - TRACE("asic %ld\n", asicIndex); - TRACE("int_num %ld\n", interruptNumber); - TRACE("mmio_addr %p\n", (void *)mmioAddr); + TRACE("asic index %ld\n", asicIndex); + TRACE("asic name %s\n", kASICData[asicIndex].asic_name); + TRACE("int num %ld\n", interruptNumber); + TRACE("mmio addr %p\n", (void *)mmioAddr); controller->pci = pci; controller->device = device; @@ -484,8 +479,9 @@ controller->channel[channelIndex] = channel; - // enable interrupts so the channel is ready to run - device_control_write(channel, ATA_DEVICE_CONTROL_BIT3); + // disable interrupts + device_control_write(channel, ATA_DEVICE_CONTROL_BIT3 + | ATA_DEVICE_CONTROL_DISABLE_INTS); *_channelCookie = channel; @@ -505,14 +501,10 @@ TRACE("channel_uninit enter\n"); - // disable IRQs - device_control_write(channel, ATA_DEVICE_CONTROL_BIT3 | ATA_DEVICE_CONTROL_DISABLE_INTS); + // disable interrupts + device_control_write(channel, ATA_DEVICE_CONTROL_BIT3 + | ATA_DEVICE_CONTROL_DISABLE_INTS); - // catch spurious interrupt - // (some controllers generate an IRQ when you _disable_ interrupts, - // they are delayed by less then 40 ?s, so 1 ms is safe) - snooze(1000); - delete_area(channel->prd_area); free(channel); @@ -793,9 +785,8 @@ int32 result; int i; -// FLOW("handle_interrupt\n"); + FLOW("handle_interrupt\n"); - result = B_UNHANDLED_INTERRUPT; for (i = 0; i < controller->channel_count; i++) { @@ -803,15 +794,16 @@ if (!channel || channel->lost) continue; - // this could be a spurious interrupt, so always read status - // register unconditionally to acknowledge those - statusATA = *(channel->command_block + 7); - - if (!channel->dma_active) + if (!channel->dma_active) { + // this could be a spurious interrupt, so read + // ata status register to acknowledge + *(channel->command_block + 7); continue; + } statusBM = *channel->bm_status_reg; if (statusBM & ATA_BM_STATUS_INTERRUPT) { + statusATA = *(channel->command_block + 7); *channel->bm_status_reg = (statusBM & 0xf8) | ATA_BM_STATUS_INTERRUPT; sATA->interrupt_handler(channel->ataChannel, statusATA); From marcusoverhagen at mail.berlios.de Tue Sep 8 01:52:59 2009 From: marcusoverhagen at mail.berlios.de (marcusoverhagen at mail.berlios.de) Date: Tue, 8 Sep 2009 01:52:59 +0200 Subject: [Haiku-commits] r32989 - haiku/trunk/src/add-ons/kernel/bus_managers/ata Message-ID: <200909072352.n87NqxCU010939@sheep.berlios.de> Author: marcusoverhagen Date: 2009-09-08 01:52:58 +0200 (Tue, 08 Sep 2009) New Revision: 32989 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32989&view=rev Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp Log: Add more debug code. I see spurius device selection timeouts. When this happens, no recovery is possible right now. Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp 2009-09-07 23:41:53 UTC (rev 32988) +++ haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp 2009-09-07 23:52:58 UTC (rev 32989) @@ -577,11 +577,22 @@ status_t ATAChannel::SendRequest(ATARequest *request, uint32 flags) { + // TODO: implement this: + // resetting the device here would discard current configuration, + // it's better when the SCSI bus manager requests an external reset. + TRACE_FUNCTION("\n"); ATADevice *device = request->Device(); - if (device->Select() != B_OK || WaitForIdle() != B_OK) { - // resetting the device here will discard current configuration, - // it's better when the SCSI bus manager requests an external reset. + + TRACE("SendRequest status 0x%02x\n", AltStatus()); + + if (device->Select() != B_OK) { + TRACE_ERROR("device selection failed\n"); + request->SetStatus(SCSI_SEL_TIMEOUT); + return B_TIMED_OUT; + } + + if (WaitForIdle() != B_OK) { TRACE_ERROR("device selection timeout\n"); request->SetStatus(SCSI_SEL_TIMEOUT); return B_TIMED_OUT; From mmlr at mail.berlios.de Tue Sep 8 02:45:18 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 8 Sep 2009 02:45:18 +0200 Subject: [Haiku-commits] r32990 - haiku/trunk/src/add-ons/kernel/partitioning_systems/session Message-ID: <200909080045.n880jI2Y019696@sheep.berlios.de> Author: mmlr Date: 2009-09-08 02:45:16 +0200 (Tue, 08 Sep 2009) New Revision: 32990 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32990&view=rev Modified: haiku/trunk/src/add-ons/kernel/partitioning_systems/session/Disc.cpp Log: Ignore negative start LBA values and assume 0 instead. At least VMWare Fusion seems to incorrectly set pseconds to 0 for the first track, leading to an LBA of -150 which messes up session recognition. Works around VMWare issue in #4439. Modified: haiku/trunk/src/add-ons/kernel/partitioning_systems/session/Disc.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/partitioning_systems/session/Disc.cpp 2009-09-07 23:52:58 UTC (rev 32989) +++ haiku/trunk/src/add-ons/kernel/partitioning_systems/session/Disc.cpp 2009-09-08 00:45:16 UTC (rev 32990) @@ -635,6 +635,13 @@ PRINT(("found session #%ld info (data session)\n", index)); off_t startLBA = track->start_lba; + if (startLBA < 0) { + WARN(("%s: warning: invalid negative start LBA of %lld" + " for data track assuming 0\n", kModuleDebugName, + startLBA)); + startLBA = 0; + } + off_t endLBA = track->next ? ((struct track*)track->next)->start_lba : session->end_lba; From mmlr at mail.berlios.de Tue Sep 8 02:47:47 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 8 Sep 2009 02:47:47 +0200 Subject: [Haiku-commits] r32991 - haiku/branches/releases/r1alpha1/src/add-ons/kernel/partitioning_systems/session Message-ID: <200909080047.n880lkdU020035@sheep.berlios.de> Author: mmlr Date: 2009-09-08 02:47:45 +0200 (Tue, 08 Sep 2009) New Revision: 32991 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32991&view=rev Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/partitioning_systems/session/Disc.cpp Log: Merging r32990 from trunk to allow the alpha CD to be used in VMWare Fusion. Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/partitioning_systems/session/Disc.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/partitioning_systems/session/Disc.cpp 2009-09-08 00:45:16 UTC (rev 32990) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/partitioning_systems/session/Disc.cpp 2009-09-08 00:47:45 UTC (rev 32991) @@ -635,6 +635,13 @@ PRINT(("found session #%ld info (data session)\n", index)); off_t startLBA = track->start_lba; + if (startLBA < 0) { + WARN(("%s: warning: invalid negative start LBA of %lld" + " for data track assuming 0\n", kModuleDebugName, + startLBA)); + startLBA = 0; + } + off_t endLBA = track->next ? ((struct track*)track->next)->start_lba : session->end_lba; From mmlr at mail.berlios.de Tue Sep 8 05:38:31 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 8 Sep 2009 05:38:31 +0200 Subject: [Haiku-commits] r32992 - haiku/trunk/build/jam Message-ID: <200909080338.n883cVon004862@sheep.berlios.de> Author: mmlr Date: 2009-09-08 05:38:30 +0200 (Tue, 08 Sep 2009) New Revision: 32992 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32992&view=rev Modified: haiku/trunk/build/jam/OptionalPackages Log: Apply OptionalPackages9.diff by scottmc from #4363 to fix libiconv and libxml2 troubles. Fixes #4438. Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-09-08 00:47:45 UTC (rev 32991) +++ haiku/trunk/build/jam/OptionalPackages 2009-09-08 03:38:30 UTC (rev 32992) @@ -493,8 +493,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package LibIconv available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage libiconv-1.13.1-r1a1-x86-gcc2-2009-09-07 - : $(baseURL)/libiconv-1.13.1-r1a1-x86-gcc2-2009-09-07.zip + InstallOptionalHaikuImagePackage libiconv-1.13.1-r1a1-x86-gcc2-2009-09-08 + : $(baseURL)/libiconv-1.13.1-r1a1-x86-gcc2-2009-09-08.zip : ; } @@ -521,8 +521,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package LibXML2 available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage libxml2-2.7.3-git-r1a1-x86-gcc2-2009-08-30 - : $(baseURL)/libxml2-2.7.3-git-r1a1-x86-gcc2-2009-08-30.zip + InstallOptionalHaikuImagePackage libxml2-2.7.3-r1a1-x86-gcc2-2009-09-08 + : $(baseURL)/libxml2-2.7.3-r1a1-x86-gcc2-2009-09-08.zip : ; } From mmlr at mail.berlios.de Tue Sep 8 05:46:39 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 8 Sep 2009 05:46:39 +0200 Subject: [Haiku-commits] r32993 - haiku/trunk/src/kits/interface Message-ID: <200909080346.n883kd1M007537@sheep.berlios.de> Author: mmlr Date: 2009-09-08 05:46:37 +0200 (Tue, 08 Sep 2009) New Revision: 32993 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32993&view=rev Modified: haiku/trunk/src/kits/interface/TextView.cpp Log: Fix auto indent feature of BTextView. The indent was inserted before the line break instead of after. Also whitespace after the cursor position wasn't ignored. Modified: haiku/trunk/src/kits/interface/TextView.cpp =================================================================== --- haiku/trunk/src/kits/interface/TextView.cpp 2009-09-08 03:38:30 UTC (rev 32992) +++ haiku/trunk/src/kits/interface/TextView.cpp 2009-09-08 03:46:37 UTC (rev 32993) @@ -3627,14 +3627,13 @@ start = offset = OffsetAt(_LineAt(fSelStart)); while (ByteAt(offset) != '\0' && - (ByteAt(offset) == B_TAB || ByteAt(offset) == B_SPACE)) + (ByteAt(offset) == B_TAB || ByteAt(offset) == B_SPACE) + && offset < fSelStart) offset++; + _DoInsertText(bytes, numBytes, fSelStart, NULL); if (start != offset) _DoInsertText(Text() + start, offset - start, fSelStart, NULL); - - _DoInsertText(bytes, numBytes, fSelStart, NULL); - } else _DoInsertText(bytes, numBytes, fSelStart, NULL); From mmlr at mail.berlios.de Tue Sep 8 05:51:19 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 8 Sep 2009 05:51:19 +0200 Subject: [Haiku-commits] r32994 - haiku/trunk/src/system/kernel/arch/x86 Message-ID: <200909080351.n883pJoH008614@sheep.berlios.de> Author: mmlr Date: 2009-09-08 05:51:17 +0200 (Tue, 08 Sep 2009) New Revision: 32994 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32994&view=rev Modified: haiku/trunk/src/system/kernel/arch/x86/arch_vm_translation_map.cpp Log: Don't know what this was supposed to do, but with the VADDR_TO_PDENT() it would end up as 0 again in any case. It certainly looks correct without it, removing so it doesn't confuse the next one reading over it. Modified: haiku/trunk/src/system/kernel/arch/x86/arch_vm_translation_map.cpp =================================================================== --- haiku/trunk/src/system/kernel/arch/x86/arch_vm_translation_map.cpp 2009-09-08 03:46:37 UTC (rev 32993) +++ haiku/trunk/src/system/kernel/arch/x86/arch_vm_translation_map.cpp 2009-09-08 03:51:17 UTC (rev 32994) @@ -295,10 +295,9 @@ { // If start == 0, the actual base address is not yet known to the caller and // we shall assume the worst case. - if (start == 0) { - start = 1023 * B_PAGE_SIZE; + if (start == 0) end += 1023 * B_PAGE_SIZE; - } + return VADDR_TO_PDENT(end) + 1 - VADDR_TO_PDENT(start); } From stippi at mail.berlios.de Tue Sep 8 11:58:53 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Tue, 8 Sep 2009 11:58:53 +0200 Subject: [Haiku-commits] r32995 - in haiku/trunk: build/jam data/system/boot Message-ID: <200909080958.n889wr7w002988@sheep.berlios.de> Author: stippi Date: 2009-09-08 11:58:51 +0200 (Tue, 08 Sep 2009) New Revision: 32995 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32995&view=rev Modified: haiku/trunk/build/jam/HaikuImage haiku/trunk/data/system/boot/Bootscript haiku/trunk/data/system/boot/InstallerFinishScript Log: * Removed Installer back into Deskbar menu by popular request. * Changed the Bootscript and the InstallerFinishScript to only create and cleanup a link on the Desktop. * Applied patch by idefix to fix removing the Installer link from volumes that contain spaces in the name. (Thanks!) Modified: haiku/trunk/build/jam/HaikuImage =================================================================== --- haiku/trunk/build/jam/HaikuImage 2009-09-08 03:51:17 UTC (rev 32994) +++ haiku/trunk/build/jam/HaikuImage 2009-09-08 09:58:51 UTC (rev 32995) @@ -283,8 +283,8 @@ # Deskbar Application links AddDirectoryToHaikuImage home config be Applications ; DESKBAR_APPLICATIONS = ActivityMonitor CharacterMap CodyCam CDPlayer DeskCalc - DiskProbe DriveSetup DiskUsage Expander Icon-O-Matic Magnify Mail - MediaConverter MediaPlayer MidiPlayer People PoorMan Screenshot + DiskProbe DriveSetup DiskUsage Expander Icon-O-Matic Installer Magnify + Mail MediaConverter MediaPlayer MidiPlayer People PoorMan Screenshot SoundRecorder StyledEdit Terminal TV ; local linkTarget ; Modified: haiku/trunk/data/system/boot/Bootscript =================================================================== --- haiku/trunk/data/system/boot/Bootscript 2009-09-08 03:51:17 UTC (rev 32994) +++ haiku/trunk/data/system/boot/Bootscript 2009-09-08 09:58:51 UTC (rev 32995) @@ -102,9 +102,8 @@ # Now ask the user if he wants to run the Installer or continue to the Desktop. if [ "$isReadOnly" = "yes" ]; then - # Create Installer links (using the write overlay) + # Create Installer link (using the write overlay) ln -sf /boot/system/apps/Installer /boot/home/Desktop/Installer - ln -sf /boot/system/apps/Installer /boot/home/config/be/Applications/Installer /bin/alert "Do you wish to run the Installer or continue booting to the Desktop?" "Installer" "Desktop" if [ $? -eq 0 ]; then Modified: haiku/trunk/data/system/boot/InstallerFinishScript =================================================================== --- haiku/trunk/data/system/boot/InstallerFinishScript 2009-09-08 03:51:17 UTC (rev 32994) +++ haiku/trunk/data/system/boot/InstallerFinishScript 2009-09-08 09:58:51 UTC (rev 32995) @@ -15,8 +15,7 @@ mkdir -p "$target/var/tmp" -# remove Installer links -rm -f $target/home/Desktop/Installer -rm -f $target/home/config/be/Applications/Installer +# remove Installer link +rm -f "$target/home/Desktop/Installer" makebootable "$target" From stippi at mail.berlios.de Tue Sep 8 13:45:59 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Tue, 8 Sep 2009 13:45:59 +0200 Subject: [Haiku-commits] r32996 - haiku/trunk/build/jam Message-ID: <200909081145.n88BjxWJ008267@sheep.berlios.de> Author: stippi Date: 2009-09-08 13:45:52 +0200 (Tue, 08 Sep 2009) New Revision: 32996 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32996&view=rev Modified: haiku/trunk/build/jam/ImageRules haiku/trunk/build/jam/OptionalPackages Log: Introduced new buildsystem feature that places certain packages into _packages_ on the target image instead of extracting them, but only if the target image is a CD image. This then speeds up installing a great lot, at the expense of certain applications not being available in LiveCD mode. This affects * the revision control tools and their dependency libraries, * autotools * texinfo * perl and python Modified: haiku/trunk/build/jam/ImageRules =================================================================== --- haiku/trunk/build/jam/ImageRules 2009-09-08 09:58:51 UTC (rev 32995) +++ haiku/trunk/build/jam/ImageRules 2009-09-08 11:45:52 UTC (rev 32996) @@ -758,13 +758,18 @@ } } -rule InstallOptionalHaikuImagePackage package : url : dirTokens +rule InstallOptionalHaikuImagePackage package : url : dirTokens : isCDPackage { # download zip file local zipFile = [ DownloadOptionalPackage $(package) : $(url) ] ; - # unzip onto image - UnzipArchiveToHaikuImage $(dirTokens) : $(zipFile) ; + if $(isCDPackage) = true || $(isCDPackage) = 1 && $(HAIKU_CD_NAME) { + # copy onto image + AddFilesToHaikuImage _packages_ : $(zipFile) ; + } else { + # unzip onto image + UnzipArchiveToHaikuImage $(dirTokens) : $(zipFile) ; + } } rule AddEntryToHaikuImageUserGroupFile file : entry Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-09-08 09:58:51 UTC (rev 32995) +++ haiku/trunk/build/jam/OptionalPackages 2009-09-08 11:45:52 UTC (rev 32996) @@ -12,7 +12,7 @@ # Available Optional Packages: -# APR - support libraries used for example by SVN +# APR - support libraries used for example by Subversion # APR-util # Beam - powerful native e-mail client # BeBook - the classic BeOS API documentation @@ -70,6 +70,7 @@ InstallOptionalHaikuImagePackage apr-1.3.8-r1a1-x86-gcc2-2009-08-29 : $(baseURL)/apr-1.3.8-r1a1-x86-gcc2-2009-08-29.zip : + : true ; } } @@ -83,6 +84,7 @@ InstallOptionalHaikuImagePackage apr-util-1.3.9-r1a1-x86-gcc2-2009-08-29 : $(baseURL)/apr-util-1.3.9-r1a1-x86-gcc2-2009-08-29.zip : + : true ; } } @@ -237,6 +239,7 @@ clucene-0.9.21svn-x86-gcc4-haiku-2009-08-11 : $(baseURL)/clucene-0.9.21-x86-gcc4-haiku-2009-08-11.zip : + : true ; } } @@ -249,8 +252,8 @@ } else { InstallOptionalHaikuImagePackage curl-7.19.6-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/curl-7.19.6-r1a1-x86-gcc2-2009-08-30.zip - : + : true ; } } @@ -264,6 +267,7 @@ InstallOptionalHaikuImagePackage cvs-1.12.13-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/cvs-1.12.13-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } @@ -273,13 +277,21 @@ if [ IsOptionalHaikuImagePackageAdded Development ] && $(TARGET_ARCH) = x86 { # autotools InstallOptionalHaikuImagePackage autoconf-2.64-r1a1-x86-gcc2-2009-08-27 - : $(baseURL)/autoconf-2.64-r1a1-x86-gcc2-2009-08-27.zip ; + : $(baseURL)/autoconf-2.64-r1a1-x86-gcc2-2009-08-27.zip + : + : true ; InstallOptionalHaikuImagePackage automake-1.11-r1a1-x86-gcc2-2009-08-27 - : $(baseURL)/automake-1.11-r1a1-x86-gcc2-2009-08-27.zip ; + : $(baseURL)/automake-1.11-r1a1-x86-gcc2-2009-08-27.zip + : + : true ; InstallOptionalHaikuImagePackage libtool-2.2.6a-r1a1-x86-gcc2-2009-08-28 - : $(baseURL)/libtool-2.2.6a-r1a1-x86-gcc2-2009-08-28.zip ; + : $(baseURL)/libtool-2.2.6a-r1a1-x86-gcc2-2009-08-28.zip + : + : true ; InstallOptionalHaikuImagePackage texinfo-4.13a-r1a1-x86-gcc2-2009-08-30 - : $(baseURL)/texinfo-4.13a-r1a1-x86-gcc2-2009-08-30.zip ; + : $(baseURL)/texinfo-4.13a-r1a1-x86-gcc2-2009-08-30.zip + : + : true ; } @@ -423,6 +435,7 @@ InstallOptionalHaikuImagePackage expat-2.0.1-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/expat-2.0.1-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } @@ -459,6 +472,7 @@ InstallOptionalHaikuImagePackage git-1.6.4.2-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/git-1.6.4.2-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } @@ -471,7 +485,7 @@ } else if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31 - : $(baseURL)/KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31.zip + : $(baseURL)/KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31.zip : ; AddSymlinkToHaikuImage home config be Desktop\ Applets @@ -479,7 +493,7 @@ } else { InstallOptionalHaikuImagePackage KeymapSwitcher-1.2.4-r1a1-x86-gcc2-2009-09-06 - : $(baseURL)/KeymapSwitcher-1.2.4-r1a1-x86-gcc2-2009-09-06.zip + : $(baseURL)/KeymapSwitcher-1.2.4-r1a1-x86-gcc2-2009-09-06.zip : ; AddSymlinkToHaikuImage home config be Desktop\ Applets @@ -524,6 +538,7 @@ InstallOptionalHaikuImagePackage libxml2-2.7.3-r1a1-x86-gcc2-2009-09-08 : $(baseURL)/libxml2-2.7.3-r1a1-x86-gcc2-2009-09-08.zip : + : true ; } } @@ -554,6 +569,7 @@ InstallOptionalHaikuImagePackage mercurial-1.3.1-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/mercurial-1.3.1-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } @@ -580,6 +596,7 @@ InstallOptionalHaikuImagePackage neon-0.28.6-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/neon-0.28.6-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } @@ -725,6 +742,7 @@ InstallOptionalHaikuImagePackage perl-5.10.0-gcc2-2008-10-29 : $(baseURL)/perl-5.10.0-gcc2-2008-10-29.zip : + : true ; } } @@ -738,6 +756,7 @@ InstallOptionalHaikuImagePackage python-2.6.2-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/python-2.6.2-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } @@ -763,8 +782,8 @@ } else { InstallOptionalHaikuImagePackage sqlite-3.6.17-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/sqlite-3.6.17-r1a1-x86-gcc2-2009-08-30.zip - : + : true ; } } @@ -778,6 +797,7 @@ InstallOptionalHaikuImagePackage subversion-1.6.5-r1a1-x86-gcc2-2009-09-02 : $(baseURL)/subversion-1.6.5-r1a1-x86-gcc2-2009-09-02.zip : + : true ; } } @@ -952,7 +972,6 @@ } else { InstallOptionalHaikuImagePackage yasm-0.8.0-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/yasm-0.8.0-r1a1-x86-gcc2-2009-08-30.zip - : ; } From stippi at mail.berlios.de Tue Sep 8 13:52:56 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Tue, 8 Sep 2009 13:52:56 +0200 Subject: [Haiku-commits] r32997 - in haiku/branches/releases/r1alpha1: build/jam docs/userguide/en docs/userguide/en/applications docs/userguide/images docs/userguide/images/gui-images headers/private/shared src/apps/installer src/kits/shared Message-ID: <200909081152.n88BquHL009862@sheep.berlios.de> Author: stippi Date: 2009-09-08 13:52:36 +0200 (Tue, 08 Sep 2009) New Revision: 32997 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32997&view=rev Added: haiku/branches/releases/r1alpha1/docs/userguide/images/gui-images/ haiku/branches/releases/r1alpha1/docs/userguide/images/gui-images/replicant.png haiku/branches/releases/r1alpha1/src/apps/installer/ProgressReporter.cpp haiku/branches/releases/r1alpha1/src/apps/installer/ProgressReporter.h haiku/branches/releases/r1alpha1/src/apps/installer/SemaphoreLocker.h haiku/branches/releases/r1alpha1/src/apps/installer/UnzipEngine.cpp haiku/branches/releases/r1alpha1/src/apps/installer/UnzipEngine.h Modified: haiku/branches/releases/r1alpha1/build/jam/ImageRules haiku/branches/releases/r1alpha1/build/jam/OptionalPackages haiku/branches/releases/r1alpha1/docs/userguide/en/applications/activitymonitor.html haiku/branches/releases/r1alpha1/docs/userguide/en/applications/deskcalc.html haiku/branches/releases/r1alpha1/docs/userguide/en/contents.html haiku/branches/releases/r1alpha1/docs/userguide/en/deskbar.html haiku/branches/releases/r1alpha1/docs/userguide/en/gui.html haiku/branches/releases/r1alpha1/docs/userguide/en/workspaces.html haiku/branches/releases/r1alpha1/headers/private/shared/CommandPipe.h haiku/branches/releases/r1alpha1/src/apps/installer/CopyEngine.cpp haiku/branches/releases/r1alpha1/src/apps/installer/CopyEngine.h haiku/branches/releases/r1alpha1/src/apps/installer/Jamfile haiku/branches/releases/r1alpha1/src/apps/installer/WorkerThread.cpp haiku/branches/releases/r1alpha1/src/apps/installer/WorkerThread.h haiku/branches/releases/r1alpha1/src/kits/shared/CommandPipe.cpp Log: * Merged changesets r32903, r32926, r32957, r32959, r32967, r32986 and r32987 (all the CommandPipe and Installer changes). * Merged changeset r32968 (Haiku Guide). * Merged changesets r32969, r32983, r32984 and r32992 (OptionalPackages). * Merged changeset r32995 (Installer links fixes). * Merged changeset r32996 (unzipping of packages at install time) * Updated OptionalPackages warnings about packages that still need to be rebuilt. Modified: haiku/branches/releases/r1alpha1/build/jam/ImageRules =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/ImageRules 2009-09-08 11:45:52 UTC (rev 32996) +++ haiku/branches/releases/r1alpha1/build/jam/ImageRules 2009-09-08 11:52:36 UTC (rev 32997) @@ -758,13 +758,18 @@ } } -rule InstallOptionalHaikuImagePackage package : url : dirTokens +rule InstallOptionalHaikuImagePackage package : url : dirTokens : isCDPackage { # download zip file local zipFile = [ DownloadOptionalPackage $(package) : $(url) ] ; - # unzip onto image - UnzipArchiveToHaikuImage $(dirTokens) : $(zipFile) ; + if $(isCDPackage) = true || $(isCDPackage) = 1 && $(HAIKU_CD_NAME) { + # copy onto image + AddFilesToHaikuImage _packages_ : $(zipFile) ; + } else { + # unzip onto image + UnzipArchiveToHaikuImage $(dirTokens) : $(zipFile) ; + } } rule AddEntryToHaikuImageUserGroupFile file : entry Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackages =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-08 11:45:52 UTC (rev 32996) +++ haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-08 11:52:36 UTC (rev 32997) @@ -12,7 +12,7 @@ # Available Optional Packages: -# APR - support libraries used for example by SVN +# APR - support libraries used for example by Subversion # APR-util # Beam - powerful native e-mail client # BeBook - the classic BeOS API documentation @@ -81,26 +81,28 @@ # APR -if [ IsObsoleteOptionalHaikuImagePackageAdded APR ] { +if [ IsOptionalHaikuImagePackageAdded APR ] { if $(TARGET_ARCH) != x86 { Echo "No optional package APR available for $(TARGET_ARCH)" ; } else { InstallOptionalHaikuImagePackage apr-1.3.8-r1a1-x86-gcc2-2009-08-29 : $(baseURL)/apr-1.3.8-r1a1-x86-gcc2-2009-08-29.zip : + : true ; } } # APR-util -if [ IsObsoleteOptionalHaikuImagePackageAdded APR-util ] { +if [ IsOptionalHaikuImagePackageAdded APR-util ] { if $(TARGET_ARCH) != x86 { Echo "No optional package APR-util available for $(TARGET_ARCH)" ; } else { InstallOptionalHaikuImagePackage apr-util-1.3.9-r1a1-x86-gcc2-2009-08-29 : $(baseURL)/apr-util-1.3.9-r1a1-x86-gcc2-2009-08-29.zip : + : true ; } } @@ -170,7 +172,7 @@ # BePDF -if [ IsObsoleteOptionalHaikuImagePackageAdded BePDF ] { +if [ IsOptionalHaikuImagePackageAdded BePDF ] { if $(TARGET_ARCH) != x86 { Echo "No optional package BePDF available for $(TARGET_ARCH)" ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) { @@ -210,7 +212,7 @@ # CDRecord -if [ IsObsoleteOptionalHaikuImagePackageAdded CDRecord ] { +if [ IsOptionalHaikuImagePackageAdded CDRecord ] { if $(TARGET_ARCH) != x86 { Echo "No optional package CDRecord available for $(TARGET_ARCH)" ; } else { @@ -255,6 +257,7 @@ clucene-0.9.21svn-x86-gcc4-haiku-2009-08-11 : $(baseURL)/clucene-0.9.21-x86-gcc4-haiku-2009-08-11.zip : + : true ; } } @@ -267,21 +270,22 @@ } else { InstallOptionalHaikuImagePackage curl-7.19.6-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/curl-7.19.6-r1a1-x86-gcc2-2009-08-30.zip - : + : true ; } } # CVS -if [ IsObsoleteOptionalHaikuImagePackageAdded CVS ] { +if [ IsOptionalHaikuImagePackageAdded CVS ] { if $(TARGET_ARCH) != x86 { Echo "No optional package CVS available for $(TARGET_ARCH)" ; } else { InstallOptionalHaikuImagePackage cvs-1.12.13-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/cvs-1.12.13-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } @@ -291,18 +295,21 @@ if [ IsOptionalHaikuImagePackageAdded Development ] && $(TARGET_ARCH) = x86 { # autotools InstallOptionalHaikuImagePackage autoconf-2.64-r1a1-x86-gcc2-2009-08-27 - : $(baseURL)/autoconf-2.64-r1a1-x86-gcc2-2009-08-27.zip ; + : $(baseURL)/autoconf-2.64-r1a1-x86-gcc2-2009-08-27.zip + : + : true ; InstallOptionalHaikuImagePackage automake-1.11-r1a1-x86-gcc2-2009-08-27 - : $(baseURL)/automake-1.11-r1a1-x86-gcc2-2009-08-27.zip ; + : $(baseURL)/automake-1.11-r1a1-x86-gcc2-2009-08-27.zip + : + : true ; InstallOptionalHaikuImagePackage libtool-2.2.6a-r1a1-x86-gcc2-2009-08-28 - : $(baseURL)/libtool-2.2.6a-r1a1-x86-gcc2-2009-08-28.zip ; + : $(baseURL)/libtool-2.2.6a-r1a1-x86-gcc2-2009-08-28.zip + : + : true ; InstallOptionalHaikuImagePackage texinfo-4.13a-r1a1-x86-gcc2-2009-08-30 - : $(baseURL)/texinfo-4.13a-r1a1-x86-gcc2-2009-08-30.zip ; - -ObsoleteOptionalPackageWarning autoconf ; -ObsoleteOptionalPackageWarning automake ; -ObsoleteOptionalPackageWarning libtool ; -ObsoleteOptionalPackageWarning texinfo ; + : $(baseURL)/texinfo-4.13a-r1a1-x86-gcc2-2009-08-30.zip + : + : true ; } @@ -446,6 +453,7 @@ InstallOptionalHaikuImagePackage expat-2.0.1-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/expat-2.0.1-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } @@ -482,27 +490,28 @@ InstallOptionalHaikuImagePackage git-1.6.4.2-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/git-1.6.4.2-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } # KeymapSwitcher -if [ IsObsoleteOptionalHaikuImagePackageAdded KeymapSwitcher ] { +if [ IsOptionalHaikuImagePackageAdded KeymapSwitcher ] { if $(TARGET_ARCH) != x86 { Echo "No optional package KeymapSwitcher available for $(TARGET_ARCH)" ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31 - : $(baseURL)/KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31.zip + : $(baseURL)/KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31.zip : ; AddSymlinkToHaikuImage home config be Desktop\ Applets : /boot/common/bin/KeymapSwitcher ; } else { InstallOptionalHaikuImagePackage - KeymapSwitcher-1.2.3-x86-gcc2-2009-05-31 - : $(baseURL)/KeymapSwitcher-1.2.3-x86-gcc2-2009-05-31.zip + KeymapSwitcher-1.2.4-r1a1-x86-gcc2-2009-09-06 + : $(baseURL)/KeymapSwitcher-1.2.4-r1a1-x86-gcc2-2009-09-06.zip : ; AddSymlinkToHaikuImage home config be Desktop\ Applets @@ -512,12 +521,12 @@ # LibIconv -if [ IsObsoleteOptionalHaikuImagePackageAdded LibIconv ] { +if [ IsOptionalHaikuImagePackageAdded LibIconv ] { if $(TARGET_ARCH) != x86 { Echo "No optional package LibIconv available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage libiconv-1.13.1-x86-gcc2-2009-07-07 - : $(baseURL)/libiconv-1.13.1-x86-gcc2-2009-07-07.zip + InstallOptionalHaikuImagePackage libiconv-1.13.1-r1a1-x86-gcc2-2009-09-08 + : $(baseURL)/libiconv-1.13.1-r1a1-x86-gcc2-2009-09-08.zip : ; } @@ -525,7 +534,7 @@ # LibLayout library -if [ IsObsoleteOptionalHaikuImagePackageAdded LibLayout ] { +if [ IsOptionalHaikuImagePackageAdded LibLayout ] { if $(TARGET_ARCH) != x86 { Echo "No optional package LibLayout available for $(TARGET_ARCH)" ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) { @@ -540,13 +549,14 @@ # LibXML2 -if [ IsObsoleteOptionalHaikuImagePackageAdded LibXML2 ] { +if [ IsOptionalHaikuImagePackageAdded LibXML2 ] { if $(TARGET_ARCH) != x86 { Echo "No optional package LibXML2 available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage libxml2-2.7.3-git-r1a1-x86-gcc2-2009-08-30 - : $(baseURL)/libxml2-2.7.3-git-r1a1-x86-gcc2-2009-08-30.zip + InstallOptionalHaikuImagePackage libxml2-2.7.3-r1a1-x86-gcc2-2009-09-08 + : $(baseURL)/libxml2-2.7.3-r1a1-x86-gcc2-2009-09-08.zip : + : true ; } } @@ -577,13 +587,14 @@ InstallOptionalHaikuImagePackage mercurial-1.3.1-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/mercurial-1.3.1-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } # Nano -if [ IsObsoleteOptionalHaikuImagePackageAdded Nano ] { +if [ IsOptionalHaikuImagePackageAdded Nano ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Nano available for $(TARGET_ARCH)" ; } else { @@ -596,13 +607,14 @@ # Neon -if [ IsObsoleteOptionalHaikuImagePackageAdded Neon ] { +if [ IsOptionalHaikuImagePackageAdded Neon ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Neon available for $(TARGET_ARCH)" ; } else { InstallOptionalHaikuImagePackage neon-0.28.6-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/neon-0.28.6-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } @@ -640,7 +652,7 @@ # OpenSSH -if [ IsObsoleteOptionalHaikuImagePackageAdded OpenSSH ] { +if [ IsOptionalHaikuImagePackageAdded OpenSSH ] { if $(TARGET_ARCH) != x86 { Echo "No optional package OpenSSH available for $(TARGET_ARCH)" ; } else { @@ -674,7 +686,7 @@ # P7zip -if [ IsObsoleteOptionalHaikuImagePackageAdded P7zip ] { +if [ IsOptionalHaikuImagePackageAdded P7zip ] { if $(TARGET_ARCH) != x86 { Echo "No optional package P7zip available for $(TARGET_ARCH)" ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) { @@ -699,7 +711,7 @@ # Pe text editor -if [ IsObsoleteOptionalHaikuImagePackageAdded Pe ] { +if [ IsOptionalHaikuImagePackageAdded Pe ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Pe available for $(TARGET_ARCH)" ; } else { @@ -729,26 +741,28 @@ InstallOptionalHaikuImagePackage perl-5.10.0-gcc2-2008-10-29 : $(baseURL)/perl-5.10.0-gcc2-2008-10-29.zip : + : true ; } } # Python -if [ IsObsoleteOptionalHaikuImagePackageAdded Python ] { +if [ IsOptionalHaikuImagePackageAdded Python ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Python available for $(TARGET_ARCH)" ; } else { InstallOptionalHaikuImagePackage python-2.6.2-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/python-2.6.2-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } # Rsync -if [ IsObsoleteOptionalHaikuImagePackageAdded Rsync ] { +if [ IsOptionalHaikuImagePackageAdded Rsync ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Rsync available for $(TARGET_ARCH)" ; } else { @@ -761,27 +775,28 @@ # SQLite -if [ IsObsoleteOptionalHaikuImagePackageAdded SQLite ] { +if [ IsOptionalHaikuImagePackageAdded SQLite ] { if $(TARGET_ARCH) != x86 { Echo "No optional package SQLite available for $(TARGET_ARCH)" ; } else { InstallOptionalHaikuImagePackage sqlite-3.6.17-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/sqlite-3.6.17-r1a1-x86-gcc2-2009-08-30.zip - : + : true ; } } # Subversion -if [ IsObsoleteOptionalHaikuImagePackageAdded Subversion ] { +if [ IsOptionalHaikuImagePackageAdded Subversion ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Subversion available for $(TARGET_ARCH)" ; } else { InstallOptionalHaikuImagePackage subversion-1.6.5-r1a1-x86-gcc2-2009-09-02 : $(baseURL)/subversion-1.6.5-r1a1-x86-gcc2-2009-09-02.zip : + : true ; } } @@ -854,7 +869,7 @@ # Vim -if [ IsObsoleteOptionalHaikuImagePackageAdded Vim ] { +if [ IsOptionalHaikuImagePackageAdded Vim ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Vim available for $(TARGET_ARCH)" ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { @@ -865,8 +880,8 @@ AddSymlinkToHaikuImage home config be Applications : /boot/common/bin/gvim ; } else { - InstallOptionalHaikuImagePackage vim-7.2-x86-gcc2-2009-05-31 - : $(baseURL)/vim-7.2-x86-gcc2-2009-05-31.zip + InstallOptionalHaikuImagePackage vim-7.2-r1a1-x86-gcc2-2009-09-06 + : $(baseURL)/vim-7.2-r1a1-x86-gcc2-2009-09-06.zip : ; AddSymlinkToHaikuImage home config be Applications @@ -950,13 +965,12 @@ # Yasm -if [ IsObsoleteOptionalHaikuImagePackageAdded Yasm ] { +if [ IsOptionalHaikuImagePackageAdded Yasm ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Yasm available for $(TARGET_ARCH)" ; } else { InstallOptionalHaikuImagePackage yasm-0.8.0-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/yasm-0.8.0-r1a1-x86-gcc2-2009-08-30.zip - : ; } Modified: haiku/branches/releases/r1alpha1/docs/userguide/en/applications/activitymonitor.html =================================================================== --- haiku/branches/releases/r1alpha1/docs/userguide/en/applications/activitymonitor.html 2009-09-08 11:45:52 UTC (rev 32996) +++ haiku/branches/releases/r1alpha1/docs/userguide/en/applications/activitymonitor.html 2009-09-08 11:52:36 UTC (rev 32997) @@ -51,7 +51,7 @@

            Below the graphics is a legend (hideable from the context menu). You can change their colors and that of the graph's background via drag&drop from any color picker, e.g. from Icon-O-Matic.

            You can add more views from the File menu if it gets too crowded.

            The Settings menu opens a panel where you can set the update interval.

            -

            Each view has it's own Replicator handle and can thus be arranged, for example, on the Desktop.

            +

            Each view has it's own Replicant handle and can thus be arranged, for example, on the Desktop.

            Modified: haiku/branches/releases/r1alpha1/docs/userguide/en/applications/deskcalc.html =================================================================== --- haiku/branches/releases/r1alpha1/docs/userguide/en/applications/deskcalc.html 2009-09-08 11:45:52 UTC (rev 32996) +++ haiku/branches/releases/r1alpha1/docs/userguide/en/applications/deskcalc.html 2009-09-08 11:52:36 UTC (rev 32997) @@ -45,7 +45,7 @@


            DeskCalc is a simple calculator that nevertheless has some nice features that aren't apparent on first sight.

            -deskcalc.png +deskcalc.png
            • DeskCalc understands much more than its simple keypad suggests.
              Besides the operators +, -, *, /, %, ^ and the constants pi and e the following math functions are supported:
              @@ -60,7 +60,7 @@ 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.

            • +
            • 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 ??????.

            • 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.

              Modified: haiku/branches/releases/r1alpha1/docs/userguide/en/contents.html =================================================================== --- haiku/branches/releases/r1alpha1/docs/userguide/en/contents.html 2009-09-08 11:45:52 UTC (rev 32996) +++ haiku/branches/releases/r1alpha1/docs/userguide/en/contents.html 2009-09-08 11:52:36 UTC (rev 32997) @@ -56,7 +56,8 @@ Haiku's GUI + - Favorites and recent folders
            • +
            • Replicants
            Learn about the basic elements of the graphical user interface. Workspaces
            • The Workspaces Applet
            • Modified: haiku/branches/releases/r1alpha1/docs/userguide/en/deskbar.html =================================================================== --- haiku/branches/releases/r1alpha1/docs/userguide/en/deskbar.html 2009-09-08 11:45:52 UTC (rev 32996) +++ haiku/branches/releases/r1alpha1/docs/userguide/en/deskbar.html 2009-09-08 11:52:36 UTC (rev 32997) @@ -60,7 +60,7 @@
            • About This System... - Shows some basic information of the system, licenses and the credits of the Haiku project.

            • Find... - Opens the Query dialog.

            • -
            • Show Replicants - Shows/hides the little Replicant widget you use to drag it around, remove or access its context menu.

            • +
            • Show Replicants - Shows/hides the little Replicant widget you use to drag it around, remove or access its context menu.

            • Mount - Offers the same options as when invoked by right-clicking the Desktop (see Mounting Volumes).

            • Deskbar Settings

              Modified: haiku/branches/releases/r1alpha1/docs/userguide/en/gui.html =================================================================== --- haiku/branches/releases/r1alpha1/docs/userguide/en/gui.html 2009-09-08 11:45:52 UTC (rev 32996) +++ haiku/branches/releases/r1alpha1/docs/userguide/en/gui.html 2009-09-08 11:52:36 UTC (rev 32997) @@ -84,6 +84,15 @@

              To add a Favorite, you simply navigate to your destination and choose Favorites | Add Current Folder. From now on it will appear in every open/save panel. To remove a Favorite, choose Favorites | Configure Favorites... and delete its entry.
              All Favorites are kept in /boot/home/config/settings/Tracker/Go/. So you might as well add and remove links to files and folders there directly.

              +

              +index +Replicants

              +

              Replicants are small self-contained parts of applications that can be integrated into other programs. Provided Deskbar's option to Show Replicants is activated, you'll recognize a replicantable part of an appliction by its small handle, normally in the bottom right corner:

              +replicant.png +

              The most prominent place that accepts Replicants is the Desktop: You simply drag&drop the little handle onto it. From now on it's part of the Desktop and the Replicant's originating app doesn't have to be started for it to work.
              +A right-click on a Replicant handle offers a context menu to show the originating app's About window and to Remove Replicant.

              +

              Examples for replicatable applications are the graphs of the ActivityMonitor, the Workspaces applet or DeskCalc.

              +
              Modified: haiku/branches/releases/r1alpha1/docs/userguide/en/workspaces.html =================================================================== --- haiku/branches/releases/r1alpha1/docs/userguide/en/workspaces.html 2009-09-08 11:45:52 UTC (rev 32996) +++ haiku/branches/releases/r1alpha1/docs/userguide/en/workspaces.html 2009-09-08 11:52:36 UTC (rev 32997) @@ -51,7 +51,7 @@ workspaces.png

              You find the Workspaces applet with the other Desktop Applets in the Deskbar. It shows a miniature version of all workspaces. There are several options available from the context menu of the applet's window, which are all pretty self-explaining.
              Change Workspace Count... will open the Screen preferences where you set the number of workspaces and their arrangement (how many rows and columns).

              -

              Since the applet is a Replicant, you can resize the window as desired and then drag&drop it by its handle onto the desktop (make sure "Show Replicants" is activated in the Deskbar menu).

              +

              Since the applet is a Replicant, you can resize the window as desired and then drag&drop it by its handle onto the desktop (make sure "Show Replicants" is activated in the Deskbar menu).

              index Added: haiku/branches/releases/r1alpha1/docs/userguide/images/gui-images/replicant.png =================================================================== --- haiku/branches/releases/r1alpha1/docs/userguide/images/gui-images/replicant.png 2009-09-08 11:45:52 UTC (rev 32996) +++ haiku/branches/releases/r1alpha1/docs/userguide/images/gui-images/replicant.png 2009-09-08 11:52:36 UTC (rev 32997) @@ -0,0 +1,3 @@ +?PNG + + \ No newline at end of file Modified: haiku/branches/releases/r1alpha1/headers/private/shared/CommandPipe.h =================================================================== --- haiku/branches/releases/r1alpha1/headers/private/shared/CommandPipe.h 2009-09-08 11:45:52 UTC (rev 32996) +++ haiku/branches/releases/r1alpha1/headers/private/shared/CommandPipe.h 2009-09-08 11:52:36 UTC (rev 32997) @@ -22,63 +22,73 @@ namespace BPrivate { class BCommandPipe { - public: +public: BCommandPipe(); virtual ~BCommandPipe(); - + status_t AddArg(const char* argv); void PrintToStream() const; - + // FlushArgs() deletes the commands while Close() explicity closes all // pending pipe-ends // Note: Internally FlushArgs() calls Close() void FlushArgs(); void Close(); - + + // You MUST NOT free/delete the strings in the array, but you MUST free + // just the array itself. + const char** Argv(int32& _argc) const; + // If you use these, you must explicitly call "close" for the parameters - // (outdes/errdes) when you are done with them! - thread_id Pipe(int* outdes, int* errdes) const; - thread_id Pipe(int* outdes) const; - thread_id PipeAll(int* outAndErrDes) const; - + // (stdOut/stdErr) when you are done with them! + thread_id Pipe(int* stdOut, int* stdErr) const; + thread_id Pipe(int* stdOut) const; + thread_id PipeAll(int* stdOutAndErr) const; + // If you use these, you need NOT call "fclose" for the parameters // (out/err) when you are done with them, also you need not do any // allocation for these FILE* pointers, just use FILE* out = NULL // and pass &out and so on... thread_id PipeInto(FILE** _out, FILE** _err); thread_id PipeInto(FILE** _outAndErr); - + // Run() is a synchronous call, and waits till the command has finished // executing RunAsync() is an asynchronous call that returns immediately // after launching the command Neither of these bother about redirecting // pipes for you to use void Run(); void RunAsync(); - - // This function reads line-by-line from "file", cancels its reading - // when "*cancel" is true. It reports each line it has read to "target" - // using the supplied "_message" and string field name. "cancel" can be - // NULL - BString ReadLines(FILE* file, bool* cancel, - BMessenger& target, const BMessage& message, - const BString& stringFieldName); - - // You need NOT free/delete the return array of strings - const char** Argv(int32& _argc) const; - + + // Reading the Pipe output + + class LineReader { + public: + virtual ~LineReader() {} + virtual bool IsCanceled() = 0; + virtual status_t ReadLine(const BString& line) = 0; + // TODO: Add a Timeout() method. + }; + + // This function reads line-by-line from "file". It calls IsCanceled() + // on the passed LineReader instance for each byte read from file + // (currently). And it calls ReadLine() for each complete line. + status_t ReadLines(FILE* file, LineReader* lineReader); + // This method can be used to read the entire file into a BString. + BString ReadLines(FILE* file); + // Stardard append operators, if you use pointers to a BCommandPipe, // you must use *pipe << "command"; and not pipe << "command" (as it // will not compile that way) - BCommandPipe& operator<<(const char *arg); + BCommandPipe& operator<<(const char* arg); BCommandPipe& operator<<(const BString& arg); BCommandPipe& operator<<(const BCommandPipe& arg); - - protected: + +protected: BList fArgList; - int fOutDes[2]; - int fErrDes[2]; - bool fOutDesOpen; - bool fErrDesOpen; + int fStdOut[2]; + int fStdErr[2]; + bool fStdOutOpen; + bool fStdErrOpen; }; } // namespace BPrivate Modified: haiku/branches/releases/r1alpha1/src/apps/installer/CopyEngine.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/apps/installer/CopyEngine.cpp 2009-09-08 11:45:52 UTC (rev 32996) +++ haiku/branches/releases/r1alpha1/src/apps/installer/CopyEngine.cpp 2009-09-08 11:52:36 UTC (rev 32997) @@ -19,54 +19,25 @@ #include #include -#include "AutoLocker.h" #include "InstallerWindow.h" // TODO: For PACKAGES_DIRECTORY and VAR_DIRECTORY, not so nice... +#include "SemaphoreLocker.h" +#include "ProgressReporter.h" + using std::nothrow; -// SemaphoreLocking -class SemaphoreLocking { -public: - inline bool Lock(sem_id* lockable) - { - return acquire_sem(*lockable) == B_OK; - } - - inline void Unlock(sem_id* lockable) - { - release_sem(*lockable); - } -}; - -// SemaphoreLocker -class SemaphoreLocker : public AutoLocker { -public: - inline SemaphoreLocker(sem_id semaphore, bool alreadyLocked = false, - bool lockIfNotLocked = true) - : - AutoLocker(), - fSem(semaphore) - { - SetTo(&fSem, alreadyLocked, lockIfNotLocked); - } - -private: - sem_id fSem; -}; - - - - -CopyEngine::CopyEngine(const BMessenger& messenger, BMessage* message) +CopyEngine::CopyEngine(ProgressReporter* reporter) : fBufferQueue(), fWriterThread(-1), fQuitting(false), fBytesRead(0), + fLastBytesRead(0), fItemsCopied(0), + fLastItemsCopied(0), fTimeRead(0), fBytesWritten(0), @@ -78,8 +49,7 @@ fCurrentTargetFolder(NULL), fCurrentItem(NULL), - fMessenger(messenger), - fMessage(message) + fProgressReporter(reporter) { fWriterThread = spawn_thread(_WriteThreadEntry, "buffer writer", B_NORMAL_PRIORITY, this); @@ -105,16 +75,19 @@ int32 exitValue; wait_for_thread(fWriterThread, &exitValue); } - - delete fMessage; } void CopyEngine::ResetTargets() { + // TODO: One could subtract the bytes/items which were added to the + // ProgressReporter before resetting them... + fBytesRead = 0; + fLastBytesRead = 0; fItemsCopied = 0; + fLastItemsCopied = 0; fTimeRead = 0; fBytesWritten = 0; @@ -125,12 +98,6 @@ fCurrentTargetFolder = NULL; fCurrentItem = NULL; - - if (fMessage) { - BMessage message(*fMessage); - message.AddString("status", "Collecting copy information."); - fMessenger.SendMessage(&message); - } } @@ -138,7 +105,10 @@ CopyEngine::CollectTargets(const char* source, sem_id cancelSemaphore) { int32 level = 0; - return _CollectCopyInfo(source, level, cancelSemaphore); + status_t ret = _CollectCopyInfo(source, level, cancelSemaphore); + if (ret == B_OK && fProgressReporter != NULL) + fProgressReporter->AddItems(fItemsToCopy, fBytesToCopy); + return ret; } @@ -146,14 +116,6 @@ CopyEngine::CopyFolder(const char* source, const char* destination, sem_id cancelSemaphore) { - printf("%lld bytes to read in %lld files\n", fBytesToCopy, fItemsToCopy); - - if (fMessage) { - BMessage message(*fMessage); - message.AddString("status", "Performing installation."); - fMessenger.SendMessage(&message); - } - int32 level = 0; return _CopyFolder(source, destination, level, cancelSemaphore); } @@ -507,16 +469,23 @@ void CopyEngine::_UpdateProgress() { - if (fMessage != NULL) { - BMessage message(*fMessage); - float progress = 100.0 * fBytesRead / fBytesToCopy; - message.AddFloat("progress", progress); - message.AddInt32("current", fItemsCopied); - message.AddInt32("maximum", fItemsToCopy); - message.AddString("item", fCurrentItem); - message.AddString("folder", fCurrentTargetFolder); - fMessenger.SendMessage(&message); + if (fProgressReporter == NULL) + return; + + uint64 items = 0; + if (fLastItemsCopied < fItemsCopied) { + items = fItemsCopied - fLastItemsCopied; + fLastItemsCopied = fItemsCopied; } + + off_t bytes = 0; + if (fLastBytesRead < fBytesRead) { + bytes = fBytesRead - fLastBytesRead; + fLastBytesRead = fBytesRead; + } + + fProgressReporter->ItemsWritten(items, bytes, fCurrentItem, + fCurrentTargetFolder); } Modified: haiku/branches/releases/r1alpha1/src/apps/installer/CopyEngine.h =================================================================== --- haiku/branches/releases/r1alpha1/src/apps/installer/CopyEngine.h 2009-09-08 11:45:52 UTC (rev 32996) +++ haiku/branches/releases/r1alpha1/src/apps/installer/CopyEngine.h 2009-09-08 11:52:36 UTC (rev 32997) @@ -15,13 +15,12 @@ #include "BlockingQueue.h" class BFile; -class BMessage; -class BMessenger; +class ProgressReporter; + class CopyEngine { public: - CopyEngine(const BMessenger& messenger, - BMessage* message); + CopyEngine(ProgressReporter* reporter); virtual ~CopyEngine(); void ResetTargets(); @@ -92,7 +91,9 @@ volatile bool fQuitting; off_t fBytesRead; + uint64 fLastBytesRead; uint64 fItemsCopied; + uint64 fLastItemsCopied; bigtime_t fTimeRead; off_t fBytesWritten; @@ -104,9 +105,8 @@ const char* fCurrentTargetFolder; const char* fCurrentItem; - BMessenger fMessenger; - BMessage* fMessage; + ProgressReporter* fProgressReporter; }; -#endif // COPY_ENGINE_2_H +#endif // COPY_ENGINE_H Modified: haiku/branches/releases/r1alpha1/src/apps/installer/Jamfile =================================================================== --- haiku/branches/releases/r1alpha1/src/apps/installer/Jamfile 2009-09-08 11:45:52 UTC (rev 32996) +++ haiku/branches/releases/r1alpha1/src/apps/installer/Jamfile 2009-09-08 11:52:36 UTC (rev 32997) @@ -3,12 +3,14 @@ UsePrivateHeaders shared storage tracker ; SubDirHdrs [ FDirName $(HAIKU_TOP) src kits tracker ] ; -Application Installer : +Application Installer : CopyEngine.cpp InstallerApp.cpp InstallerWindow.cpp PackageViews.cpp PartitionMenuItem.cpp + ProgressReporter.cpp + UnzipEngine.cpp WorkerThread.cpp - : be tracker translation $(TARGET_LIBSTDC++) + : be tracker translation libshared.a $(TARGET_LIBSTDC++) : Installer.rdef ; Added: haiku/branches/releases/r1alpha1/src/apps/installer/ProgressReporter.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/apps/installer/ProgressReporter.cpp 2009-09-08 11:45:52 UTC (rev 32996) +++ haiku/branches/releases/r1alpha1/src/apps/installer/ProgressReporter.cpp 2009-09-08 11:52:36 UTC (rev 32997) @@ -0,0 +1,103 @@ +/* + * Copyright 2009, Stephan A??mus + * All rights reserved. Distributed under the terms of the MIT License. + */ + +#include "ProgressReporter.h" + +#include + + +ProgressReporter::ProgressReporter(const BMessenger& messenger, + BMessage* message) + : + fStartTime(0), + + fBytesToWrite(0), + fBytesWritten(0), + + fItemsToWrite(0), + fItemsWritten(0), + + fMessenger(messenger), + fMessage(message) +{ +} + + +ProgressReporter::~ProgressReporter() +{ + delete fMessage; +} + + +void +ProgressReporter::Reset() +{ + fBytesToWrite = 0; + fBytesWritten = 0; + + fItemsToWrite = 0; + fItemsWritten = 0; + + if (fMessage) { + BMessage message(*fMessage); + message.AddString("status", "Collecting copy information."); + fMessenger.SendMessage(&message); + } +} + + +void +ProgressReporter::AddItems(uint64 count, off_t bytes) +{ + fBytesToWrite += bytes; + fItemsToWrite += count; +} + + +void +ProgressReporter::StartTimer() +{ + fStartTime = system_time(); + + printf("%lld bytes to write in %lld files\n", fBytesToWrite, + fItemsToWrite); + + if (fMessage) { + BMessage message(*fMessage); + message.AddString("status", "Performing installation."); + fMessenger.SendMessage(&message); + } +} + + +void +ProgressReporter::ItemsWritten(uint64 items, off_t bytes, + const char* itemName, const char* targetFolder) +{ + fItemsWritten += items; + fBytesWritten += bytes; + + _UpdateProgress(itemName, targetFolder); +} + + +void +ProgressReporter::_UpdateProgress(const char* itemName, + const char* targetFolder) +{ + if (fMessage == NULL) + return; + + // TODO: Could add time to finish calculation here... + + BMessage message(*fMessage); + float progress = 100.0 * fBytesWritten / fBytesToWrite; + message.AddFloat("progress", progress); + message.AddInt32("current", fItemsWritten); + message.AddInt32("maximum", fItemsToWrite); + message.AddString("item", itemName); + message.AddString("folder", targetFolder); + fMessenger.SendMessage(&message); +} Added: haiku/branches/releases/r1alpha1/src/apps/installer/ProgressReporter.h =================================================================== --- haiku/branches/releases/r1alpha1/src/apps/installer/ProgressReporter.h 2009-09-08 11:45:52 UTC (rev 32996) +++ haiku/branches/releases/r1alpha1/src/apps/installer/ProgressReporter.h 2009-09-08 11:52:36 UTC (rev 32997) @@ -0,0 +1,48 @@ +/* + * Copyright 2009, Stephan A??mus + * All rights reserved. Distributed under the terms of the MIT License. + */ +#ifndef PROGRESS_REPORTER_H +#define PROGRESS_REPORTER_H + + +#include + + +class ProgressReporter { +public: + ProgressReporter(const BMessenger& messenger, + BMessage* message); + virtual ~ProgressReporter(); + + void Reset(); + + void AddItems(uint64 count, off_t bytes); + + void StartTimer(); + + void ItemsWritten(uint64 items, off_t bytes, + const char* itemName, + const char* targetFolder); + + // TODO: Perhaps move cancelling here as well... + +private: + void _UpdateProgress(const char* itemName, + const char* targetFolder); + +private: + bigtime_t fStartTime; [... truncated: 1118 lines follow ...] From stippi at mail.berlios.de Tue Sep 8 14:46:00 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Tue, 8 Sep 2009 14:46:00 +0200 Subject: [Haiku-commits] r32998 - haiku/branches/releases/r1alpha1/build/jam Message-ID: <200909081246.n88Ck0Bd018503@sheep.berlios.de> Author: stippi Date: 2009-09-08 14:45:58 +0200 (Tue, 08 Sep 2009) New Revision: 32998 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32998&view=rev Modified: haiku/branches/releases/r1alpha1/build/jam/ReleaseBuildProfiles Log: Added Mercurial and Git. Modified: haiku/branches/releases/r1alpha1/build/jam/ReleaseBuildProfiles =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/ReleaseBuildProfiles 2009-09-08 11:52:36 UTC (rev 32997) +++ haiku/branches/releases/r1alpha1/build/jam/ReleaseBuildProfiles 2009-09-08 12:45:58 UTC (rev 32998) @@ -12,8 +12,8 @@ HAIKU_IMAGE_SIZE = 600 ; AddOptionalHaikuImagePackages BePDF Firefox Pe Vision WonderBrush ; - AddOptionalHaikuImagePackages CVS Development Python Subversion - OpenSSH ; + AddOptionalHaikuImagePackages CVS Development Git Mercurial + Python Subversion OpenSSH ; AddOptionalHaikuImagePackages Nano P7zip Welcome BeBook ; } From ingo_weinhold at gmx.de Tue Sep 8 14:45:53 2009 From: ingo_weinhold at gmx.de (Ingo Weinhold) Date: Tue, 08 Sep 2009 14:45:53 +0200 Subject: [Haiku-commits] r32994 - haiku/trunk/src/system/kernel/arch/x86 In-Reply-To: <200909080351.n883pJoH008614@sheep.berlios.de> References: <200909080351.n883pJoH008614@sheep.berlios.de> Message-ID: <20090908144553.426.1@knochen-vm.localdomain> On 2009-09-08 at 05:51:19 [+0200], mmlr at mail.berlios.de wrote: > Author: mmlr > Date: 2009-09-08 05:51:17 +0200 (Tue, 08 Sep 2009) > New Revision: 32994 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32994&view=rev > > Modified: > haiku/trunk/src/system/kernel/arch/x86/arch_vm_translation_map.cpp > Log: > Don't know what this was supposed to do, but with the VADDR_TO_PDENT() it > would > end up as 0 again in any case. It certainly looks correct without it, > removing > so it doesn't confuse the next one reading over it. The function computes the number of page tables needed to map the given address range. As the comment says, the "start == 0" case means that the actual start address is not known and the worst case shall be assumed. Which is why both "start" and "end" are shifted by a complete page table range minus one page. CU, Ingo From mmlr at mlotz.ch Tue Sep 8 13:48:13 2009 From: mmlr at mlotz.ch (Michael Lotz) Date: Tue, 08 Sep 2009 13:48:13 Subject: [Haiku-commits] r32994 - haiku/trunk/src/system/kernel/arch/x86 In-Reply-To: <20090908144553.426.1@knochen-vm.localdomain> Message-ID: <1469339751-BeMail@laptop> > > On 2009-09-08 at 05:51:19 [+0200], mmlr at mail.berlios.de wrote: > > Author: mmlr > > Date: 2009-09-08 05:51:17 +0200 (Tue, 08 Sep 2009) > > New Revision: 32994 > > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32994&view=rev > > > > Modified: > > haiku/trunk/src/system/kernel/arch/x86/arch_vm_translation_map. > > cpp > > Log: > > Don't know what this was supposed to do, but with the VADDR_TO_ > > PDENT() it > > would > > end up as 0 again in any case. It certainly looks correct without > > it, > > removing > > so it doesn't confuse the next one reading over it. > > The function computes the number of page tables needed to map the > given > address range. As the comment says, the "start == 0" case means that > the > actual start address is not known and the worst case shall be > assumed. Which > is why both "start" and "end" are shifted by a complete page table > range > minus one page. Yes I understand that. But setting start to 1023 * B_PAGE_SIZE and then dividing it by 1024 * B_PAGE_SIZE in the VADDR_TO_PDENT macro will put it back to 0 as it was before. So unless I'm missing something this either intended to work differently or is useless. Regards Michael From mmlr at mlotz.ch Tue Sep 8 15:51:10 2009 From: mmlr at mlotz.ch (Michael Lotz) Date: Tue, 08 Sep 2009 15:51:10 +0200 Subject: [Haiku-commits] r32996 - haiku/trunk/build/jam In-Reply-To: <200909081145.n88BjxWJ008267@sheep.berlios.de> Message-ID: <1646254074-BeMail@laptop> > Author: stippi > Date: 2009-09-08 13:45:52 +0200 (Tue, 08 Sep 2009) > New Revision: 32996 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32996&view=rev > > Modified: > haiku/trunk/build/jam/ImageRules > haiku/trunk/build/jam/OptionalPackages > Log: > Introduced new buildsystem feature that places certain packages into > _packages_ > on the target image instead of extracting them, but only if the target > image > is a CD image. This then speeds up installing a great lot, at the > expense of > certain applications not being available in LiveCD mode. This affects > * the revision control tools and their dependency libraries, > * autotools > * texinfo > * perl and python Nice changes! I'd personally go a bit further though. One of the big packages taking a lot of time due to many small files is GCC with it's documentation. I don't really see why one would use GCC or (YASM for that matter) from the LiveCD. Anything you'd output would be rather short-lifed afterall. So I'd also make these unzip packages. Regards Michael From korli at users.berlios.de Tue Sep 8 15:57:02 2009 From: korli at users.berlios.de (=?ISO-8859-1?B?Suly9G1lIER1dmFs?=) Date: Tue, 8 Sep 2009 15:57:02 +0200 Subject: [Haiku-commits] r32996 - haiku/trunk/build/jam In-Reply-To: <1646254074-BeMail@laptop> References: <200909081145.n88BjxWJ008267@sheep.berlios.de> <1646254074-BeMail@laptop> Message-ID: 2009/9/8 Michael Lotz : > Nice changes! I'd personally go a bit further though. One of the big > packages taking a lot of time due to many small files is GCC with it's > documentation. I don't really see why one would use GCC or (YASM for > that matter) from the LiveCD. Anything you'd output would be rather > short-lifed afterall. So I'd also make these unzip packages. > +1 From zooey at mail.berlios.de Tue Sep 8 17:59:53 2009 From: zooey at mail.berlios.de (zooey at mail.berlios.de) Date: Tue, 8 Sep 2009 17:59:53 +0200 Subject: [Haiku-commits] r32999 - haiku/trunk/src/system/libroot/posix Message-ID: <200909081559.n88Fxr0P012346@sheep.berlios.de> Author: zooey Date: 2009-09-08 17:59:51 +0200 (Tue, 08 Sep 2009) New Revision: 32999 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32999&view=rev Modified: haiku/trunk/src/system/libroot/posix/dirent.c Log: * opendir() is supposed to return ENOTDIR if the given path is not a directory, we returned EINVAL instead, which caused Perl's internal glob() implementation to fail prematurely +alphabranch (will do that myself in a minute) Modified: haiku/trunk/src/system/libroot/posix/dirent.c =================================================================== --- haiku/trunk/src/system/libroot/posix/dirent.c 2009-09-08 12:45:58 UTC (rev 32998) +++ haiku/trunk/src/system/libroot/posix/dirent.c 2009-09-08 15:59:51 UTC (rev 32999) @@ -123,7 +123,10 @@ int fd = _kern_open_dir(-1, path); if (fd < 0) { - errno = fd; + if (fd == B_BAD_VALUE) + errno = B_NOT_A_DIRECTORY; + else + errno = fd; return NULL; } From zooey at mail.berlios.de Tue Sep 8 18:03:03 2009 From: zooey at mail.berlios.de (zooey at BerliOS) Date: Tue, 8 Sep 2009 18:03:03 +0200 Subject: [Haiku-commits] r33000 - haiku/branches/releases/r1alpha1/src/system/libroot/posix Message-ID: <200909081603.n88G33ue012830@sheep.berlios.de> Author: zooey Date: 2009-09-08 18:03:02 +0200 (Tue, 08 Sep 2009) New Revision: 33000 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33000&view=rev Modified: haiku/branches/releases/r1alpha1/src/system/libroot/posix/dirent.c Log: merging r32999 from trunk: * opendir() is supposed to return ENOTDIR if the given path is not a directory, we returned EINVAL instead, which caused Perl's internal glob() implementation to fail prematurely Modified: haiku/branches/releases/r1alpha1/src/system/libroot/posix/dirent.c =================================================================== --- haiku/branches/releases/r1alpha1/src/system/libroot/posix/dirent.c 2009-09-08 15:59:51 UTC (rev 32999) +++ haiku/branches/releases/r1alpha1/src/system/libroot/posix/dirent.c 2009-09-08 16:03:02 UTC (rev 33000) @@ -123,7 +123,10 @@ int fd = _kern_open_dir(-1, path); if (fd < 0) { - errno = fd; + if (fd == B_BAD_VALUE) + errno = B_NOT_A_DIRECTORY; + else + errno = fd; return NULL; } From ingo_weinhold at gmx.de Tue Sep 8 17:39:42 2009 From: ingo_weinhold at gmx.de (Ingo Weinhold) Date: Tue, 08 Sep 2009 17:39:42 +0200 Subject: [Haiku-commits] r32994 - haiku/trunk/src/system/kernel/arch/x86 In-Reply-To: <1469339751-BeMail@laptop> References: <1469339751-BeMail@laptop> Message-ID: <20090908173942.423.1@knochen-vm.localdomain> On 2009-09-08 at 13:48:13 [+0200], Michael Lotz wrote: > > > > On 2009-09-08 at 05:51:19 [+0200], mmlr at mail.berlios.de wrote: > > > Author: mmlr > > > Date: 2009-09-08 05:51:17 +0200 (Tue, 08 Sep 2009) > > > New Revision: 32994 > > > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32994&view=rev > > > > > > Modified: > > > haiku/trunk/src/system/kernel/arch/x86/arch_vm_translation_map. > > > cpp > > > Log: > > > Don't know what this was supposed to do, but with the VADDR_TO_ > > > PDENT() it > > > would > > > end up as 0 again in any case. It certainly looks correct without > > > it, > > > removing > > > so it doesn't confuse the next one reading over it. > > > > The function computes the number of page tables needed to map the > > given > > address range. As the comment says, the "start == 0" case means that > > the > > actual start address is not known and the worst case shall be > > assumed. Which > > is why both "start" and "end" are shifted by a complete page table > > range > > minus one page. > > Yes I understand that. But setting start to 1023 * B_PAGE_SIZE and then > dividing it by 1024 * B_PAGE_SIZE in the VADDR_TO_PDENT macro will put > it back to 0 as it was before. So unless I'm missing something this > either intended to work differently or is useless. That the "start" change has no effect in the computation below (which makes an assumption about the implementation of the VADDR_TO_PDENT() macro) is not really relevant at that point. The control flow of the function is: 1. If start == 0, offset the [start, end) range, so that it is worst possibly aligned. 2. Compute the number of page tables for the [start, end) range. With your change 1. does resize the range, which does only indirectly make sense -- considering that one actually wants to offset the range, which would yield the same page table count. That's less obvious, which is why I prefer the previous version. Or if the if-branch would just return using the simplified computation. Or at least a comment that mentions, what is going on. CU, Ingo From mmlr at mail.berlios.de Tue Sep 8 18:24:45 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Tue, 8 Sep 2009 18:24:45 +0200 Subject: [Haiku-commits] r33001 - haiku/trunk/src/system/kernel/arch/x86 Message-ID: <200909081624.n88GOjUh016438@sheep.berlios.de> Author: mmlr Date: 2009-09-08 18:24:43 +0200 (Tue, 08 Sep 2009) New Revision: 33001 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33001&view=rev Modified: haiku/trunk/src/system/kernel/arch/x86/arch_vm_translation_map.cpp Log: Revert r32994 and add a comment to explain the intention. Thanks Ingo for the clarification. Modified: haiku/trunk/src/system/kernel/arch/x86/arch_vm_translation_map.cpp =================================================================== --- haiku/trunk/src/system/kernel/arch/x86/arch_vm_translation_map.cpp 2009-09-08 16:03:02 UTC (rev 33000) +++ haiku/trunk/src/system/kernel/arch/x86/arch_vm_translation_map.cpp 2009-09-08 16:24:43 UTC (rev 33001) @@ -295,8 +295,11 @@ { // If start == 0, the actual base address is not yet known to the caller and // we shall assume the worst case. - if (start == 0) + if (start == 0) { + // offset the range so it has the worst possible alignment + start = 1023 * B_PAGE_SIZE; end += 1023 * B_PAGE_SIZE; + } return VADDR_TO_PDENT(end) + 1 - VADDR_TO_PDENT(start); } From revol at free.fr Tue Sep 8 18:29:41 2009 From: revol at free.fr (=?utf-8?q?Fran=C3=A7ois?= Revol) Date: Tue, 08 Sep 2009 18:29:41 +0200 CEST Subject: [Haiku-commits] r32999 - haiku/trunk/src/system/libroot/posix In-Reply-To: <200909081559.n88Fxr0P012346@sheep.berlios.de> Message-ID: <1043860777-BeMail@laptop> > Author: zooey > Date: 2009-09-08 17:59:51 +0200 (Tue, 08 Sep 2009) > New Revision: 32999 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32999&view=rev > > Modified: > haiku/trunk/src/system/libroot/posix/dirent.c > Log: > * opendir() is supposed to return ENOTDIR if the given path is not > a directory, we returned EINVAL instead, which caused Perl's > internal > glob() implementation to fail prematurely > +alphabranch (will do that myself in a minute) Couldn't the vfs be fixed instead ? Fran?ois. From zooey at hirschkaefer.de Tue Sep 8 19:24:13 2009 From: zooey at hirschkaefer.de (Oliver Tappe) Date: Tue, 08 Sep 2009 19:24:13 +0200 Subject: [Haiku-commits] r32999 - haiku/trunk/src/system/libroot/posix In-Reply-To: <1043860777-BeMail@laptop> References: <1043860777-BeMail@laptop> Message-ID: <20090908192413.400.1@bepc.1252426766.fake> On 2009-09-08 at 18:29:41 [+0200], Fran?ois Revol wrote: > > Author: zooey > > Date: 2009-09-08 17:59:51 +0200 (Tue, 08 Sep 2009) > > New Revision: 32999 > > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32999&view=rev > > > > Modified: > > haiku/trunk/src/system/libroot/posix/dirent.c > > Log: > > * opendir() is supposed to return ENOTDIR if the given path is not > > a directory, we returned EINVAL instead, which caused Perl's > > internal > > glob() implementation to fail prematurely > > +alphabranch (will do that myself in a minute) > > Couldn't the vfs be fixed instead ? I suppose it could - do you think open_dir_vnode() would be the right place? cheers, Oliver From leavengood at gmail.com Tue Sep 8 19:58:00 2009 From: leavengood at gmail.com (Ryan Leavengood) Date: Tue, 8 Sep 2009 13:58:00 -0400 Subject: [Haiku-commits] r32996 - haiku/trunk/build/jam In-Reply-To: References: <200909081145.n88BjxWJ008267@sheep.berlios.de> <1646254074-BeMail@laptop> Message-ID: +1 from me too in making GCC and YASM unzipped packages. -- Regards, Ryan From ingo_weinhold at gmx.de Tue Sep 8 20:30:15 2009 From: ingo_weinhold at gmx.de (Ingo Weinhold) Date: Tue, 08 Sep 2009 20:30:15 +0200 Subject: [Haiku-commits] r32999 - haiku/trunk/src/system/libroot/posix In-Reply-To: <20090908192413.400.1@bepc.1252426766.fake> References: <1043860777-BeMail@laptop> <20090908192413.400.1@bepc.1252426766.fake> Message-ID: <20090908203015.392.1@knochen-vm.localdomain> On 2009-09-08 at 19:24:13 [+0200], Oliver Tappe wrote: > On 2009-09-08 at 18:29:41 [+0200], Fran?ois Revol wrote: > > > Author: zooey > > > Date: 2009-09-08 17:59:51 +0200 (Tue, 08 Sep 2009) > > > New Revision: 32999 > > > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32999&view=rev > > > > > > Modified: > > > haiku/trunk/src/system/libroot/posix/dirent.c > > > Log: > > > * opendir() is supposed to return ENOTDIR if the given path is not > > > a directory, we returned EINVAL instead, which caused Perl's > > > internal > > > glob() implementation to fail prematurely > > > +alphabranch (will do that myself in a minute) > > > > Couldn't the vfs be fixed instead ? > > I suppose it could - do you think open_dir_vnode() would be the right place? The error codes are usually just passed through from the file system hooks. In this case bfs_open_dir() (.../bfs/kernel_interface.cpp) is to blame -- it returns B_BAD_VALUE, when the node is not a "container". CU, Ingo From zooey at hirschkaefer.de Tue Sep 8 21:54:36 2009 From: zooey at hirschkaefer.de (Oliver Tappe) Date: Tue, 08 Sep 2009 21:54:36 +0200 Subject: [Haiku-commits] r32999 - haiku/trunk/src/system/libroot/posix In-Reply-To: <20090908203015.392.1@knochen-vm.localdomain> References: <1043860777-BeMail@laptop> <20090908192413.400.1@bepc.1252426766.fake> <20090908203015.392.1@knochen-vm.localdomain> Message-ID: <20090908215436.643.2@bepc.1252426766.fake> On 2009-09-08 at 20:30:15 [+0200], Ingo Weinhold wrote: > On 2009-09-08 at 19:24:13 [+0200], Oliver Tappe wrote: > > On 2009-09-08 at 18:29:41 [+0200], Fran?ois Revol wrote: > > > > Author: zooey > > > > Date: 2009-09-08 17:59:51 +0200 (Tue, 08 Sep 2009) > > > > New Revision: 32999 > > > > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32999&view=rev > > > > > > > > Modified: > > > > haiku/trunk/src/system/libroot/posix/dirent.c > > > > Log: > > > > * opendir() is supposed to return ENOTDIR if the given path is not > > > > a directory, we returned EINVAL instead, which caused Perl's > > > > internal > > > > glob() implementation to fail prematurely > > > > +alphabranch (will do that myself in a minute) > > > > > > Couldn't the vfs be fixed instead ? > > > > I suppose it could - do you think open_dir_vnode() would be the right place? > > The error codes are usually just passed through from the file system hooks. > In this case bfs_open_dir() (.../bfs/kernel_interface.cpp) is to blame -- it > returns B_BAD_VALUE, when the node is not a "container". Right, but this method is being called for indices, too. These are kind of directories, but I wonder if it's ok to return B_NOT_A_DIRECTORY for those, too? While it's apparently the right way, I am not so sure it's a good idea to rely on every file system returning the correct error code for this case. cheers, Oliver From superstippi at gmx.de Tue Sep 8 22:11:27 2009 From: superstippi at gmx.de (Stephan Assmus) Date: Tue, 08 Sep 2009 22:11:27 +0200 Subject: [Haiku-commits] r32996 - haiku/trunk/build/jam In-Reply-To: <1646254074-BeMail@laptop> References: <1646254074-BeMail@laptop> Message-ID: <20090908201127.130280@gmx.net> Hi, > > Author: stippi > > Date: 2009-09-08 13:45:52 +0200 (Tue, 08 Sep 2009) > > New Revision: 32996 > > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32996&view=rev > > > > Modified: > > haiku/trunk/build/jam/ImageRules > > haiku/trunk/build/jam/OptionalPackages > > Log: > > Introduced new buildsystem feature that places certain packages into > > _packages_ > > on the target image instead of extracting them, but only if the target > > image > > is a CD image. This then speeds up installing a great lot, at the > > expense of > > certain applications not being available in LiveCD mode. This affects > > * the revision control tools and their dependency libraries, > > * autotools > > * texinfo > > * perl and python > > Nice changes! I'd personally go a bit further though. One of the big > packages taking a lot of time due to many small files is GCC with it's > documentation. I don't really see why one would use GCC or (YASM for > that matter) from the LiveCD. Anything you'd output would be rather > short-lifed afterall. So I'd also make these unzip packages. Yes, I was thinking along the same lines. But Ingo has created that setgcc script and the build system creates some links and so on to support it. I didn't want to mess with that or make the Installer routine any more complicated (like by adding custom scripts to packages...). But if you can figure out a simple way to install GCC from a package, please go ahead! The installation time on my T60 is now shortly below 20 minutes. The unzipping towards the end is really very fast compared to the copy process before. So it would gain a lot if more packages were unzipped, like you say. Best regards, -Stephan From korli at mail.berlios.de Tue Sep 8 22:21:16 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Tue, 8 Sep 2009 22:21:16 +0200 Subject: [Haiku-commits] r33002 - haiku/trunk/src/add-ons/kernel/partitioning_systems/session Message-ID: <200909082021.n88KLGRf000498@sheep.berlios.de> Author: korli Date: 2009-09-08 22:21:16 +0200 (Tue, 08 Sep 2009) New Revision: 33002 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33002&view=rev Modified: haiku/trunk/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h Log: ensure we return a positive lba, fixed #4439 Modified: haiku/trunk/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h =================================================================== --- haiku/trunk/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h 2009-09-08 16:24:43 UTC (rev 33001) +++ haiku/trunk/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h 2009-09-08 20:21:16 UTC (rev 33002) @@ -110,9 +110,12 @@ uint32 msf_to_lba(msf_address msf) { - return (CDROM_FRAMES_PER_MINUTE * msf.minutes) + uint32 lba = (CDROM_FRAMES_PER_MINUTE * msf.minutes) + (CDROM_FRAMES_PER_SECOND * msf.seconds) - + msf.frames - 150; + + msf.frames; + if (lba < 150) + return lba; + return (lba - 150); } /*! \brief Header for data returned by all formats of SCSI From korli at mail.berlios.de Tue Sep 8 22:29:10 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Tue, 8 Sep 2009 22:29:10 +0200 Subject: [Haiku-commits] r33003 - haiku/trunk/src/add-ons/kernel/partitioning_systems/session Message-ID: <200909082029.n88KTAt7001002@sheep.berlios.de> Author: korli Date: 2009-09-08 22:29:10 +0200 (Tue, 08 Sep 2009) New Revision: 33003 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33003&view=rev Modified: haiku/trunk/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h Log: ok, fix this one a better way, as suggested by Michael and Marcus. Modified: haiku/trunk/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h =================================================================== --- haiku/trunk/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h 2009-09-08 20:21:16 UTC (rev 33002) +++ haiku/trunk/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h 2009-09-08 20:29:10 UTC (rev 33003) @@ -107,15 +107,12 @@ */ static inline -uint32 +off_t msf_to_lba(msf_address msf) { - uint32 lba = (CDROM_FRAMES_PER_MINUTE * msf.minutes) + return (CDROM_FRAMES_PER_MINUTE * msf.minutes) + (CDROM_FRAMES_PER_SECOND * msf.seconds) - + msf.frames; - if (lba < 150) - return lba; - return (lba - 150); + + msf.frames - 150; } /*! \brief Header for data returned by all formats of SCSI From marcusoverhagen at mail.berlios.de Tue Sep 8 22:34:03 2009 From: marcusoverhagen at mail.berlios.de (marcusoverhagen at mail.berlios.de) Date: Tue, 8 Sep 2009 22:34:03 +0200 Subject: [Haiku-commits] r33004 - haiku/trunk/src/add-ons/kernel/busses/scsi/ahci Message-ID: <200909082034.n88KY3lp001537@sheep.berlios.de> Author: marcusoverhagen Date: 2009-09-08 22:34:01 +0200 (Tue, 08 Sep 2009) New Revision: 33004 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33004&view=rev Modified: haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci_controller.cpp haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci_sim.cpp haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/util.c Log: remove color usage from debug output Modified: haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci_controller.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci_controller.cpp 2009-09-08 20:29:10 UTC (rev 33003) +++ haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci_controller.cpp 2009-09-08 20:34:01 UTC (rev 33004) @@ -1,5 +1,5 @@ /* - * Copyright 2007, Marcus Overhagen. All rights reserved. + * Copyright 2007-2009, Marcus Overhagen. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -11,7 +11,7 @@ #include #include -#define TRACE(a...) dprintf("\33[34mahci:\33[0m " a) +#define TRACE(a...) dprintf("ahci: " a) #define FLOW(a...) dprintf("ahci: " a) Modified: haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp 2009-09-08 20:29:10 UTC (rev 33003) +++ haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp 2009-09-08 20:34:01 UTC (rev 33004) @@ -1,5 +1,5 @@ /* - * Copyright 2007-2008, Marcus Overhagen. All rights reserved. + * Copyright 2007-2009, Marcus Overhagen. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -20,12 +20,12 @@ #define TRACE_AHCI #ifdef TRACE_AHCI -# define TRACE(a...) dprintf("\33[34mahci:\33[0m " a) +# define TRACE(a...) dprintf("ahci: " a) #else # define TRACE(a...) #endif //#define FLOW(a...) dprintf("ahci: " a) -//#define RWTRACE(a...) dprintf("\33[34mahci:\33[0m " a) +//#define RWTRACE(a...) dprintf("ahci: " a) #define FLOW(a...) #define RWTRACE(a...) Modified: haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci_sim.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci_sim.cpp 2009-09-08 20:29:10 UTC (rev 33003) +++ haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci_sim.cpp 2009-09-08 20:34:01 UTC (rev 33004) @@ -1,5 +1,5 @@ /* - * Copyright 2007, Marcus Overhagen. All rights reserved. + * Copyright 2007-2009, Marcus Overhagen. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -9,7 +9,7 @@ #include #include -#define TRACE(a...) dprintf("\33[34mahci:\33[0m " a) +#define TRACE(a...) dprintf("ahci: " a) //#define FLOW(a...) dprintf("ahci: " a) #define FLOW(a...) Modified: haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/util.c =================================================================== --- haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/util.c 2009-09-08 20:29:10 UTC (rev 33003) +++ haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/util.c 2009-09-08 20:34:01 UTC (rev 33004) @@ -1,5 +1,5 @@ /* - * Copyright 2004-2007, Marcus Overhagen. All rights reserved. + * Copyright 2004-2009, Marcus Overhagen. All rights reserved. * Distributed under the terms of the MIT License. */ #include "util.h" @@ -10,8 +10,8 @@ #include -#define TRACE(a...) dprintf("\33[34mahci:\33[0m " a) -#define ERROR(a...) dprintf("\33[34mahci:\33[0m " a) +#define TRACE(a...) dprintf("ahci: " a) +#define ERROR(a...) dprintf("ahci: " a) static inline uint32 From korli at mail.berlios.de Tue Sep 8 22:36:40 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Tue, 8 Sep 2009 22:36:40 +0200 Subject: [Haiku-commits] r33005 - haiku/trunk/src/add-ons/kernel/partitioning_systems/session Message-ID: <200909082036.n88KaeFx001860@sheep.berlios.de> Author: korli Date: 2009-09-08 22:36:40 +0200 (Tue, 08 Sep 2009) New Revision: 33005 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33005&view=rev Modified: haiku/trunk/src/add-ons/kernel/partitioning_systems/session/Disc.cpp Log: the lba type returned is now off_t, trace with %lld Modified: haiku/trunk/src/add-ons/kernel/partitioning_systems/session/Disc.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/partitioning_systems/session/Disc.cpp 2009-09-08 20:34:01 UTC (rev 33004) +++ haiku/trunk/src/add-ons/kernel/partitioning_systems/session/Disc.cpp 2009-09-08 20:36:40 UTC (rev 33005) @@ -223,7 +223,7 @@ TRACE((" pminutes = %d\n", entries[i].pminutes)); TRACE((" pseconds = %d\n", entries[i].pseconds)); TRACE((" pframes = %d\n", entries[i].pframes)); - TRACE((" lba = %ld\n", + TRACE((" lba = %lld\n", msf_to_lba(make_msf_address(entries[i].pminutes, entries[i].pseconds, entries[i].pframes)))); } From zooey at mail.berlios.de Tue Sep 8 23:07:27 2009 From: zooey at mail.berlios.de (zooey at BerliOS) Date: Tue, 8 Sep 2009 23:07:27 +0200 Subject: [Haiku-commits] r33006 - haiku/branches/releases/r1alpha1/build/jam Message-ID: <200909082107.n88L7REZ004846@sheep.berlios.de> Author: zooey Date: 2009-09-08 23:07:26 +0200 (Tue, 08 Sep 2009) New Revision: 33006 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33006&view=rev Modified: haiku/branches/releases/r1alpha1/build/jam/ImageRules Log: closing #4453: * fixed precedence problem in jam rule that caused an if to evaluate to true, no matter if a cd or an image was being built Modified: haiku/branches/releases/r1alpha1/build/jam/ImageRules =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/ImageRules 2009-09-08 20:36:40 UTC (rev 33005) +++ haiku/branches/releases/r1alpha1/build/jam/ImageRules 2009-09-08 21:07:26 UTC (rev 33006) @@ -763,7 +763,7 @@ # download zip file local zipFile = [ DownloadOptionalPackage $(package) : $(url) ] ; - if $(isCDPackage) = true || $(isCDPackage) = 1 && $(HAIKU_CD_NAME) { + if ( $(isCDPackage) = true || $(isCDPackage) = 1 ) && $(HAIKU_CD_NAME) { # copy onto image AddFilesToHaikuImage _packages_ : $(zipFile) ; } else { From zooey at mail.berlios.de Tue Sep 8 23:07:28 2009 From: zooey at mail.berlios.de (zooey at mail.berlios.de) Date: Tue, 8 Sep 2009 23:07:28 +0200 Subject: [Haiku-commits] r33007 - haiku/trunk/build/jam Message-ID: <200909082107.n88L7SOd004864@sheep.berlios.de> Author: zooey Date: 2009-09-08 23:07:27 +0200 (Tue, 08 Sep 2009) New Revision: 33007 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33007&view=rev Modified: haiku/trunk/build/jam/ImageRules Log: closing #4453: * fixed precedence problem in jam rule that caused an if to evaluate to true, no matter if a cd or an image was being built Modified: haiku/trunk/build/jam/ImageRules =================================================================== --- haiku/trunk/build/jam/ImageRules 2009-09-08 21:07:26 UTC (rev 33006) +++ haiku/trunk/build/jam/ImageRules 2009-09-08 21:07:27 UTC (rev 33007) @@ -763,7 +763,7 @@ # download zip file local zipFile = [ DownloadOptionalPackage $(package) : $(url) ] ; - if $(isCDPackage) = true || $(isCDPackage) = 1 && $(HAIKU_CD_NAME) { + if ( $(isCDPackage) = true || $(isCDPackage) = 1 ) && $(HAIKU_CD_NAME) { # copy onto image AddFilesToHaikuImage _packages_ : $(zipFile) ; } else { From rudolf.cornelissen at gmail.com Tue Sep 8 23:11:31 2009 From: rudolf.cornelissen at gmail.com (Rudolf Cornelissen) Date: Tue, 8 Sep 2009 23:11:31 +0200 Subject: [Haiku-commits] r31213 - in haiku/trunk/src/add-ons: accelerants/nvidia accelerants/nvidia/engine kernel/drivers/graphics/nvidia In-Reply-To: References: <50875896313-BeMail@zon> Message-ID: Hi there, I might be at the wrong place to ask here, but I'll do it anyway: Since 9/9/9 is tomorrow, I am wondering if there will be another sync of trunk to alpha1? The nvidia driver needs to be updated to the current version in trunk. The current state in alpha1 is kind of problematic since there was at least one important fix afterwards. Please let me know if this will be done by someone? Thanks! Rudolf. -------------- next part -------------- An HTML attachment was scrubbed... URL: From zooey at mail.berlios.de Tue Sep 8 23:12:40 2009 From: zooey at mail.berlios.de (zooey at mail.berlios.de) Date: Tue, 8 Sep 2009 23:12:40 +0200 Subject: [Haiku-commits] r33008 - haiku/trunk/build/jam Message-ID: <200909082112.n88LCe7j005607@sheep.berlios.de> Author: zooey Date: 2009-09-08 23:12:39 +0200 (Tue, 08 Sep 2009) New Revision: 33008 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33008&view=rev Modified: haiku/trunk/build/jam/OptionalPackages Log: * updated Perl optional package for r1a1 +alphabranch (will do that next) Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-09-08 21:07:27 UTC (rev 33007) +++ haiku/trunk/build/jam/OptionalPackages 2009-09-08 21:12:39 UTC (rev 33008) @@ -739,8 +739,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Perl available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage perl-5.10.0-gcc2-2008-10-29 - : $(baseURL)/perl-5.10.0-gcc2-2008-10-29.zip + InstallOptionalHaikuImagePackage perl-5.10.1-r1a1-x86-gcc2-2009-09-08 + : $(baseURL)/perl-5.10.1-r1a1-x86-gcc2-2009-09-08.zip : : true ; From zooey at mail.berlios.de Tue Sep 8 23:13:18 2009 From: zooey at mail.berlios.de (zooey at BerliOS) Date: Tue, 8 Sep 2009 23:13:18 +0200 Subject: [Haiku-commits] r33009 - haiku/branches/releases/r1alpha1/build/jam Message-ID: <200909082113.n88LDIcZ005749@sheep.berlios.de> Author: zooey Date: 2009-09-08 23:13:17 +0200 (Tue, 08 Sep 2009) New Revision: 33009 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33009&view=rev Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackages Log: merged r33008 from trunk: * updated Perl optional package for r1a1 Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackages =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-08 21:12:39 UTC (rev 33008) +++ haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-08 21:13:17 UTC (rev 33009) @@ -734,12 +734,12 @@ # Perl -if [ IsObsoleteOptionalHaikuImagePackageAdded Perl ] { +if [ IsOptionalHaikuImagePackageAdded Perl ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Perl available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage perl-5.10.0-gcc2-2008-10-29 - : $(baseURL)/perl-5.10.0-gcc2-2008-10-29.zip + InstallOptionalHaikuImagePackage perl-5.10.1-r1a1-x86-gcc2-2009-09-08 + : $(baseURL)/perl-5.10.1-r1a1-x86-gcc2-2009-09-08.zip : : true ; From rudolf.cornelissen at gmail.com Tue Sep 8 23:15:38 2009 From: rudolf.cornelissen at gmail.com (Rudolf Cornelissen) Date: Tue, 8 Sep 2009 23:15:38 +0200 Subject: [Haiku-commits] nvidia driver sync from trunk to alpha1??? Message-ID: Hi there, I might be at the wrong place to ask here, but I'll do it anyway: Since 9/9/9 is tomorrow, I am wondering if there will be another sync of trunk to alpha1? The nvidia driver needs to be updated to the current version in trunk. The current state in alpha1 is kind of problematic since there was at least one important fix afterwards. Please let me know if this will be done by someone? Thanks! Rudolf -------------- next part -------------- An HTML attachment was scrubbed... URL: From umccullough at gmail.com Tue Sep 8 23:16:50 2009 From: umccullough at gmail.com (Urias McCullough) Date: Tue, 8 Sep 2009 14:16:50 -0700 Subject: [Haiku-commits] r31213 - in haiku/trunk/src/add-ons: accelerants/nvidia accelerants/nvidia/engine kernel/drivers/graphics/nvidia In-Reply-To: References: <50875896313-BeMail@zon> Message-ID: <1e80d8750909081416y42b719bapb465dcc642cece4c@mail.gmail.com> On Tue, Sep 8, 2009 at 2:11 PM, Rudolf Cornelissen wrote: > Since 9/9/9 is tomorrow, I am wondering if there will be another sync of > trunk to alpha1? > The nvidia driver needs to be updated to the current version in trunk. The > current state in alpha1 is kind of problematic since there was at least one > important fix afterwards. > > Please let me know if this will be done by someone? There was a thread started by Stephan on the haiku-development list, which also included uncertain status on the nvidia driver, you should likely respond there: http://www.freelists.org/post/haiku-development/Alpha1-merging-and-status HTH! - Urias From korli at users.berlios.de Tue Sep 8 23:18:31 2009 From: korli at users.berlios.de (=?ISO-8859-1?B?Suly9G1lIER1dmFs?=) Date: Tue, 8 Sep 2009 23:18:31 +0200 Subject: [Haiku-commits] nvidia driver sync from trunk to alpha1??? In-Reply-To: References: Message-ID: 2009/9/8 Rudolf Cornelissen : > Please let me know if this will be done by someone? Stephan actually asked for this nvidia fix on the haiku-development list. Bye, J?r?me From rudolf.cornelissen at gmail.com Tue Sep 8 23:22:06 2009 From: rudolf.cornelissen at gmail.com (Rudolf Cornelissen) Date: Tue, 8 Sep 2009 23:22:06 +0200 Subject: [Haiku-commits] nvidia driver sync from trunk to alpha1??? In-Reply-To: References: Message-ID: Thanks guys, I'll respond there (apparantly I'm no member there anymore..) Rudolf. 2009/9/8 J?r?me Duval > 2009/9/8 Rudolf Cornelissen : > > Please let me know if this will be done by someone? > > Stephan actually asked for this nvidia fix on the haiku-development list. > > Bye, > J?r?me > _______________________________________________ > Haiku-commits mailing list > Haiku-commits at lists.berlios.de > https://lists.berlios.de/mailman/listinfo/haiku-commits > -------------- next part -------------- An HTML attachment was scrubbed... URL: From ingo_weinhold at gmx.de Tue Sep 8 22:53:47 2009 From: ingo_weinhold at gmx.de (Ingo Weinhold) Date: Tue, 08 Sep 2009 22:53:47 +0200 Subject: [Haiku-commits] r32999 - haiku/trunk/src/system/libroot/posix In-Reply-To: <20090908215436.643.2@bepc.1252426766.fake> References: <1043860777-BeMail@laptop> <20090908192413.400.1@bepc.1252426766.fake> <20090908203015.392.1@knochen-vm.localdomain> <20090908215436.643.2@bepc.1252426766.fake> Message-ID: <20090908225347.346.1@knochen-vm.localdomain> On 2009-09-08 at 21:54:36 [+0200], Oliver Tappe wrote: > On 2009-09-08 at 20:30:15 [+0200], Ingo Weinhold > wrote: > > On 2009-09-08 at 19:24:13 [+0200], Oliver Tappe > > wrote: > > > On 2009-09-08 at 18:29:41 [+0200], Fran?ois Revol wrote: > > > > > Author: zooey > > > > > Date: 2009-09-08 17:59:51 +0200 (Tue, 08 Sep 2009) > > > > > New Revision: 32999 > > > > > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32999&view=rev > > > > > > > > > > Modified: > > > > > haiku/trunk/src/system/libroot/posix/dirent.c > > > > > Log: > > > > > * opendir() is supposed to return ENOTDIR if the given path is not > > > > > a directory, we returned EINVAL instead, which caused Perl's > > > > > internal > > > > > glob() implementation to fail prematurely > > > > > +alphabranch (will do that myself in a minute) > > > > > > > > Couldn't the vfs be fixed instead ? > > > > > > I suppose it could - do you think open_dir_vnode() would be the right > > > place? > > > > The error codes are usually just passed through from the file system > > hooks. > > In this case bfs_open_dir() (.../bfs/kernel_interface.cpp) is to blame -- > > it > > returns B_BAD_VALUE, when the node is not a "container". > > Right, but this method is being called for indices, too. These are kind of > directories, but I wonder if it's ok to return B_NOT_A_DIRECTORY for those, > too? The function is used by bfs_open_index_dir(), for the index directory. So besides that the check should never fail (unless something is corrupt), the error code sounds more fitting in this case as well. > While it's apparently the right way, I am not so sure it's a good idea to > rely > on every file system returning the correct error code for this case. Well, the current solution to rely on the file system to return the correct wrong error code (B_BAD_VALUE) is definitely a worse idea. :-) The VFS could do the check -- it knows the node type -- but generally the VFS only serves as a dispatcher and leaves checks to the file system hooks. Some checks can only only be done by them at all (e.g. atomically when needed) and others are often cheaper. Furthermore it gives file systems the possibility to add unusual features. E.g. in this case support for opendir() on non-directories. CU, Ingo From rudolf.cornelissen at gmail.com Tue Sep 8 23:42:03 2009 From: rudolf.cornelissen at gmail.com (Rudolf Cornelissen) Date: Tue, 8 Sep 2009 23:42:03 +0200 Subject: [Haiku-commits] nvidia driver sync from trunk to alpha1??? In-Reply-To: References: Message-ID: Hi again, I just sent a mail there if all is right, but I don't get it back yet. I do think it's important it gets there: the driver needs to be updated to trunk status preferably, since that is stable to my knowledge, while alpha1 branch currently is not. Could someone alert the people there for me? I am giving up for today. Thanks a lot.. Rudolf. On Tue, Sep 8, 2009 at 11:22 PM, Rudolf Cornelissen < rudolf.cornelissen at gmail.com> wrote: > Thanks guys, > > I'll respond there (apparantly I'm no member there anymore..) > > Rudolf. > > 2009/9/8 J?r?me Duval > > 2009/9/8 Rudolf Cornelissen : >> > Please let me know if this will be done by someone? >> >> Stephan actually asked for this nvidia fix on the haiku-development list. >> >> Bye, >> J?r?me >> _______________________________________________ >> Haiku-commits mailing list >> Haiku-commits at lists.berlios.de >> https://lists.berlios.de/mailman/listinfo/haiku-commits >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: From umccullough at gmail.com Tue Sep 8 23:44:37 2009 From: umccullough at gmail.com (Urias McCullough) Date: Tue, 8 Sep 2009 14:44:37 -0700 Subject: [Haiku-commits] nvidia driver sync from trunk to alpha1??? In-Reply-To: References: Message-ID: <1e80d8750909081444q3b720effya8323e931b86a869@mail.gmail.com> On Tue, Sep 8, 2009 at 2:42 PM, Rudolf Cornelissen wrote: > I just sent a mail there if all is right, but I don't get it back yet. > I do think it's important it gets there: the driver needs to be updated to > trunk status preferably, since that is stable to my knowledge, while alpha1 > branch currently is not. > > Could someone alert the people there for me? I am giving up for today. It made it there :) From rudolf.cornelissen at gmail.com Tue Sep 8 23:46:40 2009 From: rudolf.cornelissen at gmail.com (Rudolf Cornelissen) Date: Tue, 8 Sep 2009 23:46:40 +0200 Subject: [Haiku-commits] nvidia driver sync from trunk to alpha1??? In-Reply-To: <1e80d8750909081444q3b720effya8323e931b86a869@mail.gmail.com> References: <1e80d8750909081444q3b720effya8323e931b86a869@mail.gmail.com> Message-ID: Ah, Thanks Urias. Then I am going to take some rest now. Bye! Rudolf. On Tue, Sep 8, 2009 at 11:44 PM, Urias McCullough wrote: > On Tue, Sep 8, 2009 at 2:42 PM, Rudolf > Cornelissen wrote: > > I just sent a mail there if all is right, but I don't get it back yet. > > I do think it's important it gets there: the driver needs to be updated > to > > trunk status preferably, since that is stable to my knowledge, while > alpha1 > > branch currently is not. > > > > Could someone alert the people there for me? I am giving up for today. > > It made it there :) > _______________________________________________ > Haiku-commits mailing list > Haiku-commits at lists.berlios.de > https://lists.berlios.de/mailman/listinfo/haiku-commits > -------------- next part -------------- An HTML attachment was scrubbed... URL: From marcusoverhagen at mail.berlios.de Tue Sep 8 23:28:07 2009 From: marcusoverhagen at mail.berlios.de (marcusoverhagen at mail.berlios.de) Date: Tue, 8 Sep 2009 23:28:07 +0200 Subject: [Haiku-commits] r33010 - haiku/trunk/src/add-ons/kernel/generic/ata_adapter Message-ID: <200909082128.n88LS7wx007574@sheep.berlios.de> Author: marcusoverhagen Date: 2009-09-08 23:27:04 +0200 (Tue, 08 Sep 2009) New Revision: 33010 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33010&view=rev Modified: haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c Log: interrupt debugging instrumentation for bug hunting. Modified: haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c =================================================================== --- haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-09-08 21:13:17 UTC (rev 33009) +++ haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-09-08 21:27:04 UTC (rev 33010) @@ -23,6 +23,15 @@ #define TRACE dprintf +#define INTERRUPT_TRACING 0 +#if INTERRUPT_TRACING + #include + #define TRACE_INT(a...) ktrace_printf(a) +#else + #define TRACE_INT(a...) +#endif + + static ata_for_controller_interface *sATA; static device_manager_info *sDeviceManager; @@ -184,9 +193,12 @@ pci_device *device = channel->device; uint8 statusATA, statusBM; + TRACE_INT("ata_adapter_inthand\n"); + if (!channel->dmaing) { // this could be a spurious interrupt, so read status // register unconditionally to acknowledge those + TRACE_INT("ata_adapter_inthand: not DMA\n"); pci->read_io_8(device, channel->command_block_base + 7); return B_UNHANDLED_INTERRUPT; } @@ -195,11 +207,13 @@ // will clear the interrupt status bit once ATA status is read statusBM = pci->read_io_8(device, channel->bus_master_base + ATA_BM_STATUS_REG); + TRACE_INT("ata_adapter_inthand: BM-status 0x%02x\n", statusBM); // test if the interrupt was really generated by our controller if (statusBM & ATA_BM_STATUS_INTERRUPT) { // read ATA status register to acknowledge interrupt statusATA = pci->read_io_8(device, channel->command_block_base + 7); + TRACE_INT("ata_adapter_inthand: ATA-status 0x%02x\n", statusATA); // clear pending PCI bus master DMA interrupt, for those // controllers who don't clear it themselves @@ -209,6 +223,7 @@ // signal interrupt to ATA stack return sATA->interrupt_handler(channel->ataChannel, statusATA); } else { + TRACE_INT("ata_adapter_inthand: not BM\n"); return B_UNHANDLED_INTERRUPT; } } From korli at mail.berlios.de Wed Sep 9 00:49:33 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Wed, 9 Sep 2009 00:49:33 +0200 Subject: [Haiku-commits] r33011 - haiku/trunk/src/add-ons/kernel/drivers/audio/hda Message-ID: <200909082249.n88MnX3a030289@sheep.berlios.de> Author: korli Date: 2009-09-09 00:49:32 +0200 (Wed, 09 Sep 2009) New Revision: 33011 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33011&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp Log: try at workaround early playback interrupts on non intel. 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-09-08 21:27:04 UTC (rev 33010) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-09-08 22:49:32 UTC (rev 33011) @@ -45,8 +45,8 @@ {B_SR_96000, MAKE_RATE(48000, 2, 1), 96000}, {B_SR_176400, MAKE_RATE(44100, 4, 1), 176400}, {B_SR_192000, MAKE_RATE(48000, 4, 1), 192000}, -// TODO: What about this one? -// {B_SR_384000, MAKE_RATE(44100, ??, ??), 384000}, + // this one is not supported by hardware. + // {B_SR_384000, MAKE_RATE(44100, ??, ??), 384000}, }; @@ -114,6 +114,13 @@ stream->frames_count += stream->buffer_length; stream->buffer_cycle = position / bufferSize; + // playback interrupts come early, offsets don't work on non intel + // TODO find out why + if (stream->type == STREAM_PLAYBACK + && stream->controller->pci_info.vendor_id != INTEL_VENDORID) { + stream->buffer_cycle++; + } + release_spinlock(&stream->lock); release_sem_etc(controller->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE); @@ -548,10 +555,10 @@ // Stream interrupts seem to arrive too early on most HDA // so we adjust buffer descriptors to take this into account - // TODO check on other vendors, uncomment last line in stream_handle_interrupt() + // TODO check on other vendors, see in stream_handle_interrupt() // Tested only on Intel ICH8 uint32 offset = 0; - if (stream->type == STREAM_PLAYBACK) { + if (stream->type == STREAM_PLAYBACK && stream->controller->pci_info.vendor_id == INTEL_VENDORID) { if (stream->sample_size == 2) offset = 6; else if (stream->sample_size > 2) From bga at mail.berlios.de Wed Sep 9 01:00:44 2009 From: bga at mail.berlios.de (bga at mail.berlios.de) Date: Wed, 9 Sep 2009 01:00:44 +0200 Subject: [Haiku-commits] r33012 - haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp Message-ID: <200909082300.n88N0iWm009706@sheep.berlios.de> Author: bga Date: 2009-09-09 01:00:36 +0200 (Wed, 09 Sep 2009) New Revision: 33012 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33012&view=rev Modified: haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.cpp haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.h Log: Patch by ArCePi. - Implements STARTTLS support to the SMTP add-on. - Untested, but implementation matches RFC. Modified: haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.cpp =================================================================== --- haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.cpp 2009-09-08 22:49:32 UTC (rev 33011) +++ haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.cpp 2009-09-08 23:00:36 UTC (rev 33012) @@ -358,6 +358,7 @@ #ifdef USE_SSL use_ssl = (fSettings->FindInt32("flavor") == 1); + use_STARTTLS = (fSettings->FindInt32("flavor") == 2); ssl = NULL; ctx = NULL; #endif @@ -458,8 +459,57 @@ return B_ERROR; } + + + #ifdef USE_SSL + // Check for STARTTLS + if(use_STARTTLS) + { + const char *res = fLog.String(); + char *p; + + SSL_library_init(); + RAND_seed(this,sizeof(SMTPProtocol)); + ::sprintf(cmd, "STARTTLS"CRLF); + + if ((p = ::strstr(res, "STARTTLS")) != NULL) + { + // Server advertises STARTTLS support + if(SendCommand(cmd) != B_OK) + { + delete[] cmd; + return B_ERROR; + } + + // We should start TLS negotiation + use_ssl = true; + ctx = SSL_CTX_new(TLSv1_method()); + ssl = SSL_new(ctx); + sbio = BIO_new_socket(_fd,BIO_NOCLOSE); + BIO_set_nbio(sbio, 0); + SSL_set_bio(ssl, sbio, sbio); + SSL_set_connect_state(ssl); + if(SSL_do_handshake(ssl) != 1) + return B_ERROR; + + // Should send EHLO command again + if(!esmtp) + ::sprintf(cmd, "HELO %s"CRLF, localhost); + else + ::sprintf(cmd, "EHLO %s"CRLF, localhost); + + if(SendCommand(cmd) != B_OK) + { + delete[] cmd; + return B_ERROR; + } + } + + } + #endif + delete[] cmd; - + // Check auth type if (esmtp) { const char *res = fLog.String(); @@ -1055,6 +1105,7 @@ B_MAIL_PROTOCOL_HAS_FLAVORS); view->AddFlavor("Unencrypted"); view->AddFlavor("SSL"); + view->AddFlavor("STARTTLS"); #else BMailProtocolConfigView *view = new BMailProtocolConfigView(B_MAIL_PROTOCOL_HAS_AUTH_METHODS | B_MAIL_PROTOCOL_HAS_USERNAME | Modified: haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.h =================================================================== --- haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.h 2009-09-08 22:49:32 UTC (rev 33011) +++ haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.h 2009-09-08 23:00:36 UTC (rev 33012) @@ -51,6 +51,7 @@ BIO *sbio; bool use_ssl; + bool use_STARTTLS; #endif status_t fStatus; From mmlr at mlotz.ch Tue Sep 8 23:03:02 2009 From: mmlr at mlotz.ch (Michael Lotz) Date: Tue, 08 Sep 2009 23:03:02 Subject: [Haiku-commits] =?windows-1252?q?r33012_-_haiku/trunk/src/add-ons?= =?windows-1252?q?/mail=5Fdaemon/outbound=5Fprotocols/smtp?= In-Reply-To: <200909082300.n88N0iWm009706@sheep.berlios.de> Message-ID: <11086494566-BeMail@laptop> > Author: bga > Date: 2009-09-09 01:00:36 +0200 (Wed, 09 Sep 2009) > New Revision: 33012 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33012&view=rev > > Modified: > haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp. > cpp > haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.h > Log: > Patch by ArCePi. > > - Implements STARTTLS support to the SMTP add-on. > - Untested, but implementation matches RFC. Oh please. This so obviously doesn't match our coding style at all. Please review patches and instruct the people sending them accordingly. Regards Michael From korli at mail.berlios.de Wed Sep 9 01:15:15 2009 From: korli at mail.berlios.de (korli at mail.berlios.de) Date: Wed, 9 Sep 2009 01:15:15 +0200 Subject: [Haiku-commits] r33013 - haiku/branches/releases/r1alpha1/src/add-ons/kernel/partitioning_systems/session Message-ID: <200909082315.n88NFF9x030181@sheep.berlios.de> Author: korli Date: 2009-09-09 01:15:03 +0200 (Wed, 09 Sep 2009) New Revision: 33013 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33013&view=rev Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/partitioning_systems/session/Disc.cpp haiku/branches/releases/r1alpha1/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h Log: merge r33002, r33003, r33005 from trunk Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/partitioning_systems/session/Disc.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/partitioning_systems/session/Disc.cpp 2009-09-08 23:00:36 UTC (rev 33012) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/partitioning_systems/session/Disc.cpp 2009-09-08 23:15:03 UTC (rev 33013) @@ -223,7 +223,7 @@ TRACE((" pminutes = %d\n", entries[i].pminutes)); TRACE((" pseconds = %d\n", entries[i].pseconds)); TRACE((" pframes = %d\n", entries[i].pframes)); - TRACE((" lba = %ld\n", + TRACE((" lba = %lld\n", msf_to_lba(make_msf_address(entries[i].pminutes, entries[i].pseconds, entries[i].pframes)))); } Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h 2009-09-08 23:00:36 UTC (rev 33012) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h 2009-09-08 23:15:03 UTC (rev 33013) @@ -107,7 +107,7 @@ */ static inline -uint32 +off_t msf_to_lba(msf_address msf) { return (CDROM_FRAMES_PER_MINUTE * msf.minutes) From bga at bug-br.org.br Tue Sep 8 23:22:40 2009 From: bga at bug-br.org.br (Bruno Albuquerque) Date: Tue, 08 Sep 2009 23:22:40 Subject: [Haiku-commits] r33012 - haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp In-Reply-To: <11086494566-BeMail@laptop> Message-ID: <4179589184-BeMail@Gaspode> On Tue, 08 Sep 2009 23:03:02, Michael Lotz said: > Oh please. This so obviously doesn't match our coding style at all. > Please review patches and instruct the people sending them > accordingly. MDR itself does not follow our coding guidelines. His code matches the code in the file he was touching. Consistency trumps the coding style I guess. -Bruno From kirilla at mail.berlios.de Wed Sep 9 03:29:46 2009 From: kirilla at mail.berlios.de (kirilla at BerliOS) Date: Wed, 9 Sep 2009 03:29:46 +0200 Subject: [Haiku-commits] r33014 - haiku/trunk/headers/private/shared Message-ID: <200909090129.n891TkJ2027296@sheep.berlios.de> Author: kirilla Date: 2009-09-09 03:29:45 +0200 (Wed, 09 Sep 2009) New Revision: 33014 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33014&view=rev Modified: haiku/trunk/headers/private/shared/TrackerAddOnAppLaunch.h Log: Check return value also for B_ALREADY_RUNNING, or else we launch the add-on twice. Modified: haiku/trunk/headers/private/shared/TrackerAddOnAppLaunch.h =================================================================== --- haiku/trunk/headers/private/shared/TrackerAddOnAppLaunch.h 2009-09-08 23:15:03 UTC (rev 33013) +++ haiku/trunk/headers/private/shared/TrackerAddOnAppLaunch.h 2009-09-09 01:29:45 UTC (rev 33014) @@ -52,17 +52,18 @@ if (get_ref_for_path(image.name, &addonRef) != B_OK) return; - if (be_roster->Launch(&addonRef, refs) != B_OK) { + status = be_roster->Launch(&addonRef, refs); + if (status == B_OK || status == B_ALREADY_RUNNING) + return; - // If launching by entry_ref fails it's probably futile to - // launch by signature this way, but we can try anyway. + // If launching by entry_ref fails it's probably futile to + // launch by signature this way, but we can try anyway. - app_info appInfo; - if (be_roster->GetAppInfo(&addonRef, &appInfo) != B_OK) - return; + app_info appInfo; + if (be_roster->GetAppInfo(&addonRef, &appInfo) != B_OK) + return; - be_roster->Launch(appInfo.signature, refs); - } + be_roster->Launch(appInfo.signature, refs); } From kirilla at mail.berlios.de Wed Sep 9 03:35:21 2009 From: kirilla at mail.berlios.de (kirilla at BerliOS) Date: Wed, 9 Sep 2009 03:35:21 +0200 Subject: [Haiku-commits] r33015 - haiku/trunk/src/add-ons/tracker/zipomatic Message-ID: <200909090135.n891ZL97027828@sheep.berlios.de> Author: kirilla Date: 2009-09-09 03:35:20 +0200 (Wed, 09 Sep 2009) New Revision: 33015 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33015&view=rev Modified: haiku/trunk/src/add-ons/tracker/zipomatic/Jamfile haiku/trunk/src/add-ons/tracker/zipomatic/ZipOMatic.cpp Log: Replace process_refs() with the same from TrackerAddOnAppLaunch.h, and adapt to it. Modified: haiku/trunk/src/add-ons/tracker/zipomatic/Jamfile =================================================================== --- haiku/trunk/src/add-ons/tracker/zipomatic/Jamfile 2009-09-09 01:29:45 UTC (rev 33014) +++ haiku/trunk/src/add-ons/tracker/zipomatic/Jamfile 2009-09-09 01:35:20 UTC (rev 33015) @@ -1,5 +1,7 @@ SubDir HAIKU_TOP src add-ons tracker zipomatic ; +UsePrivateHeaders shared ; + Application ZipOMatic-Z : GenericThread.cpp ZipOMatic.cpp Modified: haiku/trunk/src/add-ons/tracker/zipomatic/ZipOMatic.cpp =================================================================== --- haiku/trunk/src/add-ons/tracker/zipomatic/ZipOMatic.cpp 2009-09-09 01:29:45 UTC (rev 33014) +++ haiku/trunk/src/add-ons/tracker/zipomatic/ZipOMatic.cpp 2009-09-09 01:35:20 UTC (rev 33015) @@ -7,27 +7,12 @@ #include #include #include -#include +#include #include "ZipOMaticMisc.h" #include "ZipOMaticWindow.h" -extern "C" void -process_refs(entry_ref dirRef, BMessage* message, void*) -{ - status_t status = B_OK; - type_code refType = B_REF_TYPE; - int32 refCount = 0; - - status = message->GetInfo("refs", &refType, &refCount); - if (status != B_OK || refCount < 1) - be_roster->Launch(ZIPOMATIC_APP_SIG); - else - be_roster->Launch(ZIPOMATIC_APP_SIG, message); -} - - int main() { @@ -65,6 +50,15 @@ void ZipOMatic::RefsReceived(BMessage* message) { + message->RemoveName("dir_ref"); + + entry_ref ref; + if (message->FindRef("refs", &ref) != B_OK) { + if (!IsLaunching()) + PostMessage(B_SILENT_RELAUNCH); + return; + } + if (IsLaunching()) fGotRefs = true; From stefano.ceccherini at gmail.com Wed Sep 9 08:41:25 2009 From: stefano.ceccherini at gmail.com (Stefano Ceccherini) Date: Wed, 9 Sep 2009 08:41:25 +0200 Subject: [Haiku-commits] r33012 - haiku/trunk/src/add-ons/mail_daemon/outbound_protocols/smtp In-Reply-To: <4179589184-BeMail@Gaspode> References: <11086494566-BeMail@laptop> <4179589184-BeMail@Gaspode> Message-ID: <894b9700909082341h2ec0556dr270f671f4c62a426@mail.gmail.com> 2009/9/9 Bruno Albuquerque : > On Tue, 08 Sep 2009 23:03:02, Michael Lotz said: > >> Oh please. This so obviously doesn't match our coding style at all. >> Please review patches and instruct the people sending them >> accordingly. > > MDR itself does not follow our coding guidelines. His code matches the > code in the file he was touching. Consistency trumps the coding style I > guess. > > -Bruno > I'm with Bruno here. But MDR should really be converted to our style, sooner (better) or later. From stippi at mail.berlios.de Wed Sep 9 11:51:21 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Wed, 9 Sep 2009 11:51:21 +0200 Subject: [Haiku-commits] r33016 - in haiku/branches/releases/r1alpha1: headers/private/graphics/nvidia src/add-ons/accelerants/nvidia/engine src/add-ons/kernel/drivers/graphics/nvidia Message-ID: <200909090951.n899pLau027452@sheep.berlios.de> Author: stippi Date: 2009-09-09 11:51:19 +0200 (Wed, 09 Sep 2009) New Revision: 33016 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33016&view=rev Modified: haiku/branches/releases/r1alpha1/headers/private/graphics/nvidia/nv_macros.h haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_dac.c haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_dac2.c haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_general.c haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html Log: Merged changesets r32958, r32960 and r32965 (nVidia) from trunk. This is supposed to bring the nVidia in sync with trunk, I am going to check and make sure in a minute. Modified: haiku/branches/releases/r1alpha1/headers/private/graphics/nvidia/nv_macros.h =================================================================== --- haiku/branches/releases/r1alpha1/headers/private/graphics/nvidia/nv_macros.h 2009-09-09 01:35:20 UTC (rev 33015) +++ haiku/branches/releases/r1alpha1/headers/private/graphics/nvidia/nv_macros.h 2009-09-09 09:51:19 UTC (rev 33016) @@ -649,8 +649,10 @@ #define NVDAC_NV10_CURSYNC 0x00680404 #define NVDAC_PIXPLLC 0x00680508 #define NVDAC_PLLSEL 0x0068050c +#define NVDAC_NV30_PLLSETUP 0x00680524 #define NVDAC_OUTPUT 0x0068052c #define NVDAC_PIXPLLC2 0x00680578 +#define NVDAC_NV40_PLLSEL2 0x00680580 #define NVDAC_GENCTRL 0x00680600 #define NVDAC_TSTCTRL 0x00680608 #define NVDAC_TSTDATA 0x00680610 Modified: haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_dac.c =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_dac.c 2009-09-09 01:35:20 UTC (rev 33015) +++ haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_dac.c 2009-09-09 09:51:19 UTC (rev 33016) @@ -153,21 +153,6 @@ float pix_setting, req_pclk; status_t result; - /* we offer this option because some panels have very tight restrictions, - * and there's no overlapping settings range that makes them all work. - * note: - * this assumes the cards BIOS correctly programmed the panel (is likely) */ - //fixme: when VESA DDC EDID stuff is implemented, this option can be deleted... - if ((si->ps.monitors & CRTC1_TMDS) && !si->settings.pgm_panel) - { - LOG(4,("DAC: Not programming DFP refresh (specified in nvidia.settings)\n")); - - /* dump current setup for learning purposes */ - nv_dac_dump_pix_pll(); - - return B_OK; - } - /* fix a DVI or laptop flatpanel to 60Hz refresh! */ /* Note: * The pixelclock drives the flatpanel modeline, not the CRTC modeline. */ @@ -180,42 +165,64 @@ } req_pclk = (target.timing.pixel_clock)/1000.0; - LOG(4,("DAC: Setting PIX PLL for pixelclock %f\n", req_pclk)); /* signal that we actually want to set the mode */ result = nv_dac_pix_pll_find(target,&pix_setting,&m,&n,&p, 1); - if (result != B_OK) - { - return result; - } + if (result != B_OK) return result; /* dump old setup for learning purposes */ nv_dac_dump_pix_pll(); - /* program new frequency */ - DACW(PIXPLLC, ((p << 16) | (n << 8) | m)); + /* some logging for learning purposes */ + LOG(4,("DAC: current NV30_PLLSETUP settings: $%08x\n", DACR(NV30_PLLSETUP))); + /* this register seems to (dis)connect functions blocks and PLLs: + * there seem to be two PLL types per function block (on some cards), + * b16-17 DAC1clk, b18-19 DAC2clk, b20-21 GPUclk, b22-23 MEMclk. */ + LOG(4,("DAC: current (0x0000c040) settings: $%08x\n", NV_REG32(0x0000c040))); - /* program 2nd set N and M scalers if they exist (b31=1 enables them) */ - if (si->ps.ext_pll) DACW(PIXPLLC2, 0x80000401); + /* disable spread spectrum modes for the pixelPLLs _first_ */ + /* spread spectrum: b0,1 = GPUclk, b2,3 = MEMclk, b4,5 = DAC1clk, b6,7 = DAC2clk; + * b16-19 influence clock routing to digital outputs (internal/external LVDS transmitters?) */ + if (si->ps.card_arch >= NV30A) + DACW(NV30_PLLSETUP, (DACR(NV30_PLLSETUP) & ~0x000000f0)); - /* Give the PIXPLL frequency some time to lock... (there's no indication bit available) */ - snooze(1000); + /* we offer this option because some panels have very tight restrictions, + * and there's no overlapping settings range that makes them all work. + * note: + * this assumes the cards BIOS correctly programmed the panel (is likely) */ + //fixme: when VESA DDC EDID stuff is implemented, this option can be deleted... + if ((si->ps.monitors & CRTC1_TMDS) && !si->settings.pgm_panel) { + LOG(4,("DAC: Not programming DFP refresh (specified in nvidia.settings)\n")); + } else { + LOG(4,("DAC: Setting PIX PLL for pixelclock %f\n", req_pclk)); + /* program new frequency */ + DACW(PIXPLLC, ((p << 16) | (n << 8) | m)); + + /* program 2nd set N and M scalers if they exist (b31=1 enables them) */ + if (si->ps.ext_pll) DACW(PIXPLLC2, 0x80000401); + + /* Give the PIXPLL frequency some time to lock... (there's no indication bit available) */ + snooze(1000); + + LOG(2,("DAC: PIX PLL frequency should be locked now...\n")); + } + /* enable programmable PLLs */ /* (confirmed PLLSEL to be a write-only register on NV04 and NV11!) */ /* note: * setup PLL assignment _after_ programming PLL */ if (si->ps.secondary_head) { - if (si->ps.card_arch < NV40A) + if (si->ps.card_arch < NV40A) { DACW(PLLSEL, 0x30000f00); - else + } else { + DACW(NV40_PLLSEL2, (DACR(NV40_PLLSEL2) & ~0x10000100)); DACW(PLLSEL, 0x30000f04); + } } else { DACW(PLLSEL, 0x10000700); } - LOG(2,("DAC: PIX PLL frequency should be locked now...\n")); - return B_OK; } Modified: haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_dac2.c =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_dac2.c 2009-09-09 01:35:20 UTC (rev 33015) +++ haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_dac2.c 2009-09-09 09:51:19 UTC (rev 33016) @@ -156,21 +156,6 @@ float pix_setting, req_pclk; status_t result; - /* we offer this option because some panels have very tight restrictions, - * and there's no overlapping settings range that makes them all work. - * note: - * this assumes the cards BIOS correctly programmed the panel (is likely) */ - //fixme: when VESA DDC EDID stuff is implemented, this option can be deleted... - if ((si->ps.monitors & CRTC2_TMDS) && !si->settings.pgm_panel) - { - LOG(4,("DAC2: Not programming DFP refresh (specified in nvidia.settings)\n")); - - /* dump current setup for learning purposes */ - nv_dac2_dump_pix_pll(); - - return B_OK; - } - /* fix a DVI or laptop flatpanel to 60Hz refresh! */ /* Note: * The pixelclock drives the flatpanel modeline, not the CRTC modeline. */ @@ -183,42 +168,60 @@ } req_pclk = (target.timing.pixel_clock)/1000.0; - LOG(4,("DAC2: Setting PIX PLL for pixelclock %f\n", req_pclk)); /* signal that we actually want to set the mode */ result = nv_dac2_pix_pll_find(target,&pix_setting,&m,&n,&p, 1); - if (result != B_OK) - { - return result; - } + if (result != B_OK) return result; /* dump old setup for learning purposes */ nv_dac2_dump_pix_pll(); - /* program new frequency */ - DAC2W(PIXPLLC, ((p << 16) | (n << 8) | m)); + /* some logging for learning purposes */ + LOG(4,("DAC2: current NV30_PLLSETUP settings: $%08x\n", DACR(NV30_PLLSETUP))); + /* this register seems to (dis)connect functions blocks and PLLs: + * there seem to be two PLL types per function block (on some cards), + * b16-17 DAC1clk, b18-19 DAC2clk, b20-21 GPUclk, b22-23 MEMclk. */ + LOG(4,("DAC2: current (0x0000c040) settings: $%08x\n", NV_REG32(0x0000c040))); - /* program 2nd set N and M scalers if they exist (b31=1 enables them) */ - if (si->ps.ext_pll) DAC2W(PIXPLLC2, 0x80000401); + /* disable spread spectrum modes for the pixelPLLs _first_ */ + /* spread spectrum: b0,1 = GPUclk, b2,3 = MEMclk, b4,5 = DAC1clk, b6,7 = DAC2clk; + * b16-19 influence clock routing to digital outputs (internal/external LVDS transmitters?) */ + if (si->ps.card_arch >= NV30A) + DACW(NV30_PLLSETUP, (DACR(NV30_PLLSETUP) & ~0x000000f0)); - /* Give the PIXPLL frequency some time to lock... (there's no indication bit available) */ - snooze(1000); + /* we offer this option because some panels have very tight restrictions, + * and there's no overlapping settings range that makes them all work. + * note: + * this assumes the cards BIOS correctly programmed the panel (is likely) */ + //fixme: when VESA DDC EDID stuff is implemented, this option can be deleted... + if ((si->ps.monitors & CRTC2_TMDS) && !si->settings.pgm_panel) { + LOG(4,("DAC2: Not programming DFP refresh (specified in nvidia.settings)\n")); + } else { + LOG(4,("DAC2: Setting PIX PLL for pixelclock %f\n", req_pclk)); + /* program new frequency */ + DAC2W(PIXPLLC, ((p << 16) | (n << 8) | m)); + + /* program 2nd set N and M scalers if they exist (b31=1 enables them) */ + if (si->ps.ext_pll) DAC2W(PIXPLLC2, 0x80000401); + + /* Give the PIXPLL frequency some time to lock... (there's no indication bit available) */ + snooze(1000); + + LOG(2,("DAC2: PIX PLL frequency should be locked now...\n")); + } + /* enable programmable PLLs */ /* (confirmed PLLSEL to be a write-only register on NV04 and NV11!) */ /* note: * setup PLL assignment _after_ programming PLL */ - if (si->ps.secondary_head) { - if (si->ps.card_arch < NV40A) - DACW(PLLSEL, 0x30000f00); - else - DACW(PLLSEL, 0x30000f04); + if (si->ps.card_arch < NV40A) { + DACW(PLLSEL, 0x30000f00); } else { - DACW(PLLSEL, 0x10000700); + DACW(NV40_PLLSEL2, (DACR(NV40_PLLSEL2) & ~0x10000100)); + DACW(PLLSEL, 0x30000f04); } - LOG(2,("DAC2: PIX PLL frequency should be locked now...\n")); - return B_OK; } Modified: haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_general.c =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_general.c 2009-09-09 01:35:20 UTC (rev 33015) +++ haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/nv_general.c 2009-09-09 09:51:19 UTC (rev 33016) @@ -92,7 +92,7 @@ { status_t status; - LOG(1,("POWERUP: Haiku nVidia Accelerant 1.00 running.\n")); + LOG(1,("POWERUP: Haiku nVidia Accelerant 1.03 running.\n")); /* log VBLANK INT usability status */ if (si->ps.int_assigned) Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html 2009-09-09 01:35:20 UTC (rev 33015) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/graphics/nvidia/UPDATE.html 2009-09-09 09:51:19 UTC (rev 33016) @@ -4,7 +4,7 @@

              Changes done for each driverversion:

              -

              head (SVN 1.00, Rudolf)

              +

              head (SVN 1.03, Rudolf)

              • Fixed driver assuming enabling AGP mode succeeded on some occasions if it did not block it itself. Blocking AGP mode completely via the AGP busmanager (option 'block_agp') resulted in a crashing acceleration engine because it was setup for AGP transfers instead of using PCI transfers. Error was solved with help from user kraton.
              • Fixed shared_info struct problem occuring when 3D 'accelerant' is used (tested Alpha 4.1): the TVencoder type definition list apparantly gets some memory assigned these days when done inside the definition of shared_info. Moved encoder list outside the shared_info definition. @@ -26,7 +26,8 @@
              • DDC/EDID fetching now also works on GCC4 binaries due to a fixed fault in the accelerants/common code (which is used for that function);
              • Added support for Haiku specific driverhook GET_PREFERRED_DISPLAY_MODE. Laptops should now also startup in native mode automatically at first system boot;
              • Rewrote framebuffer memory detection. Accelerant now only uses the amount of RAM mapped by the kerneldriver as maximum. This fixes black screen at app_server startup on a number of GF6xxx and GF7xxx cards; -
              • Finally(!) fixed PLL selection trouble on NV40 architecture (Geforce 6xxx and 7xxx) cards. Now dualhead should (almost) always work OK, and now low-res bootscreens should nolonger result in 'frequency out of range' messages on DVI connected screens. +
              • Finally(!) fixed PLL selection trouble on NV40 architecture (Geforce 6xxx and 7xxx) cards. Now dualhead should (almost) always work OK, and now low-res bootscreens should nolonger result in 'frequency out of range' messages on DVI connected screens; +
              • Fixed shivering display on some systems (confirmed a Geforce 5200 laptop): Pixelclocks should never be setup for spread spectrum on analog connections.

              nv_driver 0.80 (Rudolf)

                From stippi at mail.berlios.de Wed Sep 9 12:03:05 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Wed, 9 Sep 2009 12:03:05 +0200 Subject: [Haiku-commits] r33017 - haiku/trunk/build/jam Message-ID: <200909091003.n89A35f2028427@sheep.berlios.de> Author: stippi Date: 2009-09-09 12:03:03 +0200 (Wed, 09 Sep 2009) New Revision: 33017 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33017&view=rev Modified: haiku/trunk/build/jam/OptionalPackages Log: Appled patch by scottmc from #4450, fixed Pe package to not include stray .svn folders. Thanks! +alphabranch Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-09-09 09:51:19 UTC (rev 33016) +++ haiku/trunk/build/jam/OptionalPackages 2009-09-09 10:03:03 UTC (rev 33017) @@ -721,8 +721,8 @@ : $(baseURL)/Pe-2.4.2-x86-gcc4-2009-08-04.zip ; } else { - InstallOptionalHaikuImagePackage Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-04 - : $(baseURL)/Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-04.zip + InstallOptionalHaikuImagePackage Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-08 + : $(baseURL)/Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-08.zip ; } From stippi at mail.berlios.de Wed Sep 9 12:04:23 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Wed, 9 Sep 2009 12:04:23 +0200 Subject: [Haiku-commits] r33018 - haiku/branches/releases/r1alpha1/build/jam Message-ID: <200909091004.n89A4NFB028534@sheep.berlios.de> Author: stippi Date: 2009-09-09 12:04:22 +0200 (Wed, 09 Sep 2009) New Revision: 33018 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33018&view=rev Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackages Log: Merged r33017 (fixed Pe package). Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackages =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-09 10:03:03 UTC (rev 33017) +++ haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-09 10:04:22 UTC (rev 33018) @@ -720,8 +720,8 @@ : $(baseURL)/Pe-2.4.2-x86-gcc4-2009-08-04.zip ; } else { - InstallOptionalHaikuImagePackage Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-04 - : $(baseURL)/Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-04.zip + InstallOptionalHaikuImagePackage Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-08 + : $(baseURL)/Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-08.zip ; } From superstippi at gmx.de Wed Sep 9 12:06:24 2009 From: superstippi at gmx.de (Stephan Assmus) Date: Wed, 09 Sep 2009 12:06:24 +0200 Subject: [Haiku-commits] r33016 - in haiku/branches/releases/r1alpha1: headers/private/graphics/nvidia src/add-ons/accelerants/nvidia/engine src/add-ons/kernel/drivers/graphics/nvidia In-Reply-To: <200909090951.n899pLau027452@sheep.berlios.de> References: <200909090951.n899pLau027452@sheep.berlios.de> Message-ID: <20090909120624.1411.2@bepc.1252487799.fake> On 2009-09-09 at 11:51:21 [+0200], stippi at mail.berlios.de wrote: > Author: stippi > Date: 2009-09-09 11:51:19 +0200 (Wed, 09 Sep 2009) New Revision: 33016 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33016&view=rev > > Modified: > haiku/branches/releases/r1alpha1/headers/private/graphics/nvidia/nv_mac > ros.h > haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/ > nv_dac.c > haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/ > nv_dac2.c > haiku/branches/releases/r1alpha1/src/add-ons/accelerants/nvidia/engine/ > nv_general.c > haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/graphics/nv > idia/UPDATE.html > Log: > Merged changesets r32958, r32960 and r32965 (nVidia) from trunk. This is > supposed to bring the nVidia in sync with trunk, I am going to check and > make sure in a minute. Confirmed. Trunk and Alphabranch are identical for the nvidia driver. Best regards, -Stephan From zooey at mail.berlios.de Wed Sep 9 14:33:50 2009 From: zooey at mail.berlios.de (zooey at mail.berlios.de) Date: Wed, 9 Sep 2009 14:33:50 +0200 Subject: [Haiku-commits] r33019 - haiku/trunk/build/jam Message-ID: <200909091233.n89CXoH2025615@sheep.berlios.de> Author: zooey Date: 2009-09-09 14:33:49 +0200 (Wed, 09 Sep 2009) New Revision: 33019 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33019&view=rev Modified: haiku/trunk/build/jam/OptionalPackageDependencies haiku/trunk/build/jam/OptionalPackages Log: applying patch by Matt: * update Firefox optional package for r1a1 +alphabranch (will do that next) Modified: haiku/trunk/build/jam/OptionalPackageDependencies =================================================================== --- haiku/trunk/build/jam/OptionalPackageDependencies 2009-09-09 10:04:22 UTC (rev 33018) +++ haiku/trunk/build/jam/OptionalPackageDependencies 2009-09-09 12:33:49 UTC (rev 33019) @@ -8,7 +8,6 @@ OptionalPackageDependencies BeHappy : BeBook NetSurf ; OptionalPackageDependencies Development : DevelopmentBase Perl ; OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ; -OptionalPackageDependencies Firefox : LibIconv ; OptionalPackageDependencies LibLayout : DevelopmentBase ; OptionalPackageDependencies NetSurf : OpenSSL ; OptionalPackageDependencies OpenSSH : OpenSSL ; Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-09-09 10:04:22 UTC (rev 33018) +++ haiku/trunk/build/jam/OptionalPackages 2009-09-09 12:33:49 UTC (rev 33019) @@ -454,9 +454,10 @@ AddSymlinkToHaikuImage home config be Applications : /boot/apps/BeZillaBrowser/BeZillaBrowser ; } else { - InstallOptionalHaikuImagePackage BeZillaBrowser-gcc2-20090218 - : http://bezilla.beuser.de/builds/BeZillaBrowser-gcc2-20090218.zip - : apps + InstallOptionalHaikuImagePackage + BeZillaBrowser-2.0.0.22pre-r1a1-x86-gcc2-2009-09-08 + : $(baseURL)/BeZillaBrowser-2.0.0.22pre-r1a1-x86-gcc2-2009-09-08.zip + : ; AddSymlinkToHaikuImage home config be Applications : /boot/apps/BeZillaBrowser/BeZillaBrowser ; From zooey at mail.berlios.de Wed Sep 9 14:56:56 2009 From: zooey at mail.berlios.de (zooey at mail.berlios.de) Date: Wed, 9 Sep 2009 14:56:56 +0200 Subject: [Haiku-commits] r33020 - haiku/trunk/build/jam Message-ID: <200909091256.n89CuukC027588@sheep.berlios.de> Author: zooey Date: 2009-09-09 14:56:55 +0200 (Wed, 09 Sep 2009) New Revision: 33020 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33020&view=rev Modified: haiku/trunk/build/jam/OptionalPackages Log: applied part from Matt's patch that I missed last time: * removed gcc4 optional package for Firefox Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-09-09 12:33:49 UTC (rev 33019) +++ haiku/trunk/build/jam/OptionalPackages 2009-09-09 12:56:55 UTC (rev 33020) @@ -446,13 +446,7 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Firefox available for $(TARGET_ARCH)" ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage - BeZillaBrowser-2.0.0.21pre-haiku-gcc4-x86-09-03-01 - : $(baseURL)/BeZillaBrowser-2.0.0.21pre-haiku-gcc4-x86-09-03-01.zip - : apps - ; - AddSymlinkToHaikuImage home config be Applications - : /boot/apps/BeZillaBrowser/BeZillaBrowser ; + Echo "No optional package Firefox available for gcc4" ; } else { InstallOptionalHaikuImagePackage BeZillaBrowser-2.0.0.22pre-r1a1-x86-gcc2-2009-09-08 From zooey at mail.berlios.de Wed Sep 9 14:58:55 2009 From: zooey at mail.berlios.de (zooey at mail.berlios.de) Date: Wed, 9 Sep 2009 14:58:55 +0200 Subject: [Haiku-commits] r33021 - haiku/trunk/build/jam Message-ID: <200909091258.n89Cwthb027682@sheep.berlios.de> Author: zooey Date: 2009-09-09 14:58:54 +0200 (Wed, 09 Sep 2009) New Revision: 33021 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33021&view=rev Modified: haiku/trunk/build/jam/OptionalPackages Log: sigh, fixing even more stuff of Matt's patch that I forgot Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-09-09 12:56:55 UTC (rev 33020) +++ haiku/trunk/build/jam/OptionalPackages 2009-09-09 12:58:54 UTC (rev 33021) @@ -445,7 +445,7 @@ if [ IsOptionalHaikuImagePackageAdded Firefox ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Firefox available for $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 { + } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) { Echo "No optional package Firefox available for gcc4" ; } else { InstallOptionalHaikuImagePackage From zooey at mail.berlios.de Wed Sep 9 15:01:04 2009 From: zooey at mail.berlios.de (zooey at BerliOS) Date: Wed, 9 Sep 2009 15:01:04 +0200 Subject: [Haiku-commits] r33022 - haiku/branches/releases/r1alpha1/build/jam Message-ID: <200909091301.n89D14ns028106@sheep.berlios.de> Author: zooey Date: 2009-09-09 15:01:03 +0200 (Wed, 09 Sep 2009) New Revision: 33022 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33022&view=rev Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackageDependencies haiku/branches/releases/r1alpha1/build/jam/OptionalPackages Log: merging r33019-33021 from trunk: * updated Firefox optional package for r1a1 Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackageDependencies =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/OptionalPackageDependencies 2009-09-09 12:58:54 UTC (rev 33021) +++ haiku/branches/releases/r1alpha1/build/jam/OptionalPackageDependencies 2009-09-09 13:01:03 UTC (rev 33022) @@ -8,7 +8,6 @@ OptionalPackageDependencies BeHappy : BeBook NetSurf ; OptionalPackageDependencies Development : DevelopmentBase Perl ; OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ; -OptionalPackageDependencies Firefox : LibIconv ; OptionalPackageDependencies LibLayout : DevelopmentBase ; OptionalPackageDependencies NetSurf : OpenSSL ; OptionalPackageDependencies OpenSSH : OpenSSL ; Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackages =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-09 12:58:54 UTC (rev 33021) +++ haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-09 13:01:03 UTC (rev 33022) @@ -460,24 +460,19 @@ # Firefox web browser -if [ IsObsoleteOptionalHaikuImagePackageAdded Firefox ] { +if [ IsOptionalHaikuImagePackageAdded Firefox ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Firefox available for $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 { + } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) { + Echo "No optional package Firefox available for gcc4" ; + } else { InstallOptionalHaikuImagePackage - BeZillaBrowser-2.0.0.21pre-haiku-gcc4-x86-09-03-01 - : $(baseURL)/BeZillaBrowser-2.0.0.21pre-haiku-gcc4-x86-09-03-01.zip - : apps + BeZillaBrowser-2.0.0.22pre-r1a1-x86-gcc2-2009-09-08 + : $(baseURL)/BeZillaBrowser-2.0.0.22pre-r1a1-x86-gcc2-2009-09-08.zip + : ; AddSymlinkToHaikuImage home config be Applications : /boot/apps/BeZillaBrowser/BeZillaBrowser ; - } else { - InstallOptionalHaikuImagePackage BeZillaBrowser-gcc2-20090218 - : http://bezilla.beuser.de/builds/BeZillaBrowser-gcc2-20090218.zip - : apps - ; - AddSymlinkToHaikuImage home config be Applications - : /boot/apps/BeZillaBrowser/BeZillaBrowser ; } } From zooey at mail.berlios.de Wed Sep 9 15:02:24 2009 From: zooey at mail.berlios.de (zooey at BerliOS) Date: Wed, 9 Sep 2009 15:02:24 +0200 Subject: [Haiku-commits] r33023 - haiku/branches/releases/r1alpha1/build/jam Message-ID: <200909091302.n89D2Omr028154@sheep.berlios.de> Author: zooey Date: 2009-09-09 15:02:24 +0200 (Wed, 09 Sep 2009) New Revision: 33023 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33023&view=rev Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackages Log: * the OpenSSL optional package isn't obsolete, since there is a version for r1a1 Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackages =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-09 13:01:03 UTC (rev 33022) +++ haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-09 13:02:24 UTC (rev 33023) @@ -668,7 +668,7 @@ # OpenSSL -if [ IsObsoleteOptionalHaikuImagePackageAdded OpenSSL ] { +if [ IsOptionalHaikuImagePackageAdded OpenSSL ] { if $(TARGET_ARCH) != x86 { Echo "No optional package OpenSSL available for $(TARGET_ARCH)" ; } else { From zooey at mail.berlios.de Wed Sep 9 15:42:23 2009 From: zooey at mail.berlios.de (zooey at mail.berlios.de) Date: Wed, 9 Sep 2009 15:42:23 +0200 Subject: [Haiku-commits] r33024 - haiku/trunk/build/jam Message-ID: <200909091342.n89DgNjE031535@sheep.berlios.de> Author: zooey Date: 2009-09-09 15:42:22 +0200 (Wed, 09 Sep 2009) New Revision: 33024 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33024&view=rev Modified: haiku/trunk/build/jam/OptionalPackageDependencies haiku/trunk/build/jam/OptionalPackages Log: * reverted r33019-33021, as the patch was only meant for the alpha-branch, sorry for all the noise! Modified: haiku/trunk/build/jam/OptionalPackageDependencies =================================================================== --- haiku/trunk/build/jam/OptionalPackageDependencies 2009-09-09 13:02:24 UTC (rev 33023) +++ haiku/trunk/build/jam/OptionalPackageDependencies 2009-09-09 13:42:22 UTC (rev 33024) @@ -8,6 +8,7 @@ OptionalPackageDependencies BeHappy : BeBook NetSurf ; OptionalPackageDependencies Development : DevelopmentBase Perl ; OptionalPackageDependencies DevelopmentBase : CDRecord DevelopmentMin Yasm ; +OptionalPackageDependencies Firefox : LibIconv ; OptionalPackageDependencies LibLayout : DevelopmentBase ; OptionalPackageDependencies NetSurf : OpenSSL ; OptionalPackageDependencies OpenSSH : OpenSSL ; Modified: haiku/trunk/build/jam/OptionalPackages =================================================================== --- haiku/trunk/build/jam/OptionalPackages 2009-09-09 13:02:24 UTC (rev 33023) +++ haiku/trunk/build/jam/OptionalPackages 2009-09-09 13:42:22 UTC (rev 33024) @@ -445,13 +445,18 @@ if [ IsOptionalHaikuImagePackageAdded Firefox ] { if $(TARGET_ARCH) != x86 { Echo "No optional package Firefox available for $(TARGET_ARCH)" ; - } else if $(HAIKU_GCC_VERSION[1]) >= 4 && ! $(isHybridBuild) { - Echo "No optional package Firefox available for gcc4" ; + } else if $(HAIKU_GCC_VERSION[1]) >= 4 { + InstallOptionalHaikuImagePackage + BeZillaBrowser-2.0.0.21pre-haiku-gcc4-x86-09-03-01 + : $(baseURL)/BeZillaBrowser-2.0.0.21pre-haiku-gcc4-x86-09-03-01.zip + : apps + ; + AddSymlinkToHaikuImage home config be Applications + : /boot/apps/BeZillaBrowser/BeZillaBrowser ; } else { - InstallOptionalHaikuImagePackage - BeZillaBrowser-2.0.0.22pre-r1a1-x86-gcc2-2009-09-08 - : $(baseURL)/BeZillaBrowser-2.0.0.22pre-r1a1-x86-gcc2-2009-09-08.zip - : + InstallOptionalHaikuImagePackage BeZillaBrowser-gcc2-20090218 + : http://bezilla.beuser.de/builds/BeZillaBrowser-gcc2-20090218.zip + : apps ; AddSymlinkToHaikuImage home config be Applications : /boot/apps/BeZillaBrowser/BeZillaBrowser ; From zooey at mail.berlios.de Wed Sep 9 15:45:15 2009 From: zooey at mail.berlios.de (zooey at mail.berlios.de) Date: Wed, 9 Sep 2009 15:45:15 +0200 Subject: [Haiku-commits] r33025 - in haiku/trunk/src: add-ons/kernel/file_systems/bfs add-ons/kernel/file_systems/cdda add-ons/kernel/file_systems/ext2 add-ons/kernel/file_systems/ramfs add-ons/kernel/file_systems/reiserfs add-ons/kernel/file_systems/udf system/libroot/posix Message-ID: <200909091345.n89DjFqj031975@sheep.berlios.de> Author: zooey Date: 2009-09-09 15:45:12 +0200 (Wed, 09 Sep 2009) New Revision: 33025 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33025&view=rev Modified: haiku/trunk/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp haiku/trunk/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp haiku/trunk/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp haiku/trunk/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp haiku/trunk/src/add-ons/kernel/file_systems/reiserfs/kernel_interface.cpp haiku/trunk/src/add-ons/kernel/file_systems/udf/kernel_interface.cpp haiku/trunk/src/system/libroot/posix/dirent.c Log: * revert r32999 and adjusted each filesystem to return B_NOT_A_DIRECTORY in its open_dir() implementation instead (as suggested by Ingo). -alphabranch (it's only a cleanup) 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-09-09 13:42:22 UTC (rev 33024) +++ haiku/trunk/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp 2009-09-09 13:45:12 UTC (rev 33025) @@ -1576,7 +1576,7 @@ // we don't ask here for directories only, because the bfs_open_index_dir() // function utilizes us (so we must be able to open indices as well) if (!inode->IsContainer()) - RETURN_ERROR(B_BAD_VALUE); + RETURN_ERROR(B_NOT_A_DIRECTORY); BPlusTree* tree = inode->Tree(); if (tree == NULL) Modified: haiku/trunk/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp 2009-09-09 13:42:22 UTC (rev 33024) +++ haiku/trunk/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp 2009-09-09 13:45:12 UTC (rev 33025) @@ -1785,7 +1785,7 @@ Inode* inode = (Inode*)_node->private_node; if (!S_ISDIR(inode->Type())) - return B_BAD_VALUE; + return B_NOT_A_DIRECTORY; if (inode != &volume->RootNode()) panic("pipefs: found directory that's not the root!"); Modified: haiku/trunk/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp 2009-09-09 13:42:22 UTC (rev 33024) +++ haiku/trunk/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp 2009-09-09 13:45:12 UTC (rev 33025) @@ -437,7 +437,7 @@ return status; if (!inode->IsDirectory()) - return B_BAD_VALUE; + return B_NOT_A_DIRECTORY; DirectoryIterator* iterator = new(std::nothrow) DirectoryIterator(inode); if (iterator == NULL) Modified: haiku/trunk/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp 2009-09-09 13:42:22 UTC (rev 33024) +++ haiku/trunk/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp 2009-09-09 13:45:12 UTC (rev 33025) @@ -1180,14 +1180,14 @@ Node *node = (Node*)_node; FUNCTION(("dir: (%Lu)\n", node->GetID())); // get the Directory - status_t error = (node->IsDirectory() ? B_OK : B_BAD_VALUE); + status_t error = (node->IsDirectory() ? B_OK : B_NOT_A_DIRECTORY); Directory *dir = NULL; if (error == B_OK) { dir = dynamic_cast(node); if (!dir) { FATAL(("Node %Ld pretends to be a Directory, but isn't!\n", node->GetID())); - error = B_BAD_VALUE; + error = B_NOT_A_DIRECTORY; } } // create a DirectoryCookie Modified: haiku/trunk/src/add-ons/kernel/file_systems/reiserfs/kernel_interface.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/reiserfs/kernel_interface.cpp 2009-09-09 13:42:22 UTC (rev 33024) +++ haiku/trunk/src/add-ons/kernel/file_systems/reiserfs/kernel_interface.cpp 2009-09-09 13:45:12 UTC (rev 33025) @@ -510,7 +510,7 @@ VNode *node = (VNode*)_node->private_node; FUNCTION(("node: (%Ld: %lu, %lu)\n", node->GetID(), node->GetDirID(), node->GetObjectID())); - status_t error = (node->IsDir() ? B_OK : B_BAD_VALUE); + status_t error = (node->IsDir() ? B_OK : B_NOT_A_DIRECTORY); if (error == B_OK) { DirectoryCookie *iterator = new(nothrow) DirectoryCookie( volume->GetTree(), node->GetDirID(), node->GetObjectID()); Modified: haiku/trunk/src/add-ons/kernel/file_systems/udf/kernel_interface.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/udf/kernel_interface.cpp 2009-09-09 13:42:22 UTC (rev 33024) +++ haiku/trunk/src/add-ons/kernel/file_systems/udf/kernel_interface.cpp 2009-09-09 13:45:12 UTC (rev 33025) @@ -310,7 +310,7 @@ if (!dir->IsDirectory()) { TRACE_ERROR(("udf_open_dir: given Icb is not a directory (type: %d)\n", dir->Type())); - return B_BAD_VALUE; + return B_NOT_A_DIRECTORY; } DirectoryIterator *iterator = NULL; Modified: haiku/trunk/src/system/libroot/posix/dirent.c =================================================================== --- haiku/trunk/src/system/libroot/posix/dirent.c 2009-09-09 13:42:22 UTC (rev 33024) +++ haiku/trunk/src/system/libroot/posix/dirent.c 2009-09-09 13:45:12 UTC (rev 33025) @@ -123,10 +123,7 @@ int fd = _kern_open_dir(-1, path); if (fd < 0) { - if (fd == B_BAD_VALUE) - errno = B_NOT_A_DIRECTORY; - else - errno = fd; + errno = fd; return NULL; } From anevilyak at mail.berlios.de Wed Sep 9 17:06:42 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Wed, 9 Sep 2009 17:06:42 +0200 Subject: [Haiku-commits] r33026 - haiku/branches/releases/r1alpha1/build/jam Message-ID: <200909091506.n89F6g98010337@sheep.berlios.de> Author: anevilyak Date: 2009-09-09 17:06:41 +0200 (Wed, 09 Sep 2009) New Revision: 33026 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33026&view=rev Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackages Log: Force package update due to in-place removal of .svn dirs. Modified: haiku/branches/releases/r1alpha1/build/jam/OptionalPackages =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-09 13:45:12 UTC (rev 33025) +++ haiku/branches/releases/r1alpha1/build/jam/OptionalPackages 2009-09-09 15:06:41 UTC (rev 33026) @@ -890,14 +890,14 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Vision available for $(TARGET_ARCH)" ; } else if $(HAIKU_GCC_VERSION[1]) >= 4 { - InstallOptionalHaikuImagePackage Vision-0.9.7-H-090826 + InstallOptionalHaikuImagePackage Vision-0.9.7-H-090826-1 : $(baseURL)/Vision-0.9.7-H-x86-gcc4-2009-08-26.zip : apps ; AddSymlinkToHaikuImage home config be Applications : /boot/apps/Vision-0.9.7-H-090423/Vision ; } else { - InstallOptionalHaikuImagePackage Vision-0.9.7-H-090826 + InstallOptionalHaikuImagePackage Vision-0.9.7-H-090826-1 : $(baseURL)/Vision-0.9.7-H-x86-gcc2-2009-08-26.zip : apps ; From stippi at mail.berlios.de Wed Sep 9 17:08:35 2009 From: stippi at mail.berlios.de (stippi at mail.berlios.de) Date: Wed, 9 Sep 2009 17:08:35 +0200 Subject: [Haiku-commits] r33027 - in haiku/branches/releases/r1alpha1/src/add-ons/kernel: bus_managers/ata busses/ata/silicon_image_3112 busses/scsi/ahci generic/ata_adapter Message-ID: <200909091508.n89F8Zx7010469@sheep.berlios.de> Author: stippi Date: 2009-09-09 17:08:28 +0200 (Wed, 09 Sep 2009) New Revision: 33027 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33027&view=rev Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAModule.cpp haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/scsi/ahci/ahci_controller.cpp haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/scsi/ahci/ahci_sim.cpp haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/scsi/ahci/util.c haiku/branches/releases/r1alpha1/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c Log: Merged changesets r32877, r32878, r32921, r32977, r32978, r32988, r32989, r33004 and r33010 as requested by Marcus. I can confirm that at least ATAPI works on all systems here that it worked on before and at least one problem with another system I have is fixed (system stalls for a very long time before continuing to boot if IDE DMA is not disabled). Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp 2009-09-09 15:06:41 UTC (rev 33026) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp 2009-09-09 15:08:28 UTC (rev 33027) @@ -115,23 +115,115 @@ } +bool +ATAChannel::_DevicePresent(int device) +{ + SelectDevice(device); + + if (SelectedDevice() != device) { + TRACE_ALWAYS("_DevicePresent: device selection failed for device %i\n", + device); + return false; + } + + ata_task_file taskFile; + taskFile.chs.sector_count = 0x5a; + taskFile.chs.sector_number = 0xa5; + if (_WriteRegs(&taskFile, ATA_MASK_SECTOR_COUNT + | ATA_MASK_SECTOR_NUMBER) != B_OK) { + TRACE_ERROR("_DevicePresent: writing registers failed\n"); + return false; + } + if (_ReadRegs(&taskFile, ATA_MASK_SECTOR_COUNT + | ATA_MASK_SECTOR_NUMBER) != B_OK) { + TRACE_ERROR("_DevicePresent: reading registers failed\n"); + return false; + } + bool present = (taskFile.chs.sector_count == 0x5a && + taskFile.chs.sector_number == 0xa5); + + TRACE_ALWAYS("_DevicePresent: device %i, presence %d\n", device, present); + return present; +} + + status_t ATAChannel::ScanBus() { - bool devicePresent[fDeviceCount]; - uint16 deviceSignature[fDeviceCount]; - status_t result = Reset(devicePresent, deviceSignature); + uint deviceMask = 0; + + for (int i = 0; i < fDeviceCount; i++) + deviceMask |= (int)_DevicePresent(i) << i; + + status_t result = Reset(); if (result != B_OK) { TRACE_ERROR("resetting the channel failed\n"); return result; } - for (uint8 i = 0; i < fDeviceCount; i++) { - if (!devicePresent[i]) + TRACE_ALWAYS("deviceMask %d\n", deviceMask); + + for (int i = 0; i < fDeviceCount; i++) { + if (!(deviceMask & (1 << i))) { + TRACE_ALWAYS("ignoring device %d\n", i); continue; + } + TRACE_ALWAYS("probing device %d\n", i); + SelectDevice(i); + + // ensure interrupts are disabled for this device + _WriteControl(ATA_DEVICE_CONTROL_DISABLE_INTS); + + // wait up to 3 seconds for busy to clear + if (Wait(0, ATA_STATUS_BUSY, 0, 3 * 1000 * 1000) != B_OK) { + uint8 status = AltStatus(); + if (status == 0xff || status == 0x7f) { + TRACE_ALWAYS("illegal status value 0x%02x for device %d\n", + status, i); + continue; + } else { + TRACE_ALWAYS("device %d is slow\n", i); + } + } + + // wait up to 31 seconds for busy to clear (already 3 sec. waited) + if (Wait(0, ATA_STATUS_BUSY, 0, 28 * 1000 * 1000) != B_OK) { + TRACE_ALWAYS("device %d reset timeout\n", i); + continue; + } + + // reselect device + SelectDevice(i); + WaitForIdle(); + + if (SelectedDevice() != i) { + TRACE_ALWAYS("device selection failed for device %i\n", i); + continue; + } + + ata_task_file taskFile; + if (_ReadRegs(&taskFile, ATA_MASK_LBA_MID | ATA_MASK_LBA_HIGH + | ATA_MASK_ERROR) != B_OK) { + TRACE_ERROR("reading status failed\n"); + return B_ERROR; + } + + // for information only + if ((i == 0) && (taskFile.read.error & 0x80)) { + TRACE_ERROR("device 0 indicates that device 1 failed" + " error code is 0x%02x\n", taskFile.read.error); + } else if (taskFile.read.error != 0x01) { + TRACE_ERROR("device %d failed, error code is 0x%02x\n", + i, taskFile.read.error); + } + + uint16 signature = taskFile.lba.lba_8_15 + | (((uint16)taskFile.lba.lba_16_23) << 8); + TRACE_ALWAYS("signature of device %d: 0x%04x\n", i, signature); + ATADevice *device = NULL; - if (deviceSignature[i] == ATA_SIGNATURE_ATAPI) + if (signature == ATA_SIGNATURE_ATAPI) device = new(std::nothrow) ATAPIDevice(this, i); else device = new(std::nothrow) ATADevice(this, i); @@ -290,7 +382,7 @@ status_t -ATAChannel::Reset(bool *presence, uint16 *signatures) +ATAChannel::Reset() { TRACE_FUNCTION("\n"); @@ -313,95 +405,6 @@ _FlushAndWait(150 * 1000); - for (uint8 i = 0; i < fDeviceCount; i++) - presence[i] = false; - - // up to 2 devices on each channel - for (uint8 i = 0; i < fDeviceCount; i++) { - TRACE_ALWAYS("probing device %d\n", i); - SelectDevice(i); - if (i == 1) { - if (presence[0]) { - TRACE_ALWAYS("possibly master and slave configuration...\n"); - } else { - TRACE_ALWAYS("possibly single device 1 configuration...\n"); - int maxtrys; - for (maxtrys = 20; maxtrys > 0; maxtrys--) { - SelectDevice(1); - ata_task_file taskFile; - taskFile.chs.sector_count = 0x5a; - taskFile.chs.sector_number = 0xa5; - if (_WriteRegs(&taskFile, ATA_MASK_SECTOR_COUNT - | ATA_MASK_SECTOR_NUMBER) != B_OK) { - TRACE_ERROR("writing registers failed\n"); - return B_ERROR; - } - if (_ReadRegs(&taskFile, ATA_MASK_SECTOR_COUNT - | ATA_MASK_SECTOR_NUMBER) != B_OK) { - TRACE_ERROR("reading registers failed\n"); - return B_ERROR; - } - if (taskFile.chs.sector_count == 0x5a && - taskFile.chs.sector_number == 0xa5) - break; - snooze(100000); - } - if (maxtrys == 0) { - TRACE_ALWAYS("Can't access device 1\n"); - continue; - } - } - } - - // ensure interrupts are disabled for this device - _WriteControl(ATA_DEVICE_CONTROL_DISABLE_INTS); - - if (AltStatus() == 0xff) - snooze(150 * 1000); - - if (AltStatus() == 0xff) { - TRACE_ALWAYS("illegal status value for device %d\n", i); - continue; - } - - // wait up to 31 seconds for busy to clear - if (Wait(0, ATA_STATUS_BUSY, 0, 31 * 1000 * 1000) != B_OK) { - TRACE_ALWAYS("device %d reset timeout\n", i); - continue; - } - - // reselect device - SelectDevice(i); - - if (SelectedDevice() != i) { - TRACE_ALWAYS("device selection failed for device %i\n", i); - continue; - } - - ata_task_file taskFile; - if (_ReadRegs(&taskFile, ATA_MASK_LBA_MID | ATA_MASK_LBA_HIGH - | ATA_MASK_ERROR) != B_OK) { - TRACE_ERROR("reading status failed\n"); - return B_ERROR; - } - - // for information only - if ((i == 0) && (taskFile.read.error & 0x80)) { - TRACE_ERROR("device 0 indicates that device 1 failed" - " error code is 0x%02x\n", taskFile.read.error); - } else if (taskFile.read.error != 0x01) { - TRACE_ERROR("device %d failed, error code is 0x%02x\n", - i, taskFile.read.error); - } - - presence[i] = true; - - signatures[i] = taskFile.lba.lba_8_15 - | (((uint16)taskFile.lba.lba_16_23) << 8); - TRACE_ALWAYS("signature of device %d: 0x%04x\n", i, signatures[i]); - - } - return B_OK; } @@ -413,7 +416,7 @@ bigtime_t startTime = system_time(); _FlushAndWait(1); - TRACE("waiting for set bits 0x%02x and cleared bits 0x%02x\n", + TRACE("wait for set bits 0x%02x and cleared bits 0x%02x\n", setBits, clearedBits); #if ATA_TRACING @@ -424,34 +427,39 @@ if ((flags & ATA_CHECK_ERROR_BIT) != 0 && (status & ATA_STATUS_BUSY) == 0 && (status & ATA_STATUS_ERROR) != 0) { - TRACE("error bit set while waiting\n"); + TRACE("wait failed, error bit set, status 0x%02x\n", status); return B_ERROR; } if ((flags & ATA_CHECK_DEVICE_FAULT) != 0 && (status & ATA_STATUS_BUSY) == 0 && (status & ATA_STATUS_DEVICE_FAULT) != 0) { - TRACE("device fault bit set while waiting\n"); + TRACE("wait failed, device fault bit set, status 0x%02x\n", status); return B_ERROR; } if ((status & clearedBits) == 0) { - if ((flags & ATA_WAIT_ANY_BIT) != 0 && (status & setBits) != 0) + if ((flags & ATA_WAIT_ANY_BIT) != 0 && (status & setBits) != 0) { + TRACE("wait success, status 0x%02x\n", status); return B_OK; - if ((status & setBits) == setBits) + } + if ((status & setBits) == setBits) { + TRACE("wait success, status 0x%02x\n", status); return B_OK; + } } bigtime_t elapsedTime = system_time() - startTime; #if ATA_TRACING if (lastStatus != status) { - TRACE("wait status after %lld: 0x%02x\n", elapsedTime, status); + TRACE("wait status changed after %lld, status 0x%02x\n", + elapsedTime, status); lastStatus = status; } #endif if (elapsedTime > timeout) { - TRACE("timeout, wait status after %lld: 0x%02x\n", + TRACE("wait timeout after %lld, status 0x%02x\n", elapsedTime, status); return B_TIMED_OUT; } @@ -492,6 +500,27 @@ } +status_t +ATAChannel::Interrupt(uint8 status) +{ + SpinLocker locker(fInterruptLock); + if (!fExpectsInterrupt) { + TRACE("interrupt when not expecting transfer\n"); + return B_UNHANDLED_INTERRUPT; + } + + if ((status & ATA_STATUS_BUSY) != 0) { + TRACE("interrupt while device is busy\n"); + return B_UNHANDLED_INTERRUPT; + } + + TRACE("interrupt\n"); + + fInterruptCondition.NotifyAll(); + return B_INVOKE_SCHEDULER; +} + + void ATAChannel::PrepareWaitingForInterrupt() { @@ -516,11 +545,15 @@ fExpectsInterrupt = false; locker.Unlock(); + if (result != B_OK) { + TRACE_ERROR("timeout waiting for interrupt\n"); + result = RecoverLostInterrupt(); + } + // disable interrupts _WriteControl(ATA_DEVICE_CONTROL_DISABLE_INTS); if (result != B_OK) { - TRACE_ERROR("timeout waiting for interrupt\n"); return B_TIMED_OUT; } @@ -529,12 +562,37 @@ status_t +ATAChannel::RecoverLostInterrupt() +{ + uint8 status = AltStatus(); + if (status & (ATA_STATUS_BUSY | ATA_STATUS_DATA_REQUEST)) { + TRACE_ERROR("RecoverLostInterrupt: device busy, status 0x%02x\n", status); + return B_ERROR; + } + TRACE_ERROR("RecoverLostInterrupt: lost interrupt, status 0x%02x\n", status); + return B_OK; +} + + +status_t ATAChannel::SendRequest(ATARequest *request, uint32 flags) { + // TODO: implement this: + // resetting the device here would discard current configuration, + // it's better when the SCSI bus manager requests an external reset. + + TRACE_FUNCTION("\n"); ATADevice *device = request->Device(); - if (device->Select() != B_OK || WaitForIdle() != B_OK) { - // resetting the device here will discard current configuration, - // it's better when the SCSI bus manager requests an external reset. + + TRACE("SendRequest status 0x%02x\n", AltStatus()); + + if (device->Select() != B_OK) { + TRACE_ERROR("device selection failed\n"); + request->SetStatus(SCSI_SEL_TIMEOUT); + return B_TIMED_OUT; + } + + if (WaitForIdle() != B_OK) { TRACE_ERROR("device selection timeout\n"); request->SetStatus(SCSI_SEL_TIMEOUT); return B_TIMED_OUT; @@ -561,6 +619,7 @@ status_t ATAChannel::FinishRequest(ATARequest *request, uint32 flags, uint8 errorMask) { + TRACE_FUNCTION("\n"); if (flags & ATA_WAIT_FINISH) { // wait for the device to finish current command (device no longer busy) status_t result = Wait(0, ATA_STATUS_BUSY, flags, request->Timeout()); @@ -603,8 +662,8 @@ if ((taskFile->read.error & ATA_ERROR_MEDIUM_CHANGED) != ATA_ERROR_MEDIUM_CHANGED) { - TRACE_ERROR("command failed, error bit is set: 0x%02x\n", - taskFile->read.error); + TRACE_ERROR("command failed, error bit is set. status 0x%02x, error 0x%02x\n", + taskFile->read.status, taskFile->read.error); } uint8 error = taskFile->read.error & errorMask; @@ -757,25 +816,6 @@ status_t -ATAChannel::Interrupt(uint8 status) -{ - SpinLocker locker(fInterruptLock); - if (!fExpectsInterrupt) { - TRACE("interrupt when not expecting transfer\n"); - return B_UNHANDLED_INTERRUPT; - } - - if ((status & ATA_STATUS_BUSY) != 0) { - TRACE(("interrupt while device is busy\n")); - return B_UNHANDLED_INTERRUPT; - } - - fInterruptCondition.NotifyAll(); - return B_INVOKE_SCHEDULER; -} - - -status_t ATAChannel::_ReadRegs(ata_task_file *taskFile, ata_reg_mask mask) { return fController->read_command_block_regs(fCookie, taskFile, mask); Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAModule.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAModule.cpp 2009-09-09 15:06:41 UTC (rev 33026) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAModule.cpp 2009-09-09 15:08:28 UTC (rev 33027) @@ -138,7 +138,8 @@ if (channel->Bus() == NULL) return SCSI_NO_HBA; - channel->Reset(NULL, NULL); + //channel->Reset(); + panic("asking for trouble"); return SCSI_REQ_CMP; } Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h 2009-09-09 15:06:41 UTC (rev 33026) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h 2009-09-09 15:08:28 UTC (rev 33027) @@ -79,7 +79,7 @@ status_t SelectDevice(uint8 index); uint8 SelectedDevice(); - status_t Reset(bool *presence, uint16 *signatures); + status_t Reset(); bool UseDMA() { return fUseDMA; }; @@ -91,6 +91,7 @@ void PrepareWaitingForInterrupt(); status_t WaitForInterrupt(bigtime_t timeout); + status_t RecoverLostInterrupt(); // request handling status_t SendRequest(ATARequest *request, @@ -107,7 +108,6 @@ status_t ReadRegs(ATADevice *device); uint8 AltStatus(); - bool IsDMAInterruptSet(); status_t ReadPIO(uint8 *buffer, size_t length); status_t WritePIO(uint8 *buffer, size_t length); @@ -123,6 +123,8 @@ void _FlushAndWait(bigtime_t waitTime); + bool _DevicePresent(int device); + status_t _ReadPIOBlock(ATARequest *request, size_t length); status_t _WritePIOBlock(ATARequest *request, Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c 2009-09-09 15:06:41 UTC (rev 33026) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c 2009-09-09 15:08:28 UTC (rev 33027) @@ -1,5 +1,5 @@ /* - * Copyright 2006, Marcus Overhagen. All rights reserved. + * Copyright 2006-2009, Marcus Overhagen. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -8,9 +8,10 @@ #include #include +#include -#define TRACE(x...) dprintf("si-3112: " x) -//#define FLOW(x...) dprintf("si-3112: " x) +#define TRACE(x...) do { dprintf("si-3112: " x); ktrace_printf("si-3112: " x); } while (0) +//#define FLOW(x...) ktrace_printf("si-3112: " x) #define FLOW(x...) @@ -24,20 +25,13 @@ ASIC_SI3114 = 1, }; -#if 0 -static const char *adapter_asic_names[] = { - "si3112", - "si3114", - NULL -}; -#endif - static const struct { uint16 channel_count; uint32 mmio_bar_size; + const char *asic_name; } kASICData[2] = { - { 2, 0x200 }, - { 4, 0x400 }, + { 2, 0x200, "si3112" }, + { 4, 0x400, "si3114" }, }; static const struct { @@ -291,9 +285,10 @@ sDeviceManager->get_driver(parent, (driver_module_info **)&pci, (void **)&device); sDeviceManager->put_node(parent); - TRACE("asic %ld\n", asicIndex); - TRACE("int_num %ld\n", interruptNumber); - TRACE("mmio_addr %p\n", (void *)mmioAddr); + TRACE("asic index %ld\n", asicIndex); + TRACE("asic name %s\n", kASICData[asicIndex].asic_name); + TRACE("int num %ld\n", interruptNumber); + TRACE("mmio addr %p\n", (void *)mmioAddr); controller->pci = pci; controller->device = device; @@ -484,8 +479,9 @@ controller->channel[channelIndex] = channel; - // enable interrupts so the channel is ready to run - device_control_write(channel, ATA_DEVICE_CONTROL_BIT3); + // disable interrupts + device_control_write(channel, ATA_DEVICE_CONTROL_BIT3 + | ATA_DEVICE_CONTROL_DISABLE_INTS); *_channelCookie = channel; @@ -505,14 +501,10 @@ TRACE("channel_uninit enter\n"); - // disable IRQs - device_control_write(channel, ATA_DEVICE_CONTROL_BIT3 | ATA_DEVICE_CONTROL_DISABLE_INTS); + // disable interrupts + device_control_write(channel, ATA_DEVICE_CONTROL_BIT3 + | ATA_DEVICE_CONTROL_DISABLE_INTS); - // catch spurious interrupt - // (some controllers generate an IRQ when you _disable_ interrupts, - // they are delayed by less then 40 ?s, so 1 ms is safe) - snooze(1000); - delete_area(channel->prd_area); free(channel); @@ -793,9 +785,8 @@ int32 result; int i; -// FLOW("handle_interrupt\n"); + FLOW("handle_interrupt\n"); - result = B_UNHANDLED_INTERRUPT; for (i = 0; i < controller->channel_count; i++) { @@ -803,15 +794,16 @@ if (!channel || channel->lost) continue; - // this could be a spurious interrupt, so always read status - // register unconditionally to acknowledge those - statusATA = *(channel->command_block + 7); - - if (!channel->dma_active) + if (!channel->dma_active) { + // this could be a spurious interrupt, so read + // ata status register to acknowledge + *(channel->command_block + 7); continue; + } statusBM = *channel->bm_status_reg; if (statusBM & ATA_BM_STATUS_INTERRUPT) { + statusATA = *(channel->command_block + 7); *channel->bm_status_reg = (statusBM & 0xf8) | ATA_BM_STATUS_INTERRUPT; sATA->interrupt_handler(channel->ataChannel, statusATA); Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/scsi/ahci/ahci_controller.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/scsi/ahci/ahci_controller.cpp 2009-09-09 15:06:41 UTC (rev 33026) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/scsi/ahci/ahci_controller.cpp 2009-09-09 15:08:28 UTC (rev 33027) @@ -1,5 +1,5 @@ /* - * Copyright 2007, Marcus Overhagen. All rights reserved. + * Copyright 2007-2009, Marcus Overhagen. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -11,7 +11,7 @@ #include #include -#define TRACE(a...) dprintf("\33[34mahci:\33[0m " a) +#define TRACE(a...) dprintf("ahci: " a) #define FLOW(a...) dprintf("ahci: " a) Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp 2009-09-09 15:06:41 UTC (rev 33026) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp 2009-09-09 15:08:28 UTC (rev 33027) @@ -1,5 +1,5 @@ /* - * Copyright 2007-2008, Marcus Overhagen. All rights reserved. + * Copyright 2007-2009, Marcus Overhagen. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -20,12 +20,12 @@ #define TRACE_AHCI #ifdef TRACE_AHCI -# define TRACE(a...) dprintf("\33[34mahci:\33[0m " a) +# define TRACE(a...) dprintf("ahci: " a) #else # define TRACE(a...) #endif //#define FLOW(a...) dprintf("ahci: " a) -//#define RWTRACE(a...) dprintf("\33[34mahci:\33[0m " a) +//#define RWTRACE(a...) dprintf("ahci: " a) #define FLOW(a...) #define RWTRACE(a...) Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/scsi/ahci/ahci_sim.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/scsi/ahci/ahci_sim.cpp 2009-09-09 15:06:41 UTC (rev 33026) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/scsi/ahci/ahci_sim.cpp 2009-09-09 15:08:28 UTC (rev 33027) @@ -1,5 +1,5 @@ /* - * Copyright 2007, Marcus Overhagen. All rights reserved. + * Copyright 2007-2009, Marcus Overhagen. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -9,7 +9,7 @@ #include #include -#define TRACE(a...) dprintf("\33[34mahci:\33[0m " a) +#define TRACE(a...) dprintf("ahci: " a) //#define FLOW(a...) dprintf("ahci: " a) #define FLOW(a...) Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/scsi/ahci/util.c =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/scsi/ahci/util.c 2009-09-09 15:06:41 UTC (rev 33026) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/busses/scsi/ahci/util.c 2009-09-09 15:08:28 UTC (rev 33027) @@ -1,5 +1,5 @@ /* - * Copyright 2004-2007, Marcus Overhagen. All rights reserved. + * Copyright 2004-2009, Marcus Overhagen. All rights reserved. * Distributed under the terms of the MIT License. */ #include "util.h" @@ -10,8 +10,8 @@ #include -#define TRACE(a...) dprintf("\33[34mahci:\33[0m " a) -#define ERROR(a...) dprintf("\33[34mahci:\33[0m " a) +#define TRACE(a...) dprintf("ahci: " a) +#define ERROR(a...) dprintf("ahci: " a) static inline uint32 Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-09-09 15:06:41 UTC (rev 33026) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-09-09 15:08:28 UTC (rev 33027) @@ -23,6 +23,15 @@ #define TRACE dprintf +#define INTERRUPT_TRACING 0 +#if INTERRUPT_TRACING + #include + #define TRACE_INT(a...) ktrace_printf(a) +#else + #define TRACE_INT(a...) +#endif + + static ata_for_controller_interface *sATA; static device_manager_info *sDeviceManager; @@ -184,25 +193,37 @@ pci_device *device = channel->device; uint8 statusATA, statusBM; - // this could be a spurious interrupt, so always read status - // register unconditionally to acknowledge those - statusATA = pci->read_io_8(device, channel->command_block_base + 7); + TRACE_INT("ata_adapter_inthand\n"); - if (!channel->dmaing) + if (!channel->dmaing) { + // this could be a spurious interrupt, so read status + // register unconditionally to acknowledge those + TRACE_INT("ata_adapter_inthand: not DMA\n"); + pci->read_io_8(device, channel->command_block_base + 7); return B_UNHANDLED_INTERRUPT; + } - // read bus master DMA status to test if the interrupt was - // really generated by our controller + // need to read bus master status first, because some controllers + // will clear the interrupt status bit once ATA status is read statusBM = pci->read_io_8(device, channel->bus_master_base + ATA_BM_STATUS_REG); + TRACE_INT("ata_adapter_inthand: BM-status 0x%02x\n", statusBM); + // test if the interrupt was really generated by our controller if (statusBM & ATA_BM_STATUS_INTERRUPT) { - // clear pending PCI bus master DMA interrupt + // read ATA status register to acknowledge interrupt + statusATA = pci->read_io_8(device, channel->command_block_base + 7); + TRACE_INT("ata_adapter_inthand: ATA-status 0x%02x\n", statusATA); + + // clear pending PCI bus master DMA interrupt, for those + // controllers who don't clear it themselves pci->write_io_8(device, channel->bus_master_base + ATA_BM_STATUS_REG, (statusBM & 0xf8) | ATA_BM_STATUS_INTERRUPT); + // signal interrupt to ATA stack return sATA->interrupt_handler(channel->ataChannel, statusATA); } else { + TRACE_INT("ata_adapter_inthand: not BM\n"); return B_UNHANDLED_INTERRUPT; } } @@ -482,6 +503,9 @@ device_node **node, bool supports_compatibility_mode) { uint8 api; + uint16 pcicmdOld; + uint16 pcicmdNew; + uint16 pciVendor; SHOW_FLOW0( 3, "" ); @@ -520,6 +544,28 @@ command_block_base, control_block_base, intnum); } + + // this should be done in ata_adapter_init_controller but there is crashes + pcicmdOld = pcicmdNew = pci->read_pci_config(pci_device, PCI_command, 2); + if ((pcicmdNew & (1 << 10)) != 0) { + TRACE("PCI-ATA: enabling interrupts\n"); + pcicmdNew &= ~(1 << 10); + } + if ((pcicmdNew & PCI_command_io) == 0) { + TRACE("PCI-ATA: enabling io decoder\n"); + pcicmdNew |= PCI_command_io; + } + if ((pcicmdNew & PCI_command_master) == 0) { + TRACE("PCI-ATA: enabling bus mastering\n"); + pcicmdNew |= PCI_command_master; + } + if (pcicmdOld != pcicmdNew) { + pci->write_pci_config(pci_device, PCI_command, 2, pcicmdNew); + TRACE("PCI-ATA: pcicmd changed from 0x%04x to 0x%04x\n", + pcicmdOld, pcicmdNew); + } + + if (supports_compatibility_mode) { // read status of primary(!) channel to detect simplex uint8 status = pci->read_io_8(pci_device, bus_master_base @@ -531,8 +577,16 @@ // better were to use a controller lock, but this had to be done in the IDE // bus manager, and I don't see any reason to add extra code for old // simplex controllers - TRACE("PCI-ATA: Simplex controller - disabling DMA of secondary channel\n"); - controller_can_dma = false; + + // Intel controllers use this bit for something else and are not simplex. + pciVendor = pci->read_pci_config(pci_device, PCI_vendor_id, 2); + + if (pciVendor != 0x8086) { + TRACE("PCI-ATA: Simplex controller - disabling DMA of secondary channel\n"); + controller_can_dma = false; + } else { + TRACE("PCI-ATA: Simplex bit ignored - Intel controller\n"); + } } } @@ -558,7 +612,8 @@ pci_device *device; ata_adapter_controller_info *controller; uint16 bus_master_base; -// uint16 pcicmd; + uint16 pcicmdOld; + uint16 pcicmdNew; // get device data if (sDeviceManager->get_attr_uint16(node, ATA_ADAPTER_BUS_MASTER_BASE, &bus_master_base, false) != B_OK) @@ -575,18 +630,20 @@ return B_NO_MEMORY; #if 0 - pcicmd = pci->read_pci_config(node, PCI_command, 2); - TRACE("PCI-ATA: adapter init: pcicmd old setting 0x%04x\n", pcicmd); - if ((pcicmd & PCI_command_io) == 0) { + pcicmdOld = pcicmdNew = pci->read_pci_config(node, PCI_command, 2); + if ((pcicmdNew & PCI_command_io) == 0) { TRACE("PCI-ATA: adapter init: enabling io decoder\n"); - pcicmd |= PCI_command_io; + pcicmdNew |= PCI_command_io; } - if ((pcicmd & PCI_command_master) == 0) { + if ((pcicmdNew & PCI_command_master) == 0) { TRACE("PCI-ATA: adapter init: enabling bus mastering\n"); - pcicmd |= PCI_command_master; + pcicmdNew |= PCI_command_master; } - pci->write_pci_config(node, PCI_command, 2, pcicmd); - TRACE("PCI-ATA: adapter init: pcicmd new setting 0x%04x\n", pci->read_pci_config(node, PCI_command, 2)); + if (pcicmdOld != pcicmdNew) { + pci->write_pci_config(node, PCI_command, 2, pcicmdNew); + TRACE("PCI-ATA: adapter init: pcicmd old 0x%04x, new 0x%04x\n", + pcicmdOld, pcicmdNew); + } #endif controller->node = node; From mattmadia at gmail.com Thu Sep 10 00:37:56 2009 From: mattmadia at gmail.com (Matt Madia) Date: Wed, 9 Sep 2009 22:37:56 +0000 Subject: [Haiku-commits] r32906 - haiku/trunk/src/data/etc/keymaps In-Reply-To: <200909021456.n82Eu8B7007915@sheep.berlios.de> References: <200909021456.n82Eu8B7007915@sheep.berlios.de> Message-ID: <1e42d8c50909091537u7aea8ca3o2cb1b83bf47333df@mail.gmail.com> On Wed, Sep 2, 2009 at 14:56, axeld at BerliOS wrote: > Author: axeld > Date: 2009-09-02 16:56:08 +0200 (Wed, 02 Sep 2009) > New Revision: 32906 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=32906&view=rev > > Modified: > haiku/trunk/src/data/etc/keymaps/Colemak.keymap > Log: > * Applied patch by Matt to change command/option behaviour to mimic the > American.keymap. This closes ticket #4396. > > Can this be merged to +alphabranch ? > Modified: haiku/trunk/src/data/etc/keymaps/Colemak.keymap > =================================================================== > --- haiku/trunk/src/data/etc/keymaps/Colemak.keymap 2009-09-02 14:55:03 UTC (rev 32905) > +++ haiku/trunk/src/data/etc/keymaps/Colemak.keymap 2009-09-02 14:56:08 UTC (rev 32906) > @@ -37,11 +37,11 @@ > LShift = 0x4b > RShift = 0x56 > LCommand = 0x5d > -RCommand = 0x00 > +RCommand = 0x05f > LControl = 0x5c > RControl = 0x60 > LOption = 0x66 > -ROption = 0x5f > +ROption = 0x67 > Menu = 0x68 > # > # Lock settings > > ________________________ From aljen at mail.berlios.de Thu Sep 10 02:10:50 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Thu, 10 Sep 2009 02:10:50 +0200 Subject: [Haiku-commits] r33028 - in haiku/branches/components/gallium3d: build/jam data/system/boot headers/private/shared src/add-ons/kernel/bus_managers/ata src/add-ons/kernel/busses/ata/silicon_image_3112 src/add-ons/kernel/busses/scsi/ahci src/add-ons/kernel/drivers/audio/hda src/add-ons/kernel/file_systems/bfs src/add-ons/kernel/file_systems/cdda src/add-ons/kernel/file_systems/ext2 src/add-ons/kernel/file_systems/ramfs src/add-ons/kernel/file_systems/reiserfs src/add-ons/kernel/file_systems/udf src/add-ons/kernel/generic/ata_adapter src/add-ons/kernel/partitioning_systems/session src/add-ons/mail_daemon/outbound_protocols/smtp src/add-ons/tracker/zipomatic src/apps/installer src/kits/interface src/system/kernel/arch/x86 Message-ID: <200909100010.n8A0AoxY010002@sheep.berlios.de> Author: aljen Date: 2009-09-10 02:10:29 +0200 (Thu, 10 Sep 2009) New Revision: 33028 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33028&view=rev Modified: haiku/branches/components/gallium3d/build/jam/HaikuImage haiku/branches/components/gallium3d/build/jam/ImageRules haiku/branches/components/gallium3d/build/jam/OptionalPackages haiku/branches/components/gallium3d/data/system/boot/Bootscript haiku/branches/components/gallium3d/data/system/boot/InstallerFinishScript haiku/branches/components/gallium3d/headers/private/shared/TrackerAddOnAppLaunch.h haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci_controller.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci_sim.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/util.c haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/reiserfs/kernel_interface.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/udf/kernel_interface.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c haiku/branches/components/gallium3d/src/add-ons/kernel/partitioning_systems/session/Disc.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h haiku/branches/components/gallium3d/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.cpp haiku/branches/components/gallium3d/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.h haiku/branches/components/gallium3d/src/add-ons/tracker/zipomatic/Jamfile haiku/branches/components/gallium3d/src/add-ons/tracker/zipomatic/ZipOMatic.cpp haiku/branches/components/gallium3d/src/apps/installer/UnzipEngine.cpp haiku/branches/components/gallium3d/src/kits/interface/TextView.cpp haiku/branches/components/gallium3d/src/system/kernel/arch/x86/arch_vm_translation_map.cpp Log: merged changes from trunk r32985-r33027 Modified: haiku/branches/components/gallium3d/build/jam/HaikuImage =================================================================== --- haiku/branches/components/gallium3d/build/jam/HaikuImage 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/build/jam/HaikuImage 2009-09-10 00:10:29 UTC (rev 33028) @@ -283,8 +283,8 @@ # Deskbar Application links AddDirectoryToHaikuImage home config be Applications ; DESKBAR_APPLICATIONS = ActivityMonitor CharacterMap CodyCam CDPlayer DeskCalc - DiskProbe DriveSetup DiskUsage Expander Icon-O-Matic Magnify Mail - MediaConverter MediaPlayer MidiPlayer People PoorMan Screenshot + DiskProbe DriveSetup DiskUsage Expander Icon-O-Matic Installer Magnify + Mail MediaConverter MediaPlayer MidiPlayer People PoorMan Screenshot SoundRecorder StyledEdit Terminal TV ; local linkTarget ; Modified: haiku/branches/components/gallium3d/build/jam/ImageRules =================================================================== --- haiku/branches/components/gallium3d/build/jam/ImageRules 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/build/jam/ImageRules 2009-09-10 00:10:29 UTC (rev 33028) @@ -758,13 +758,18 @@ } } -rule InstallOptionalHaikuImagePackage package : url : dirTokens +rule InstallOptionalHaikuImagePackage package : url : dirTokens : isCDPackage { # download zip file local zipFile = [ DownloadOptionalPackage $(package) : $(url) ] ; - # unzip onto image - UnzipArchiveToHaikuImage $(dirTokens) : $(zipFile) ; + if ( $(isCDPackage) = true || $(isCDPackage) = 1 ) && $(HAIKU_CD_NAME) { + # copy onto image + AddFilesToHaikuImage _packages_ : $(zipFile) ; + } else { + # unzip onto image + UnzipArchiveToHaikuImage $(dirTokens) : $(zipFile) ; + } } rule AddEntryToHaikuImageUserGroupFile file : entry Modified: haiku/branches/components/gallium3d/build/jam/OptionalPackages =================================================================== --- haiku/branches/components/gallium3d/build/jam/OptionalPackages 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/build/jam/OptionalPackages 2009-09-10 00:10:29 UTC (rev 33028) @@ -12,7 +12,7 @@ # Available Optional Packages: -# APR - support libraries used for example by SVN +# APR - support libraries used for example by Subversion # APR-util # Beam - powerful native e-mail client # BeBook - the classic BeOS API documentation @@ -70,6 +70,7 @@ InstallOptionalHaikuImagePackage apr-1.3.8-r1a1-x86-gcc2-2009-08-29 : $(baseURL)/apr-1.3.8-r1a1-x86-gcc2-2009-08-29.zip : + : true ; } } @@ -83,6 +84,7 @@ InstallOptionalHaikuImagePackage apr-util-1.3.9-r1a1-x86-gcc2-2009-08-29 : $(baseURL)/apr-util-1.3.9-r1a1-x86-gcc2-2009-08-29.zip : + : true ; } } @@ -237,6 +239,7 @@ clucene-0.9.21svn-x86-gcc4-haiku-2009-08-11 : $(baseURL)/clucene-0.9.21-x86-gcc4-haiku-2009-08-11.zip : + : true ; } } @@ -249,8 +252,8 @@ } else { InstallOptionalHaikuImagePackage curl-7.19.6-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/curl-7.19.6-r1a1-x86-gcc2-2009-08-30.zip - : + : true ; } } @@ -264,6 +267,7 @@ InstallOptionalHaikuImagePackage cvs-1.12.13-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/cvs-1.12.13-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } @@ -273,13 +277,21 @@ if [ IsOptionalHaikuImagePackageAdded Development ] && $(TARGET_ARCH) = x86 { # autotools InstallOptionalHaikuImagePackage autoconf-2.64-r1a1-x86-gcc2-2009-08-27 - : $(baseURL)/autoconf-2.64-r1a1-x86-gcc2-2009-08-27.zip ; + : $(baseURL)/autoconf-2.64-r1a1-x86-gcc2-2009-08-27.zip + : + : true ; InstallOptionalHaikuImagePackage automake-1.11-r1a1-x86-gcc2-2009-08-27 - : $(baseURL)/automake-1.11-r1a1-x86-gcc2-2009-08-27.zip ; + : $(baseURL)/automake-1.11-r1a1-x86-gcc2-2009-08-27.zip + : + : true ; InstallOptionalHaikuImagePackage libtool-2.2.6a-r1a1-x86-gcc2-2009-08-28 - : $(baseURL)/libtool-2.2.6a-r1a1-x86-gcc2-2009-08-28.zip ; + : $(baseURL)/libtool-2.2.6a-r1a1-x86-gcc2-2009-08-28.zip + : + : true ; InstallOptionalHaikuImagePackage texinfo-4.13a-r1a1-x86-gcc2-2009-08-30 - : $(baseURL)/texinfo-4.13a-r1a1-x86-gcc2-2009-08-30.zip ; + : $(baseURL)/texinfo-4.13a-r1a1-x86-gcc2-2009-08-30.zip + : + : true ; } @@ -423,6 +435,7 @@ InstallOptionalHaikuImagePackage expat-2.0.1-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/expat-2.0.1-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } @@ -459,6 +472,7 @@ InstallOptionalHaikuImagePackage git-1.6.4.2-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/git-1.6.4.2-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } @@ -471,7 +485,7 @@ } else if $(HAIKU_GCC_VERSION[1]) >= 4 { InstallOptionalHaikuImagePackage KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31 - : $(baseURL)/KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31.zip + : $(baseURL)/KeymapSwitcher-1.2.3-x86-gcc4-2009-05-31.zip : ; AddSymlinkToHaikuImage home config be Desktop\ Applets @@ -479,7 +493,7 @@ } else { InstallOptionalHaikuImagePackage KeymapSwitcher-1.2.4-r1a1-x86-gcc2-2009-09-06 - : $(baseURL)/KeymapSwitcher-1.2.4-r1a1-x86-gcc2-2009-09-06.zip + : $(baseURL)/KeymapSwitcher-1.2.4-r1a1-x86-gcc2-2009-09-06.zip : ; AddSymlinkToHaikuImage home config be Desktop\ Applets @@ -493,8 +507,8 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package LibIconv available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage libiconv-1.13.1-r1a1-x86-gcc2-2009-09-07 - : $(baseURL)/libiconv-1.13.1-r1a1-x86-gcc2-2009-09-07.zip + InstallOptionalHaikuImagePackage libiconv-1.13.1-r1a1-x86-gcc2-2009-09-08 + : $(baseURL)/libiconv-1.13.1-r1a1-x86-gcc2-2009-09-08.zip : ; } @@ -521,9 +535,10 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package LibXML2 available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage libxml2-2.7.3-git-r1a1-x86-gcc2-2009-08-30 - : $(baseURL)/libxml2-2.7.3-git-r1a1-x86-gcc2-2009-08-30.zip + InstallOptionalHaikuImagePackage libxml2-2.7.3-r1a1-x86-gcc2-2009-09-08 + : $(baseURL)/libxml2-2.7.3-r1a1-x86-gcc2-2009-09-08.zip : + : true ; } } @@ -554,6 +569,7 @@ InstallOptionalHaikuImagePackage mercurial-1.3.1-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/mercurial-1.3.1-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } @@ -580,6 +596,7 @@ InstallOptionalHaikuImagePackage neon-0.28.6-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/neon-0.28.6-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } @@ -704,8 +721,8 @@ : $(baseURL)/Pe-2.4.2-x86-gcc4-2009-08-04.zip ; } else { - InstallOptionalHaikuImagePackage Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-04 - : $(baseURL)/Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-04.zip + InstallOptionalHaikuImagePackage Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-08 + : $(baseURL)/Pe-2.4.2-r593-r1a1-x86-gcc2-2009-09-08.zip ; } @@ -722,9 +739,10 @@ if $(TARGET_ARCH) != x86 { Echo "No optional package Perl available for $(TARGET_ARCH)" ; } else { - InstallOptionalHaikuImagePackage perl-5.10.0-gcc2-2008-10-29 - : $(baseURL)/perl-5.10.0-gcc2-2008-10-29.zip + InstallOptionalHaikuImagePackage perl-5.10.1-r1a1-x86-gcc2-2009-09-08 + : $(baseURL)/perl-5.10.1-r1a1-x86-gcc2-2009-09-08.zip : + : true ; } } @@ -738,6 +756,7 @@ InstallOptionalHaikuImagePackage python-2.6.2-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/python-2.6.2-r1a1-x86-gcc2-2009-08-30.zip : + : true ; } } @@ -763,8 +782,8 @@ } else { InstallOptionalHaikuImagePackage sqlite-3.6.17-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/sqlite-3.6.17-r1a1-x86-gcc2-2009-08-30.zip - : + : true ; } } @@ -778,6 +797,7 @@ InstallOptionalHaikuImagePackage subversion-1.6.5-r1a1-x86-gcc2-2009-09-02 : $(baseURL)/subversion-1.6.5-r1a1-x86-gcc2-2009-09-02.zip : + : true ; } } @@ -952,7 +972,6 @@ } else { InstallOptionalHaikuImagePackage yasm-0.8.0-r1a1-x86-gcc2-2009-08-30 : $(baseURL)/yasm-0.8.0-r1a1-x86-gcc2-2009-08-30.zip - : ; } Modified: haiku/branches/components/gallium3d/data/system/boot/Bootscript =================================================================== --- haiku/branches/components/gallium3d/data/system/boot/Bootscript 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/data/system/boot/Bootscript 2009-09-10 00:10:29 UTC (rev 33028) @@ -102,9 +102,8 @@ # Now ask the user if he wants to run the Installer or continue to the Desktop. if [ "$isReadOnly" = "yes" ]; then - # Create Installer links (using the write overlay) + # Create Installer link (using the write overlay) ln -sf /boot/system/apps/Installer /boot/home/Desktop/Installer - ln -sf /boot/system/apps/Installer /boot/home/config/be/Applications/Installer /bin/alert "Do you wish to run the Installer or continue booting to the Desktop?" "Installer" "Desktop" if [ $? -eq 0 ]; then Modified: haiku/branches/components/gallium3d/data/system/boot/InstallerFinishScript =================================================================== --- haiku/branches/components/gallium3d/data/system/boot/InstallerFinishScript 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/data/system/boot/InstallerFinishScript 2009-09-10 00:10:29 UTC (rev 33028) @@ -15,8 +15,7 @@ mkdir -p "$target/var/tmp" -# remove Installer links -rm -f $target/home/Desktop/Installer -rm -f $target/home/config/be/Applications/Installer +# remove Installer link +rm -f "$target/home/Desktop/Installer" makebootable "$target" Modified: haiku/branches/components/gallium3d/headers/private/shared/TrackerAddOnAppLaunch.h =================================================================== --- haiku/branches/components/gallium3d/headers/private/shared/TrackerAddOnAppLaunch.h 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/headers/private/shared/TrackerAddOnAppLaunch.h 2009-09-10 00:10:29 UTC (rev 33028) @@ -52,17 +52,18 @@ if (get_ref_for_path(image.name, &addonRef) != B_OK) return; - if (be_roster->Launch(&addonRef, refs) != B_OK) { + status = be_roster->Launch(&addonRef, refs); + if (status == B_OK || status == B_ALREADY_RUNNING) + return; - // If launching by entry_ref fails it's probably futile to - // launch by signature this way, but we can try anyway. + // If launching by entry_ref fails it's probably futile to + // launch by signature this way, but we can try anyway. - app_info appInfo; - if (be_roster->GetAppInfo(&addonRef, &appInfo) != B_OK) - return; + app_info appInfo; + if (be_roster->GetAppInfo(&addonRef, &appInfo) != B_OK) + return; - be_roster->Launch(appInfo.signature, refs); - } + be_roster->Launch(appInfo.signature, refs); } Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp 2009-09-10 00:10:29 UTC (rev 33028) @@ -577,11 +577,22 @@ status_t ATAChannel::SendRequest(ATARequest *request, uint32 flags) { + // TODO: implement this: + // resetting the device here would discard current configuration, + // it's better when the SCSI bus manager requests an external reset. + TRACE_FUNCTION("\n"); ATADevice *device = request->Device(); - if (device->Select() != B_OK || WaitForIdle() != B_OK) { - // resetting the device here will discard current configuration, - // it's better when the SCSI bus manager requests an external reset. + + TRACE("SendRequest status 0x%02x\n", AltStatus()); + + if (device->Select() != B_OK) { + TRACE_ERROR("device selection failed\n"); + request->SetStatus(SCSI_SEL_TIMEOUT); + return B_TIMED_OUT; + } + + if (WaitForIdle() != B_OK) { TRACE_ERROR("device selection timeout\n"); request->SetStatus(SCSI_SEL_TIMEOUT); return B_TIMED_OUT; Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c 2009-09-10 00:10:29 UTC (rev 33028) @@ -1,5 +1,5 @@ /* - * Copyright 2006, Marcus Overhagen. All rights reserved. + * Copyright 2006-2009, Marcus Overhagen. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -8,9 +8,10 @@ #include #include +#include -#define TRACE(x...) dprintf("si-3112: " x) -//#define FLOW(x...) dprintf("si-3112: " x) +#define TRACE(x...) do { dprintf("si-3112: " x); ktrace_printf("si-3112: " x); } while (0) +//#define FLOW(x...) ktrace_printf("si-3112: " x) #define FLOW(x...) @@ -24,20 +25,13 @@ ASIC_SI3114 = 1, }; -#if 0 -static const char *adapter_asic_names[] = { - "si3112", - "si3114", - NULL -}; -#endif - static const struct { uint16 channel_count; uint32 mmio_bar_size; + const char *asic_name; } kASICData[2] = { - { 2, 0x200 }, - { 4, 0x400 }, + { 2, 0x200, "si3112" }, + { 4, 0x400, "si3114" }, }; static const struct { @@ -291,9 +285,10 @@ sDeviceManager->get_driver(parent, (driver_module_info **)&pci, (void **)&device); sDeviceManager->put_node(parent); - TRACE("asic %ld\n", asicIndex); - TRACE("int_num %ld\n", interruptNumber); - TRACE("mmio_addr %p\n", (void *)mmioAddr); + TRACE("asic index %ld\n", asicIndex); + TRACE("asic name %s\n", kASICData[asicIndex].asic_name); + TRACE("int num %ld\n", interruptNumber); + TRACE("mmio addr %p\n", (void *)mmioAddr); controller->pci = pci; controller->device = device; @@ -484,8 +479,9 @@ controller->channel[channelIndex] = channel; - // enable interrupts so the channel is ready to run - device_control_write(channel, ATA_DEVICE_CONTROL_BIT3); + // disable interrupts + device_control_write(channel, ATA_DEVICE_CONTROL_BIT3 + | ATA_DEVICE_CONTROL_DISABLE_INTS); *_channelCookie = channel; @@ -505,14 +501,10 @@ TRACE("channel_uninit enter\n"); - // disable IRQs - device_control_write(channel, ATA_DEVICE_CONTROL_BIT3 | ATA_DEVICE_CONTROL_DISABLE_INTS); + // disable interrupts + device_control_write(channel, ATA_DEVICE_CONTROL_BIT3 + | ATA_DEVICE_CONTROL_DISABLE_INTS); - // catch spurious interrupt - // (some controllers generate an IRQ when you _disable_ interrupts, - // they are delayed by less then 40 ?s, so 1 ms is safe) - snooze(1000); - delete_area(channel->prd_area); free(channel); @@ -793,9 +785,8 @@ int32 result; int i; -// FLOW("handle_interrupt\n"); + FLOW("handle_interrupt\n"); - result = B_UNHANDLED_INTERRUPT; for (i = 0; i < controller->channel_count; i++) { @@ -803,15 +794,16 @@ if (!channel || channel->lost) continue; - // this could be a spurious interrupt, so always read status - // register unconditionally to acknowledge those - statusATA = *(channel->command_block + 7); - - if (!channel->dma_active) + if (!channel->dma_active) { + // this could be a spurious interrupt, so read + // ata status register to acknowledge + *(channel->command_block + 7); continue; + } statusBM = *channel->bm_status_reg; if (statusBM & ATA_BM_STATUS_INTERRUPT) { + statusATA = *(channel->command_block + 7); *channel->bm_status_reg = (statusBM & 0xf8) | ATA_BM_STATUS_INTERRUPT; sATA->interrupt_handler(channel->ataChannel, statusATA); Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci_controller.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci_controller.cpp 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci_controller.cpp 2009-09-10 00:10:29 UTC (rev 33028) @@ -1,5 +1,5 @@ /* - * Copyright 2007, Marcus Overhagen. All rights reserved. + * Copyright 2007-2009, Marcus Overhagen. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -11,7 +11,7 @@ #include #include -#define TRACE(a...) dprintf("\33[34mahci:\33[0m " a) +#define TRACE(a...) dprintf("ahci: " a) #define FLOW(a...) dprintf("ahci: " a) Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp 2009-09-10 00:10:29 UTC (rev 33028) @@ -1,5 +1,5 @@ /* - * Copyright 2007-2008, Marcus Overhagen. All rights reserved. + * Copyright 2007-2009, Marcus Overhagen. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -20,12 +20,12 @@ #define TRACE_AHCI #ifdef TRACE_AHCI -# define TRACE(a...) dprintf("\33[34mahci:\33[0m " a) +# define TRACE(a...) dprintf("ahci: " a) #else # define TRACE(a...) #endif //#define FLOW(a...) dprintf("ahci: " a) -//#define RWTRACE(a...) dprintf("\33[34mahci:\33[0m " a) +//#define RWTRACE(a...) dprintf("ahci: " a) #define FLOW(a...) #define RWTRACE(a...) Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci_sim.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci_sim.cpp 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci_sim.cpp 2009-09-10 00:10:29 UTC (rev 33028) @@ -1,5 +1,5 @@ /* - * Copyright 2007, Marcus Overhagen. All rights reserved. + * Copyright 2007-2009, Marcus Overhagen. All rights reserved. * Distributed under the terms of the MIT License. */ @@ -9,7 +9,7 @@ #include #include -#define TRACE(a...) dprintf("\33[34mahci:\33[0m " a) +#define TRACE(a...) dprintf("ahci: " a) //#define FLOW(a...) dprintf("ahci: " a) #define FLOW(a...) Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/util.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/util.c 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/util.c 2009-09-10 00:10:29 UTC (rev 33028) @@ -1,5 +1,5 @@ /* - * Copyright 2004-2007, Marcus Overhagen. All rights reserved. + * Copyright 2004-2009, Marcus Overhagen. All rights reserved. * Distributed under the terms of the MIT License. */ #include "util.h" @@ -10,8 +10,8 @@ #include -#define TRACE(a...) dprintf("\33[34mahci:\33[0m " a) -#define ERROR(a...) dprintf("\33[34mahci:\33[0m " a) +#define TRACE(a...) dprintf("ahci: " a) +#define ERROR(a...) dprintf("ahci: " a) static inline uint32 Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-09-10 00:10:29 UTC (rev 33028) @@ -45,8 +45,8 @@ {B_SR_96000, MAKE_RATE(48000, 2, 1), 96000}, {B_SR_176400, MAKE_RATE(44100, 4, 1), 176400}, {B_SR_192000, MAKE_RATE(48000, 4, 1), 192000}, -// TODO: What about this one? -// {B_SR_384000, MAKE_RATE(44100, ??, ??), 384000}, + // this one is not supported by hardware. + // {B_SR_384000, MAKE_RATE(44100, ??, ??), 384000}, }; @@ -114,6 +114,13 @@ stream->frames_count += stream->buffer_length; stream->buffer_cycle = position / bufferSize; + // playback interrupts come early, offsets don't work on non intel + // TODO find out why + if (stream->type == STREAM_PLAYBACK + && stream->controller->pci_info.vendor_id != INTEL_VENDORID) { + stream->buffer_cycle++; + } + release_spinlock(&stream->lock); release_sem_etc(controller->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE); @@ -548,10 +555,10 @@ // Stream interrupts seem to arrive too early on most HDA // so we adjust buffer descriptors to take this into account - // TODO check on other vendors, uncomment last line in stream_handle_interrupt() + // TODO check on other vendors, see in stream_handle_interrupt() // Tested only on Intel ICH8 uint32 offset = 0; - if (stream->type == STREAM_PLAYBACK) { + if (stream->type == STREAM_PLAYBACK && stream->controller->pci_info.vendor_id == INTEL_VENDORID) { if (stream->sample_size == 2) offset = 6; else if (stream->sample_size > 2) Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/bfs/kernel_interface.cpp 2009-09-10 00:10:29 UTC (rev 33028) @@ -1576,7 +1576,7 @@ // we don't ask here for directories only, because the bfs_open_index_dir() // function utilizes us (so we must be able to open indices as well) if (!inode->IsContainer()) - RETURN_ERROR(B_BAD_VALUE); + RETURN_ERROR(B_NOT_A_DIRECTORY); BPlusTree* tree = inode->Tree(); if (tree == NULL) Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp 2009-09-10 00:10:29 UTC (rev 33028) @@ -1785,7 +1785,7 @@ Inode* inode = (Inode*)_node->private_node; if (!S_ISDIR(inode->Type())) - return B_BAD_VALUE; + return B_NOT_A_DIRECTORY; if (inode != &volume->RootNode()) panic("pipefs: found directory that's not the root!"); Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/ext2/kernel_interface.cpp 2009-09-10 00:10:29 UTC (rev 33028) @@ -437,7 +437,7 @@ return status; if (!inode->IsDirectory()) - return B_BAD_VALUE; + return B_NOT_A_DIRECTORY; DirectoryIterator* iterator = new(std::nothrow) DirectoryIterator(inode); if (iterator == NULL) Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/ramfs/kernel_interface.cpp 2009-09-10 00:10:29 UTC (rev 33028) @@ -1180,14 +1180,14 @@ Node *node = (Node*)_node; FUNCTION(("dir: (%Lu)\n", node->GetID())); // get the Directory - status_t error = (node->IsDirectory() ? B_OK : B_BAD_VALUE); + status_t error = (node->IsDirectory() ? B_OK : B_NOT_A_DIRECTORY); Directory *dir = NULL; if (error == B_OK) { dir = dynamic_cast(node); if (!dir) { FATAL(("Node %Ld pretends to be a Directory, but isn't!\n", node->GetID())); - error = B_BAD_VALUE; + error = B_NOT_A_DIRECTORY; } } // create a DirectoryCookie Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/reiserfs/kernel_interface.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/reiserfs/kernel_interface.cpp 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/reiserfs/kernel_interface.cpp 2009-09-10 00:10:29 UTC (rev 33028) @@ -510,7 +510,7 @@ VNode *node = (VNode*)_node->private_node; FUNCTION(("node: (%Ld: %lu, %lu)\n", node->GetID(), node->GetDirID(), node->GetObjectID())); - status_t error = (node->IsDir() ? B_OK : B_BAD_VALUE); + status_t error = (node->IsDir() ? B_OK : B_NOT_A_DIRECTORY); if (error == B_OK) { DirectoryCookie *iterator = new(nothrow) DirectoryCookie( volume->GetTree(), node->GetDirID(), node->GetObjectID()); Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/udf/kernel_interface.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/udf/kernel_interface.cpp 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/udf/kernel_interface.cpp 2009-09-10 00:10:29 UTC (rev 33028) @@ -310,7 +310,7 @@ if (!dir->IsDirectory()) { TRACE_ERROR(("udf_open_dir: given Icb is not a directory (type: %d)\n", dir->Type())); - return B_BAD_VALUE; + return B_NOT_A_DIRECTORY; } DirectoryIterator *iterator = NULL; Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-09-10 00:10:29 UTC (rev 33028) @@ -23,6 +23,15 @@ #define TRACE dprintf +#define INTERRUPT_TRACING 0 +#if INTERRUPT_TRACING + #include + #define TRACE_INT(a...) ktrace_printf(a) +#else + #define TRACE_INT(a...) +#endif + + static ata_for_controller_interface *sATA; static device_manager_info *sDeviceManager; @@ -184,9 +193,12 @@ pci_device *device = channel->device; uint8 statusATA, statusBM; + TRACE_INT("ata_adapter_inthand\n"); + if (!channel->dmaing) { // this could be a spurious interrupt, so read status // register unconditionally to acknowledge those + TRACE_INT("ata_adapter_inthand: not DMA\n"); pci->read_io_8(device, channel->command_block_base + 7); return B_UNHANDLED_INTERRUPT; } @@ -195,11 +207,13 @@ // will clear the interrupt status bit once ATA status is read statusBM = pci->read_io_8(device, channel->bus_master_base + ATA_BM_STATUS_REG); + TRACE_INT("ata_adapter_inthand: BM-status 0x%02x\n", statusBM); // test if the interrupt was really generated by our controller if (statusBM & ATA_BM_STATUS_INTERRUPT) { // read ATA status register to acknowledge interrupt statusATA = pci->read_io_8(device, channel->command_block_base + 7); + TRACE_INT("ata_adapter_inthand: ATA-status 0x%02x\n", statusATA); // clear pending PCI bus master DMA interrupt, for those // controllers who don't clear it themselves @@ -209,6 +223,7 @@ // signal interrupt to ATA stack return sATA->interrupt_handler(channel->ataChannel, statusATA); } else { + TRACE_INT("ata_adapter_inthand: not BM\n"); return B_UNHANDLED_INTERRUPT; } } Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/partitioning_systems/session/Disc.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/partitioning_systems/session/Disc.cpp 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/partitioning_systems/session/Disc.cpp 2009-09-10 00:10:29 UTC (rev 33028) @@ -223,7 +223,7 @@ TRACE((" pminutes = %d\n", entries[i].pminutes)); TRACE((" pseconds = %d\n", entries[i].pseconds)); TRACE((" pframes = %d\n", entries[i].pframes)); - TRACE((" lba = %ld\n", + TRACE((" lba = %lld\n", msf_to_lba(make_msf_address(entries[i].pminutes, entries[i].pseconds, entries[i].pframes)))); } @@ -635,6 +635,13 @@ PRINT(("found session #%ld info (data session)\n", index)); off_t startLBA = track->start_lba; + if (startLBA < 0) { + WARN(("%s: warning: invalid negative start LBA of %lld" + " for data track assuming 0\n", kModuleDebugName, + startLBA)); + startLBA = 0; + } + off_t endLBA = track->next ? ((struct track*)track->next)->start_lba : session->end_lba; Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/partitioning_systems/session/scsi-mmc.h 2009-09-10 00:10:29 UTC (rev 33028) @@ -107,7 +107,7 @@ */ static inline -uint32 +off_t msf_to_lba(msf_address msf) { return (CDROM_FRAMES_PER_MINUTE * msf.minutes) Modified: haiku/branches/components/gallium3d/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.cpp 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.cpp 2009-09-10 00:10:29 UTC (rev 33028) @@ -358,6 +358,7 @@ #ifdef USE_SSL use_ssl = (fSettings->FindInt32("flavor") == 1); + use_STARTTLS = (fSettings->FindInt32("flavor") == 2); ssl = NULL; ctx = NULL; #endif @@ -458,8 +459,57 @@ return B_ERROR; } + + + #ifdef USE_SSL + // Check for STARTTLS + if(use_STARTTLS) + { + const char *res = fLog.String(); + char *p; + + SSL_library_init(); + RAND_seed(this,sizeof(SMTPProtocol)); + ::sprintf(cmd, "STARTTLS"CRLF); + + if ((p = ::strstr(res, "STARTTLS")) != NULL) + { + // Server advertises STARTTLS support + if(SendCommand(cmd) != B_OK) + { + delete[] cmd; + return B_ERROR; + } + + // We should start TLS negotiation + use_ssl = true; + ctx = SSL_CTX_new(TLSv1_method()); + ssl = SSL_new(ctx); + sbio = BIO_new_socket(_fd,BIO_NOCLOSE); + BIO_set_nbio(sbio, 0); + SSL_set_bio(ssl, sbio, sbio); + SSL_set_connect_state(ssl); + if(SSL_do_handshake(ssl) != 1) + return B_ERROR; + + // Should send EHLO command again + if(!esmtp) + ::sprintf(cmd, "HELO %s"CRLF, localhost); + else + ::sprintf(cmd, "EHLO %s"CRLF, localhost); + + if(SendCommand(cmd) != B_OK) + { + delete[] cmd; + return B_ERROR; + } + } + + } + #endif + delete[] cmd; - + // Check auth type if (esmtp) { const char *res = fLog.String(); @@ -1055,6 +1105,7 @@ B_MAIL_PROTOCOL_HAS_FLAVORS); view->AddFlavor("Unencrypted"); view->AddFlavor("SSL"); + view->AddFlavor("STARTTLS"); #else BMailProtocolConfigView *view = new BMailProtocolConfigView(B_MAIL_PROTOCOL_HAS_AUTH_METHODS | B_MAIL_PROTOCOL_HAS_USERNAME | Modified: haiku/branches/components/gallium3d/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.h 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/mail_daemon/outbound_protocols/smtp/smtp.h 2009-09-10 00:10:29 UTC (rev 33028) @@ -51,6 +51,7 @@ BIO *sbio; bool use_ssl; + bool use_STARTTLS; #endif status_t fStatus; Modified: haiku/branches/components/gallium3d/src/add-ons/tracker/zipomatic/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/tracker/zipomatic/Jamfile 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/tracker/zipomatic/Jamfile 2009-09-10 00:10:29 UTC (rev 33028) @@ -1,5 +1,7 @@ SubDir HAIKU_TOP src add-ons tracker zipomatic ; +UsePrivateHeaders shared ; + Application ZipOMatic-Z : GenericThread.cpp ZipOMatic.cpp Modified: haiku/branches/components/gallium3d/src/add-ons/tracker/zipomatic/ZipOMatic.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/tracker/zipomatic/ZipOMatic.cpp 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/add-ons/tracker/zipomatic/ZipOMatic.cpp 2009-09-10 00:10:29 UTC (rev 33028) @@ -7,27 +7,12 @@ #include #include #include -#include +#include #include "ZipOMaticMisc.h" #include "ZipOMaticWindow.h" -extern "C" void -process_refs(entry_ref dirRef, BMessage* message, void*) -{ - status_t status = B_OK; - type_code refType = B_REF_TYPE; - int32 refCount = 0; - - status = message->GetInfo("refs", &refType, &refCount); - if (status != B_OK || refCount < 1) - be_roster->Launch(ZIPOMATIC_APP_SIG); - else - be_roster->Launch(ZIPOMATIC_APP_SIG, message); -} - - int main() { @@ -65,6 +50,15 @@ void ZipOMatic::RefsReceived(BMessage* message) { + message->RemoveName("dir_ref"); + + entry_ref ref; + if (message->FindRef("refs", &ref) != B_OK) { + if (!IsLaunching()) + PostMessage(B_SILENT_RELAUNCH); + return; + } + if (IsLaunching()) fGotRefs = true; Modified: haiku/branches/components/gallium3d/src/apps/installer/UnzipEngine.cpp =================================================================== --- haiku/branches/components/gallium3d/src/apps/installer/UnzipEngine.cpp 2009-09-09 15:08:28 UTC (rev 33027) +++ haiku/branches/components/gallium3d/src/apps/installer/UnzipEngine.cpp 2009-09-10 00:10:29 UTC (rev 33028) @@ -7,17 +7,15 @@ #include -#include #include #include -#include #include -#include -#include +#include +#include +#include #include #include -#include #include "CommandPipe.h" #include "SemaphoreLocker.h" @@ -108,12 +106,11 @@ ret = commandPipe.AddArg("-d"); if (ret == B_OK) ret = commandPipe.AddArg(fDestinationFolder.String()); - if (ret == B_OK) - ret = commandPipe.AddArg("-x"); - if (ret == B_OK) - ret = commandPipe.AddArg(".OptionalPackageDescription"); - if (ret != B_OK) + if (ret != B_OK) { + fprintf(stderr, "Faild to construct argument list for unzip " + "process: %s\n", strerror(ret)); return ret; + } // Launch the unzip thread and start reading the stdout and stderr output. [... truncated: 148 lines follow ...] From aljen at mail.berlios.de Thu Sep 10 02:44:22 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Thu, 10 Sep 2009 02:44:22 +0200 Subject: [Haiku-commits] r33029 - in haiku/branches/components/gallium3d: headers/os/opengl/GL src/add-ons/opengl/softpipe src/add-ons/opengl/trace src/kits/opengl src/kits/opengl/mesa src/kits/opengl/mesa/drivers/common src/kits/opengl/mesa/gallium/auxiliary/cso_cache src/kits/opengl/mesa/gallium/auxiliary/draw src/kits/opengl/mesa/gallium/auxiliary/gallivm src/kits/opengl/mesa/gallium/auxiliary/indices src/kits/opengl/mesa/gallium/auxiliary/pipebuffer src/kits/opengl/mesa/gallium/auxiliary/rtasm src/kits/opengl/mesa/gallium/auxiliary/tgsi src/kits/opengl/mesa/gallium/auxiliary/util src/kits/opengl/mesa/gallium/include/pipe src/kits/opengl/mesa/gallium/include/pipe/internal src/kits/opengl/mesa/gallium/include/state_tracker src/kits/opengl/mesa/glapi src/kits/opengl/mesa/main src/kits/opengl/mesa/math src/kits/opengl/mesa/shader src/kits/opengl/mesa/shader/slang src/kits/opengl/mesa/sparc src/kits/opengl/mesa/state_tracker src/kits/opengl/mesa/swrast src/kits/opengl/mesa/tnl src/kits/openg! l/mesa/vbo src/kits/opengl/mesa/vf src/kits/opengl/mesa/x86 src/kits/opengl/mesa/x86-64 Message-ID: <200909100044.n8A0iM5I014730@sheep.berlios.de> Author: aljen Date: 2009-09-10 02:40:06 +0200 (Thu, 10 Sep 2009) New Revision: 33029 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33029&view=rev Added: haiku/branches/components/gallium3d/src/add-ons/opengl/trace/tr_drm.c haiku/branches/components/gallium3d/src/add-ons/opengl/trace/tr_drm.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_opcode_tmp.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_ureg.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_ureg.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_debug_dump.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_debug_dump.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_fifo.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_format.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_format.csv haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_format.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_format_access.py haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_format_parse.py haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_format_table.py haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/include/state_tracker/dri1_api.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/syncobj.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/syncobj.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/hash_table.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/hash_table.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/lex.yy.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/prog_parameter_layout.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/prog_parameter_layout.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/program_lexer.l haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/program_parse.tab.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/program_parse.tab.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/program_parse.y haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/program_parse_extra.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/program_parser.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/symbol_table.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/symbol_table.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/vf/ haiku/branches/components/gallium3d/src/kits/opengl/mesa/vf/vf.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/vf/vf.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/vf/vf_generic.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/vf/vf_sse.c Modified: haiku/branches/components/gallium3d/headers/os/opengl/GL/glext.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_fs_sse.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_blend.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_fs.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_screen.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_setup.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_derived.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_tex_sample.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_texture.c haiku/branches/components/gallium3d/src/add-ons/opengl/trace/tr_context.c haiku/branches/components/gallium3d/src/add-ons/opengl/trace/tr_dump.c haiku/branches/components/gallium3d/src/add-ons/opengl/trace/tr_dump.h haiku/branches/components/gallium3d/src/add-ons/opengl/trace/tr_dump_state.c haiku/branches/components/gallium3d/src/add-ons/opengl/trace/tr_screen.c haiku/branches/components/gallium3d/src/kits/opengl/Jamfile haiku/branches/components/gallium3d/src/kits/opengl/mesa/Jamfile haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/common/driverfuncs.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/cso_cache/cso_cache.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/cso_cache/cso_context.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/draw/draw_pipe.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/draw/draw_pipe_pstipple.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/draw/draw_pipe_wide_point.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/draw/draw_private.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/draw/draw_pt_elts.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/draw/draw_vs.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/draw/draw_vs_aos.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/draw/draw_vs_exec.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/draw/draw_vs_llvm.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/draw/draw_vs_ppc.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/draw/draw_vs_sse.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/gallivm/instructionssoa.cpp haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/gallivm/tgsitollvm.cpp haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/indices/u_indices.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/pipebuffer/pb_buffer.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/pipebuffer/pb_buffer_malloc.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/pipebuffer/pb_bufmgr.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/pipebuffer/pb_bufmgr_alt.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/pipebuffer/pb_bufmgr_cache.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/pipebuffer/pb_bufmgr_debug.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/pipebuffer/pb_bufmgr_fenced.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/pipebuffer/pb_bufmgr_mm.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/pipebuffer/pb_bufmgr_ondemand.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/pipebuffer/pb_bufmgr_pool.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/pipebuffer/pb_bufmgr_slab.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/rtasm/rtasm_execmem.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/rtasm/rtasm_x86sse.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/rtasm/rtasm_x86sse.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi-instruction-set.txt haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_build.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_build.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_dump.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_dump_c.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_exec.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_exec.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_info.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_info.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_parse.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_parse.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_ppc.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_sanity.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_sse2.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_sse2.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_text.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_util.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_blit.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_blit.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_cache.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_debug.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_gen_mipmap.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_handle_table.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_hash_table.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_keymap.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_math.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_memory.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_mm.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_mm.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_rect.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_rect.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_simple_screen.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_simple_shaders.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_simple_shaders.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_snprintf.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_surface.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_tile.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_time.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_time.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_timed_winsys.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_upload_mgr.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/include/pipe/internal/p_winsys_screen.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/include/pipe/p_config.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/include/pipe/p_context.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/include/pipe/p_defines.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/include/pipe/p_inlines.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/include/pipe/p_screen.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/include/pipe/p_shader_tokens.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/include/pipe/p_state.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/include/state_tracker/drm_api.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/glapi/dispatch.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/glapi/glapi.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/glapi/glapi.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/glapi/glapioffsets.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/glapi/glapitable.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/glapi/glapitemp.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/glapi/glprocs.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/glapi/glthread.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/glapi/glthread.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/api_arrayelt.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/api_exec.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/api_noop.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/api_noop.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/api_validate.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/api_validate.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/arrayobj.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/arrayobj.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/attrib.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/bufferobj.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/bufferobj.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/colortab.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/compiler.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/config.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/context.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/context.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/convolve.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/dd.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/debug.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/dlist.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/drawpix.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/enable.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/enums.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/enums.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/extensions.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/fbobject.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/ffvertex_prog.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/fog.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/framebuffer.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/get.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/get.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/getstring.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/histogram.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/image.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/image.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/imports.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/imports.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/light.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/macros.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/mfeatures.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/mipmap.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/mtypes.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/pixel.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/polygon.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/readpix.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/shared.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/simple_list.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/state.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/texenv.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/texenvprogram.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/texgetimage.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/texgetimage.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/teximage.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/teximage.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/texobj.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/texobj.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/texparam.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/texstate.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/texstate.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/texstore.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/varray.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/varray.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/version.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/viewport.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/vtxfmt.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/vtxfmt_tmp.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/math/m_clip_tmp.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/math/m_debug_clip.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/math/m_xform.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/arbprogparse.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/arbprogram.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/prog_execute.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/prog_instruction.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/prog_parameter.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/prog_parameter.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/prog_print.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/prog_print.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/program.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/shader_api.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/shader_api.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/slang/slang_builtin.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/slang/slang_builtin.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/slang/slang_codegen.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/slang/slang_codegen.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/slang/slang_compile.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/slang/slang_compile_operation.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/slang/slang_compile_operation.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/slang/slang_compile_variable.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/slang/slang_link.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/shader/slang/slang_print.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/sparc/clip.S haiku/branches/components/gallium3d/src/kits/opengl/mesa/sparc/glapi_sparc.S haiku/branches/components/gallium3d/src/kits/opengl/mesa/sparc/sparc.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_atom_framebuffer.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_cb_bitmap.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_cb_blit.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_cb_bufferobjects.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_cb_clear.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_cb_drawpixels.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_cb_fbo.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_cb_flush.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_cb_rasterpos.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_cb_readpixels.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_cb_texture.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_context.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_draw.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_draw.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_draw_feedback.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_extensions.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_format.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_framebuffer.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_gen_mipmap.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_mesa_to_tgsi.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_program.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_public.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_texture.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_texture.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/swrast/s_bitmap.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/swrast/s_blit.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/swrast/s_context.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/swrast/s_depth.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/swrast/s_depth.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/swrast/s_drawpix.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/swrast/s_feedback.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/swrast/s_fragprog.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/swrast/s_points.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/swrast/s_readpix.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/swrast/s_span.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/swrast/s_stencil.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/swrast/s_triangle.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/tnl/t_context.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/tnl/t_context.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/tnl/t_draw.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/tnl/t_rasterpos.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/tnl/t_vb_program.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/tnl/t_vb_vertex.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/tnl/tnl.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/vbo/vbo.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/vbo/vbo_exec_api.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/vbo/vbo_exec_array.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/vbo/vbo_exec_draw.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/vbo/vbo_rebase.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/vbo/vbo_save_api.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/vbo/vbo_save_draw.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/vbo/vbo_save_loopback.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/vbo/vbo_split.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/vbo/vbo_split_copy.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/vbo/vbo_split_inplace.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/x86-64/glapi_x86-64.S haiku/branches/components/gallium3d/src/kits/opengl/mesa/x86/glapi_x86.S haiku/branches/components/gallium3d/src/kits/opengl/mesa/x86/sse_xform2.S haiku/branches/components/gallium3d/src/kits/opengl/mesa/x86/sse_xform3.S haiku/branches/components/gallium3d/src/kits/opengl/mesa/x86/x86_xform.c Log: updated to mesa master Modified: haiku/branches/components/gallium3d/headers/os/opengl/GL/glext.h =================================================================== --- haiku/branches/components/gallium3d/headers/os/opengl/GL/glext.h 2009-09-10 00:10:29 UTC (rev 33028) +++ haiku/branches/components/gallium3d/headers/os/opengl/GL/glext.h 2009-09-10 00:40:06 UTC (rev 33029) @@ -29,9 +29,9 @@ */ /* Header file version number, required by OpenGL ABI for Linux */ -/* glext.h last updated $Date: 2009-05-05 15:27:42 -0700 (Tue, 05 May 2009) $ */ +/* glext.h last updated $Date: 2009-08-03 02:13:51 -0700 (Mon, 03 Aug 2009) $ */ /* Current version at http://www.opengl.org/registry/ */ -#define GL_GLEXT_VERSION 52 +#define GL_GLEXT_VERSION 54 /* Function declaration macros - to move into glplatform.h */ @@ -510,6 +510,8 @@ #define GL_CLIP_DISTANCE3 0x3003 #define GL_CLIP_DISTANCE4 0x3004 #define GL_CLIP_DISTANCE5 0x3005 +#define GL_CLIP_DISTANCE6 0x3006 +#define GL_CLIP_DISTANCE7 0x3007 #define GL_MAX_CLIP_DISTANCES 0x0D32 #define GL_MAJOR_VERSION 0x821B #define GL_MINOR_VERSION 0x821C @@ -600,6 +602,9 @@ #define GL_QUERY_NO_WAIT 0x8E14 #define GL_QUERY_BY_REGION_WAIT 0x8E15 #define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 +#define GL_BUFFER_ACCESS_FLAGS 0x911F +#define GL_BUFFER_MAP_LENGTH 0x9120 +#define GL_BUFFER_MAP_OFFSET 0x9121 /* Reuse tokens from ARB_depth_buffer_float */ /* reuse GL_DEPTH_COMPONENT32F */ /* reuse GL_DEPTH32F_STENCIL8 */ @@ -804,6 +809,84 @@ /* reuse GL_INVALID_INDEX */ #endif +#ifndef GL_VERSION_3_2 +#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 +#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define GL_LINES_ADJACENCY 0x000A +#define GL_LINE_STRIP_ADJACENCY 0x000B +#define GL_TRIANGLES_ADJACENCY 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D +#define GL_PROGRAM_POINT_SIZE 0x8642 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 +#define GL_GEOMETRY_SHADER 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT 0x8916 +#define GL_GEOMETRY_INPUT_TYPE 0x8917 +#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 +#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 +#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 +#define GL_CONTEXT_PROFILE_MASK 0x9126 +/* reuse GL_MAX_VARYING_COMPONENTS */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ +/* Reuse tokens from ARB_depth_clamp */ +/* reuse GL_DEPTH_CLAMP */ +/* Would reuse tokens from ARB_draw_elements_base_vertex, but it has none */ +/* Would reuse tokens from ARB_fragment_coord_conventions, but it has none */ +/* Reuse tokens from ARB_provoking_vertex */ +/* reuse GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */ +/* reuse GL_FIRST_VERTEX_CONVENTION */ +/* reuse GL_LAST_VERTEX_CONVENTION */ +/* reuse GL_PROVOKING_VERTEX */ +/* Reuse tokens from ARB_seamless_cube_map */ +/* reuse GL_TEXTURE_CUBE_MAP_SEAMLESS */ +/* Reuse tokens from ARB_sync */ +/* reuse GL_MAX_SERVER_WAIT_TIMEOUT */ +/* reuse GL_OBJECT_TYPE */ +/* reuse GL_SYNC_CONDITION */ +/* reuse GL_SYNC_STATUS */ +/* reuse GL_SYNC_FLAGS */ +/* reuse GL_SYNC_FENCE */ +/* reuse GL_SYNC_GPU_COMMANDS_COMPLETE */ +/* reuse GL_UNSIGNALED */ +/* reuse GL_SIGNALED */ +/* reuse GL_ALREADY_SIGNALED */ +/* reuse GL_TIMEOUT_EXPIRED */ +/* reuse GL_CONDITION_SATISFIED */ +/* reuse GL_WAIT_FAILED */ +/* reuse GL_TIMEOUT_IGNORED */ +/* reuse GL_SYNC_FLUSH_COMMANDS_BIT */ +/* reuse GL_TIMEOUT_IGNORED */ +/* Reuse tokens from ARB_texture_multisample */ +/* reuse GL_SAMPLE_POSITION */ +/* reuse GL_SAMPLE_MASK */ +/* reuse GL_SAMPLE_MASK_VALUE */ +/* reuse GL_MAX_SAMPLE_MASK_WORDS */ +/* reuse GL_TEXTURE_2D_MULTISAMPLE */ +/* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE */ +/* reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE */ +/* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_TEXTURE_SAMPLES */ +/* reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS */ +/* reuse GL_SAMPLER_2D_MULTISAMPLE */ +/* reuse GL_INT_SAMPLER_2D_MULTISAMPLE */ +/* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE */ +/* reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_MAX_COLOR_TEXTURE_SAMPLES */ +/* reuse GL_MAX_DEPTH_TEXTURE_SAMPLES */ +/* reuse GL_MAX_INTEGER_SAMPLES */ +/* Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core */ +#endif + #ifndef GL_ARB_multitexture #define GL_TEXTURE0_ARB 0x84C0 #define GL_TEXTURE1_ARB 0x84C1 @@ -1530,6 +1613,100 @@ #ifndef GL_ARB_shader_texture_lod #endif +#ifndef GL_ARB_depth_clamp +#define GL_DEPTH_CLAMP 0x864F +#endif + +#ifndef GL_ARB_draw_elements_base_vertex +#endif + +#ifndef GL_ARB_fragment_coord_conventions +#endif + +#ifndef GL_ARB_provoking_vertex +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_PROVOKING_VERTEX 0x8E4F +#endif + +#ifndef GL_ARB_seamless_cube_map +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F +#endif + +#ifndef GL_ARB_sync +#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 +#define GL_OBJECT_TYPE 0x9112 +#define GL_SYNC_CONDITION 0x9113 +#define GL_SYNC_STATUS 0x9114 +#define GL_SYNC_FLAGS 0x9115 +#define GL_SYNC_FENCE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 +#define GL_UNSIGNALED 0x9118 +#define GL_SIGNALED 0x9119 +#define GL_ALREADY_SIGNALED 0x911A +#define GL_TIMEOUT_EXPIRED 0x911B +#define GL_CONDITION_SATISFIED 0x911C +#define GL_WAIT_FAILED 0x911D +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull +#endif + +#ifndef GL_ARB_texture_multisample +#define GL_SAMPLE_POSITION 0x8E50 +#define GL_SAMPLE_MASK 0x8E51 +#define GL_SAMPLE_MASK_VALUE 0x8E52 +#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 +#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 +#define GL_TEXTURE_SAMPLES 0x9106 +#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 +#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 +#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A +#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B +#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D +#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E +#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F +#define GL_MAX_INTEGER_SAMPLES 0x9110 +#endif + +#ifndef GL_ARB_vertex_array_bgra +/* reuse GL_BGRA */ +#endif + +#ifndef GL_ARB_draw_buffers_blend +#endif + +#ifndef GL_ARB_sample_shading +#define GL_SAMPLE_SHADING 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 +#endif + +#ifndef GL_ARB_texture_cube_map_array +#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F +#endif + +#ifndef GL_ARB_texture_gather +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F +#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS 0x8F9F +#endif + +#ifndef GL_ARB_texture_query_lod +#endif + #ifndef GL_EXT_abgr #define GL_ABGR_EXT 0x8000 #endif @@ -3996,11 +4173,11 @@ #define GL_SAMPLE_MASK_VALUE_NV 0x8E52 #define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 #define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 -#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 #define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 #define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 #define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 #define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 +#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 #endif #ifndef GL_NV_transform_feedback2 @@ -4046,7 +4223,95 @@ #define GL_PROVOKING_VERTEX_EXT 0x8E4F #endif +#ifndef GL_EXT_texture_snorm +#define GL_ALPHA_SNORM 0x9010 +#define GL_LUMINANCE_SNORM 0x9011 +#define GL_LUMINANCE_ALPHA_SNORM 0x9012 +#define GL_INTENSITY_SNORM 0x9013 +#define GL_ALPHA8_SNORM 0x9014 +#define GL_LUMINANCE8_SNORM 0x9015 +#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 +#define GL_INTENSITY8_SNORM 0x9017 +#define GL_ALPHA16_SNORM 0x9018 +#define GL_LUMINANCE16_SNORM 0x9019 +#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A +#define GL_INTENSITY16_SNORM 0x901B +/* reuse GL_R_SNORM */ +/* reuse GL_RG_SNORM */ +/* reuse GL_RGB_SNORM */ +/* reuse GL_RGBA_SNORM */ +/* reuse GL_R8_SNORM */ +/* reuse GL_RG8_SNORM */ +/* reuse GL_RGB8_SNORM */ +/* reuse GL_RGBA8_SNORM */ +/* reuse GL_R16_SNORM */ +/* reuse GL_RG16_SNORM */ +/* reuse GL_RGB16_SNORM */ +/* reuse GL_RGBA16_SNORM */ +/* reuse GL_SIGNED_NORMALIZED */ +#endif +#ifndef GL_AMD_draw_buffers_blend +#endif + +#ifndef GL_APPLE_texture_range +#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 +#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 +#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +/* reuse GL_STORAGE_CACHED_APPLE */ +/* reuse GL_STORAGE_SHARED_APPLE */ +#endif + +#ifndef GL_APPLE_float_pixels +#define GL_HALF_APPLE 0x140B +#define GL_RGBA_FLOAT32_APPLE 0x8814 +#define GL_RGB_FLOAT32_APPLE 0x8815 +#define GL_ALPHA_FLOAT32_APPLE 0x8816 +#define GL_INTENSITY_FLOAT32_APPLE 0x8817 +#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 +#define GL_RGBA_FLOAT16_APPLE 0x881A +#define GL_RGB_FLOAT16_APPLE 0x881B +#define GL_ALPHA_FLOAT16_APPLE 0x881C +#define GL_INTENSITY_FLOAT16_APPLE 0x881D +#define GL_LUMINANCE_FLOAT16_APPLE 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F +#define GL_COLOR_FLOAT_APPLE 0x8A0F +#endif + +#ifndef GL_APPLE_vertex_program_evaluators +#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 +#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 +#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 +#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 +#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 +#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 +#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 +#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 +#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 +#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 +#endif + +#ifndef GL_APPLE_aux_depth_stencil +#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 +#endif + +#ifndef GL_APPLE_object_purgeable +#define GL_BUFFER_OBJECT_APPLE 0x85B3 +#define GL_RELEASED_APPLE 0x8A19 +#define GL_VOLATILE_APPLE 0x8A1A +#define GL_RETAINED_APPLE 0x8A1B +#define GL_UNDEFINED_APPLE 0x8A1C +#define GL_PURGEABLE_APPLE 0x8A1D +#endif + +#ifndef GL_APPLE_row_bytes +#define GL_PACK_ROW_BYTES_APPLE 0x8A15 +#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 +#endif + + /*************************************************************/ #include @@ -4125,6 +4390,12 @@ typedef uint64_t GLuint64EXT; #endif +#ifndef ARB_sync +typedef int64_t GLint64; +typedef uint64_t GLuint64; +typedef struct __GLsync *GLsync; +#endif + #ifndef GL_VERSION_1_2 #define GL_VERSION_1_2 1 #ifdef GL_GLEXT_PROTOTYPES @@ -4698,6 +4969,26 @@ GLAPI void APIENTRY glVertexAttribIPointer (GLuint, GLint, GLenum, GLsizei, const GLvoid *); GLAPI void APIENTRY glGetVertexAttribIiv (GLuint, GLenum, GLint *); GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint, GLenum, GLuint *); +GLAPI void APIENTRY glVertexAttribI1i (GLuint, GLint); +GLAPI void APIENTRY glVertexAttribI2i (GLuint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI3i (GLuint, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI4i (GLuint, GLint, GLint, GLint, GLint); +GLAPI void APIENTRY glVertexAttribI1ui (GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI2ui (GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI3ui (GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI4ui (GLuint, GLuint, GLuint, GLuint, GLuint); +GLAPI void APIENTRY glVertexAttribI1iv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI2iv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI3iv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI4iv (GLuint, const GLint *); +GLAPI void APIENTRY glVertexAttribI1uiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI2uiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI3uiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI4uiv (GLuint, const GLuint *); +GLAPI void APIENTRY glVertexAttribI4bv (GLuint, const GLbyte *); +GLAPI void APIENTRY glVertexAttribI4sv (GLuint, const GLshort *); +GLAPI void APIENTRY glVertexAttribI4ubv (GLuint, const GLubyte *); +GLAPI void APIENTRY glVertexAttribI4usv (GLuint, const GLushort *); GLAPI void APIENTRY glGetUniformuiv (GLuint, GLint, GLuint *); GLAPI void APIENTRY glBindFragDataLocation (GLuint, GLuint, const GLchar *); GLAPI GLint APIENTRY glGetFragDataLocation (GLuint, const GLchar *); @@ -4737,6 +5028,26 @@ typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v); typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name); typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); @@ -4759,52 +5070,6 @@ typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); #endif -#ifndef GL_VERSION_3_0_DEPRECATED -#define GL_VERSION_3_0_DEPRECATED 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribI1i (GLuint, GLint); -GLAPI void APIENTRY glVertexAttribI2i (GLuint, GLint, GLint); -GLAPI void APIENTRY glVertexAttribI3i (GLuint, GLint, GLint, GLint); -GLAPI void APIENTRY glVertexAttribI4i (GLuint, GLint, GLint, GLint, GLint); -GLAPI void APIENTRY glVertexAttribI1ui (GLuint, GLuint); -GLAPI void APIENTRY glVertexAttribI2ui (GLuint, GLuint, GLuint); -GLAPI void APIENTRY glVertexAttribI3ui (GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glVertexAttribI4ui (GLuint, GLuint, GLuint, GLuint, GLuint); -GLAPI void APIENTRY glVertexAttribI1iv (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttribI2iv (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttribI3iv (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttribI4iv (GLuint, const GLint *); -GLAPI void APIENTRY glVertexAttribI1uiv (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttribI2uiv (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttribI3uiv (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttribI4uiv (GLuint, const GLuint *); -GLAPI void APIENTRY glVertexAttribI4bv (GLuint, const GLbyte *); -GLAPI void APIENTRY glVertexAttribI4sv (GLuint, const GLshort *); -GLAPI void APIENTRY glVertexAttribI4ubv (GLuint, const GLubyte *); -GLAPI void APIENTRY glVertexAttribI4usv (GLuint, const GLushort *); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v); -#endif - #ifndef GL_VERSION_3_1 #define GL_VERSION_3_1 1 /* OpenGL 3.1 also reuses entry points from these extensions: */ @@ -4822,6 +5087,27 @@ typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index); #endif +#ifndef GL_VERSION_3_2 +#define GL_VERSION_3_2 1 +/* OpenGL 3.2 also reuses entry points from these extensions: */ +/* ARB_draw_elements_base_vertex */ +/* ARB_provoking_vertex */ +/* ARB_sync */ +/* ARB_texture_multisample */ +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glGetInteger64i_v (GLenum, GLuint, GLint64 *); +GLAPI void APIENTRY glGetBufferParameteri64v (GLenum, GLenum, GLint64 *); +GLAPI void APIENTRY glProgramParameteri (GLuint, GLenum, GLint); +GLAPI void APIENTRY glFramebufferTexture (GLenum, GLenum, GLuint, GLint); +GLAPI void APIENTRY glFramebufferTextureFace (GLenum, GLenum, GLuint, GLint, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#endif + #ifndef GL_ARB_multitexture #define GL_ARB_multitexture 1 #ifdef GL_GLEXT_PROTOTYPES @@ -5567,6 +5853,112 @@ #define GL_ARB_shader_texture_lod 1 #endif +#ifndef GL_ARB_depth_clamp +#define GL_ARB_depth_clamp 1 +#endif + +#ifndef GL_ARB_draw_elements_base_vertex +#define GL_ARB_draw_elements_base_vertex 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum, GLsizei, GLenum, const GLvoid *, GLint); +GLAPI void APIENTRY glDrawRangeElementsBaseVertex (GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *, GLint); +GLAPI void APIENTRY glDrawElementsInstancedBaseVertex (GLenum, GLsizei, GLenum, const GLvoid *, GLsizei, GLint); +GLAPI void APIENTRY glMultiDrawElementsBaseVertex (GLenum, const GLsizei *, GLenum, const GLvoid* *, GLsizei, const GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount, const GLint *basevertex); +#endif + +#ifndef GL_ARB_fragment_coord_conventions +#define GL_ARB_fragment_coord_conventions 1 +#endif + +#ifndef GL_ARB_provoking_vertex +#define GL_ARB_provoking_vertex 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glProvokingVertex (GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC) (GLenum mode); +#endif + +#ifndef GL_ARB_seamless_cube_map +#define GL_ARB_seamless_cube_map 1 +#endif + +#ifndef GL_ARB_sync +#define GL_ARB_sync 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLsync APIENTRY glFenceSync (GLenum, GLbitfield); +GLAPI GLboolean APIENTRY glIsSync (GLsync); +GLAPI void APIENTRY glDeleteSync (GLsync); +GLAPI GLenum APIENTRY glClientWaitSync (GLsync, GLbitfield, GLuint64); +GLAPI void APIENTRY glWaitSync (GLsync, GLbitfield, GLuint64); +GLAPI void APIENTRY glGetInteger64v (GLenum, GLint64 *); +GLAPI void APIENTRY glGetSynciv (GLsync, GLenum, GLsizei, GLsizei *, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); +typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync); +typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); +typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#endif + +#ifndef GL_ARB_texture_multisample +#define GL_ARB_texture_multisample 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTexImage2DMultisample (GLenum, GLsizei, GLint, GLsizei, GLsizei, GLboolean); +GLAPI void APIENTRY glTexImage3DMultisample (GLenum, GLsizei, GLint, GLsizei, GLsizei, GLsizei, GLboolean); +GLAPI void APIENTRY glGetMultisamplefv (GLenum, GLuint, GLfloat *); +GLAPI void APIENTRY glSampleMaski (GLuint, GLbitfield); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); +typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask); +#endif + +#ifndef GL_ARB_vertex_array_bgra +#define GL_ARB_vertex_array_bgra 1 +#endif + +#ifndef GL_ARB_draw_buffers_blend +#define GL_ARB_draw_buffers_blend 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendEquationi (GLuint, GLenum); +GLAPI void APIENTRY glBlendEquationSeparatei (GLuint, GLenum, GLenum); +GLAPI void APIENTRY glBlendFunci (GLuint, GLenum, GLenum); +GLAPI void APIENTRY glBlendFuncSeparatei (GLuint, GLenum, GLenum, GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#endif + +#ifndef GL_ARB_sample_shading +#define GL_ARB_sample_shading 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glMinSampleShading (GLclampf); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLclampf value); +#endif + +#ifndef GL_ARB_texture_cube_map_array +#define GL_ARB_texture_cube_map_array 1 +#endif + +#ifndef GL_ARB_texture_gather +#define GL_ARB_texture_gather 1 +#endif + +#ifndef GL_ARB_texture_query_lod +#define GL_ARB_texture_query_lod 1 +#endif + #ifndef GL_EXT_abgr #define GL_EXT_abgr 1 #endif @@ -8204,7 +8596,7 @@ GLAPI void APIENTRY glBindBufferRangeNV (GLenum, GLuint, GLuint, GLintptr, GLsizeiptr); GLAPI void APIENTRY glBindBufferOffsetNV (GLenum, GLuint, GLuint, GLintptr); GLAPI void APIENTRY glBindBufferBaseNV (GLenum, GLuint, GLuint); -GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint, GLsizei, const GLint *, GLenum); +GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint, GLsizei, const GLchar* *, GLenum); GLAPI void APIENTRY glActiveVaryingNV (GLuint, const GLchar *); GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint, const GLchar *); GLAPI void APIENTRY glGetActiveVaryingNV (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *); @@ -8216,7 +8608,7 @@ typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode); typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); @@ -8781,7 +9173,79 @@ typedef void (APIENTRYP PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); #endif +#ifndef GL_EXT_texture_snorm +#define GL_EXT_texture_snorm 1 +#endif +#ifndef GL_AMD_draw_buffers_blend +#define GL_AMD_draw_buffers_blend 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glBlendFuncIndexedAMD (GLuint, GLenum, GLenum); +GLAPI void APIENTRY glBlendFuncSeparateIndexedAMD (GLuint, GLenum, GLenum, GLenum, GLenum); +GLAPI void APIENTRY glBlendEquationIndexedAMD (GLuint, GLenum); +GLAPI void APIENTRY glBlendEquationSeparateIndexedAMD (GLuint, GLenum, GLenum); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (APIENTRYP PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +#endif + +#ifndef GL_APPLE_texture_range +#define GL_APPLE_texture_range 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glTextureRangeAPPLE (GLenum, GLsizei, const GLvoid *); +GLAPI void APIENTRY glGetTexParameterPointervAPPLE (GLenum, GLenum, GLvoid* *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid* *params); +#endif + +#ifndef GL_APPLE_float_pixels +#define GL_APPLE_float_pixels 1 +#endif + +#ifndef GL_APPLE_vertex_program_evaluators +#define GL_APPLE_vertex_program_evaluators 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI void APIENTRY glEnableVertexAttribAPPLE (GLuint, GLenum); +GLAPI void APIENTRY glDisableVertexAttribAPPLE (GLuint, GLenum); +GLAPI GLboolean APIENTRY glIsVertexAttribEnabledAPPLE (GLuint, GLenum); +GLAPI void APIENTRY glMapVertexAttrib1dAPPLE (GLuint, GLuint, GLdouble, GLdouble, GLint, GLint, const GLdouble *); +GLAPI void APIENTRY glMapVertexAttrib1fAPPLE (GLuint, GLuint, GLfloat, GLfloat, GLint, GLint, const GLfloat *); +GLAPI void APIENTRY glMapVertexAttrib2dAPPLE (GLuint, GLuint, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *); +GLAPI void APIENTRY glMapVertexAttrib2fAPPLE (GLuint, GLuint, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); +typedef GLboolean (APIENTRYP PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); +typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +#endif + +#ifndef GL_APPLE_aux_depth_stencil +#define GL_APPLE_aux_depth_stencil 1 +#endif + +#ifndef GL_APPLE_object_purgeable +#define GL_APPLE_object_purgeable 1 +#ifdef GL_GLEXT_PROTOTYPES +GLAPI GLenum APIENTRY glObjectPurgeableAPPLE (GLenum, GLuint, GLenum); +GLAPI GLenum APIENTRY glObjectUnpurgeableAPPLE (GLenum, GLuint, GLenum); +GLAPI void APIENTRY glGetObjectParameterivAPPLE (GLenum, GLuint, GLenum, GLint *); +#endif /* GL_GLEXT_PROTOTYPES */ +typedef GLenum (APIENTRYP PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef GLenum (APIENTRYP PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint *params); +#endif + +#ifndef GL_APPLE_row_bytes +#define GL_APPLE_row_bytes 1 +#endif + + #ifdef __cplusplus } #endif Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_fs_sse.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_fs_sse.c 2009-09-10 00:10:29 UTC (rev 33028) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_fs_sse.c 2009-09-10 00:40:06 UTC (rev 33029) @@ -45,17 +45,6 @@ #include "rtasm/rtasm_x86sse.h" -/* Surely this should be defined somewhere in a tgsi header: - */ -typedef void (PIPE_CDECL *codegen_function)( - const struct tgsi_exec_vector *input, - struct tgsi_exec_vector *output, - const float (*constant)[4], - struct tgsi_exec_vector *temporary, - const struct tgsi_interp_coef *coef, - float (*immediates)[4] - //, const struct tgsi_exec_vector *quadPos - ); /** @@ -65,7 +54,7 @@ { struct sp_fragment_shader base; struct x86_function sse2_program; - codegen_function func; + tgsi_sse2_fs_function func; float immediates[TGSI_EXEC_NUM_IMMEDIATES][4]; }; @@ -83,6 +72,7 @@ struct tgsi_exec_machine *machine, struct tgsi_sampler **samplers ) { + machine->Samplers = samplers; } @@ -107,12 +97,10 @@ tgsi_set_kill_mask(machine, 0x0); tgsi_set_exec_mask(machine, 1, 1, 1, 1); - shader->func( machine->Inputs, - machine->Outputs, + shader->func( machine, machine->Consts, - machine->Temps, - machine->InterpCoefs, - shader->immediates + (const float (*)[4])shader->immediates, + machine->InterpCoefs // , &machine->QuadPos ); @@ -151,7 +139,7 @@ return NULL; } - shader->func = (codegen_function) x86_get_func( &shader->sse2_program ); + shader->func = (tgsi_sse2_fs_function) x86_get_func( &shader->sse2_program ); if (!shader->func) { x86_release_func( &shader->sse2_program ); FREE(shader); Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_blend.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_blend.c 2009-09-10 00:10:29 UTC (rev 33028) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_blend.c 2009-09-10 00:40:06 UTC (rev 33029) @@ -72,6 +72,24 @@ R[3] = A[3] - B[3]; \ } while (0) +/** Add and limit result to ceiling of 1.0 */ +#define VEC4_ADD_SAT(R, A, B) \ +do { \ + R[0] = A[0] + B[0]; if (R[0] > 1.0f) R[0] = 1.0f; \ + R[1] = A[1] + B[1]; if (R[1] > 1.0f) R[1] = 1.0f; \ + R[2] = A[2] + B[2]; if (R[2] > 1.0f) R[2] = 1.0f; \ + R[3] = A[3] + B[3]; if (R[3] > 1.0f) R[3] = 1.0f; \ +} while (0) + +/** Subtract and limit result to floor of 0.0 */ +#define VEC4_SUB_SAT(R, A, B) \ +do { \ + R[0] = A[0] - B[0]; if (R[0] < 0.0f) R[0] = 0.0f; \ + R[1] = A[1] - B[1]; if (R[1] < 0.0f) R[1] = 0.0f; \ + R[2] = A[2] - B[2]; if (R[2] < 0.0f) R[2] = 0.0f; \ + R[3] = A[3] - B[3]; if (R[3] < 0.0f) R[3] = 0.0f; \ +} while (0) + #define VEC4_MUL(R, A, B) \ do { \ R[0] = A[0] * B[0]; \ @@ -676,19 +694,19 @@ */ switch (softpipe->blend->rgb_func) { case PIPE_BLEND_ADD: - VEC4_ADD(quadColor[0], source[0], dest[0]); /* R */ - VEC4_ADD(quadColor[1], source[1], dest[1]); /* G */ - VEC4_ADD(quadColor[2], source[2], dest[2]); /* B */ + VEC4_ADD_SAT(quadColor[0], source[0], dest[0]); /* R */ + VEC4_ADD_SAT(quadColor[1], source[1], dest[1]); /* G */ + VEC4_ADD_SAT(quadColor[2], source[2], dest[2]); /* B */ break; case PIPE_BLEND_SUBTRACT: - VEC4_SUB(quadColor[0], source[0], dest[0]); /* R */ - VEC4_SUB(quadColor[1], source[1], dest[1]); /* G */ - VEC4_SUB(quadColor[2], source[2], dest[2]); /* B */ + VEC4_SUB_SAT(quadColor[0], source[0], dest[0]); /* R */ + VEC4_SUB_SAT(quadColor[1], source[1], dest[1]); /* G */ + VEC4_SUB_SAT(quadColor[2], source[2], dest[2]); /* B */ break; case PIPE_BLEND_REVERSE_SUBTRACT: - VEC4_SUB(quadColor[0], dest[0], source[0]); /* R */ - VEC4_SUB(quadColor[1], dest[1], source[1]); /* G */ - VEC4_SUB(quadColor[2], dest[2], source[2]); /* B */ + VEC4_SUB_SAT(quadColor[0], dest[0], source[0]); /* R */ + VEC4_SUB_SAT(quadColor[1], dest[1], source[1]); /* G */ + VEC4_SUB_SAT(quadColor[2], dest[2], source[2]); /* B */ break; case PIPE_BLEND_MIN: VEC4_MIN(quadColor[0], source[0], dest[0]); /* R */ @@ -709,13 +727,13 @@ */ switch (softpipe->blend->alpha_func) { case PIPE_BLEND_ADD: - VEC4_ADD(quadColor[3], source[3], dest[3]); /* A */ + VEC4_ADD_SAT(quadColor[3], source[3], dest[3]); /* A */ break; case PIPE_BLEND_SUBTRACT: - VEC4_SUB(quadColor[3], source[3], dest[3]); /* A */ + VEC4_SUB_SAT(quadColor[3], source[3], dest[3]); /* A */ break; case PIPE_BLEND_REVERSE_SUBTRACT: - VEC4_SUB(quadColor[3], dest[3], source[3]); /* A */ + VEC4_SUB_SAT(quadColor[3], dest[3], source[3]); /* A */ break; case PIPE_BLEND_MIN: VEC4_MIN(quadColor[3], source[3], dest[3]); /* A */ Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_fs.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_fs.c 2009-09-10 00:10:29 UTC (rev 33028) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_fs.c 2009-09-10 00:40:06 UTC (rev 33029) @@ -52,7 +52,7 @@ struct quad_shade_stage { struct quad_stage stage; /**< base class */ - struct tgsi_exec_machine machine; + struct tgsi_exec_machine *machine; struct tgsi_exec_vector *inputs, *outputs; }; @@ -73,7 +73,7 @@ { struct quad_shade_stage *qss = quad_shade_stage( qs ); struct softpipe_context *softpipe = qs->softpipe; - struct tgsi_exec_machine *machine = &qss->machine; + struct tgsi_exec_machine *machine = qss->machine; boolean z_written; /* Consts do not require 16 byte alignment. */ @@ -146,7 +146,7 @@ struct softpipe_context *softpipe = qs->softpipe; softpipe->fs->prepare( softpipe->fs, - &qss->machine, + qss->machine, (struct tgsi_sampler **) softpipe->tgsi.frag_samplers_list ); @@ -159,9 +159,8 @@ { struct quad_shade_stage *qss = (struct quad_shade_stage *) qs; - tgsi_exec_machine_free_data(&qss->machine); - FREE( qss->inputs ); - FREE( qss->outputs ); + tgsi_exec_machine_destroy(qss->machine); + FREE( qs ); } @@ -170,19 +169,24 @@ sp_quad_shade_stage( struct softpipe_context *softpipe ) { struct quad_shade_stage *qss = CALLOC_STRUCT(quad_shade_stage); + if (!qss) + goto fail; - /* allocate storage for program inputs/outputs, aligned to 16 bytes */ - qss->inputs = MALLOC(PIPE_MAX_ATTRIBS * sizeof(*qss->inputs) + 16); - qss->outputs = MALLOC(PIPE_MAX_ATTRIBS * sizeof(*qss->outputs) + 16); - qss->machine.Inputs = align16(qss->inputs); - qss->machine.Outputs = align16(qss->outputs); - qss->stage.softpipe = softpipe; qss->stage.begin = shade_begin; qss->stage.run = shade_quad; qss->stage.destroy = shade_destroy; - tgsi_exec_machine_init( &qss->machine ); + qss->machine = tgsi_exec_machine_create(); + if (!qss->machine) + goto fail; return &qss->stage; + +fail: + if (qss && qss->machine) + tgsi_exec_machine_destroy(qss->machine); + + FREE(qss); + return NULL; } Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_screen.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_screen.c 2009-09-10 00:10:29 UTC (rev 33028) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_screen.c 2009-09-10 00:40:06 UTC (rev 33029) @@ -87,6 +87,10 @@ return 8; /* max 128x128x128 */ case PIPE_CAP_MAX_TEXTURE_CUBE_LEVELS: return 13; /* max 4Kx4K */ + case PIPE_CAP_TGSI_CONT_SUPPORTED: + return 1; + case PIPE_CAP_BLEND_EQUATION_SEPARATE: + return 1; default: return 0; } Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_setup.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_setup.c 2009-09-10 00:10:29 UTC (rev 33028) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_setup.c 2009-09-10 00:40:06 UTC (rev 33029) @@ -787,11 +787,10 @@ assert(0); } - if (spfs->info.input_semantic_name[fragSlot] == TGSI_SEMANTIC_FOG) { - /* FOG.y = front/back facing XXX fix this */ - setup->coef[fragSlot].a0[1] = 1.0f - setup->quad.input.facing; - setup->coef[fragSlot].dadx[1] = 0.0; - setup->coef[fragSlot].dady[1] = 0.0; + if (spfs->info.input_semantic_name[fragSlot] == TGSI_SEMANTIC_FACE) { + setup->coef[fragSlot].a0[0] = 1.0f - setup->quad.input.facing; + setup->coef[fragSlot].dadx[0] = 0.0; + setup->coef[fragSlot].dady[0] = 0.0; } } } @@ -1101,11 +1100,10 @@ assert(0); } - if (spfs->info.input_semantic_name[fragSlot] == TGSI_SEMANTIC_FOG) { - /* FOG.y = front/back facing XXX fix this */ - setup->coef[fragSlot].a0[1] = 1.0f - setup->quad.input.facing; - setup->coef[fragSlot].dadx[1] = 0.0; - setup->coef[fragSlot].dady[1] = 0.0; + if (spfs->info.input_semantic_name[fragSlot] == TGSI_SEMANTIC_FACE) { + setup->coef[fragSlot].a0[0] = 1.0f - setup->quad.input.facing; + setup->coef[fragSlot].dadx[0] = 0.0; + setup->coef[fragSlot].dady[0] = 0.0; } } return TRUE; @@ -1347,11 +1345,10 @@ assert(0); } - if (spfs->info.input_semantic_name[fragSlot] == TGSI_SEMANTIC_FOG) { - /* FOG.y = front/back facing XXX fix this */ - setup->coef[fragSlot].a0[1] = 1.0f - setup->quad.input.facing; - setup->coef[fragSlot].dadx[1] = 0.0; - setup->coef[fragSlot].dady[1] = 0.0; + if (spfs->info.input_semantic_name[fragSlot] == TGSI_SEMANTIC_FACE) { + setup->coef[fragSlot].a0[0] = 1.0f - setup->quad.input.facing; + setup->coef[fragSlot].dadx[0] = 0.0; + setup->coef[fragSlot].dady[0] = 0.0; } } Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_derived.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_derived.c 2009-09-10 00:10:29 UTC (rev 33028) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_derived.c 2009-09-10 00:40:06 UTC (rev 33029) @@ -110,6 +110,7 @@ break; case TGSI_SEMANTIC_GENERIC: + case TGSI_SEMANTIC_FACE: /* this includes texcoords and varying vars */ src = draw_find_vs_output(softpipe->draw, TGSI_SEMANTIC_GENERIC, spfs->info.input_semantic_index[i]); Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_tex_sample.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_tex_sample.c 2009-09-10 00:10:29 UTC (rev 33028) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_tex_sample.c 2009-09-10 00:40:06 UTC (rev 33029) @@ -705,15 +705,18 @@ * Compare texcoord 'p' (aka R) against texture value 'rgba[0]' * When we sampled the depth texture, the depth value was put into all * RGBA channels. We look at the red channel here. + * \param rgba quad of (depth) texel values + * \param p texture 'P' components for four pixels in quad + * \param j which pixel in the quad to test [0..3] [... truncated: 69976 lines follow ...] From mmlr at mail.berlios.de Thu Sep 10 03:40:48 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Thu, 10 Sep 2009 03:40:48 +0200 Subject: [Haiku-commits] r33030 - in haiku/trunk: headers/private/kernel src/system/kernel/vm Message-ID: <200909100140.n8A1emRv022694@sheep.berlios.de> Author: mmlr Date: 2009-09-10 03:40:46 +0200 (Thu, 10 Sep 2009) New Revision: 33030 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33030&view=rev Modified: haiku/trunk/headers/private/kernel/vm.h haiku/trunk/src/system/kernel/vm/vm.cpp Log: Implement a vm_block_address_range() function which creates an area with no mapped pages and a non-read and non-write protection to block a certain address range from being used by anything. Modified: haiku/trunk/headers/private/kernel/vm.h =================================================================== --- haiku/trunk/headers/private/kernel/vm.h 2009-09-10 00:40:06 UTC (rev 33029) +++ haiku/trunk/headers/private/kernel/vm.h 2009-09-10 01:40:46 UTC (rev 33030) @@ -60,6 +60,7 @@ area_id transfer_area(area_id id, void** _address, uint32 addressSpec, team_id target, bool kernel); +status_t vm_block_address_range(const char* name, void* address, addr_t size); status_t vm_unreserve_address_range(team_id team, void *address, addr_t size); status_t vm_reserve_address_range(team_id team, void **_address, uint32 addressSpec, addr_t size, uint32 flags); Modified: haiku/trunk/src/system/kernel/vm/vm.cpp =================================================================== --- haiku/trunk/src/system/kernel/vm/vm.cpp 2009-09-10 00:40:06 UTC (rev 33029) +++ haiku/trunk/src/system/kernel/vm/vm.cpp 2009-09-10 01:40:46 UTC (rev 33030) @@ -1673,6 +1673,46 @@ status_t +vm_block_address_range(const char* name, void* address, addr_t size) +{ + if (!arch_vm_supports_protection(0)) + return B_NOT_SUPPORTED; + + AddressSpaceWriteLocker locker; + status_t status = locker.SetTo(vm_kernel_address_space_id()); + if (status != B_OK) + return status; + + vm_address_space* addressSpace = locker.AddressSpace(); + + // create an anonymous cache + vm_cache* cache; + status = VMCacheFactory::CreateAnonymousCache(cache, false, 0, 0, false); + if (status != B_OK) + return status; + + cache->temporary = 1; + cache->virtual_end = size; + cache->scan_skip = 1; + cache->Lock(); + + vm_area* area; + void *areaAddress = address; + status = map_backing_store(addressSpace, cache, &areaAddress, 0, size, + B_EXACT_ADDRESS, B_ALREADY_WIRED, 0, REGION_NO_PRIVATE_MAP, &area, name, + false, true); + if (status != B_OK) { + cache->ReleaseRefAndUnlock(); + return status; + } + + cache->Unlock(); + area->cache_type = CACHE_TYPE_RAM; + return area->id; +} + + +status_t vm_unreserve_address_range(team_id team, void* address, addr_t size) { AddressSpaceWriteLocker locker(team); From mmlr at mail.berlios.de Thu Sep 10 03:47:23 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Thu, 10 Sep 2009 03:47:23 +0200 Subject: [Haiku-commits] r33031 - haiku/trunk/src/system/kernel/vm Message-ID: <200909100147.n8A1lNuR022980@sheep.berlios.de> Author: mmlr Date: 2009-09-10 03:47:22 +0200 (Thu, 10 Sep 2009) New Revision: 33031 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33031&view=rev Modified: haiku/trunk/src/system/kernel/vm/vm.cpp Log: Also check for read-protection of an area. Adjusted naming from read-only to write-protected and read-protected. Modified: haiku/trunk/src/system/kernel/vm/vm.cpp =================================================================== --- haiku/trunk/src/system/kernel/vm/vm.cpp 2009-09-10 01:40:46 UTC (rev 33030) +++ haiku/trunk/src/system/kernel/vm/vm.cpp 2009-09-10 01:47:22 UTC (rev 33031) @@ -798,7 +798,8 @@ enum { PAGE_FAULT_ERROR_NO_AREA = 0, PAGE_FAULT_ERROR_KERNEL_ONLY, - PAGE_FAULT_ERROR_READ_ONLY, + PAGE_FAULT_ERROR_WRITE_PROTECTED, + PAGE_FAULT_ERROR_READ_PROTECTED, PAGE_FAULT_ERROR_KERNEL_BAD_USER_MEMORY, PAGE_FAULT_ERROR_NO_ADDRESS_SPACE }; @@ -823,9 +824,13 @@ case PAGE_FAULT_ERROR_KERNEL_ONLY: out.Print("page fault error: area: %ld, kernel only", fArea); break; - case PAGE_FAULT_ERROR_READ_ONLY: - out.Print("page fault error: area: %ld, read only", fArea); + case PAGE_FAULT_ERROR_WRITE_PROTECTED: + out.Print("page fault error: area: %ld, write protected", + fArea); break; + case PAGE_FAULT_ERROR_READ_PROTECTED: + out.Print("page fault error: area: %ld, read protected", fArea); + break; case PAGE_FAULT_ERROR_KERNEL_BAD_USER_MEMORY: out.Print("page fault error: kernel touching bad user memory"); break; @@ -4919,12 +4924,20 @@ } if (isWrite && (protection & (B_WRITE_AREA | (isUser ? 0 : B_KERNEL_WRITE_AREA))) == 0) { - dprintf("write access attempted on read-only area 0x%lx at %p\n", - area->id, (void*)originalAddress); + dprintf("write access attempted on write-protected area 0x%lx at" + " %p\n", area->id, (void*)originalAddress); TPF(PageFaultError(area->id, - VMPageFaultTracing::PAGE_FAULT_ERROR_READ_ONLY)); + VMPageFaultTracing::PAGE_FAULT_ERROR_WRITE_PROTECTED)); status = B_PERMISSION_DENIED; break; + } else if (!isWrite && (protection + & (B_READ_AREA | (isUser ? 0 : B_KERNEL_READ_AREA))) == 0) { + dprintf("read access attempted on read-protected area 0x%lx at" + " %p\n", area->id, (void*)originalAddress); + TPF(PageFaultError(area->id, + VMPageFaultTracing::PAGE_FAULT_ERROR_READ_PROTECTED)); + status = B_PERMISSION_DENIED; + break; } // We have the area, it was a valid access, so let's try to resolve the From mmlr at mail.berlios.de Thu Sep 10 04:03:34 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Thu, 10 Sep 2009 04:03:34 +0200 Subject: [Haiku-commits] r33032 - haiku/trunk/src/system/kernel/vm Message-ID: <200909100203.n8A23YdE023707@sheep.berlios.de> Author: mmlr Date: 2009-09-10 04:03:31 +0200 (Thu, 10 Sep 2009) New Revision: 33032 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33032&view=rev Modified: haiku/trunk/src/system/kernel/vm/vm.cpp Log: Block the very last page of kernel address space. The problem here is that non of the VM functions handling areas are overflow safe. If an area is created that spans across the last page many places will run into an integer overflow. This mostly concerns the area allocation path in find_and_insert_area_slot() and also vm_create_anonymous_area() where the loop for mapping pages for B_FULL_LOCK areas overflows and runs more times than it should leading to #2550. This could be seen as a workaround. The real fix would be to make everything overflow safe. The thing is that this does also concern the user of the area which could easily have forgotten to check for overflows as well, so I am a bit uneasy with handing out areas that could easily lead to such hard to debug problems. Since this is really an edge case and this single step safes quite a bit of extra checks I'd actually be OK with keeping it that way. Modified: haiku/trunk/src/system/kernel/vm/vm.cpp =================================================================== --- haiku/trunk/src/system/kernel/vm/vm.cpp 2009-09-10 01:47:22 UTC (rev 33031) +++ haiku/trunk/src/system/kernel/vm/vm.cpp 2009-09-10 02:03:31 UTC (rev 33032) @@ -4388,6 +4388,9 @@ B_ALREADY_WIRED, B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA); } + void* lastPage = (void*)ROUNDDOWN(~(addr_t)0, B_PAGE_SIZE); + vm_block_address_range("overflow protection", lastPage, B_PAGE_SIZE - 1); + #if DEBUG_CACHE_LIST create_area("cache info table", (void**)&sCacheInfoTable, B_ANY_KERNEL_ADDRESS, From mmlr at mail.berlios.de Thu Sep 10 04:09:18 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Thu, 10 Sep 2009 04:09:18 +0200 Subject: [Haiku-commits] r33033 - haiku/trunk/src/system/kernel Message-ID: <200909100209.n8A29IbU024606@sheep.berlios.de> Author: mmlr Date: 2009-09-10 04:09:16 +0200 (Thu, 10 Sep 2009) New Revision: 33033 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33033&view=rev Modified: haiku/trunk/src/system/kernel/heap.cpp Log: Make use of the address range blocking to guarantee that accessing 0xdeadbeef and 0xcccccccc (and 64 pages thereafter) in any way will always lead to a crash. Before it could happen that these ranges were allocated for an area and then accessing these would not be as evident anymore. Only enabled when the corresponding paranoid setting is enabled (which it currently is). Modified: haiku/trunk/src/system/kernel/heap.cpp =================================================================== --- haiku/trunk/src/system/kernel/heap.cpp 2009-09-10 02:03:31 UTC (rev 33032) +++ haiku/trunk/src/system/kernel/heap.cpp 2009-09-10 02:09:16 UTC (rev 33033) @@ -1912,6 +1912,15 @@ status_t heap_init_post_sem() { +#if PARANOID_KERNEL_MALLOC + vm_block_address_range("uninitialized heap memory", + (void *)ROUNDDOWN(0xcccccccc, B_PAGE_SIZE), B_PAGE_SIZE * 64); +#endif +#if PARANOID_KERNEL_FREE + vm_block_address_range("freed heap memory", + (void *)ROUNDDOWN(0xdeadbeef, B_PAGE_SIZE), B_PAGE_SIZE * 64); +#endif + sHeapGrowSem = create_sem(0, "heap_grow_sem"); if (sHeapGrowSem < 0) { panic("heap_init_post_sem(): failed to create heap grow sem\n"); From mmlr at mail.berlios.de Thu Sep 10 04:11:41 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Thu, 10 Sep 2009 04:11:41 +0200 Subject: [Haiku-commits] r33034 - haiku/trunk/src/system/kernel/vm Message-ID: <200909100211.n8A2Bf0x025242@sheep.berlios.de> Author: mmlr Date: 2009-09-10 04:11:40 +0200 (Thu, 10 Sep 2009) New Revision: 33034 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33034&view=rev Modified: haiku/trunk/src/system/kernel/vm/vm.cpp Log: Style fix. I really tried hard, but still failed... Modified: haiku/trunk/src/system/kernel/vm/vm.cpp =================================================================== --- haiku/trunk/src/system/kernel/vm/vm.cpp 2009-09-10 02:09:16 UTC (rev 33033) +++ haiku/trunk/src/system/kernel/vm/vm.cpp 2009-09-10 02:11:40 UTC (rev 33034) @@ -1702,7 +1702,7 @@ cache->Lock(); vm_area* area; - void *areaAddress = address; + void* areaAddress = address; status = map_backing_store(addressSpace, cache, &areaAddress, 0, size, B_EXACT_ADDRESS, B_ALREADY_WIRED, 0, REGION_NO_PRIVATE_MAP, &area, name, false, true); From mmlr at mail.berlios.de Thu Sep 10 05:29:06 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Thu, 10 Sep 2009 05:29:06 +0200 Subject: [Haiku-commits] r33035 - haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay Message-ID: <200909100329.n8A3T6Eu001947@sheep.berlios.de> Author: mmlr Date: 2009-09-10 05:29:04 +0200 (Thu, 10 Sep 2009) New Revision: 33035 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33035&view=rev Modified: haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp Log: Also return B_NOT_A_DIRECTORY in write_overlay when appropriate. Modified: haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-10 02:11:40 UTC (rev 33034) +++ haiku/trunk/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-10 03:29:04 UTC (rev 33035) @@ -958,6 +958,14 @@ OverlayInode::OpenDir(void **cookie, bool attribute) { RecursiveLocker locker(fLock); + if (!attribute) { + if (!fHasStat) + _PopulateStat(); + + if (!S_ISDIR(fStat.st_mode)) + return B_NOT_A_DIRECTORY; + } + if (!attribute && !fHasDirents) _PopulateDirents(); else if (attribute && !fHasAttributeDirents) From aljen at mail.berlios.de Thu Sep 10 06:54:28 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Thu, 10 Sep 2009 06:54:28 +0200 Subject: [Haiku-commits] r33036 - haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe Message-ID: <200909100454.n8A4sSYS031550@sheep.berlios.de> Author: aljen Date: 2009-09-10 06:54:24 +0200 (Thu, 10 Sep 2009) New Revision: 33036 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33036&view=rev Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/SoftPipeRenderer.cpp haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_context.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_framebuffer.c Log: Fixed bug in LockGL, framebuffer size was not updated to current view size, causing crash. Destroy framebuffer, when st_create_framebuffer fails. Adjusted function parameters to match updated pipe_screen. Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/SoftPipeRenderer.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/SoftPipeRenderer.cpp 2009-09-10 03:29:04 UTC (rev 33035) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/SoftPipeRenderer.cpp 2009-09-10 04:54:24 UTC (rev 33036) @@ -95,7 +95,6 @@ { // CALLED(); BGLRenderer::LockGL(); - hsp_make_current(fBitmap, fContext); color_space cs = BScreen(GLView()->Window()).ColorSpace(); @@ -106,14 +105,17 @@ } if (fBitmap && cs == fColorSpace && fNewWidth == fWidth - && fNewHeight == fHeight) + && fNewHeight == fHeight) { + hsp_make_current(fBitmap, fContext); return; + } fColorSpace = cs; fWidth = fNewWidth; fHeight = fNewHeight; _AllocateBitmap(); + hsp_make_current(fBitmap, fContext); } Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.c 2009-09-10 03:29:04 UTC (rev 33035) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.c 2009-09-10 04:54:24 UTC (rev 33036) @@ -119,7 +119,7 @@ struct pipe_buffer* haiku_softpipe_surface_buffer_create(struct pipe_winsys *winsys, unsigned width, unsigned height, enum pipe_format format, - unsigned usage, unsigned *stride) + unsigned usage, unsigned tex_usage, unsigned *stride) { TRACE("%s(winsys: %p width: %d height: %d format: %d usage: %d " "stride: %p)\n", __FUNCTION__, winsys, width, height, format, Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.h 2009-09-10 03:29:04 UTC (rev 33035) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.h 2009-09-10 04:54:24 UTC (rev 33036) @@ -63,7 +63,7 @@ struct pipe_buffer* haiku_softpipe_surface_buffer_create(struct pipe_winsys *winsys, unsigned width, unsigned height, enum pipe_format format, - unsigned usage, unsigned *stride); + unsigned usage, unsigned tex_usage, unsigned *stride); //static void Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_context.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_context.c 2009-09-10 03:29:04 UTC (rev 33035) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_context.c 2009-09-10 04:54:24 UTC (rev 33036) @@ -337,10 +337,9 @@ return true; } - if (glcurctx != NULL) { - struct hsp_context *curctx = (struct hsp_context*) glcurctx->DriverCtx; - if (curctx != NULL && curctx == ctx && ctx->bitmap == bitmap) - return true; + if (glcurctx != NULL && curctx != NULL && curctx == ctx + && ctx->bitmap == bitmap) { + return true; } if (bitmap != NULL) { Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_framebuffer.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_framebuffer.c 2009-09-10 03:29:04 UTC (rev 33035) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_framebuffer.c 2009-09-10 04:54:24 UTC (rev 33036) @@ -116,12 +116,17 @@ TRACE("\tdepthBits = %d\n", visual->depthBits); TRACE("\tstencilBits = %d\n", visual->stencilBits); + fb->stfb = st_create_framebuffer(visual, colorFormat, depthFormat, stencilFormat, width, height, (void*)fb); if (!fb->stfb) { TRACE("%s> can't create mesa statetracker framebuffer!\n", __FUNCTION__); + framebuffer_destroy(fb); + return NULL; } + + pipe_mutex_init(fb->mutex); fb->bitmap = bitmap; fb->next = fb_head; fb_head = fb; @@ -138,6 +143,7 @@ while (pfb != NULL) { if (pfb == fb) { *link = fb->next; + pipe_mutex_destroy(fb->mutex); FREE(fb); return; } @@ -169,12 +175,12 @@ TRACE("%s> draw framebuffer not found\n", __FUNCTION__); return false; } - + + pipe_mutex_lock(fb->mutex); st_notify_swapbuffers(fb->stfb); - st_get_framebuffer_surface(fb->stfb, ST_SURFACE_BACK_LEFT, &surface); - hsp_dev->hsp_winsys->flush_frontbuffer(hsp_dev->screen, surface, ctx->bitmap); + pipe_mutex_unlock(fb->mutex); return true; } From fredrik at modeen.se Thu Sep 10 08:35:53 2009 From: fredrik at modeen.se (Fredrik =?utf-8?Q?Mod=C3=A8en?=) Date: Thu, 10 Sep 2009 08:35:53 +0200 (CEST) Subject: [Haiku-commits] r33036 - haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe In-Reply-To: <200909100454.n8A4sSYS031550@sheep.berlios.de> References: <200909100454.n8A4sSYS031550@sheep.berlios.de> Message-ID: <7a593fa19246aab9b81cf676e20c65aa.squirrel@webmail2.webbhotellsgruppen.se> > Author: aljen > Date: 2009-09-10 06:54:24 +0200 (Thu, 10 Sep 2009) > New Revision: 33036 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33036&view=rev > Is it in a working stage? -- MVH Fredrik Mod?en From aljen-mlists at o2.pl Thu Sep 10 08:58:44 2009 From: aljen-mlists at o2.pl (Artur Wyszynski) Date: Thu, 10 Sep 2009 08:58:44 +0200 Subject: [Haiku-commits] r33036 - haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe In-Reply-To: <7a593fa19246aab9b81cf676e20c65aa.squirrel@webmail2.webbhotellsgruppen.se> References: <200909100454.n8A4sSYS031550@sheep.berlios.de> <7a593fa19246aab9b81cf676e20c65aa.squirrel@webmail2.webbhotellsgruppen.se> Message-ID: <4AA8A3A4.8050609@o2.pl> Fredrik Mod?en pisze: >> Author: aljen >> Date: 2009-09-10 06:54:24 +0200 (Thu, 10 Sep 2009) >> New Revision: 33036 >> ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33036&view=rev >> > Is it in a working stage? > Yep, there is a few bugs but it's working Regards, aljen From fredrik at modeen.se Thu Sep 10 09:14:00 2009 From: fredrik at modeen.se (Fredrik =?utf-8?Q?Mod=C3=A8en?=) Date: Thu, 10 Sep 2009 09:14:00 +0200 (CEST) Subject: [Haiku-commits] r33036 - haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe In-Reply-To: <4AA8A3A4.8050609@o2.pl> References: <200909100454.n8A4sSYS031550@sheep.berlios.de> <7a593fa19246aab9b81cf676e20c65aa.squirrel@webmail2.webbhotellsgruppen.se> <4AA8A3A4.8050609@o2.pl> Message-ID: <16bf5fe26eec26754f6b59c4fb93455c.squirrel@webmail2.webbhotellsgruppen.se> > Fredrik Mod?en pisze: >>> Author: aljen >>> Date: 2009-09-10 06:54:24 +0200 (Thu, 10 Sep 2009) >>> New Revision: 33036 >>> ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33036&view=rev >>> >> Is it in a working stage? >> > Yep, there is a few bugs but it's working Nice .. but i guess it's software only ;) So how do I "install" this? replacing libGL.so and add softpipe under add-ons/opengl? What are missing before we can have hardware 3d (except for having the gallium3d drivers to build)? Any integration with our 2d driver needed? > > Regards, aljen > _______________________________________________ > Haiku-commits mailing list > Haiku-commits at lists.berlios.de > https://lists.berlios.de/mailman/listinfo/haiku-commits > -- MVH Fredrik Mod?en From aljen-mlists at o2.pl Thu Sep 10 09:31:02 2009 From: aljen-mlists at o2.pl (Artur Wyszynski) Date: Thu, 10 Sep 2009 09:31:02 +0200 Subject: [Haiku-commits] r33036 - haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe In-Reply-To: <16bf5fe26eec26754f6b59c4fb93455c.squirrel@webmail2.webbhotellsgruppen.se> References: <200909100454.n8A4sSYS031550@sheep.berlios.de> <7a593fa19246aab9b81cf676e20c65aa.squirrel@webmail2.webbhotellsgruppen.se> <4AA8A3A4.8050609@o2.pl> <16bf5fe26eec26754f6b59c4fb93455c.squirrel@webmail2.webbhotellsgruppen.se> Message-ID: <4AA8AB36.8010707@o2.pl> Fredrik Mod?en pisze: >> Fredrik Mod?en pisze: >>>> Author: aljen >>>> Date: 2009-09-10 06:54:24 +0200 (Thu, 10 Sep 2009) >>>> New Revision: 33036 >>>> ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33036&view=rev >>>> >>> Is it in a working stage? >>> >> Yep, there is a few bugs but it's working > Nice .. but i guess it's software only ;) For now, yep :) > > So how do I "install" this? > replacing libGL.so and add softpipe under add-ons/opengl? svn switch svnurl/branches/components/gallium3d jam libGL.so jam SoftPipe replace libGL.so remove Mesa\ Software\ Renderer from /boot/system/add-ons/opengl/ and put there SoftPipe run GLTeapot (Haiku3d has a visible problem with viewport) > > What are missing before we can have hardware 3d (except for having the > gallium3d drivers to build)? Any integration with our 2d driver needed? We need dri/drm port to Haiku, because all drivers depends on that. I think that dropping dri/drm and reimplementing drivers to work natively on Haiku is useless, harder to maintain, debug and keep in sync. Integration with our 2d driver model hmm it's hard to say, we could just drop it and implement app_server state tracker, just like it's being developed for Xorg (http://zrusin.blogspot.com/2009/09/accelerating-x-with-gallium.html). In that way we could use for example OpenVG(in Gallium3D too ;P) to render our 2d stuff, but with power of gallium drivers (software included), but that's a future talk, first let's make hw working :) Btw, any help on drm/dri port highly appreciated :) > >> Regards, aljen >> _______________________________________________ >> Haiku-commits mailing list >> Haiku-commits at lists.berlios.de >> https://lists.berlios.de/mailman/listinfo/haiku-commits >> > > From fredrik at modeen.se Thu Sep 10 10:39:51 2009 From: fredrik at modeen.se (Fredrik =?utf-8?Q?Mod=C3=A8en?=) Date: Thu, 10 Sep 2009 10:39:51 +0200 (CEST) Subject: [Haiku-commits] r33036 - haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe In-Reply-To: <4AA8AB36.8010707@o2.pl> References: <200909100454.n8A4sSYS031550@sheep.berlios.de> <7a593fa19246aab9b81cf676e20c65aa.squirrel@webmail2.webbhotellsgruppen.se> <4AA8A3A4.8050609@o2.pl> <16bf5fe26eec26754f6b59c4fb93455c.squirrel@webmail2.webbhotellsgruppen.se> <4AA8AB36.8010707@o2.pl> Message-ID: .... >> What are missing before we can have hardware 3d (except for having the >> gallium3d drivers to build)? Any integration with our 2d driver needed? > We need dri/drm port to Haiku, because all drivers depends on that. > I think that dropping dri/drm and reimplementing drivers to work > natively on Haiku is useless, harder to maintain, debug and keep in sync. > > Integration with our 2d driver model hmm it's hard to say, we could just > drop it and implement app_server state tracker, just like it's being > developed for Xorg > (http://zrusin.blogspot.com/2009/09/accelerating-x-with-gallium.html). > In that way we could use for example OpenVG(in Gallium3D too ;P) to > render our 2d stuff, but with power of gallium drivers (software > included), but that's a future talk, first let's make hw working :) > > Btw, any help on drm/dri port highly appreciated :) I can imagen that :) I don't have any experience in that type of project and right now I'm trying to help out with wlan. What about MiniGLX? http://en.wikipedia.org/wiki/MiniGLX http://www.mesa3d.org/MiniGLX.html http://www.mesa3d.org/fbdev-dri.html >> >>> Regards, aljen >>> _______________________________________________ >>> Haiku-commits mailing list >>> Haiku-commits at lists.berlios.de >>> https://lists.berlios.de/mailman/listinfo/haiku-commits >>> >> >> > > _______________________________________________ > Haiku-commits mailing list > Haiku-commits at lists.berlios.de > https://lists.berlios.de/mailman/listinfo/haiku-commits > -- MVH Fredrik Mod?en From mmlr at mail.berlios.de Thu Sep 10 19:58:20 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Thu, 10 Sep 2009 19:58:20 +0200 Subject: [Haiku-commits] r33037 - haiku/trunk/src/system/kernel/vm Message-ID: <200909101758.n8AHwKqC027525@sheep.berlios.de> Author: mmlr Date: 2009-09-10 19:58:19 +0200 (Thu, 10 Sep 2009) New Revision: 33037 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33037&view=rev Modified: haiku/trunk/src/system/kernel/vm/vm.cpp Log: * Change the way we check for enough available space when searching for spots to insert areas so we don't overflow. * Consequently use the area end (base + size - 1) where appropriate which prevents overflows in a few places. * Properly check for reaching the address space end. * If we've already found a spot we don't need to recheck if we've found one. * Simplify the B_EXACT_ADDRESS checks down to a simpler single if statement instead of the four seperate ones. * Properly calculate the search end for B_EXACT_ADDRESS as well, it's also base + size - 1. * Block the full last page now that this actually works without overflowing. * Some style changes and added spacing. This should now really fix #2550. Previously the overflow protection didn't actually work because on allocation we overflowed and completely missed the protecting area. Modified: haiku/trunk/src/system/kernel/vm/vm.cpp =================================================================== --- haiku/trunk/src/system/kernel/vm/vm.cpp 2009-09-10 04:54:24 UTC (rev 33036) +++ haiku/trunk/src/system/kernel/vm/vm.cpp 2009-09-10 17:58:19 UTC (rev 33037) @@ -1018,8 +1018,9 @@ vm_area* next; next = addressSpace->areas; - while (next) { - if (next->base <= start && next->base + next->size >= start + size) { + while (next != NULL) { + if (next->base <= start + && next->base + next->size > start + (size - 1)) { // this area covers the requested range if (next->id != RESERVED_AREA_ID) { // but it's not reserved space, it's a real area @@ -1028,9 +1029,11 @@ break; } + last = next; next = next->address_space_next; } + if (next == NULL) return B_ENTRY_NOT_FOUND; @@ -1106,8 +1109,8 @@ // do some sanity checking if (start < addressSpace->base || size == 0 - || (end - 1) > (addressSpace->base + (addressSpace->size - 1)) - || start + size > end) + || end > addressSpace->base + (addressSpace->size - 1) + || start + (size - 1) > end) return B_BAD_ADDRESS; if (addressSpec == B_EXACT_ADDRESS) { @@ -1133,11 +1136,12 @@ // walk up to the spot where we should start searching second_chance: next = addressSpace->areas; - while (next) { - if (next->base >= start + size) { + while (next != NULL) { + if (next->base > start + (size - 1)) { // we have a winner break; } + last = next; next = next->address_space_next; } @@ -1149,34 +1153,40 @@ case B_ANY_ADDRESS: case B_ANY_KERNEL_ADDRESS: case B_ANY_KERNEL_BLOCK_ADDRESS: + { // find a hole big enough for a new area - if (!last) { + if (last == NULL) { // see if we can build it at the beginning of the virtual map - if (!next || (next->base >= ROUNDUP(addressSpace->base, - alignment) + size)) { + if (next == NULL || next->base > ROUNDUP(addressSpace->base, + alignment) + (size - 1)) { foundSpot = true; area->base = ROUNDUP(addressSpace->base, alignment); break; } + last = next; next = next->address_space_next; } + // keep walking - while (next) { - if (next->base >= ROUNDUP(last->base + last->size, alignment) - + size) { + while (next != NULL) { + addr_t newBase = ROUNDUP(last->base + last->size, alignment); + if (next->base > newBase && next->base - newBase >= size) { // we found a spot (it'll be filled up below) break; } + last = next; next = next->address_space_next; } - if ((addressSpace->base + (addressSpace->size - 1)) >= (ROUNDUP( - last->base + last->size, alignment) + (size - 1))) { + addr_t newBase = ROUNDUP(last->base + last->size, alignment); + addr_t aspaceEnd = addressSpace->base + (addressSpace->size - 1); + if (next != NULL || (aspaceEnd > newBase + && aspaceEnd - (newBase - 1) >= size)) { // got a spot foundSpot = true; - area->base = ROUNDUP(last->base + last->size, alignment); + area->base = newBase; break; } else { // We didn't find a free spot - if there were any reserved areas @@ -1184,8 +1194,8 @@ // for free space // TODO: it would make sense to start with the biggest of them next = addressSpace->areas; - last = NULL; - for (last = NULL; next; next = next->address_space_next) { + for (last = NULL; next != NULL; + next = next->address_space_next) { if (next->id != RESERVED_AREA_ID) { last = next; continue; @@ -1207,15 +1217,28 @@ free(next); break; } - if (next->size - (ROUNDUP(next->base, alignment) - - next->base) >= size) { + + addr_t newBase = ROUNDUP(next->base, alignment); + if (newBase == next->base && next->size >= size) { + // The new area will be placed at the beginning of the + // reserved area and the reserved area will be offset + // and resized + foundSpot = true; + next->base += size; + next->size -= size; + area->base = newBase; + break; + } + + if (newBase <= next->base + (next->size - 1) + && next->size - (newBase - next->base) >= size) { // The new area will be placed at the end of the // reserved area, and the reserved area will be resized // to make space foundSpot = true; - next->size -= size; + next->size = newBase - next->base; last = next; - area->base = next->base + next->size; + area->base = newBase; break; } @@ -1223,31 +1246,35 @@ } } break; + } case B_BASE_ADDRESS: // find a hole big enough for a new area beginning with "start" - if (!last) { + if (last == NULL) { // see if we can build it at the beginning of the specified start - if (!next || (next->base >= start + size)) { + if (next == NULL || next->base > start + (size - 1)) { foundSpot = true; area->base = start; break; } + last = next; next = next->address_space_next; } + // keep walking - while (next) { - if (next->base >= last->base + last->size + size) { + while (next != NULL) { + if (next->base - (last->base + last->size) >= size) { // we found a spot (it'll be filled up below) break; } + last = next; next = next->address_space_next; } - if ((addressSpace->base + (addressSpace->size - 1)) - >= (last->base + last->size + (size - 1))) { + if (next != NULL || addressSpace->base + (addressSpace->size - 1) + - last->base + (last->size - 1) >= size) { // got a spot foundSpot = true; if (last->base + last->size <= start) @@ -1256,6 +1283,7 @@ area->base = last->base + last->size; break; } + // we didn't find a free spot in the requested range, so we'll // try again without any restrictions start = addressSpace->base; @@ -1265,26 +1293,11 @@ case B_EXACT_ADDRESS: // see if we can create it exactly here - if (!last) { - if (!next || (next->base >= start + size)) { - foundSpot = true; - area->base = start; - break; - } - } else { - if (next) { - if (last->base + last->size <= start - && next->base >= start + size) { - foundSpot = true; - area->base = start; - break; - } - } else { - if ((last->base + (last->size - 1)) <= start - 1) { - foundSpot = true; - area->base = start; - } - } + if ((last == NULL || last->base + (last->size - 1) < start) + && (next == NULL || next->base > start + (size - 1))) { + foundSpot = true; + area->base = start; + break; } break; default: @@ -1302,6 +1315,7 @@ area->address_space_next = addressSpace->areas; addressSpace->areas = area; } + addressSpace->change_count++; return B_OK; } @@ -1322,7 +1336,7 @@ switch (addressSpec) { case B_EXACT_ADDRESS: searchBase = (addr_t)*_address; - searchEnd = (addr_t)*_address + size; + searchEnd = (addr_t)*_address + (size - 1); break; case B_BASE_ADDRESS: @@ -4389,7 +4403,7 @@ } void* lastPage = (void*)ROUNDDOWN(~(addr_t)0, B_PAGE_SIZE); - vm_block_address_range("overflow protection", lastPage, B_PAGE_SIZE - 1); + vm_block_address_range("overflow protection", lastPage, B_PAGE_SIZE); #if DEBUG_CACHE_LIST create_area("cache info table", (void**)&sCacheInfoTable, From aljen at mail.berlios.de Thu Sep 10 20:57:05 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Thu, 10 Sep 2009 20:57:05 +0200 Subject: [Haiku-commits] r33038 - in haiku/branches/components/gallium3d: headers/private/kernel src/add-ons/kernel/file_systems/layers/write_overlay src/system/kernel src/system/kernel/vm Message-ID: <200909101857.n8AIv5NQ003403@sheep.berlios.de> Author: aljen Date: 2009-09-10 20:57:00 +0200 (Thu, 10 Sep 2009) New Revision: 33038 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33038&view=rev Modified: haiku/branches/components/gallium3d/headers/private/kernel/vm.h haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp haiku/branches/components/gallium3d/src/system/kernel/heap.cpp haiku/branches/components/gallium3d/src/system/kernel/vm/vm.cpp Log: merged changes from trunk r32985-r33037 Modified: haiku/branches/components/gallium3d/headers/private/kernel/vm.h =================================================================== --- haiku/branches/components/gallium3d/headers/private/kernel/vm.h 2009-09-10 17:58:19 UTC (rev 33037) +++ haiku/branches/components/gallium3d/headers/private/kernel/vm.h 2009-09-10 18:57:00 UTC (rev 33038) @@ -60,6 +60,7 @@ area_id transfer_area(area_id id, void** _address, uint32 addressSpec, team_id target, bool kernel); +status_t vm_block_address_range(const char* name, void* address, addr_t size); status_t vm_unreserve_address_range(team_id team, void *address, addr_t size); status_t vm_reserve_address_range(team_id team, void **_address, uint32 addressSpec, addr_t size, uint32 flags); Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-10 17:58:19 UTC (rev 33037) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/file_systems/layers/write_overlay/write_overlay.cpp 2009-09-10 18:57:00 UTC (rev 33038) @@ -958,6 +958,14 @@ OverlayInode::OpenDir(void **cookie, bool attribute) { RecursiveLocker locker(fLock); + if (!attribute) { + if (!fHasStat) + _PopulateStat(); + + if (!S_ISDIR(fStat.st_mode)) + return B_NOT_A_DIRECTORY; + } + if (!attribute && !fHasDirents) _PopulateDirents(); else if (attribute && !fHasAttributeDirents) Modified: haiku/branches/components/gallium3d/src/system/kernel/heap.cpp =================================================================== --- haiku/branches/components/gallium3d/src/system/kernel/heap.cpp 2009-09-10 17:58:19 UTC (rev 33037) +++ haiku/branches/components/gallium3d/src/system/kernel/heap.cpp 2009-09-10 18:57:00 UTC (rev 33038) @@ -1912,6 +1912,15 @@ status_t heap_init_post_sem() { +#if PARANOID_KERNEL_MALLOC + vm_block_address_range("uninitialized heap memory", + (void *)ROUNDDOWN(0xcccccccc, B_PAGE_SIZE), B_PAGE_SIZE * 64); +#endif +#if PARANOID_KERNEL_FREE + vm_block_address_range("freed heap memory", + (void *)ROUNDDOWN(0xdeadbeef, B_PAGE_SIZE), B_PAGE_SIZE * 64); +#endif + sHeapGrowSem = create_sem(0, "heap_grow_sem"); if (sHeapGrowSem < 0) { panic("heap_init_post_sem(): failed to create heap grow sem\n"); Modified: haiku/branches/components/gallium3d/src/system/kernel/vm/vm.cpp =================================================================== --- haiku/branches/components/gallium3d/src/system/kernel/vm/vm.cpp 2009-09-10 17:58:19 UTC (rev 33037) +++ haiku/branches/components/gallium3d/src/system/kernel/vm/vm.cpp 2009-09-10 18:57:00 UTC (rev 33038) @@ -798,7 +798,8 @@ enum { PAGE_FAULT_ERROR_NO_AREA = 0, PAGE_FAULT_ERROR_KERNEL_ONLY, - PAGE_FAULT_ERROR_READ_ONLY, + PAGE_FAULT_ERROR_WRITE_PROTECTED, + PAGE_FAULT_ERROR_READ_PROTECTED, PAGE_FAULT_ERROR_KERNEL_BAD_USER_MEMORY, PAGE_FAULT_ERROR_NO_ADDRESS_SPACE }; @@ -823,9 +824,13 @@ case PAGE_FAULT_ERROR_KERNEL_ONLY: out.Print("page fault error: area: %ld, kernel only", fArea); break; - case PAGE_FAULT_ERROR_READ_ONLY: - out.Print("page fault error: area: %ld, read only", fArea); + case PAGE_FAULT_ERROR_WRITE_PROTECTED: + out.Print("page fault error: area: %ld, write protected", + fArea); break; + case PAGE_FAULT_ERROR_READ_PROTECTED: + out.Print("page fault error: area: %ld, read protected", fArea); + break; case PAGE_FAULT_ERROR_KERNEL_BAD_USER_MEMORY: out.Print("page fault error: kernel touching bad user memory"); break; @@ -1013,8 +1018,9 @@ vm_area* next; next = addressSpace->areas; - while (next) { - if (next->base <= start && next->base + next->size >= start + size) { + while (next != NULL) { + if (next->base <= start + && next->base + next->size > start + (size - 1)) { // this area covers the requested range if (next->id != RESERVED_AREA_ID) { // but it's not reserved space, it's a real area @@ -1023,9 +1029,11 @@ break; } + last = next; next = next->address_space_next; } + if (next == NULL) return B_ENTRY_NOT_FOUND; @@ -1101,8 +1109,8 @@ // do some sanity checking if (start < addressSpace->base || size == 0 - || (end - 1) > (addressSpace->base + (addressSpace->size - 1)) - || start + size > end) + || end > addressSpace->base + (addressSpace->size - 1) + || start + (size - 1) > end) return B_BAD_ADDRESS; if (addressSpec == B_EXACT_ADDRESS) { @@ -1128,11 +1136,12 @@ // walk up to the spot where we should start searching second_chance: next = addressSpace->areas; - while (next) { - if (next->base >= start + size) { + while (next != NULL) { + if (next->base > start + (size - 1)) { // we have a winner break; } + last = next; next = next->address_space_next; } @@ -1144,34 +1153,40 @@ case B_ANY_ADDRESS: case B_ANY_KERNEL_ADDRESS: case B_ANY_KERNEL_BLOCK_ADDRESS: + { // find a hole big enough for a new area - if (!last) { + if (last == NULL) { // see if we can build it at the beginning of the virtual map - if (!next || (next->base >= ROUNDUP(addressSpace->base, - alignment) + size)) { + if (next == NULL || next->base > ROUNDUP(addressSpace->base, + alignment) + (size - 1)) { foundSpot = true; area->base = ROUNDUP(addressSpace->base, alignment); break; } + last = next; next = next->address_space_next; } + // keep walking - while (next) { - if (next->base >= ROUNDUP(last->base + last->size, alignment) - + size) { + while (next != NULL) { + addr_t newBase = ROUNDUP(last->base + last->size, alignment); + if (next->base > newBase && next->base - newBase >= size) { // we found a spot (it'll be filled up below) break; } + last = next; next = next->address_space_next; } - if ((addressSpace->base + (addressSpace->size - 1)) >= (ROUNDUP( - last->base + last->size, alignment) + (size - 1))) { + addr_t newBase = ROUNDUP(last->base + last->size, alignment); + addr_t aspaceEnd = addressSpace->base + (addressSpace->size - 1); + if (next != NULL || (aspaceEnd > newBase + && aspaceEnd - (newBase - 1) >= size)) { // got a spot foundSpot = true; - area->base = ROUNDUP(last->base + last->size, alignment); + area->base = newBase; break; } else { // We didn't find a free spot - if there were any reserved areas @@ -1179,8 +1194,8 @@ // for free space // TODO: it would make sense to start with the biggest of them next = addressSpace->areas; - last = NULL; - for (last = NULL; next; next = next->address_space_next) { + for (last = NULL; next != NULL; + next = next->address_space_next) { if (next->id != RESERVED_AREA_ID) { last = next; continue; @@ -1202,15 +1217,28 @@ free(next); break; } - if (next->size - (ROUNDUP(next->base, alignment) - - next->base) >= size) { + + addr_t newBase = ROUNDUP(next->base, alignment); + if (newBase == next->base && next->size >= size) { + // The new area will be placed at the beginning of the + // reserved area and the reserved area will be offset + // and resized + foundSpot = true; + next->base += size; + next->size -= size; + area->base = newBase; + break; + } + + if (newBase <= next->base + (next->size - 1) + && next->size - (newBase - next->base) >= size) { // The new area will be placed at the end of the // reserved area, and the reserved area will be resized // to make space foundSpot = true; - next->size -= size; + next->size = newBase - next->base; last = next; - area->base = next->base + next->size; + area->base = newBase; break; } @@ -1218,31 +1246,35 @@ } } break; + } case B_BASE_ADDRESS: // find a hole big enough for a new area beginning with "start" - if (!last) { + if (last == NULL) { // see if we can build it at the beginning of the specified start - if (!next || (next->base >= start + size)) { + if (next == NULL || next->base > start + (size - 1)) { foundSpot = true; area->base = start; break; } + last = next; next = next->address_space_next; } + // keep walking - while (next) { - if (next->base >= last->base + last->size + size) { + while (next != NULL) { + if (next->base - (last->base + last->size) >= size) { // we found a spot (it'll be filled up below) break; } + last = next; next = next->address_space_next; } - if ((addressSpace->base + (addressSpace->size - 1)) - >= (last->base + last->size + (size - 1))) { + if (next != NULL || addressSpace->base + (addressSpace->size - 1) + - last->base + (last->size - 1) >= size) { // got a spot foundSpot = true; if (last->base + last->size <= start) @@ -1251,6 +1283,7 @@ area->base = last->base + last->size; break; } + // we didn't find a free spot in the requested range, so we'll // try again without any restrictions start = addressSpace->base; @@ -1260,26 +1293,11 @@ case B_EXACT_ADDRESS: // see if we can create it exactly here - if (!last) { - if (!next || (next->base >= start + size)) { - foundSpot = true; - area->base = start; - break; - } - } else { - if (next) { - if (last->base + last->size <= start - && next->base >= start + size) { - foundSpot = true; - area->base = start; - break; - } - } else { - if ((last->base + (last->size - 1)) <= start - 1) { - foundSpot = true; - area->base = start; - } - } + if ((last == NULL || last->base + (last->size - 1) < start) + && (next == NULL || next->base > start + (size - 1))) { + foundSpot = true; + area->base = start; + break; } break; default: @@ -1297,6 +1315,7 @@ area->address_space_next = addressSpace->areas; addressSpace->areas = area; } + addressSpace->change_count++; return B_OK; } @@ -1317,7 +1336,7 @@ switch (addressSpec) { case B_EXACT_ADDRESS: searchBase = (addr_t)*_address; - searchEnd = (addr_t)*_address + size; + searchEnd = (addr_t)*_address + (size - 1); break; case B_BASE_ADDRESS: @@ -1673,6 +1692,46 @@ status_t +vm_block_address_range(const char* name, void* address, addr_t size) +{ + if (!arch_vm_supports_protection(0)) + return B_NOT_SUPPORTED; + + AddressSpaceWriteLocker locker; + status_t status = locker.SetTo(vm_kernel_address_space_id()); + if (status != B_OK) + return status; + + vm_address_space* addressSpace = locker.AddressSpace(); + + // create an anonymous cache + vm_cache* cache; + status = VMCacheFactory::CreateAnonymousCache(cache, false, 0, 0, false); + if (status != B_OK) + return status; + + cache->temporary = 1; + cache->virtual_end = size; + cache->scan_skip = 1; + cache->Lock(); + + vm_area* area; + void* areaAddress = address; + status = map_backing_store(addressSpace, cache, &areaAddress, 0, size, + B_EXACT_ADDRESS, B_ALREADY_WIRED, 0, REGION_NO_PRIVATE_MAP, &area, name, + false, true); + if (status != B_OK) { + cache->ReleaseRefAndUnlock(); + return status; + } + + cache->Unlock(); + area->cache_type = CACHE_TYPE_RAM; + return area->id; +} + + +status_t vm_unreserve_address_range(team_id team, void* address, addr_t size) { AddressSpaceWriteLocker locker(team); @@ -4343,6 +4402,9 @@ B_ALREADY_WIRED, B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA); } + void* lastPage = (void*)ROUNDDOWN(~(addr_t)0, B_PAGE_SIZE); + vm_block_address_range("overflow protection", lastPage, B_PAGE_SIZE); + #if DEBUG_CACHE_LIST create_area("cache info table", (void**)&sCacheInfoTable, B_ANY_KERNEL_ADDRESS, @@ -4879,12 +4941,20 @@ } if (isWrite && (protection & (B_WRITE_AREA | (isUser ? 0 : B_KERNEL_WRITE_AREA))) == 0) { - dprintf("write access attempted on read-only area 0x%lx at %p\n", - area->id, (void*)originalAddress); + dprintf("write access attempted on write-protected area 0x%lx at" + " %p\n", area->id, (void*)originalAddress); TPF(PageFaultError(area->id, - VMPageFaultTracing::PAGE_FAULT_ERROR_READ_ONLY)); + VMPageFaultTracing::PAGE_FAULT_ERROR_WRITE_PROTECTED)); status = B_PERMISSION_DENIED; break; + } else if (!isWrite && (protection + & (B_READ_AREA | (isUser ? 0 : B_KERNEL_READ_AREA))) == 0) { + dprintf("read access attempted on read-protected area 0x%lx at" + " %p\n", area->id, (void*)originalAddress); + TPF(PageFaultError(area->id, + VMPageFaultTracing::PAGE_FAULT_ERROR_READ_PROTECTED)); + status = B_PERMISSION_DENIED; + break; } // We have the area, it was a valid access, so let's try to resolve the From marcusoverhagen at mail.berlios.de Thu Sep 10 21:03:58 2009 From: marcusoverhagen at mail.berlios.de (marcusoverhagen at mail.berlios.de) Date: Thu, 10 Sep 2009 21:03:58 +0200 Subject: [Haiku-commits] r33039 - haiku/trunk/src/add-ons/kernel/bus_managers/ata Message-ID: <200909101903.n8AJ3wcJ004118@sheep.berlios.de> Author: marcusoverhagen Date: 2009-09-10 21:03:55 +0200 (Thu, 10 Sep 2009) New Revision: 33039 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33039&view=rev Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h Log: Clear pending interrupts after reset and timeouts Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp 2009-09-10 18:57:00 UTC (rev 33038) +++ haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp 2009-09-10 19:03:55 UTC (rev 33039) @@ -405,6 +405,9 @@ _FlushAndWait(150 * 1000); + // read status to clear any pending interrupts + _Status(); + return B_OK; } @@ -564,7 +567,8 @@ status_t ATAChannel::RecoverLostInterrupt() { - uint8 status = AltStatus(); + // read status to clear any pending interrupts + uint8 status = _Status(); if (status & (ATA_STATUS_BUSY | ATA_STATUS_DATA_REQUEST)) { TRACE_ERROR("RecoverLostInterrupt: device busy, status 0x%02x\n", status); return B_ERROR; @@ -828,7 +832,16 @@ return fController->write_command_block_regs(fCookie, taskFile, mask); } +uint8 +ATAChannel::_Status() +{ + ata_task_file taskFile; + if (_ReadRegs(&taskFile, ATA_MASK_STATUS) != B_OK) + return 0x01; + return taskFile.read.status; +} + status_t ATAChannel::_WriteControl(uint8 value) { Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h 2009-09-10 18:57:00 UTC (rev 33038) +++ haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h 2009-09-10 19:03:55 UTC (rev 33039) @@ -120,6 +120,7 @@ status_t _WriteRegs(ata_task_file *taskFile, ata_reg_mask mask); status_t _WriteControl(uint8 value); + uint8 _Status(); void _FlushAndWait(bigtime_t waitTime); From marcusoverhagen at mail.berlios.de Thu Sep 10 21:07:43 2009 From: marcusoverhagen at mail.berlios.de (marcusoverhagen at mail.berlios.de) Date: Thu, 10 Sep 2009 21:07:43 +0200 Subject: [Haiku-commits] r33040 - in haiku/trunk: build/config_headers src/add-ons/kernel/generic/ata_adapter Message-ID: <200909101907.n8AJ7hlC004451@sheep.berlios.de> Author: marcusoverhagen Date: 2009-09-10 21:07:40 +0200 (Thu, 10 Sep 2009) New Revision: 33040 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33040&view=rev Modified: haiku/trunk/build/config_headers/tracing_config.h haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c Log: added tracing of ATA DMA transfers Modified: haiku/trunk/build/config_headers/tracing_config.h =================================================================== --- haiku/trunk/build/config_headers/tracing_config.h 2009-09-10 19:03:55 UTC (rev 33039) +++ haiku/trunk/build/config_headers/tracing_config.h 2009-09-10 19:07:40 UTC (rev 33040) @@ -20,6 +20,7 @@ #define AHCI_PORT_TRACING 0 #define ATA_TRACING 0 +#define ATA_DMA_TRACING 0 #define ATAPI_TRACING 0 #define BFS_TRACING 0 #define BLOCK_CACHE_BLOCK_TRACING 0 Modified: haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c =================================================================== --- haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-09-10 19:03:55 UTC (rev 33039) +++ haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-09-10 19:07:40 UTC (rev 33040) @@ -12,6 +12,7 @@ #include #include +#include #define debug_level_flow 0 #define debug_level_error 3 @@ -25,13 +26,18 @@ #define INTERRUPT_TRACING 0 #if INTERRUPT_TRACING - #include #define TRACE_INT(a...) ktrace_printf(a) #else #define TRACE_INT(a...) #endif +#if ATA_DMA_TRACING + #define TRACE_DMA(x...) ktrace_printf(x) +#else + #define TRACE_DMA(x...) +#endif + static ata_for_controller_interface *sATA; static device_manager_info *sDeviceManager; @@ -240,12 +246,17 @@ prd_entry *prd = channel->prdt; int i; + TRACE_DMA("ata_adapter: prepare_dma (%s) %u entrys:\n", + writeToDevice ? "write" : "read", sgListCount); + for (i = sgListCount - 1, prd = channel->prdt; i >= 0; --i, ++prd, ++sgList) { prd->address = B_HOST_TO_LENDIAN_INT32(pci->ram_address(device, sgList->address)); // 0 means 64K - this is done automatically be discarding upper 16 bits prd->count = B_HOST_TO_LENDIAN_INT16((uint16)sgList->size); prd->EOT = i == 0; + TRACE_DMA("ata_adapter: %p, %ld => 0x%08x, %d, %d\n", + sgList->address, sgList->size, prd->address, prd->count, prd->EOT); SHOW_FLOW( 4, "%x, %x, %d", (int)prd->address, prd->count, prd->EOT); } From korli at mail.berlios.de Thu Sep 10 22:27:10 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Thu, 10 Sep 2009 22:27:10 +0200 Subject: [Haiku-commits] r33041 - haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/es1370 Message-ID: <200909102027.n8AKRAYn013024@sheep.berlios.de> Author: korli Date: 2009-09-10 22:27:10 +0200 (Thu, 10 Sep 2009) New Revision: 33041 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33041&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.c Log: fixed es1370 build Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.c =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.c 2009-09-10 19:07:40 UTC (rev 33040) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.c 2009-09-10 20:27:10 UTC (rev 33041) @@ -500,8 +500,8 @@ void *settings_handle; pci_info info; int ix = 0; + status_t err; num_cards = 0; - status_t err; PRINT(("init_driver()\n")); From revol at free.fr Thu Sep 10 22:41:22 2009 From: revol at free.fr (=?utf-8?q?Fran=C3=A7ois?= Revol) Date: Thu, 10 Sep 2009 22:41:22 +0200 CEST Subject: [Haiku-commits] =?utf-8?q?r33041_-_haiku/trunk/src/add-ons/kernel?= =?utf-8?q?/drivers/audio/ac97/es1370?= In-Reply-To: <200909102027.n8AKRAYn013024@sheep.berlios.de> Message-ID: <2564445172-BeMail@laptop> > Author: korli > Date: 2009-09-10 22:27:10 +0200 (Thu, 10 Sep 2009) > New Revision: 33041 > ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33041&view=rev > > Modified: > haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.c > Log: > fixed es1370 build Oops thanks, gcc4... Still need to get OSS4 to use reservation too. Fran?ois. From marcusoverhagen at mail.berlios.de Thu Sep 10 23:11:39 2009 From: marcusoverhagen at mail.berlios.de (marcusoverhagen at mail.berlios.de) Date: Thu, 10 Sep 2009 23:11:39 +0200 Subject: [Haiku-commits] r33042 - haiku/trunk/src/add-ons/kernel/bus_managers/ata Message-ID: <200909102111.n8ALBd3x016762@sheep.berlios.de> Author: marcusoverhagen Date: 2009-09-10 23:11:36 +0200 (Thu, 10 Sep 2009) New Revision: 33042 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33042&view=rev Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAHelper.cpp haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h Log: Write device identification into syslog. Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp 2009-09-10 20:27:10 UTC (rev 33041) +++ haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp 2009-09-10 21:11:36 UTC (rev 33042) @@ -832,6 +832,7 @@ return fController->write_command_block_regs(fCookie, taskFile, mask); } + uint8 ATAChannel::_Status() { Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp 2009-09-10 20:27:10 UTC (rev 33041) +++ haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp 2009-09-10 21:11:36 UTC (rev 33042) @@ -512,6 +512,22 @@ return B_ERROR; } + if (1) { + // print device information + char modelNumber[sizeof(fInfoBlock.model_number) + 1]; + char serialNumber[sizeof(fInfoBlock.serial_number) + 1]; + char firmwareRev[sizeof(fInfoBlock.firmware_revision) + 1]; + strlcpy(modelNumber, fInfoBlock.model_number, sizeof(modelNumber)); + strlcpy(serialNumber, fInfoBlock.serial_number, sizeof(serialNumber)); + strlcpy(firmwareRev, fInfoBlock.firmware_revision, sizeof(firmwareRev)); + swap_words(modelNumber, sizeof(modelNumber) - 1); + swap_words(serialNumber, sizeof(serialNumber) - 1); + swap_words(firmwareRev, sizeof(firmwareRev) - 1); + TRACE_ALWAYS("model number: %s\n", modelNumber); + TRACE_ALWAYS("serial number: %s\n", serialNumber); + TRACE_ALWAYS("firmware rev.: %s\n", firmwareRev); + } + return B_OK; } Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAHelper.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAHelper.cpp 2009-09-10 20:27:10 UTC (rev 33041) +++ haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAHelper.cpp 2009-09-10 21:11:36 UTC (rev 33042) @@ -64,3 +64,15 @@ return size == 0; } + + +void +swap_words(void *data, size_t size) +{ + uint16 *word = (uint16 *)data; + size_t count = size / 2; + while (count--) { + *word = (*word << 8) | (*word >> 8); + word++; + } +} Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h 2009-09-10 20:27:10 UTC (rev 33041) +++ haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h 2009-09-10 21:11:36 UTC (rev 33042) @@ -55,7 +55,9 @@ bool copy_sg_data(scsi_ccb *ccb, uint offset, uint allocationLength, void *buffer, int size, bool toBuffer); +void swap_words(void *data, size_t size); + class ATAChannel { public: ATAChannel(device_node *node); From marcusoverhagen at mail.berlios.de Thu Sep 10 23:55:13 2009 From: marcusoverhagen at mail.berlios.de (marcusoverhagen at mail.berlios.de) Date: Thu, 10 Sep 2009 23:55:13 +0200 Subject: [Haiku-commits] r33043 - haiku/trunk/src/add-ons/kernel/bus_managers/ata Message-ID: <200909102155.n8ALtDcQ020011@sheep.berlios.de> Author: marcusoverhagen Date: 2009-09-10 23:55:10 +0200 (Thu, 10 Sep 2009) New Revision: 33043 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33043&view=rev Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp Log: cleanup Modified: haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp 2009-09-10 21:11:36 UTC (rev 33042) +++ haiku/trunk/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp 2009-09-10 21:55:10 UTC (rev 33043) @@ -523,7 +523,7 @@ swap_words(modelNumber, sizeof(modelNumber) - 1); swap_words(serialNumber, sizeof(serialNumber) - 1); swap_words(firmwareRev, sizeof(firmwareRev) - 1); - TRACE_ALWAYS("model number: %s\n", modelNumber); + TRACE_ALWAYS("model number: %s\n", modelNumber); TRACE_ALWAYS("serial number: %s\n", serialNumber); TRACE_ALWAYS("firmware rev.: %s\n", firmwareRev); } From marcusoverhagen at mail.berlios.de Thu Sep 10 23:56:47 2009 From: marcusoverhagen at mail.berlios.de (marcusoverhagen at mail.berlios.de) Date: Thu, 10 Sep 2009 23:56:47 +0200 Subject: [Haiku-commits] r33044 - haiku/trunk/src/add-ons/kernel/busses/scsi/ahci Message-ID: <200909102156.n8ALulEf020163@sheep.berlios.de> Author: marcusoverhagen Date: 2009-09-10 23:56:46 +0200 (Thu, 10 Sep 2009) New Revision: 33044 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33044&view=rev Modified: haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci.c Log: cleanup, remove color codes Modified: haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci.c =================================================================== --- haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci.c 2009-09-10 21:55:10 UTC (rev 33043) +++ haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci.c 2009-09-10 21:56:46 UTC (rev 33044) @@ -9,7 +9,7 @@ #include -#define TRACE(a...) dprintf("\33[35mahci:\33[0m " a) +#define TRACE(a...) dprintf("ahci: " a) #define FLOW(a...) dprintf("ahci: " a) #define AHCI_ID_GENERATOR "ahci/id" From marcusoverhagen at mail.berlios.de Thu Sep 10 23:57:22 2009 From: marcusoverhagen at mail.berlios.de (marcusoverhagen at mail.berlios.de) Date: Thu, 10 Sep 2009 23:57:22 +0200 Subject: [Haiku-commits] r33045 - haiku/trunk/src/add-ons/kernel/busses/scsi/ahci Message-ID: <200909102157.n8ALvMEe020257@sheep.berlios.de> Author: marcusoverhagen Date: 2009-09-10 23:57:20 +0200 (Thu, 10 Sep 2009) New Revision: 33045 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33045&view=rev Modified: haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp Log: cleanup Modified: haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp 2009-09-10 21:56:46 UTC (rev 33044) +++ haiku/trunk/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp 2009-09-10 21:57:20 UTC (rev 33045) @@ -632,7 +632,7 @@ swap_words(serialNumber, sizeof(serialNumber) - 1); swap_words(firmwareRev, sizeof(firmwareRev) - 1); - TRACE("model number: %s\n", modelNumber); + TRACE("model number: %s\n", modelNumber); TRACE("serial number: %s\n", serialNumber); TRACE("firmware rev.: %s\n", firmwareRev); From korli at mail.berlios.de Fri Sep 11 00:03:37 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Fri, 11 Sep 2009 00:03:37 +0200 Subject: [Haiku-commits] r33046 - haiku/trunk/src/add-ons/kernel/drivers/audio/hda Message-ID: <200909102203.n8AM3bBK020757@sheep.berlios.de> Author: korli Date: 2009-09-11 00:03:37 +0200 (Fri, 11 Sep 2009) New Revision: 33046 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33046&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp Log: prints out stream status errors 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-09-10 21:57:20 UTC (rev 33045) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-09-10 22:03:37 UTC (rev 33046) @@ -98,8 +98,13 @@ stream->Write8(HDAC_STREAM_STATUS, status); + if (status & STATUS_FIFO_ERROR) + dprintf("hda: stream fifo error (id:%ld)\n", stream->id); + if (status & STATUS_DESCRIPTOR_ERROR) + dprintf("hda: stream descriptor error (id:%ld)\n", stream->id); + if ((status & STATUS_BUFFER_COMPLETED) == 0) { - dprintf("hda: stream status %x\n", status); + dprintf("hda: stream buffer not completed (id:%ld)\n", stream->id); return; } From oortwijn at gmail.com Fri Sep 11 00:06:11 2009 From: oortwijn at gmail.com (Jeroen Oortwijn) Date: Fri, 11 Sep 2009 00:06:11 +0200 Subject: [Haiku-commits] r32997 - in haiku/branches/releases/r1alpha1: build/jam docs/userguide/en docs/userguide/en/applications docs/userguide/images docs/userguide/images/gui-images headers/private/shared src/apps/installer src/kits/shared In-Reply-To: <14299aa90909101501g489c1b84ne195bec2207f590@mail.gmail.com> References: <14299aa90909101501g489c1b84ne195bec2207f590@mail.gmail.com> Message-ID: <14299aa90909101506n6a95a44bh9865668c37aebe52@mail.gmail.com> > * Merged changeset r32995 (Installer links fixes). I think that this changeset didn't get merged with this commit, am I correct? - Jeroen From korli at mail.berlios.de Fri Sep 11 00:55:06 2009 From: korli at mail.berlios.de (korli at mail.berlios.de) Date: Fri, 11 Sep 2009 00:55:06 +0200 Subject: [Haiku-commits] r33047 - haiku/trunk/src/add-ons/kernel/drivers/audio/hda Message-ID: <200909102255.n8AMt61u013546@sheep.berlios.de> Author: korli Date: 2009-09-11 00:55:02 +0200 (Fri, 11 Sep 2009) New Revision: 33047 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33047&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp Log: try to align the offset to be more compliant 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-09-10 22:03:37 UTC (rev 33046) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-09-10 22:55:02 UTC (rev 33047) @@ -119,13 +119,6 @@ stream->frames_count += stream->buffer_length; stream->buffer_cycle = position / bufferSize; - // playback interrupts come early, offsets don't work on non intel - // TODO find out why - if (stream->type == STREAM_PLAYBACK - && stream->controller->pci_info.vendor_id != INTEL_VENDORID) { - stream->buffer_cycle++; - } - release_spinlock(&stream->lock); release_sem_etc(controller->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE); @@ -563,13 +556,18 @@ // TODO check on other vendors, see in stream_handle_interrupt() // Tested only on Intel ICH8 uint32 offset = 0; - if (stream->type == STREAM_PLAYBACK && stream->controller->pci_info.vendor_id == INTEL_VENDORID) { - if (stream->sample_size == 2) - offset = 6; - else if (stream->sample_size > 2) - offset = 8; + if (stream->type == STREAM_PLAYBACK) { + if (stream->controller->pci_info.vendor_id == INTEL_VENDORID) { + if (stream->sample_size == 2) + offset = 3; + else if (stream->sample_size > 2) + offset = 4; + } else { + offset = 11; + } + offset *= 64; + offset = ALIGN(offset, 128); } - offset *= 32; /* Calculate size of buffer (aligned to 128 bytes) */ bufferSize = stream->sample_size * stream->num_channels From superstippi at gmx.de Fri Sep 11 02:56:43 2009 From: superstippi at gmx.de (Stephan Assmus) Date: Fri, 11 Sep 2009 00:56:43 +0000 Subject: [Haiku-commits] r32997 - in haiku/branches/releases/r1alpha1: build/jam docs/userguide/en docs/userguide/en/applications docs/userguide/images docs/userguide/images/gui-images headers/private/shared src/apps/installer src/kits/shared In-Reply-To: <14299aa90909101506n6a95a44bh9865668c37aebe52@mail.gmail.com> References: <14299aa90909101501g489c1b84ne195bec2207f590@mail.gmail.com> <14299aa90909101506n6a95a44bh9865668c37aebe52@mail.gmail.com> Message-ID: <20090911005643.353.1@bepc.1252629908.fake> On 2009-09-10 at 22:06:11 [+0000], Jeroen Oortwijn wrote: > > * Merged changeset r32995 (Installer links fixes). > > I think that this changeset didn't get merged with this commit, am I > correct? Possible, need to check. I am very short on time right now, don't know if I get around to it soon enough. Also, I will be out of Internet access probably until Monday. So if perhaps Michael or someone else could take over the merging, that would be great, sorry for any inconvenience! Best regards, -Stephan From aljen at mail.berlios.de Fri Sep 11 00:57:46 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Fri, 11 Sep 2009 00:57:46 +0200 Subject: [Haiku-commits] r33048 - haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe Message-ID: <200909102257.n8AMvkEQ016642@sheep.berlios.de> Author: aljen Date: 2009-09-11 00:57:37 +0200 (Fri, 11 Sep 2009) New Revision: 33048 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33048&view=rev Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/Jamfile haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/SoftPipeRenderer.cpp haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_bitmap_wrapper.cpp haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_bitmap_wrapper.h Log: Added option to dump render buffer as a bitmap in every frame (debug) Draw BBitmap with B_ORIGIN, taken from MesaRenderer Temporary set all bytes in allocated bitmap to 0xcc (debug) Map/unmap texture buffer in flush_frontbuffer Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/Jamfile 2009-09-10 22:55:02 UTC (rev 33047) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/Jamfile 2009-09-10 22:57:37 UTC (rev 33048) @@ -81,5 +81,5 @@ sp_tex_sample.c sp_texture.c sp_tile_cache.c - : libGL.so libmesa.a be $(TARGET_LIBSUPC++) + : libGL.so libmesa.a be translation $(TARGET_LIBSUPC++) ; Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/SoftPipeRenderer.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/SoftPipeRenderer.cpp 2009-09-10 22:55:02 UTC (rev 33047) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/SoftPipeRenderer.cpp 2009-09-10 22:57:37 UTC (rev 33048) @@ -69,7 +69,7 @@ fWidth = fNewWidth = (GLint)b.IntegerWidth(); fHeight = fNewHeight = (GLint)b.IntegerHeight(); _AllocateBitmap(); - + beg = time(NULL); fContext = hsp_create_layer_context(fBitmap, 0); TRACE("context:\t%d\n", (int)fContext); @@ -103,17 +103,17 @@ fNewWidth = fInfo->window_bounds.right - fInfo->window_bounds.left;// + 1; fNewHeight = fInfo->window_bounds.bottom - fInfo->window_bounds.top;// + 1; } - + if (fBitmap && cs == fColorSpace && fNewWidth == fWidth && fNewHeight == fHeight) { hsp_make_current(fBitmap, fContext); return; } - + fColorSpace = cs; fWidth = fNewWidth; fHeight = fNewHeight; - + _AllocateBitmap(); hsp_make_current(fBitmap, fContext); } @@ -142,7 +142,7 @@ if (!fDirectModeEnabled || fInfo == NULL) { GLView()->LockLooper(); - GLView()->DrawBitmap(fBitmap); + GLView()->DrawBitmap(fBitmap, B_ORIGIN); GLView()->UnlockLooper(); return; } @@ -152,7 +152,7 @@ if (fInfo->window_bounds.bottom - fInfo->window_bounds.top != fBitmap->Bounds().IntegerHeight() + 1 || fInfo->window_bounds.right - fInfo->window_bounds.left - != fBitmap->Bounds().IntegerWidth() + 1) { + != fBitmap->Bounds().IntegerWidth() + 1) { return; } uint8 bytesPerPixel = fInfo->bits_per_pixel / 8; @@ -162,7 +162,7 @@ for (uint32 i = 0; i < fInfo->clip_list_count; i++) { clipping_rect *clip = &fInfo->clip_list[i]; int32 height = clip->bottom - clip->top + 1; - int32 bytesWidth + int32 bytesWidth = (clip->right - clip->left + 1) * bytesPerPixel; bytesWidth -= bytesPerPixel; uint8 *p = (uint8 *)fInfo->bits + clip->top @@ -316,4 +316,8 @@ return; BRect rect(0.0, 0.0, fWidth - 1, fHeight - 1); fBitmap = new BBitmap(rect, fColorSpace); + // debug.. + void *data = fBitmap->Bits(); + memset(data, 0xcc, fBitmap->BitsLength()); } + Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.c 2009-09-10 22:55:02 UTC (rev 33047) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.c 2009-09-10 22:57:37 UTC (rev 33048) @@ -192,7 +192,7 @@ struct pipe_screen *screen; winsys = CALLOC_STRUCT(pipe_winsys); - + if (!winsys) { TRACE("%s> can't alloc winsys!\n", __FUNCTION__); return NULL; @@ -241,6 +241,7 @@ "surface = %p, bitmap = %p\n", screen, surface, bitmap); struct softpipe_texture *texture; struct haiku_softpipe_buffer *buffer; + void *data; texture = softpipe_texture(surface->texture); @@ -249,9 +250,27 @@ int32 bitsLength = get_bitmap_bits_length(bitmap); int32 width, height; get_bitmap_size(bitmap, &width, &height); - + +#if 0 + TRACE("surface offset : %d\n", surface->offset); + TRACE("surface width : %d\n", surface->width); + TRACE("surface height : %d\n", surface->height); + TRACE("surface bytes per line : %d\n", texture->stride[surface->level]); + TRACE("bitmap width : %d\n", width); + TRACE("bitmap height : %d\n", height); + TRACE("bitmap bits length : %d\n", bitsLength); + TRACE("bitmap bytes per line : %d\n", bitsLength / height); +#endif + if (width < 1 || height < 1) return; - copy_bitmap_bits(bitmap, buffer->data, bitsLength); + data = screen->buffer_map(screen, texture->buffer, 0); + + copy_bitmap_bits(bitmap, data + surface->offset, bitsLength); + + screen->buffer_unmap(screen, texture->buffer); + +// dump_bitmap(bitmap); } + Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_bitmap_wrapper.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_bitmap_wrapper.cpp 2009-09-10 22:55:02 UTC (rev 33047) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_bitmap_wrapper.cpp 2009-09-10 22:57:37 UTC (rev 33048) @@ -10,10 +10,18 @@ #include #include +#include +#include +#include +#include #include "hsp_bitmap_wrapper.h" + extern "C" { + +static int frameNo = 0; + Bitmap* create_bitmap(int32 width, int32 height, color_space colorSpace) { @@ -23,8 +31,9 @@ return NULL; } + void -get_bitmap_size(const Bitmap *bitmap, int32 *width, int32 *height) +get_bitmap_size(const Bitmap* bitmap, int32* width, int32* height) { BBitmap *bb = (BBitmap*)bitmap; if (bb && width && height) { @@ -35,8 +44,9 @@ } } + color_space -get_bitmap_color_space(const Bitmap *bitmap) +get_bitmap_color_space(const Bitmap* bitmap) { BBitmap *bb = (BBitmap*)bitmap; if (bb) @@ -44,8 +54,9 @@ return B_NO_COLOR_SPACE; } + void -copy_bitmap_bits(const Bitmap *bitmap, void *data, int32 length) +copy_bitmap_bits(const Bitmap* bitmap, void* data, int32 length) { BBitmap *bb = (BBitmap*)bitmap; if (bb) { @@ -54,15 +65,17 @@ } } + void -delete_bitmap(Bitmap *bitmap) +delete_bitmap(Bitmap* bitmap) { BBitmap *bb = (BBitmap*)bitmap; delete bb; } + int32 -get_bitmap_bytes_per_row(const Bitmap *bitmap) +get_bitmap_bytes_per_row(const Bitmap* bitmap) { BBitmap *bb = (BBitmap*)bitmap; if (bb) @@ -70,8 +83,9 @@ return 0; } + int32 -get_bitmap_bits_length(const Bitmap *bitmap) +get_bitmap_bits_length(const Bitmap* bitmap) { BBitmap *bb = (BBitmap*)bitmap; if (bb) @@ -79,4 +93,25 @@ return 0; } + +void +dump_bitmap(const Bitmap* bitmap) +{ + + BBitmap *bb = (BBitmap*)bitmap; + if (!bb) + return; + + BString filename("/boot/home/frame_"); + filename << (int32)frameNo << ".png"; + + BTranslatorRoster *roster = BTranslatorRoster::Default(); + BBitmapStream stream(bb); + BFile dump(filename, B_CREATE_FILE | B_WRITE_ONLY); + + roster->Translate(&stream, NULL, NULL, &dump, 0); + + frameNo++; } + +} Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_bitmap_wrapper.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_bitmap_wrapper.h 2009-09-10 22:55:02 UTC (rev 33047) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_bitmap_wrapper.h 2009-09-10 22:57:37 UTC (rev 33048) @@ -20,27 +20,39 @@ extern "C" { #endif + Bitmap* create_bitmap(int32 width, int32 height, color_space colorSpace); + void -get_bitmap_size(const Bitmap *bitmap, int32 *width, int32 *height); +get_bitmap_size(const Bitmap* bitmap, int32* width, int32* height); + color_space -get_bitmap_color_space(const Bitmap *bitmap); +get_bitmap_color_space(const Bitmap* bitmap); + void -copy_bitmap_bits(const Bitmap *bitmap, void *data, int32 length); +copy_bitmap_bits(const Bitmap* bitmap, void* data, int32 length); + int32 -get_bitmap_bytes_per_row(const Bitmap *bitmap); +get_bitmap_bytes_per_row(const Bitmap* bitmap); + int32 -get_bitmap_bits_length(const Bitmap *bitmap); +get_bitmap_bits_length(const Bitmap* bitmap); + void -delete_bitmap(Bitmap *bitmap); +delete_bitmap(Bitmap* bitmap); + +void +dump_bitmap(const Bitmap* bitmap); + + #ifdef __cplusplus } #endif From mmlr at mlotz.ch Thu Sep 10 22:58:41 2009 From: mmlr at mlotz.ch (Michael Lotz) Date: Thu, 10 Sep 2009 22:58:41 Subject: [Haiku-commits] r32997 - in haiku/branches/releases/r1alpha1: build/jam docs/userguide/en docs/userguide/en/applications docs/userguide/images docs/userguide/images/gui-images headers/private/shared src/apps/installer src/kits/shared In-Reply-To: <20090911005643.353.1@bepc.1252629908.fake> Message-ID: <16942440889-BeMail@laptop> > > On 2009-09-10 at 22:06:11 [+0000], Jeroen Oortwijn > > wrote: > > > * Merged changeset r32995 (Installer links fixes). > > > > I think that this changeset didn't get merged with this commit, am > > I > > correct? > > Possible, need to check. I am very short on time right now, don't > know if I > get around to it soon enough. Also, I will be out of Internet access > probably until Monday. So if perhaps Michael or someone else could > take > over the merging, that would be great, sorry for any inconvenience! I can take care of it. There shouldn't be too much left I guess. Regards Michael From zooey at mail.berlios.de Fri Sep 11 00:59:28 2009 From: zooey at mail.berlios.de (zooey at mail.berlios.de) Date: Fri, 11 Sep 2009 00:59:28 +0200 Subject: [Haiku-commits] r33049 - haiku/trunk/src/servers/net Message-ID: <200909102259.n8AMxSet018077@sheep.berlios.de> Author: zooey Date: 2009-09-11 00:59:27 +0200 (Fri, 11 Sep 2009) New Revision: 33049 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33049&view=rev Modified: haiku/trunk/src/servers/net/DHCPClient.cpp Log: * DHCPClient now passes communication problems with NetServer on to caller, as a result failed DHPC-requests will no longer result in bogus static configurations (but an auto-config IP-address will be picked instead) Modified: haiku/trunk/src/servers/net/DHCPClient.cpp =================================================================== --- haiku/trunk/src/servers/net/DHCPClient.cpp 2009-09-10 22:57:37 UTC (rev 33048) +++ haiku/trunk/src/servers/net/DHCPClient.cpp 2009-09-10 22:59:27 UTC (rev 33049) @@ -550,10 +550,9 @@ // configure interface BMessage reply; - Target().SendMessage(&fConfiguration, &reply); - - if (reply.FindInt32("status", &fStatus) != B_OK) - status = B_OK; + status = Target().SendMessage(&fConfiguration, &reply); + if (status == B_OK) + status = reply.FindInt32("status", &fStatus); break; } From zooey at mail.berlios.de Fri Sep 11 01:11:11 2009 From: zooey at mail.berlios.de (zooey at mail.berlios.de) Date: Fri, 11 Sep 2009 01:11:11 +0200 Subject: [Haiku-commits] r33050 - in haiku/trunk: headers/os/app headers/private/app src/kits/app Message-ID: <200909102311.n8ANBBXj000245@sheep.berlios.de> Author: zooey Date: 2009-09-11 01:10:51 +0200 (Fri, 11 Sep 2009) New Revision: 33050 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33050&view=rev Modified: haiku/trunk/headers/os/app/Message.h haiku/trunk/headers/private/app/MessagePrivate.h haiku/trunk/src/kits/app/InitTerminateLibBe.cpp haiku/trunk/src/kits/app/Message.cpp Log: Closing ticket #4465: Net_server starts services by invoking fork() followed by exec(). If the latter fails (for instance because the service isn't installed), the forked child is invoking exit(). This in turn unloads libbe, triggering static cleanup code in BMessage, which deletes a couple of message ports that were inherited from the parent during the fork. After that, net_server was desparately missing those ports and no longer worked reliably. * in InitTerminateLibBe, we now register an atfork-(child-)handler, which takes care to re-initialize the static reply ports used by BMessage code * added BMessage::Private::StaticReInitForkedChild wrapper and BMessage::_StaticReInitForkedChild() implementation which overwrites the inherited port IDs with a set of own ports Modified: haiku/trunk/headers/os/app/Message.h =================================================================== --- haiku/trunk/headers/os/app/Message.h 2009-09-10 22:59:27 UTC (rev 33049) +++ haiku/trunk/headers/os/app/Message.h 2009-09-10 23:10:51 UTC (rev 33050) @@ -339,6 +339,7 @@ port_id port, int32 token, bigtime_t timeout); static void _StaticInit(); + static void _StaticReInitForkedChild(); static void _StaticCleanup(); static void _StaticCacheCleanup(); static int32 _StaticGetCachedReplyPort(); Modified: haiku/trunk/headers/private/app/MessagePrivate.h =================================================================== --- haiku/trunk/headers/private/app/MessagePrivate.h 2009-09-10 22:59:27 UTC (rev 33049) +++ haiku/trunk/headers/private/app/MessagePrivate.h 2009-09-10 23:10:51 UTC (rev 33050) @@ -208,6 +208,12 @@ } static void + StaticReInitForkedChild() + { + BMessage::_StaticReInitForkedChild(); + } + + static void StaticCleanup() { BMessage::_StaticCleanup(); Modified: haiku/trunk/src/kits/app/InitTerminateLibBe.cpp =================================================================== --- haiku/trunk/src/kits/app/InitTerminateLibBe.cpp 2009-09-10 22:59:27 UTC (rev 33049) +++ haiku/trunk/src/kits/app/InitTerminateLibBe.cpp 2009-09-10 23:10:51 UTC (rev 33050) @@ -10,6 +10,7 @@ #include +#include #include #include @@ -22,6 +23,17 @@ #define OUT printf +static void +initialize_forked_child() +{ + DBG(OUT("initialize_forked_child()\n")); + + BMessage::Private::StaticReInitForkedChild(); + + DBG(OUT("initialize_forked_child() done\n")); +} + + extern "C" void initialize_before() { @@ -30,6 +42,8 @@ BMessage::Private::StaticInit(); BRoster::Private::InitBeRoster(); + atfork(initialize_forked_child); + DBG(OUT("initialize_before() done\n")); } Modified: haiku/trunk/src/kits/app/Message.cpp =================================================================== --- haiku/trunk/src/kits/app/Message.cpp 2009-09-10 22:59:27 UTC (rev 33049) +++ haiku/trunk/src/kits/app/Message.cpp 2009-09-10 23:10:51 UTC (rev 33050) @@ -1972,6 +1972,22 @@ void +BMessage::_StaticReInitForkedChild() +{ + DEBUG_FUNCTION_ENTER2; + + // overwrite the inherited ports with a set of our own + sReplyPorts[0] = create_port(1, "tmp_rport0"); + sReplyPorts[1] = create_port(1, "tmp_rport1"); + sReplyPorts[2] = create_port(1, "tmp_rport2"); + + sReplyPortInUse[0] = 0; + sReplyPortInUse[1] = 0; + sReplyPortInUse[2] = 0; +} + + +void BMessage::_StaticCleanup() { DEBUG_FUNCTION_ENTER2; From mmlr at mail.berlios.de Fri Sep 11 02:46:23 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 11 Sep 2009 02:46:23 +0200 Subject: [Haiku-commits] r33051 - in haiku/branches/releases/r1alpha1: build/jam data/system/boot Message-ID: <200909110046.n8B0kNdt023636@sheep.berlios.de> Author: mmlr Date: 2009-09-11 02:46:21 +0200 (Fri, 11 Sep 2009) New Revision: 33051 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33051&view=rev Modified: haiku/branches/releases/r1alpha1/build/jam/HaikuImage haiku/branches/releases/r1alpha1/data/system/boot/Bootscript haiku/branches/releases/r1alpha1/data/system/boot/InstallerFinishScript Log: Merging Installer link fixes from r32995 from trunk. They were missing in r32997. Modified: haiku/branches/releases/r1alpha1/build/jam/HaikuImage =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/HaikuImage 2009-09-10 23:10:51 UTC (rev 33050) +++ haiku/branches/releases/r1alpha1/build/jam/HaikuImage 2009-09-11 00:46:21 UTC (rev 33051) @@ -281,8 +281,8 @@ # Deskbar Application links AddDirectoryToHaikuImage home config be Applications ; DESKBAR_APPLICATIONS = ActivityMonitor CharacterMap CodyCam CDPlayer DeskCalc - DiskProbe DriveSetup DiskUsage Expander Icon-O-Matic Magnify Mail - MediaConverter MediaPlayer MidiPlayer People PoorMan Screenshot + DiskProbe DriveSetup DiskUsage Expander Icon-O-Matic Installer Magnify + Mail MediaConverter MediaPlayer MidiPlayer People PoorMan Screenshot SoundRecorder StyledEdit Terminal TV ; local linkTarget ; Modified: haiku/branches/releases/r1alpha1/data/system/boot/Bootscript =================================================================== --- haiku/branches/releases/r1alpha1/data/system/boot/Bootscript 2009-09-10 23:10:51 UTC (rev 33050) +++ haiku/branches/releases/r1alpha1/data/system/boot/Bootscript 2009-09-11 00:46:21 UTC (rev 33051) @@ -113,9 +113,8 @@ # Now ask the user if he wants to run the Installer or continue to the Desktop. if [ "$isReadOnly" = "yes" ]; then - # Create Installer links (using the write overlay) + # Create Installer link (using the write overlay) ln -sf /boot/system/apps/Installer /boot/home/Desktop/Installer - ln -sf /boot/system/apps/Installer /boot/home/config/be/Applications/Installer sleep 2s /bin/alert "Do you wish to run the Installer or continue booting to the Desktop?" "Desktop" "Installer" if [ $? -eq 1 ]; then Modified: haiku/branches/releases/r1alpha1/data/system/boot/InstallerFinishScript =================================================================== --- haiku/branches/releases/r1alpha1/data/system/boot/InstallerFinishScript 2009-09-10 23:10:51 UTC (rev 33050) +++ haiku/branches/releases/r1alpha1/data/system/boot/InstallerFinishScript 2009-09-11 00:46:21 UTC (rev 33051) @@ -15,8 +15,7 @@ mkdir -p "$target/var/tmp" -# remove Installer links -rm -f $target/home/Desktop/Installer -rm -f $target/home/config/be/Applications/Installer +# remove Installer link +rm -f "$target/home/Desktop/Installer" makebootable "$target" From mmlr at mail.berlios.de Fri Sep 11 02:54:07 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 11 Sep 2009 02:54:07 +0200 Subject: [Haiku-commits] r33052 - haiku/branches/releases/r1alpha1/src/kits/interface Message-ID: <200909110054.n8B0s76o024400@sheep.berlios.de> Author: mmlr Date: 2009-09-11 02:53:56 +0200 (Fri, 11 Sep 2009) New Revision: 33052 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33052&view=rev Modified: haiku/branches/releases/r1alpha1/src/kits/interface/TextView.cpp Log: Merging BTextView autoindent fixes from r32993 in trunk. Modified: haiku/branches/releases/r1alpha1/src/kits/interface/TextView.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/kits/interface/TextView.cpp 2009-09-11 00:46:21 UTC (rev 33051) +++ haiku/branches/releases/r1alpha1/src/kits/interface/TextView.cpp 2009-09-11 00:53:56 UTC (rev 33052) @@ -3627,14 +3627,13 @@ start = offset = OffsetAt(_LineAt(fSelStart)); while (ByteAt(offset) != '\0' && - (ByteAt(offset) == B_TAB || ByteAt(offset) == B_SPACE)) + (ByteAt(offset) == B_TAB || ByteAt(offset) == B_SPACE) + && offset < fSelStart) offset++; + _DoInsertText(bytes, numBytes, fSelStart, NULL); if (start != offset) _DoInsertText(Text() + start, offset - start, fSelStart, NULL); - - _DoInsertText(bytes, numBytes, fSelStart, NULL); - } else _DoInsertText(bytes, numBytes, fSelStart, NULL); From mmlr at mail.berlios.de Fri Sep 11 03:01:30 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 11 Sep 2009 03:01:30 +0200 Subject: [Haiku-commits] r33053 - haiku/branches/releases/r1alpha1/src/data/etc/keymaps Message-ID: <200909110101.n8B11UVq025299@sheep.berlios.de> Author: mmlr Date: 2009-09-11 03:01:28 +0200 (Fri, 11 Sep 2009) New Revision: 33053 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33053&view=rev Modified: haiku/branches/releases/r1alpha1/src/data/etc/keymaps/Colemak.keymap Log: Merging r32906 from trunk: * Applied patch by Matt to change command/option behaviour to mimic the American.keymap. This closes ticket #4396. Modified: haiku/branches/releases/r1alpha1/src/data/etc/keymaps/Colemak.keymap =================================================================== --- haiku/branches/releases/r1alpha1/src/data/etc/keymaps/Colemak.keymap 2009-09-11 00:53:56 UTC (rev 33052) +++ haiku/branches/releases/r1alpha1/src/data/etc/keymaps/Colemak.keymap 2009-09-11 01:01:28 UTC (rev 33053) @@ -37,11 +37,11 @@ LShift = 0x4b RShift = 0x56 LCommand = 0x5d -RCommand = 0x00 +RCommand = 0x05f LControl = 0x5c RControl = 0x60 LOption = 0x66 -ROption = 0x5f +ROption = 0x67 Menu = 0x68 # # Lock settings From mmlr at mail.berlios.de Fri Sep 11 03:13:04 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 11 Sep 2009 03:13:04 +0200 Subject: [Haiku-commits] r33054 - haiku/branches/releases/r1alpha1/src/kits/tracker Message-ID: <200909110113.n8B1D4pH027098@sheep.berlios.de> Author: mmlr Date: 2009-09-11 03:13:01 +0200 (Fri, 11 Sep 2009) New Revision: 33054 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33054&view=rev Modified: haiku/branches/releases/r1alpha1/src/kits/tracker/ContainerWindow.cpp Log: Merging r32908 from trunk as the corresponding documentation has been merged as well: Renamed menu 'Attributes|Copy/Paste Attributes' to 'Attributes|Copy/Paste Layout'. Modified: haiku/branches/releases/r1alpha1/src/kits/tracker/ContainerWindow.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/kits/tracker/ContainerWindow.cpp 2009-09-11 01:01:28 UTC (rev 33053) +++ haiku/branches/releases/r1alpha1/src/kits/tracker/ContainerWindow.cpp 2009-09-11 01:13:01 UTC (rev 33054) @@ -3078,9 +3078,9 @@ ASSERT(PoseView()); BMenuItem *item; - menu->AddItem(item = new BMenuItem("Copy Attributes", new BMessage(kCopyAttributes))); + menu->AddItem(item = new BMenuItem("Copy Layout", new BMessage(kCopyAttributes))); item->SetTarget(PoseView()); - menu->AddItem(item = new BMenuItem("Paste Attributes", new BMessage(kPasteAttributes))); + menu->AddItem(item = new BMenuItem("Paste Layout", new BMessage(kPasteAttributes))); item->SetTarget(PoseView()); menu->AddSeparatorItem(); From aljen at mail.berlios.de Fri Sep 11 04:59:10 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Fri, 11 Sep 2009 04:59:10 +0200 Subject: [Haiku-commits] r33055 - haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe Message-ID: <200909110259.n8B2xA7d005214@sheep.berlios.de> Author: aljen Date: 2009-09-11 04:59:07 +0200 (Fri, 11 Sep 2009) New Revision: 33055 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33055&view=rev Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/SoftPipeRenderer.cpp haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/SoftPipeRenderer.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_context.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_framebuffer.c Log: Refactored make_current logic, st_flush(..) wasn't properly used Removed leftovers from SoftPipeRenderer Fixed tracing warnings Enabled Driver.Viewport Cleaned up style a little bit Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/SoftPipeRenderer.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/SoftPipeRenderer.cpp 2009-09-11 01:13:01 UTC (rev 33054) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/SoftPipeRenderer.cpp 2009-09-11 02:59:07 UTC (rev 33055) @@ -156,8 +156,6 @@ return; } uint8 bytesPerPixel = fInfo->bits_per_pixel / 8; - int32 bw = fBitmap->Bounds().IntegerWidth() + 1; - int32 bh = fBitmap->Bounds().IntegerHeight() + 1; uint32 bytesPerRow = fBitmap->BytesPerRow(); for (uint32 i = 0; i < fInfo->clip_list_count; i++) { clipping_rect *clip = &fInfo->clip_list[i]; Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/SoftPipeRenderer.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/SoftPipeRenderer.h 2009-09-11 01:13:01 UTC (rev 33054) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/SoftPipeRenderer.h 2009-09-11 02:59:07 UTC (rev 33055) @@ -21,7 +21,6 @@ extern "C" { #include "hsp_public.h" -#include "context.h" } class SoftPipeRenderer : public BGLRenderer { @@ -39,8 +38,6 @@ virtual status_t CopyPixelsIn(BBitmap *source, BPoint dest); virtual void FrameResized(float width, float height); - GLvoid** GetRows() { return fRowAddr; } - virtual void EnableDirectMode(bool enabled); virtual void DirectConnected(direct_buffer_info *info); @@ -54,21 +51,12 @@ ulong fOptions; uint64 fContext; -// GLcontext *fContext; -// GLvisual *fVisual; -// GLframebuffer *fFrameBuffer; -// struct gl_renderbuffer *fRenderBuffer; -// GLchan fClearColor[4]; // buffer clear color -// GLuint fClearIndex; // buffer clear color index GLuint fWidth; GLuint fHeight; GLuint fNewWidth; GLuint fNewHeight; color_space fColorSpace; - - GLvoid *fRowAddr[MAX_HEIGHT]; - // address of first pixel in each image row }; #endif // SOFTPIPERENDERER_H Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.c 2009-09-11 01:13:01 UTC (rev 33054) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.c 2009-09-11 02:59:07 UTC (rev 33055) @@ -10,6 +10,7 @@ #include "haiku_softpipe_winsys.h" #include "hsp_device.h" +#include "hsp_context.h" //#define TRACE_HAIKU_SOFTPIPE #if defined(TRACE_HAIKU_SOFTPIPE) @@ -60,7 +61,7 @@ FREE(oldBuf); } -//static +static const char* haiku_softpipe_get_name(struct pipe_winsys *winsys) { @@ -143,7 +144,7 @@ { TRACE("%s(winsys: %p surface: %p context: %p)\n", __FUNCTION__, winsys, surface, context_private); - assert(0); + assert(0); } //static @@ -232,6 +233,7 @@ return softpipe_create(screen); } + //static void haiku_softpipe_flush_frontbuffer(struct pipe_screen *screen, @@ -256,10 +258,10 @@ TRACE("surface width : %d\n", surface->width); TRACE("surface height : %d\n", surface->height); TRACE("surface bytes per line : %d\n", texture->stride[surface->level]); - TRACE("bitmap width : %d\n", width); - TRACE("bitmap height : %d\n", height); - TRACE("bitmap bits length : %d\n", bitsLength); - TRACE("bitmap bytes per line : %d\n", bitsLength / height); + TRACE("bitmap width : %ld\n", width); + TRACE("bitmap height : %ld\n", height); + TRACE("bitmap bits length : %ld\n", bitsLength); + TRACE("bitmap bytes per line : %ld\n", bitsLength / height); #endif if (width < 1 || height < 1) @@ -267,7 +269,7 @@ data = screen->buffer_map(screen, texture->buffer, 0); - copy_bitmap_bits(bitmap, data + surface->offset, bitsLength); + copy_bitmap_bits(bitmap, buffer->data + surface->offset, bitsLength); screen->buffer_unmap(screen, texture->buffer); Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.h 2009-09-11 01:13:01 UTC (rev 33054) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.h 2009-09-11 02:59:07 UTC (rev 33055) @@ -45,7 +45,7 @@ void haiku_softpipe_buffer_destroy(struct pipe_buffer *buf); -//static +static const char* haiku_softpipe_get_name(struct pipe_winsys *winsys); Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_context.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_context.c 2009-09-11 01:13:01 UTC (rev 33054) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_context.c 2009-09-11 02:59:07 UTC (rev 33055) @@ -38,7 +38,7 @@ bool hsp_copy_context(uint64 srcCtxId, uint64 dstCtxId, uint mask) { - TRACE("%s(src: %d dst: %d mask: %d)\n", __FUNCTION__, + TRACE("%s(src: %lld dst: %lld mask: %d)\n", __FUNCTION__, srcCtxId, dstCtxId, mask); struct hsp_context *src; struct hsp_context *dst; @@ -50,7 +50,6 @@ dst = hsp_lookup_context(dstCtxId); if (src && dst) { - #warning Implement copying context! (void)src; (void)dst; (void)mask; @@ -68,7 +67,6 @@ TRACE("%s(glctx: %p, x: %d, y: %d, width: %d, height: %d\n", __FUNCTION__, glctx, x, y, width, height); struct hsp_context *ctx = (struct hsp_context*)glctx->DriverCtx; - struct hsp_framebuffer *fb; if (ctx->draw) st_resize_framebuffer(ctx->draw->stfb, width, height); @@ -82,9 +80,6 @@ { TRACE("%s(bitmap: %p layerPlane: %d)\n", __FUNCTION__, bitmap, layerPlane); - time_t total_beg, total_end; - time_t beg, end; - total_beg = time(NULL); struct hsp_context *ctx = NULL; struct pipe_screen *screen = NULL; GLvisual *visual = NULL; @@ -115,9 +110,9 @@ screen = hsp_dev->screen; #ifdef DEBUG - /* Unwrap screen */ - if (hsp_dev->trace_running) - screen = trace_screen(screen)->screen; + /* Unwrap screen */ + if (hsp_dev->trace_running) + screen = trace_screen(screen)->screen; #endif ulong options = hsp_dev->options; @@ -135,18 +130,18 @@ const GLint blue = rgbFlag ? 8 : 0; const GLint alpha = alphaFlag ? 8 : 0; - TRACE("rgb :\t%d\n", (bool)rgbFlag); - TRACE("alpha :\t%d\n", (bool)alphaFlag); - TRACE("dbl :\t%d\n", (bool)dblFlag); - TRACE("stereo :\t%d\n", (bool)stereoFlag); - TRACE("depth :\t%d\n", depth); - TRACE("stencil :\t%d\n", stencil); - TRACE("accum :\t%d\n", accum); - TRACE("index :\t%d\n", index); - TRACE("red :\t%d\n", red); - TRACE("green :\t%d\n", green); - TRACE("blue :\t%d\n", blue); - TRACE("alpha :\t%d\n", alpha); + TRACE("rgb :\t%d\n", (bool)rgbFlag); + TRACE("alpha :\t%d\n", (bool)alphaFlag); + TRACE("dbl :\t%d\n", (bool)dblFlag); + TRACE("stereo :\t%d\n", (bool)stereoFlag); + TRACE("depth :\t%d\n", depth); + TRACE("stencil :\t%d\n", stencil); + TRACE("accum :\t%d\n", accum); + TRACE("index :\t%d\n", index); + TRACE("red :\t%d\n", red); + TRACE("green :\t%d\n", green); + TRACE("blue :\t%d\n", blue); + TRACE("alpha :\t%d\n", alpha); visual = _mesa_create_visual( rgbFlag, dblFlag, stereoFlag, red, green, blue, alpha, index, depth, @@ -168,8 +163,8 @@ } #ifdef DEBUG - if (hsp_dev->trace_running) - pipe = trace_context_create(hsp_dev->screen, pipe); + if (hsp_dev->trace_running) + pipe = trace_context_create(hsp_dev->screen, pipe); #endif assert(!pipe->priv); @@ -183,7 +178,7 @@ } ctx->st->ctx->DriverCtx = ctx; -// ctx->st->ctx->Driver.Viewport = hsp_viewport; + ctx->st->ctx->Driver.Viewport = hsp_viewport; pipe_mutex_lock(hsp_dev->mutex); uint64 i; @@ -201,24 +196,24 @@ no_ctx_id: TRACE("%s> no_ctx_id!\n", __FUNCTION__); - _mesa_destroy_visual(visual); - st_destroy_context(ctx->st); - goto no_pipe; /* st_context_destroy already destroy pipe */ + _mesa_destroy_visual(visual); + st_destroy_context(ctx->st); + goto no_pipe; /* st_context_destroy already destroy pipe */ no_st_ctx: TRACE("%s> no_st_ctx!\n", __FUNCTION__); - pipe->destroy(pipe); + pipe->destroy(pipe); no_pipe: TRACE("%s> no_pipe!\n", __FUNCTION__); - FREE(ctx); + FREE(ctx); no_ctx: TRACE("%s> no_ctx!\n", __FUNCTION__); - return 0; + return 0; } bool hsp_delete_context(uint64 ctxId) { - TRACE("%s(ctxId: %d)\n", __FUNCTION__, ctxId); + TRACE("%s(ctxId: %lld)\n", __FUNCTION__, ctxId); struct hsp_context *ctx = NULL; bool ret = false; @@ -250,6 +245,7 @@ framebuffer_destroy(ctx->read); } + st_flush(ctx->st, 0, NULL); st_destroy_context(ctx->st); FREE(ctx); @@ -265,7 +261,7 @@ bool hsp_release_context(uint64 ctxId) { - TRACE("%s(ctxId: %d)\n", __FUNCTION__, ctxId); + TRACE("%s(ctxId: %lld)\n", __FUNCTION__, ctxId); bool ret = false; if (!hsp_dev) { @@ -293,19 +289,19 @@ uint64 hsp_get_current_context(void) { - TRACE("%s> current context id: %d\n", __FUNCTION__, current_ctx_id); + TRACE("%s> current context id: %lld\n", __FUNCTION__, current_ctx_id); return current_ctx_id; } bool hsp_make_current(Bitmap *bitmap, uint64 ctxId) { - TRACE("%s(bitmap: %p ctxId: %d)\n", __FUNCTION__, bitmap, ctxId); + TRACE("%s(bitmap: %p ctxId: %lld)\n", __FUNCTION__, bitmap, ctxId); struct hsp_context *ctx = NULL; GET_CURRENT_CONTEXT(glcurctx); - GLuint width = 0; - GLuint height = 0; - struct hsp_context *curctx; + int32 width = 0; + int32 height = 0; + struct st_context *old_st = st_get_current(); if (!hsp_dev) { TRACE("%s> there's no hsp_dev so nothing to do\n", @@ -317,38 +313,28 @@ ctx = hsp_lookup_context(ctxId); pipe_mutex_unlock(hsp_dev->mutex); - if (ctx == NULL) { - TRACE("%s> context not found\n", __FUNCTION__); + if (!ctx || !bitmap || ctxId == 0) { + TRACE("%s> bad context, bitmap or context id\n", __FUNCTION__); + st_make_current(NULL, NULL, NULL); return false; } + if (old_st && old_st != ctx->st) { + st_flush(old_st, PIPE_FLUSH_RENDER_CACHE, NULL); + } + current_bitmap = bitmap; current_ctx_id = ctxId; - if (glcurctx != NULL) { - curctx = (struct hsp_context*) glcurctx->DriverCtx; - - if (curctx != ctx) - st_flush(glcurctx->st, PIPE_FLUSH_RENDER_CACHE, NULL); - } - - if (!bitmap || ctxId == 0) { - st_make_current(NULL, NULL, NULL); + if (glcurctx != NULL && ctx->bitmap == bitmap) { return true; } - if (glcurctx != NULL && curctx != NULL && curctx == ctx - && ctx->bitmap == bitmap) { - return true; - } + get_bitmap_size(bitmap, &width, &height); + TRACE("%s> found bitmap: %p with size: %ldx%ld\n", __FUNCTION__, + bitmap, width, height); - if (bitmap != NULL) { - get_bitmap_size(bitmap, &width, &height); - TRACE("%s> found bitmap: %p with size: %dx%d\n", __FUNCTION__, - bitmap, width, height); - } - - if (ctx && (bitmap != ctx->bitmap)) { + if (bitmap != ctx->bitmap) { if (ctx->draw) { framebuffer_destroy(ctx->draw); ctx->draw = NULL; @@ -361,47 +347,36 @@ ctx->st->pipe->priv = bitmap; } - if (ctx != NULL && bitmap != NULL ) { - GLvisual *visual = &ctx->st->ctx->Visual; - if (ctx->draw == NULL) { - TRACE("%s> creating draw buffer...\n", __FUNCTION__); - ctx->draw = framebuffer_create(bitmap, visual, width, height); - } - if ((hsp_dev->options & BGL_DOUBLE) == BGL_DOUBLE && ctx->read == NULL) { - TRACE("%s> creating read buffer...\n", __FUNCTION__); - ctx->read = framebuffer_create(bitmap, visual, width, height); - } + GLvisual *visual = &ctx->st->ctx->Visual; + if (ctx->draw == NULL) { + TRACE("%s> creating draw buffer...\n", __FUNCTION__); + ctx->draw = framebuffer_create(bitmap, visual, width, height); } + if ((hsp_dev->options & BGL_DOUBLE) == BGL_DOUBLE && ctx->read == NULL) { + TRACE("%s> creating read buffer...\n", __FUNCTION__); + ctx->read = framebuffer_create(bitmap, visual, width, height); + } - if (ctx) { - if (ctx->draw && ctx->read == NULL) { - pipe_mutex_lock(ctx->draw->mutex); - st_make_current(ctx->st, ctx->draw->stfb, ctx->draw->stfb); - st_resize_framebuffer(ctx->draw->stfb, width, height); - pipe_mutex_unlock(ctx->draw->mutex); - ctx->draw->bitmap = bitmap; - } else if (ctx && ctx->draw && ctx->read) { - pipe_mutex_lock(ctx->draw->mutex); - pipe_mutex_lock(ctx->read->mutex); - st_make_current(ctx->st, ctx->draw->stfb, ctx->read->stfb); - st_resize_framebuffer(ctx->draw->stfb, width, height); - st_resize_framebuffer(ctx->read->stfb, width, height); - struct pipe_surface *surface; - st_get_framebuffer_surface(ctx->draw->stfb, ST_SURFACE_BACK_LEFT, &surface); - pipe_mutex_unlock(ctx->draw->mutex); - pipe_mutex_unlock(ctx->read->mutex); - ctx->draw->bitmap = bitmap; - ctx->read->bitmap = bitmap; - } - ctx->bitmap = bitmap; - ctx->st->pipe->priv = bitmap; - } else { - if (ctx->draw) - ctx->draw->bitmap = NULL; - if (ctx->read) - ctx->read->bitmap = NULL; - st_make_current(NULL, NULL, NULL); + + if (ctx->draw && ctx->read == NULL) { + pipe_mutex_lock(ctx->draw->mutex); + st_make_current(ctx->st, ctx->draw->stfb, ctx->draw->stfb); + st_resize_framebuffer(ctx->draw->stfb, width, height); + pipe_mutex_unlock(ctx->draw->mutex); + ctx->draw->bitmap = bitmap; + } else if (ctx && ctx->draw && ctx->read) { + pipe_mutex_lock(ctx->draw->mutex); + pipe_mutex_lock(ctx->read->mutex); + st_make_current(ctx->st, ctx->draw->stfb, ctx->read->stfb); + st_resize_framebuffer(ctx->draw->stfb, width, height); + st_resize_framebuffer(ctx->read->stfb, width, height); + pipe_mutex_unlock(ctx->draw->mutex); + pipe_mutex_unlock(ctx->read->mutex); + ctx->draw->bitmap = bitmap; + ctx->read->bitmap = bitmap; } + ctx->bitmap = bitmap; + ctx->st->pipe->priv = bitmap; return true; } Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_framebuffer.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_framebuffer.c 2009-09-11 01:13:01 UTC (rev 33054) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_framebuffer.c 2009-09-11 02:59:07 UTC (rev 33055) @@ -20,7 +20,7 @@ #include "hsp_public.h" #include "hsp_winsys.h" -//#define TRACE_FRAMEBUFFER +#define TRACE_FRAMEBUFFER #ifdef TRACE_FRAMEBUFFER # define TRACE(x...) fprintf(stderr, x); #else @@ -155,7 +155,7 @@ bool hsp_swap_buffers(uint64 ctxId) { - TRACE("%s(ctxId: %p)\n", __FUNCTION__, ctxId); + TRACE("%s(ctxId: %lld)\n", __FUNCTION__, ctxId); struct hsp_context *ctx = NULL; struct hsp_framebuffer *fb = NULL; struct pipe_surface *surface; @@ -164,13 +164,13 @@ ctx = hsp_lookup_context(ctxId); pipe_mutex_unlock(hsp_dev->mutex); - if (ctx == NULL) { + if (!ctx) { TRACE("%s> context not found\n", __FUNCTION__); return false; } - + fb = ctx->draw; - + if (fb == NULL) { TRACE("%s> draw framebuffer not found\n", __FUNCTION__); return false; @@ -181,7 +181,7 @@ st_get_framebuffer_surface(fb->stfb, ST_SURFACE_BACK_LEFT, &surface); hsp_dev->hsp_winsys->flush_frontbuffer(hsp_dev->screen, surface, ctx->bitmap); pipe_mutex_unlock(fb->mutex); - + return true; } From aljen at mail.berlios.de Fri Sep 11 05:15:49 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Fri, 11 Sep 2009 05:15:49 +0200 Subject: [Haiku-commits] r33056 - haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe Message-ID: <200909110315.n8B3Fnfx007016@sheep.berlios.de> Author: aljen Date: 2009-09-11 05:15:47 +0200 (Fri, 11 Sep 2009) New Revision: 33056 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33056&view=rev Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_framebuffer.c Log: Disabled tracing Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_framebuffer.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_framebuffer.c 2009-09-11 02:59:07 UTC (rev 33055) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_framebuffer.c 2009-09-11 03:15:47 UTC (rev 33056) @@ -20,7 +20,7 @@ #include "hsp_public.h" #include "hsp_winsys.h" -#define TRACE_FRAMEBUFFER +//#define TRACE_FRAMEBUFFER #ifdef TRACE_FRAMEBUFFER # define TRACE(x...) fprintf(stderr, x); #else From aljen at mail.berlios.de Fri Sep 11 05:17:05 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Fri, 11 Sep 2009 05:17:05 +0200 Subject: [Haiku-commits] r33057 - in haiku/branches/components/gallium3d/src: add-ons/opengl/softpipe kits/opengl/mesa/gallium/auxiliary/pipebuffer kits/opengl/mesa/gallium/auxiliary/rtasm kits/opengl/mesa/gallium/auxiliary/tgsi kits/opengl/mesa/gallium/auxiliary/util kits/opengl/mesa/main kits/opengl/mesa/state_tracker Message-ID: <200909110317.n8B3H5Qh007137@sheep.berlios.de> Author: aljen Date: 2009-09-11 05:16:57 +0200 (Fri, 11 Sep 2009) New Revision: 33057 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33057&view=rev Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_clear.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_clear.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_context.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_texture.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_texture.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/rtasm/rtasm_execmem.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_exec.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_exec.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_simple_screen.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_simple_shaders.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_time.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/execmem.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/texenvprogram.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/state_tracker/st_cb_drawpixels.c Log: updated to mesa master Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_clear.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_clear.c 2009-09-11 03:15:47 UTC (rev 33056) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_clear.c 2009-09-11 03:16:57 UTC (rev 33057) @@ -36,8 +36,6 @@ #include "util/u_pack_color.h" #include "sp_clear.h" #include "sp_context.h" -#include "sp_surface.h" -#include "sp_state.h" #include "sp_tile_cache.h" @@ -85,5 +83,7 @@ /* non-cached surface */ pipe->surface_fill(pipe, ps, 0, 0, ps->width, ps->height, cv); #endif - } + } + + softpipe->dirty_render_cache = TRUE; } Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_clear.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_clear.h 2009-09-11 03:15:47 UTC (rev 33056) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_clear.h 2009-09-11 03:16:57 UTC (rev 33057) @@ -32,7 +32,6 @@ #ifndef SP_CLEAR_H #define SP_CLEAR_H -#include "pipe/p_state.h" struct pipe_context; extern void Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_context.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_context.c 2009-09-11 03:15:47 UTC (rev 33056) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_context.c 2009-09-11 03:16:57 UTC (rev 33057) @@ -83,7 +83,8 @@ } -static void softpipe_destroy( struct pipe_context *pipe ) +static void +softpipe_destroy( struct pipe_context *pipe ) { struct softpipe_context *softpipe = softpipe_context( pipe ); uint i; @@ -121,6 +122,15 @@ FREE( softpipe ); } + +/** + * if (the texture is being used as a framebuffer surface) + * return PIPE_REFERENCED_FOR_WRITE + * else if (the texture is a bound texture source) + * return PIPE_REFERENCED_FOR_READ XXX not done yet + * else + * return PIPE_UNREFERENCED + */ static unsigned int softpipe_is_texture_referenced( struct pipe_context *pipe, struct pipe_texture *texture, @@ -129,15 +139,17 @@ struct softpipe_context *softpipe = softpipe_context( pipe ); unsigned i; - if(softpipe->dirty_render_cache) { + if (softpipe->dirty_render_cache) { for (i = 0; i < softpipe->framebuffer.nr_cbufs; i++) { - if(softpipe->framebuffer.cbufs[i] && - softpipe->framebuffer.cbufs[i]->texture == texture) + if (softpipe->framebuffer.cbufs[i] && + softpipe->framebuffer.cbufs[i]->texture == texture) { return PIPE_REFERENCED_FOR_WRITE; + } } - if(softpipe->framebuffer.zsbuf && - softpipe->framebuffer.zsbuf->texture == texture) + if (softpipe->framebuffer.zsbuf && + softpipe->framebuffer.zsbuf->texture == texture) { return PIPE_REFERENCED_FOR_WRITE; + } } /* FIXME: we also need to do the same for the texture cache */ @@ -145,6 +157,7 @@ return PIPE_UNREFERENCED; } + static unsigned int softpipe_is_buffer_referenced( struct pipe_context *pipe, struct pipe_buffer *buf) @@ -152,6 +165,7 @@ return PIPE_UNREFERENCED; } + struct pipe_context * softpipe_create( struct pipe_screen *screen ) { @@ -222,7 +236,6 @@ softpipe->pipe.is_buffer_referenced = softpipe_is_buffer_referenced; softpipe_init_query_funcs( softpipe ); - softpipe_init_texture_funcs( softpipe ); /* * Alloc caches for accessing drawing surfaces and textures. Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_texture.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_texture.c 2009-09-11 03:15:47 UTC (rev 33056) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_texture.c 2009-09-11 03:16:57 UTC (rev 33057) @@ -30,27 +30,22 @@ * Michel D?nzer */ -#include "pipe/p_context.h" #include "pipe/p_defines.h" #include "pipe/p_inlines.h" -#include "pipe/internal/p_winsys_screen.h" #include "util/u_math.h" #include "util/u_memory.h" #include "sp_context.h" #include "sp_state.h" #include "sp_texture.h" -#include "sp_tile_cache.h" #include "sp_screen.h" #include "sp_winsys.h" -/* Simple, maximally packed layout. +/** + * Conventional allocation path for non-display textures: + * Use a simple, maximally packed layout. */ - - -/* Conventional allocation path for non-display textures: - */ static boolean softpipe_texture_layout(struct pipe_screen *screen, struct softpipe_texture * spt) @@ -89,6 +84,10 @@ return spt->buffer != NULL; } + +/** + * Texture layout for simple color buffers. + */ static boolean softpipe_displaytarget_layout(struct pipe_screen *screen, struct softpipe_texture * spt) @@ -112,9 +111,6 @@ } - - - static struct pipe_texture * softpipe_texture_create(struct pipe_screen *screen, const struct pipe_texture *templat) @@ -342,14 +338,13 @@ /* May want to different things here depending on read/write nature * of the map: */ - if (transfer->texture && transfer->usage != PIPE_TRANSFER_READ) - { + if (transfer->texture && transfer->usage != PIPE_TRANSFER_READ) { /* Do something to notify sharing contexts of a texture change. * In softpipe, that would mean flushing the texture cache. */ softpipe_screen(screen)->timestamp++; } - + xfer_map = map + softpipe_transfer(transfer)->offset + transfer->y / transfer->block.height * transfer->stride + transfer->x / transfer->block.width * transfer->block.size; @@ -360,7 +355,7 @@ static void softpipe_transfer_unmap(struct pipe_screen *screen, - struct pipe_transfer *transfer) + struct pipe_transfer *transfer) { struct softpipe_texture *spt; @@ -377,12 +372,6 @@ void -softpipe_init_texture_funcs(struct softpipe_context *sp) -{ -} - - -void softpipe_init_screen_texture_funcs(struct pipe_screen *screen) { screen->texture_create = softpipe_texture_create; @@ -404,7 +393,7 @@ struct pipe_buffer **buf, unsigned *stride ) { - struct softpipe_texture *tex = (struct softpipe_texture *)texture; + struct softpipe_texture *tex = (struct softpipe_texture *) texture; if (!tex) return FALSE; Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_texture.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_texture.h 2009-09-11 03:15:47 UTC (rev 33056) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_texture.h 2009-09-11 03:16:57 UTC (rev 33057) @@ -74,9 +74,6 @@ extern void -softpipe_init_texture_funcs( struct softpipe_context *softpipe ); - -extern void softpipe_init_screen_texture_funcs(struct pipe_screen *screen); Modified: haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c 2009-09-11 03:15:47 UTC (rev 33056) +++ haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/pipebuffer/pb_buffer_fenced.c 2009-09-11 03:16:57 UTC (rev 33057) @@ -36,7 +36,7 @@ #include "pipe/p_config.h" -#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) +#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_HAIKU) #include #include #endif @@ -576,7 +576,7 @@ /* Wait on outstanding fences */ while (fenced_list->numDelayed) { pipe_mutex_unlock(fenced_list->mutex); -#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) +#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_HAIKU) sched_yield(); #endif _fenced_buffer_list_check_free(fenced_list, 1); Modified: haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/rtasm/rtasm_execmem.c =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/rtasm/rtasm_execmem.c 2009-09-11 03:15:47 UTC (rev 33056) +++ haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/rtasm/rtasm_execmem.c 2009-09-11 03:16:57 UTC (rev 33057) @@ -42,7 +42,7 @@ #endif -#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) +#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_HAIKU) /* @@ -118,7 +118,7 @@ } -#else /* PIPE_OS_LINUX || PIPE_OS_BSD || PIPE_OS_SOLARIS */ +#else /* PIPE_OS_LINUX || PIPE_OS_BSD || PIPE_OS_SOLARIS || PIPE_OS_HAIKU */ /* * Just use regular memory. @@ -138,4 +138,4 @@ } -#endif /* PIPE_OS_LINUX || PIPE_OS_BSD || PIPE_OS_SOLARIS */ +#endif /* PIPE_OS_LINUX || PIPE_OS_BSD || PIPE_OS_SOLARIS || PIPE_OS_HAIKU */ Modified: haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_exec.c =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_exec.c 2009-09-11 03:15:47 UTC (rev 33056) +++ haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_exec.c 2009-09-11 03:16:57 UTC (rev 33057) @@ -2756,19 +2756,32 @@ if (mach->ExecMask) { /* do the call */ - /* push the Cond, Loop, Cont stacks */ + /* First, record the depths of the execution stacks. + * This is important for deeply nested/looped return statements. + * We have to unwind the stacks by the correct amount. For a + * real code generator, we could determine the number of entries + * to pop off each stack with simple static analysis and avoid + * implementing this data structure at run time. + */ + mach->CallStack[mach->CallStackTop].CondStackTop = mach->CondStackTop; + mach->CallStack[mach->CallStackTop].LoopStackTop = mach->LoopStackTop; + mach->CallStack[mach->CallStackTop].ContStackTop = mach->ContStackTop; + /* note that PC was already incremented above */ + mach->CallStack[mach->CallStackTop].ReturnAddr = *pc; + + mach->CallStackTop++; + + /* Second, push the Cond, Loop, Cont, Func stacks */ assert(mach->CondStackTop < TGSI_EXEC_MAX_COND_NESTING); mach->CondStack[mach->CondStackTop++] = mach->CondMask; assert(mach->LoopStackTop < TGSI_EXEC_MAX_LOOP_NESTING); mach->LoopStack[mach->LoopStackTop++] = mach->LoopMask; assert(mach->ContStackTop < TGSI_EXEC_MAX_LOOP_NESTING); mach->ContStack[mach->ContStackTop++] = mach->ContMask; - assert(mach->FuncStackTop < TGSI_EXEC_MAX_CALL_NESTING); mach->FuncStack[mach->FuncStackTop++] = mach->FuncMask; - /* note that PC was already incremented above */ - mach->CallStack[mach->CallStackTop++] = *pc; + /* Finally, jump to the subroutine */ *pc = inst->InstructionExtLabel.Label; } break; @@ -2785,18 +2798,24 @@ *pc = -1; return; } - *pc = mach->CallStack[--mach->CallStackTop]; - /* pop the Cond, Loop, Cont stacks */ - assert(mach->CondStackTop > 0); - mach->CondMask = mach->CondStack[--mach->CondStackTop]; - assert(mach->LoopStackTop > 0); - mach->LoopMask = mach->LoopStack[--mach->LoopStackTop]; - assert(mach->ContStackTop > 0); - mach->ContMask = mach->ContStack[--mach->ContStackTop]; + assert(mach->CallStackTop > 0); + mach->CallStackTop--; + + mach->CondStackTop = mach->CallStack[mach->CallStackTop].CondStackTop; + mach->CondMask = mach->CondStack[mach->CondStackTop]; + + mach->LoopStackTop = mach->CallStack[mach->CallStackTop].LoopStackTop; + mach->LoopMask = mach->LoopStack[mach->LoopStackTop]; + + mach->ContStackTop = mach->CallStack[mach->CallStackTop].ContStackTop; + mach->ContMask = mach->ContStack[mach->ContStackTop]; + assert(mach->FuncStackTop > 0); mach->FuncMask = mach->FuncStack[--mach->FuncStackTop]; + *pc = mach->CallStack[mach->CallStackTop].ReturnAddr; + UPDATE_EXEC_MASK(mach); } break; @@ -3245,7 +3264,6 @@ mach->FuncMask = 0xf; mach->ExecMask = 0xf; - mach->CondStackTop = 0; /* temporarily subvert this assertion */ assert(mach->CondStackTop == 0); assert(mach->LoopStackTop == 0); assert(mach->ContStackTop == 0); Modified: haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_exec.h =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_exec.h 2009-09-11 03:15:47 UTC (rev 33056) +++ haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/tgsi/tgsi_exec.h 2009-09-11 03:16:57 UTC (rev 33057) @@ -186,6 +186,17 @@ */ #define TGSI_EXEC_MAX_CONST_BUFFER 4096 + +/** function call/activation record */ +struct tgsi_call_record +{ + uint CondStackTop; + uint LoopStackTop; + uint ContStackTop; + uint ReturnAddr; +}; + + /** * Run-time virtual machine state for executing TGSI shader. */ @@ -249,7 +260,7 @@ int FuncStackTop; /** Function call stack for saving/restoring the program counter */ - uint CallStack[TGSI_EXEC_MAX_CALL_NESTING]; + struct tgsi_call_record CallStack[TGSI_EXEC_MAX_CALL_NESTING]; int CallStackTop; struct tgsi_full_instruction *Instructions; Modified: haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_simple_screen.c =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_simple_screen.c 2009-09-11 03:15:47 UTC (rev 33056) +++ haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_simple_screen.c 2009-09-11 03:16:57 UTC (rev 33057) @@ -52,8 +52,7 @@ unsigned bytes) { struct pipe_buffer *buffer = - screen->winsys->user_buffer_create(screen->winsys, - ptr, bytes); + screen->winsys->user_buffer_create(screen->winsys, ptr, bytes); buffer->screen = screen; @@ -69,9 +68,8 @@ unsigned *stride) { struct pipe_buffer *buffer = - screen->winsys->surface_buffer_create(screen->winsys, - width, height, - format, usage, tex_usage, stride); + screen->winsys->surface_buffer_create(screen->winsys, width, height, + format, usage, tex_usage, stride); buffer->screen = screen; @@ -83,8 +81,7 @@ struct pipe_buffer *buf, unsigned usage) { - return screen->winsys->buffer_map(screen->winsys, - buf, usage); + return screen->winsys->buffer_map(screen->winsys, buf, usage); } static void @@ -106,8 +103,7 @@ struct pipe_surface *surf, void *context_private) { - screen->winsys->flush_frontbuffer(screen->winsys, - surf, context_private); + screen->winsys->flush_frontbuffer(screen->winsys, surf, context_private); } static void @@ -115,8 +111,7 @@ struct pipe_fence_handle **ptr, struct pipe_fence_handle *fence) { - screen->winsys->fence_reference(screen->winsys, - ptr, fence); + screen->winsys->fence_reference(screen->winsys, ptr, fence); } static int @@ -124,8 +119,7 @@ struct pipe_fence_handle *fence, unsigned flag) { - return screen->winsys->fence_signalled(screen->winsys, - fence, flag); + return screen->winsys->fence_signalled(screen->winsys, fence, flag); } static int @@ -133,11 +127,11 @@ struct pipe_fence_handle *fence, unsigned flag) { - return screen->winsys->fence_finish(screen->winsys, - fence, flag); + return screen->winsys->fence_finish(screen->winsys, fence, flag); } -void u_simple_screen_init(struct pipe_screen *screen) +void +u_simple_screen_init(struct pipe_screen *screen) { screen->buffer_create = pass_buffer_create; screen->user_buffer_create = pass_user_buffer_create; @@ -152,7 +146,8 @@ screen->fence_finish = pass_fence_finish; } -const char* u_simple_screen_winsys_name(struct pipe_screen *screen) +const char * +u_simple_screen_winsys_name(struct pipe_screen *screen) { return screen->winsys->get_name(screen->winsys); } Modified: haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_simple_shaders.c =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_simple_shaders.c 2009-09-11 03:15:47 UTC (rev 33056) +++ haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_simple_shaders.c 2009-09-11 03:16:57 UTC (rev 33057) @@ -34,14 +34,8 @@ #include "pipe/p_context.h" -#include "util/u_debug.h" -#include "pipe/p_defines.h" -#include "pipe/p_screen.h" #include "pipe/p_shader_tokens.h" - -#include "util/u_memory.h" #include "util/u_simple_shaders.h" - #include "tgsi/tgsi_ureg.h" Modified: haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_time.h =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_time.h 2009-09-11 03:15:47 UTC (rev 33056) +++ haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/auxiliary/util/u_time.h 2009-09-11 03:16:57 UTC (rev 33057) @@ -94,7 +94,7 @@ const struct util_time *end, const struct util_time *curr); -#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_HAIKU) +#if defined(PIPE_OS_LINUX) || defined(PIPE_OS_BSD) || defined(PIPE_OS_SOLARIS) || defined(PIPE_OS_APPLE) || defined(PIPE_OS_HAIKU) #define util_time_sleep usleep #else void Modified: haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/execmem.c =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/execmem.c 2009-09-11 03:15:47 UTC (rev 33056) +++ haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/execmem.c 2009-09-11 03:16:57 UTC (rev 33057) @@ -36,7 +36,7 @@ -#if defined(__linux__) || defined(__OpenBSD__) || defined(_NetBSD__) || defined(__sun) +#if defined(__linux__) || defined(__OpenBSD__) || defined(_NetBSD__) || defined(__sun) || defined(__HAIKU__) /* * Allocate a large block of memory which can hold code then dole it out Modified: haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/texenvprogram.c =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/texenvprogram.c 2009-09-11 03:15:47 UTC (rev 33056) +++ haiku/branches/components/gallium3d/src/kits/opengl/mesa/main/texenvprogram.c 2009-09-11 03:16:57 UTC (rev 33057) @@ -248,6 +248,40 @@ /** + * Do we need to clamp the results of the given texture env/combine mode? + * If the inputs to the mode are in [0,1] we don't always have to clamp + * the results. + */ +static GLboolean +need_saturate( GLuint mode ) +{ + switch (mode) { + case MODE_REPLACE: + case MODE_MODULATE: + case MODE_INTERPOLATE: + return GL_FALSE; + case MODE_ADD: + case MODE_ADD_SIGNED: + case MODE_SUBTRACT: + case MODE_DOT3_RGB: + case MODE_DOT3_RGB_EXT: + case MODE_DOT3_RGBA: + case MODE_DOT3_RGBA_EXT: + case MODE_MODULATE_ADD_ATI: + case MODE_MODULATE_SIGNED_ADD_ATI: + case MODE_MODULATE_SUBTRACT_ATI: + case MODE_ADD_PRODUCTS: + case MODE_ADD_PRODUCTS_SIGNED: + case MODE_BUMP_ENVMAP_ATI: + return GL_TRUE; + default: + assert(0); + } +} + + + +/** * Translate TEXTURE_x_BIT to TEXTURE_x_INDEX. */ static GLuint translate_tex_src_bit( GLbitfield bit ) @@ -1116,7 +1150,7 @@ emit_texenv(struct texenv_fragment_program *p, GLuint unit) { const struct state_key *key = p->state; - GLboolean saturate; + GLboolean rgb_saturate, alpha_saturate; GLuint rgb_shift, alpha_shift; struct ureg out, dest; @@ -1146,8 +1180,20 @@ /* If we'll do rgb/alpha shifting don't saturate in emit_combine(). * We don't want to clamp twice. */ - saturate = !(rgb_shift || alpha_shift); + if (rgb_shift) + rgb_saturate = GL_FALSE; /* saturate after rgb shift */ + else if (need_saturate(key->unit[unit].ModeRGB)) + rgb_saturate = GL_TRUE; + else + rgb_saturate = GL_FALSE; + if (alpha_shift) + alpha_saturate = GL_FALSE; /* saturate after alpha shift */ + else if (need_saturate(key->unit[unit].ModeA)) + alpha_saturate = GL_TRUE; + else + alpha_saturate = GL_FALSE; + /* If this is the very last calculation, emit direct to output reg: */ if (key->separate_specular || @@ -1162,7 +1208,7 @@ */ if (key->unit[unit].ModeRGB == key->unit[unit].ModeA && args_match(key, unit)) { - out = emit_combine( p, dest, WRITEMASK_XYZW, saturate, + out = emit_combine( p, dest, WRITEMASK_XYZW, rgb_saturate, unit, key->unit[unit].NumArgsRGB, key->unit[unit].ModeRGB, @@ -1170,7 +1216,7 @@ } else if (key->unit[unit].ModeRGB == MODE_DOT3_RGBA_EXT || key->unit[unit].ModeRGB == MODE_DOT3_RGBA) { - out = emit_combine( p, dest, WRITEMASK_XYZW, saturate, + out = emit_combine( p, dest, WRITEMASK_XYZW, rgb_saturate, unit, key->unit[unit].NumArgsRGB, key->unit[unit].ModeRGB, @@ -1180,12 +1226,12 @@ /* Need to do something to stop from re-emitting identical * argument calculations here: */ - out = emit_combine( p, dest, WRITEMASK_XYZ, saturate, + out = emit_combine( p, dest, WRITEMASK_XYZ, rgb_saturate, unit, key->unit[unit].NumArgsRGB, key->unit[unit].ModeRGB, key->unit[unit].OptRGB); - out = emit_combine( p, dest, WRITEMASK_W, saturate, + out = emit_combine( p, dest, WRITEMASK_W, alpha_saturate, unit, key->unit[unit].NumArgsA, key->unit[unit].ModeA, @@ -1196,9 +1242,8 @@ */ if (alpha_shift || rgb_shift) { struct ureg shift; + GLboolean saturate = GL_TRUE; /* always saturate at this point */ - saturate = GL_TRUE; /* always saturate at this point */ - if (rgb_shift == alpha_shift) { shift = register_scalar_const(p, (GLfloat)(1<st; + struct st_context *st = st_context(ctx); struct st_fragment_program *stfp; if (st->pixel_xfer.program->serialNo == st->pixel_xfer.xfer_prog_sn @@ -445,8 +445,8 @@ GLfloat x1, GLfloat y1, const GLfloat *color, GLboolean invertTex, GLfloat maxXcoord, GLfloat maxYcoord) { - struct st_context *st = ctx->st; - struct pipe_context *pipe = ctx->st->pipe; + struct st_context *st = st_context(ctx); + struct pipe_context *pipe = st->pipe; GLfloat verts[4][3][4]; /* four verts, three attribs, XYZW */ /* setup vertex data */ @@ -540,9 +540,9 @@ const GLfloat *color, GLboolean invertTex) { - struct st_context *st = ctx->st; - struct pipe_context *pipe = ctx->st->pipe; - struct cso_context *cso = ctx->st->cso_context; + struct st_context *st = st_context(ctx); + struct pipe_context *pipe = st->pipe; + struct cso_context *cso = st->cso_context; GLfloat x0, y0, x1, y1; GLsizei maxSize; @@ -652,7 +652,7 @@ const struct gl_pixelstore_attrib *unpack, const GLvoid *pixels) { - struct st_context *st = ctx->st; + struct st_context *st = st_context(ctx); struct pipe_context *pipe = st->pipe; struct pipe_screen *screen = pipe->screen; struct st_renderbuffer *strb; @@ -793,7 +793,7 @@ { struct st_fragment_program *stfp; struct st_vertex_program *stvp; - struct st_context *st = ctx->st; + struct st_context *st = st_context(ctx); struct pipe_surface *ps; const GLfloat *color; @@ -811,21 +811,21 @@ if (format == GL_DEPTH_COMPONENT) { ps = st->state.framebuffer.zsbuf; - stfp = make_fragment_shader_z(ctx->st); - stvp = st_make_passthrough_vertex_shader(ctx->st, GL_TRUE); + stfp = make_fragment_shader_z(st); + stvp = st_make_passthrough_vertex_shader(st, GL_TRUE); color = ctx->Current.RasterColor; } else { ps = st->state.framebuffer.cbufs[0]; stfp = combined_drawpix_fragment_program(ctx); - stvp = st_make_passthrough_vertex_shader(ctx->st, GL_FALSE); + stvp = st_make_passthrough_vertex_shader(st, GL_FALSE); color = NULL; } /* draw with textured quad */ { struct pipe_texture *pt - = make_texture(ctx->st, width, height, format, type, unpack, pixels); + = make_texture(st, width, height, format, type, unpack, pixels); if (pt) { draw_textured_quad(ctx, x, y, ctx->Current.RasterPos[2], width, height, ctx->Pixel.ZoomX, ctx->Pixel.ZoomY, @@ -942,7 +942,7 @@ GLsizei width, GLsizei height, GLint dstx, GLint dsty, GLenum type) { - struct st_context *st = ctx->st; + struct st_context *st = st_context(ctx); struct pipe_context *pipe = st->pipe; struct pipe_screen *screen = pipe->screen; struct st_renderbuffer *rbRead; @@ -995,14 +995,14 @@ rbRead = st_get_color_read_renderbuffer(ctx); color = NULL; stfp = combined_drawpix_fragment_program(ctx); - stvp = st_make_passthrough_vertex_shader(ctx->st, GL_FALSE); + stvp = st_make_passthrough_vertex_shader(st, GL_FALSE); } else { assert(type == GL_DEPTH); rbRead = st_renderbuffer(ctx->ReadBuffer->_DepthBuffer); color = ctx->Current.Attrib[VERT_ATTRIB_COLOR0]; - stfp = make_fragment_shader_z(ctx->st); - stvp = st_make_passthrough_vertex_shader(ctx->st, GL_TRUE); + stfp = make_fragment_shader_z(st); + stvp = st_make_passthrough_vertex_shader(st, GL_TRUE); } srcFormat = rbRead->texture->format; @@ -1059,7 +1059,7 @@ assert(pth <= maxSize); } - pt = st_texture_create(ctx->st, PIPE_TEXTURE_2D, texFormat, 0, + pt = st_texture_create(st, PIPE_TEXTURE_2D, texFormat, 0, ptw, pth, 1, PIPE_TEXTURE_USAGE_SAMPLER); if (!pt) From phoudoin at mail.berlios.de Fri Sep 11 06:18:36 2009 From: phoudoin at mail.berlios.de (phoudoin at mail.berlios.de) Date: Fri, 11 Sep 2009 06:18:36 +0200 Subject: [Haiku-commits] r33058 - haiku/trunk/src/bin/rc Message-ID: <200909110418.n8B4Iaqs015511@sheep.berlios.de> Author: phoudoin Date: 2009-09-11 06:18:33 +0200 (Fri, 11 Sep 2009) New Revision: 33058 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33058&view=rev Modified: haiku/trunk/src/bin/rc/parser.y Log: Fix gcc4 build while DEBUG is set. Modified: haiku/trunk/src/bin/rc/parser.y =================================================================== --- haiku/trunk/src/bin/rc/parser.y 2009-09-11 03:16:57 UTC (rev 33057) +++ haiku/trunk/src/bin/rc/parser.y 2009-09-11 04:18:33 UTC (rev 33058) @@ -1758,20 +1758,20 @@ // it doesn't seem to hurt, and we only do it in DEBUG mode anyway. for (sym_iter_t i = symbol_table.begin(); i != symbol_table.end(); ++i) { - free_mem(i->first); + free_mem((void*) i->first); } for (type_iter_t i = type_table.begin(); i != type_table.end(); ++i) { - free_mem(i->first); + free_mem((void*) i->first); type_t type = i->second; for (int32 t = 0; t < type.count; ++t) { - free_mem(type.fields[t].name); - free_mem(type.fields[t].data.ptr); + free_mem((void*) type.fields[t].name); + free_mem((void*) type.fields[t].data.ptr); } - free_mem(type.fields); - free_mem(type.name); - free_mem(type.def_name); + free_mem((void*) type.fields); + free_mem((void*) type.name); + free_mem((void*) type.def_name); } #endif From aljen at mail.berlios.de Fri Sep 11 07:10:34 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Fri, 11 Sep 2009 07:10:34 +0200 Subject: [Haiku-commits] r33059 - haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe Message-ID: <200909110510.n8B5AYlP023230@sheep.berlios.de> Author: aljen Date: 2009-09-11 07:10:27 +0200 (Fri, 11 Sep 2009) New Revision: 33059 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33059&view=rev Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_context.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_device.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_framebuffer.c Log: Flush render cache when swapping buffers (should be final fix :) Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_context.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_context.c 2009-09-11 04:18:33 UTC (rev 33058) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_context.c 2009-09-11 05:10:27 UTC (rev 33059) @@ -168,7 +168,7 @@ #endif assert(!pipe->priv); - pipe->priv = bitmap; + pipe->priv = ctx; ctx->st = st_create_context(pipe, visual, NULL); if (!ctx->st) { @@ -344,7 +344,7 @@ ctx->read = NULL; } ctx->bitmap = bitmap; - ctx->st->pipe->priv = bitmap; + ctx->st->pipe->priv = ctx; } GLvisual *visual = &ctx->st->ctx->Visual; @@ -376,7 +376,7 @@ ctx->read->bitmap = bitmap; } ctx->bitmap = bitmap; - ctx->st->pipe->priv = bitmap; + ctx->st->pipe->priv = ctx; return true; } Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_device.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_device.c 2009-09-11 04:18:33 UTC (rev 33058) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_device.c 2009-09-11 05:10:27 UTC (rev 33059) @@ -12,6 +12,7 @@ #include "util/u_debug.h" #include "pipe/p_screen.h" #include "hsp_bitmap_wrapper.h" +#include "hsp_context.h" #include "hsp_device.h" #include "hsp_winsys.h" #include "hsp_public.h" @@ -38,9 +39,16 @@ { TRACE("%s(screen: %p, surface: %p, context: %p)\n", __FUNCTION__, screen, surface, context_private); + + assert(screen); + assert(surface); + assert(context_private); + const struct hsp_winsys *hsp_winsys = hsp_dev->hsp_winsys; - Bitmap *bitmap = (Bitmap*)context_private; + struct hsp_context *context = (struct hsp_context*)context_private; + Bitmap *bitmap = context->bitmap; + st_flush(context->st, PIPE_FLUSH_RENDER_CACHE, NULL); hsp_winsys->flush_frontbuffer(screen, surface, bitmap); } Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_framebuffer.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_framebuffer.c 2009-09-11 04:18:33 UTC (rev 33058) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/hsp_framebuffer.c 2009-09-11 05:10:27 UTC (rev 33059) @@ -157,7 +157,6 @@ { TRACE("%s(ctxId: %lld)\n", __FUNCTION__, ctxId); struct hsp_context *ctx = NULL; - struct hsp_framebuffer *fb = NULL; struct pipe_surface *surface; pipe_mutex_lock(hsp_dev->mutex); @@ -169,18 +168,12 @@ return false; } - fb = ctx->draw; - - if (fb == NULL) { - TRACE("%s> draw framebuffer not found\n", __FUNCTION__); - return false; - } - - pipe_mutex_lock(fb->mutex); - st_notify_swapbuffers(fb->stfb); - st_get_framebuffer_surface(fb->stfb, ST_SURFACE_BACK_LEFT, &surface); + pipe_mutex_lock(ctx->draw->mutex); + st_notify_swapbuffers(ctx->draw->stfb); + st_get_framebuffer_surface(ctx->draw->stfb, ST_SURFACE_BACK_LEFT, &surface); + st_flush(ctx->st, PIPE_FLUSH_RENDER_CACHE, NULL); hsp_dev->hsp_winsys->flush_frontbuffer(hsp_dev->screen, surface, ctx->bitmap); - pipe_mutex_unlock(fb->mutex); + pipe_mutex_unlock(ctx->draw->mutex); return true; } From laplace at mail.berlios.de Fri Sep 11 08:17:16 2009 From: laplace at mail.berlios.de (laplace at mail.berlios.de) Date: Fri, 11 Sep 2009 08:17:16 +0200 Subject: [Haiku-commits] r33060 - in haiku/trunk/src/add-ons/kernel/drivers: . printer printer/usb Message-ID: <200909110617.n8B6HG6c026534@sheep.berlios.de> Author: laplace Date: 2009-09-11 08:17:13 +0200 (Fri, 11 Sep 2009) New Revision: 33060 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33060&view=rev Added: haiku/trunk/src/add-ons/kernel/drivers/printer/ haiku/trunk/src/add-ons/kernel/drivers/printer/Jamfile haiku/trunk/src/add-ons/kernel/drivers/printer/usb/ haiku/trunk/src/add-ons/kernel/drivers/printer/usb/Jamfile haiku/trunk/src/add-ons/kernel/drivers/printer/usb/usb_printer.cpp haiku/trunk/src/add-ons/kernel/drivers/printer/usb/usb_printer.h Log: Start of implementation of USB printer port based on USB_disk. -alphabranch Added: haiku/trunk/src/add-ons/kernel/drivers/printer/Jamfile =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/printer/Jamfile 2009-09-11 05:10:27 UTC (rev 33059) +++ haiku/trunk/src/add-ons/kernel/drivers/printer/Jamfile 2009-09-11 06:17:13 UTC (rev 33060) @@ -0,0 +1,3 @@ +SubDir HAIKU_TOP src add-ons kernel drivers printer ; + +SubInclude HAIKU_TOP src add-ons kernel drivers printer usb ; Added: haiku/trunk/src/add-ons/kernel/drivers/printer/usb/Jamfile =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/printer/usb/Jamfile 2009-09-11 05:10:27 UTC (rev 33059) +++ haiku/trunk/src/add-ons/kernel/drivers/printer/usb/Jamfile 2009-09-11 06:17:13 UTC (rev 33060) @@ -0,0 +1,8 @@ +SubDir HAIKU_TOP src add-ons kernel drivers printer usb ; + +SubDirSysHdrs $(HAIKU_TOP) src add-ons kernel bus_managers usb ; +UsePrivateHeaders kernel ; + +KernelAddon usb_printer : + usb_printer.cpp + ; Added: haiku/trunk/src/add-ons/kernel/drivers/printer/usb/usb_printer.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/printer/usb/usb_printer.cpp 2009-09-11 05:10:27 UTC (rev 33059) +++ haiku/trunk/src/add-ons/kernel/drivers/printer/usb/usb_printer.cpp 2009-09-11 06:17:13 UTC (rev 33060) @@ -0,0 +1,1063 @@ +/* + * Copyright 2008-2009, Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Michael Lotz + * Michael Pfeiffer + */ + +#include +#include +#include +#include +#include +#include +#include "usb_printer.h" +#include "USB_printer.h" + +#define DRIVER_NAME "usb_printer" +#define DEVICE_NAME_BASE "printer/usb/" +#define DEVICE_NAME DEVICE_NAME_BASE"%ld" + + +#define TRACE_USB_PRINTER 1 +#ifdef TRACE_USB_PRINTER +#define TRACE(x...) dprintf(DRIVER_NAME": "x) +#define TRACE_ALWAYS(x...) dprintf(DRIVER_NAME": "x) +#else +#define TRACE(x...) /* nothing */ +#define TRACE_ALWAYS(x...) dprintf(DRIVER_NAME": "x) +#endif + + +int32 api_version = B_CUR_DRIVER_API_VERSION; +static usb_module_info *gUSBModule = NULL; +static printer_device *gDeviceList = NULL; +static uint32 gDeviceCount = 0; +static mutex gDeviceListLock; +static char **gDeviceNames = NULL; + + +// +//#pragma mark - Forward Declarations +// + + +static void usb_printer_callback(void *cookie, status_t status, void *data, + size_t actualLength); + +status_t usb_printer_transfer_data(printer_device *device, bool directionIn, + void *data, size_t dataLength); + +#if 0 +status_t usb_printer_mass_storage_reset(printer_device *device); +uint8 usb_printer_get_max_lun(printer_device *device); +void usb_printer_reset_recovery(printer_device *device); +status_t usb_printer_receive_csw(printer_device *device, + command_status_wrapper *status); +status_t usb_printer_operation(device_lun *lun, uint8 operation, + uint8 opLength, uint32 logicalBlockAddress, + uint16 transferLength, void *data, uint32 *dataLength, + bool directionIn); + +status_t usb_printer_request_sense(device_lun *lun); +status_t usb_printer_mode_sense(device_lun *lun); +status_t usb_printer_test_unit_ready(device_lun *lun); +status_t usb_printer_inquiry(device_lun *lun); +status_t usb_printer_reset_capacity(device_lun *lun); +status_t usb_printer_update_capacity(device_lun *lun); +status_t usb_printer_synchronize(device_lun *lun, bool force); +#endif + +// +//#pragma mark - Device Allocation Helper Functions +// + + +void +usb_printer_free_device(printer_device *device) +{ + mutex_lock(&device->lock); + mutex_destroy(&device->lock); + delete_sem(device->notify); + free(device); +} + + +// +//#pragma mark - Bulk-only Functions +// + + +void +usb_printer_reset_recovery(printer_device *device) +{ + gUSBModule->clear_feature(device->bulk_in, USB_FEATURE_ENDPOINT_HALT); + gUSBModule->clear_feature(device->bulk_out, USB_FEATURE_ENDPOINT_HALT); +} + + +status_t +usb_printer_transfer_data(printer_device *device, bool directionIn, void *data, + size_t dataLength) +{ + status_t result = gUSBModule->queue_bulk(directionIn ? device->bulk_in + : device->bulk_out, data, dataLength, usb_printer_callback, device); + if (result != B_OK) { + TRACE_ALWAYS("failed to queue data transfer\n"); + return result; + } + + do { + result = acquire_sem_etc(device->notify, 1, B_RELATIVE_TIMEOUT, 2000000); + if (result == B_TIMED_OUT) { + // Cancel the transfer and collect the sem that should now be + // released through the callback on cancel. Handling of device + // reset is done in usb_printer_operation() when it detects that + // the transfer failed. + gUSBModule->cancel_queued_transfers(directionIn ? device->bulk_in + : device->bulk_out); + acquire_sem_etc(device->notify, 1, B_RELATIVE_TIMEOUT, 0); + } + } while (result == B_INTERRUPTED); + + if (result != B_OK) { + TRACE_ALWAYS("acquire_sem failed while waiting for data transfer\n"); + return result; + } + + return B_OK; +} + +#if 0 +status_t +usb_printer_mass_storage_reset(printer_device *device) +{ + return gUSBModule->send_request(device->device, USB_REQTYPE_INTERFACE_OUT + | USB_REQTYPE_CLASS, REQUEST_MASS_STORAGE_RESET, 0x0000, + device->interface, 0, NULL, NULL); +} + + +uint8 +usb_printer_get_max_lun(printer_device *device) +{ + uint8 result = 0; + size_t actualLength = 0; + + // devices that do not support multiple LUNs may stall this request + if (gUSBModule->send_request(device->device, USB_REQTYPE_INTERFACE_IN + | USB_REQTYPE_CLASS, REQUEST_GET_MAX_LUN, 0x0000, device->interface, + 1, &result, &actualLength) != B_OK || actualLength != 1) + return 0; + + if (result > MAX_LOGICAL_UNIT_NUMBER) { + // invalid max lun + return 0; + } + + return result; +} + + +status_t +usb_printer_receive_csw(printer_device *device, command_status_wrapper *status) +{ + status_t result = usb_printer_transfer_data(device, true, status, + sizeof(command_status_wrapper)); + if (result != B_OK) + return result; + + if (device->status != B_OK + || device->actual_length != sizeof(command_status_wrapper)) { + // receiving the command status wrapper failed + return B_ERROR; + } + + return B_OK; +} + + +status_t +usb_printer_operation(device_lun *lun, uint8 operation, uint8 opLength, + 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'); + + printer_device *device = lun->device; + command_block_wrapper command; + command.signature = CBW_SIGNATURE; + command.tag = device->current_tag++; + command.data_transfer_length = (dataLength != NULL ? *dataLength : 0); + command.flags = (directionIn ? CBW_DATA_INPUT : CBW_DATA_OUTPUT); + command.lun = lun->logical_unit_number; + command.command_block_length = opLength; + memset(command.command_block, 0, sizeof(command.command_block)); + + switch (opLength) { + case 6: { + scsi_command_6 *commandBlock = (scsi_command_6 *)command.command_block; + commandBlock->operation = operation; + commandBlock->lun = lun->logical_unit_number << 5; + commandBlock->allocation_length = (uint8)transferLength; + if (operation == SCSI_MODE_SENSE_6) { + // we hijack the lba argument to transport the desired page + commandBlock->reserved[1] = (uint8)logicalBlockAddress; + } + break; + } + + case 10: { + scsi_command_10 *commandBlock = (scsi_command_10 *)command.command_block; + commandBlock->operation = operation; + commandBlock->lun_flags = lun->logical_unit_number << 5; + commandBlock->logical_block_address = htonl(logicalBlockAddress); + commandBlock->transfer_length = htons(transferLength); + break; + } + + default: + TRACE_ALWAYS("unsupported operation length %d\n", opLength); + return B_BAD_VALUE; + } + + status_t result = usb_printer_transfer_data(device, false, &command, + sizeof(command_block_wrapper)); + if (result != B_OK) + return result; + + if (device->status != B_OK || + device->actual_length != sizeof(command_block_wrapper)) { + // sending the command block wrapper failed + TRACE_ALWAYS("sending the command block wrapper failed\n"); + usb_printer_reset_recovery(device); + 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_printer_transfer_data(device, directionIn, data, *dataLength); + if (result != B_OK) + return result; + + 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"); + gUSBModule->clear_feature(directionIn ? device->bulk_in + : device->bulk_out, USB_FEATURE_ENDPOINT_HALT); + } else { + TRACE_ALWAYS("sending or receiving of the data failed\n"); + usb_printer_reset_recovery(device); + return B_ERROR; + } + } + } + + command_status_wrapper status; + result = usb_printer_receive_csw(device, &status); + 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_printer_receive_csw(device, &status); + } + + if (result != B_OK) { + TRACE_ALWAYS("receiving the command status wrapper failed\n"); + usb_printer_reset_recovery(device); + return result; + } + + if (status.signature != CSW_SIGNATURE || status.tag != command.tag) { + // the command status wrapper is not valid + TRACE_ALWAYS("command status wrapper is not valid\n"); + usb_printer_reset_recovery(device); + return B_ERROR; + } + + switch (status.status) { + case CSW_STATUS_COMMAND_PASSED: + case CSW_STATUS_COMMAND_FAILED: { + if (status.data_residue > command.data_transfer_length) { + // command status wrapper is not meaningful + TRACE_ALWAYS("command status wrapper has invalid residue\n"); + usb_printer_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 + 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_printer_request_sense(lun); + return result == B_OK ? B_ERROR : result; + } + } + + case CSW_STATUS_PHASE_ERROR: { + // a protocol or device error occured + TRACE_ALWAYS("phase error in operation 0x%02x\n", operation); + usb_printer_reset_recovery(device); + return B_ERROR; + } + + default: { + // command status wrapper is not meaningful + TRACE_ALWAYS("command status wrapper has invalid status\n"); + usb_printer_reset_recovery(device); + return B_ERROR; + } + } +} + + +// +//#pragma mark - Helper/Convenience Functions +// + + +status_t +usb_printer_request_sense(device_lun *lun) +{ + uint32 dataLength = sizeof(scsi_request_sense_6_parameter); + scsi_request_sense_6_parameter parameter; + status_t result = usb_printer_operation(lun, SCSI_REQUEST_SENSE_6, 6, 0, + dataLength, ¶meter, &dataLength, true); + if (result != B_OK) { + TRACE_ALWAYS("getting request sense data failed\n"); + return result; + } + + if (parameter.sense_key > SCSI_SENSE_KEY_NOT_READY) { + TRACE_ALWAYS("request_sense: key: 0x%02x; asc: 0x%02x; ascq: 0x%02x;\n", + parameter.sense_key, parameter.additional_sense_code, + parameter.additional_sense_code_qualifier); + } + + switch (parameter.sense_key) { + case SCSI_SENSE_KEY_NO_SENSE: + case SCSI_SENSE_KEY_RECOVERED_ERROR: + return B_OK; + + case SCSI_SENSE_KEY_NOT_READY: + TRACE("request_sense: device not ready (asc 0x%02x ascq 0x%02x)\n", + parameter.additional_sense_code, + parameter.additional_sense_code_qualifier); + lun->media_present = false; + usb_printer_reset_capacity(lun); + return B_DEV_NO_MEDIA; + + case SCSI_SENSE_KEY_HARDWARE_ERROR: + case SCSI_SENSE_KEY_MEDIUM_ERROR: + TRACE_ALWAYS("request_sense: media or hardware error\n"); + return B_DEV_UNREADABLE; + + case SCSI_SENSE_KEY_ILLEGAL_REQUEST: + TRACE_ALWAYS("request_sense: illegal request\n"); + return B_DEV_INVALID_IOCTL; + + case SCSI_SENSE_KEY_UNIT_ATTENTION: + TRACE_ALWAYS("request_sense: media changed\n"); + lun->media_changed = true; + lun->media_present = true; + return B_DEV_MEDIA_CHANGED; + + case SCSI_SENSE_KEY_DATA_PROTECT: + TRACE_ALWAYS("request_sense: write protected\n"); + return B_READ_ONLY_DEVICE; + + case SCSI_SENSE_KEY_ABORTED_COMMAND: + TRACE_ALWAYS("request_sense: command aborted\n"); + return B_CANCELED; + } + + return B_ERROR; +} + + +status_t +usb_printer_mode_sense(device_lun *lun) +{ + uint32 dataLength = sizeof(scsi_mode_sense_6_parameter); + scsi_mode_sense_6_parameter parameter; + status_t result = usb_printer_operation(lun, SCSI_MODE_SENSE_6, 6, + SCSI_MODE_PAGE_DEVICE_CONFIGURATION, dataLength, ¶meter, + &dataLength, true); + if (result != B_OK) { + TRACE_ALWAYS("getting mode sense data failed\n"); + return result; + } + + lun->write_protected + = (parameter.device_specific & SCSI_DEVICE_SPECIFIC_WRITE_PROTECT) != 0; + TRACE_ALWAYS("write protected: %s\n", lun->write_protected ? "yes" : "no"); + return B_OK; +} + + +status_t +usb_printer_test_unit_ready(device_lun *lun) +{ + return usb_printer_operation(lun, SCSI_TEST_UNIT_READY_6, 6, 0, 0, NULL, NULL, + true); +} + + +status_t +usb_printer_inquiry(device_lun *lun) +{ + uint32 dataLength = sizeof(scsi_inquiry_6_parameter); + scsi_inquiry_6_parameter parameter; + status_t result = B_ERROR; + for (uint32 tries = 0; tries < 3; tries++) { + result = usb_printer_operation(lun, SCSI_INQUIRY_6, 6, 0, dataLength, + ¶meter, &dataLength, true); + if (result == B_OK) + break; + } + if (result != B_OK) { + TRACE_ALWAYS("getting inquiry data failed\n"); + lun->device_type = B_DISK; + lun->removable = true; + return result; + } + + TRACE("peripherial_device_type 0x%02x\n", parameter.peripherial_device_type); + TRACE("peripherial_qualifier 0x%02x\n", parameter.peripherial_qualifier); + TRACE("removable_medium %s\n", parameter.removable_medium ? "yes" : "no"); + TRACE("version 0x%02x\n", parameter.version); + TRACE("response_data_format 0x%02x\n", parameter.response_data_format); + TRACE_ALWAYS("vendor_identification \"%.8s\"\n", parameter.vendor_identification); + TRACE_ALWAYS("product_identification \"%.16s\"\n", parameter.product_identification); + TRACE_ALWAYS("product_revision_level \"%.4s\"\n", parameter.product_revision_level); + lun->device_type = parameter.peripherial_device_type; /* 1:1 mapping */ + lun->removable = (parameter.removable_medium == 1); + return B_OK; +} + + +status_t +usb_printer_reset_capacity(device_lun *lun) +{ + lun->block_size = 512; + lun->block_count = 0; + return B_OK; +} + + +status_t +usb_printer_update_capacity(device_lun *lun) +{ + uint32 dataLength = sizeof(scsi_read_capacity_10_parameter); + scsi_read_capacity_10_parameter parameter; + status_t result = B_ERROR; + + // Retry reading the capacity up to three times. The first try might only + // yield a unit attention telling us that the device or media status + // changed, which is more or less expected if it is the first operation + // on the device or the device only clears the unit atention for capacity + // reads. + for (int32 i = 0; i < 3; i++) { + result = usb_printer_operation(lun, SCSI_READ_CAPACITY_10, 10, 0, 0, + ¶meter, &dataLength, true); + if (result == B_OK) + break; + } + + if (result != B_OK) { + TRACE_ALWAYS("failed to update capacity\n"); + lun->media_present = false; + lun->media_changed = false; + usb_printer_reset_capacity(lun); + return result; + } + + lun->media_present = true; + lun->media_changed = false; + lun->block_size = ntohl(parameter.logical_block_length); + lun->block_count = ntohl(parameter.last_logical_block_address) + 1; + return B_OK; +} + + +status_t +usb_printer_synchronize(device_lun *lun, bool force) +{ + if (lun->device->sync_support == 0) { + // 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) + return B_OK; + + status_t result = usb_printer_operation(lun, SCSI_SYNCHRONIZE_CACHE_10, 10, + 0, 0, NULL, NULL, false); + + if (result == B_OK) { + lun->device->sync_support = SYNC_SUPPORT_RELOAD; + lun->should_sync = false; + return B_OK; + } + + if (result == B_DEV_INVALID_IOCTL) + lun->device->sync_support = 0; + else + lun->device->sync_support--; + + return result; +} +#endif + +// +//#pragma mark - Device Attach/Detach Notifications and Callback +// + + +static void +usb_printer_callback(void *cookie, status_t status, void *data, + size_t actualLength) +{ + //TRACE("callback()\n"); + printer_device *device = (printer_device *)cookie; + device->status = status; + device->actual_length = actualLength; + release_sem(device->notify); +} + + +static status_t +usb_printer_device_added(usb_device newDevice, void **cookie) +{ + TRACE("device_added(0x%08lx)\n", newDevice); + printer_device *device = (printer_device *)malloc(sizeof(printer_device)); + device->device = newDevice; + device->removed = false; + device->open_count = 0; + device->interface = 0xff; + device->current_tag = 0; + device->sync_support = SYNC_SUPPORT_RELOAD; + device->block_size = 4096; + + // scan through the interfaces to find our bulk-only data interface + const usb_configuration_info *configuration = gUSBModule->get_configuration(newDevice); + if (configuration == NULL) { + free(device); + return B_ERROR; + } + + for (size_t i = 0; i < configuration->interface_count; i++) { + usb_interface_info *interface = configuration->interface[i].active; + if (interface == NULL) + continue; + + if (interface->descr->interface_class == PRINTER_INTERFACE_CLASS + && interface->descr->interface_subclass == PRINTER_INTERFACE_SUBCLASS + && (interface->descr->interface_protocol == PIT_UNIDIRECTIONAL + || interface->descr->interface_protocol == PIT_BIDIRECTIONAL + || interface->descr->interface_protocol == PIT_1284_4_COMPATIBLE)) { + + bool hasIn = false; + bool hasOut = false; + for (size_t j = 0; j < interface->endpoint_count; j++) { + usb_endpoint_info *endpoint = &interface->endpoint[j]; + if (endpoint == NULL + || endpoint->descr->attributes != USB_ENDPOINT_ATTR_BULK) + continue; + + if (!hasIn && (endpoint->descr->endpoint_address + & USB_ENDPOINT_ADDR_DIR_IN)) { + device->bulk_in = endpoint->handle; + hasIn = true; + } else if (!hasOut && (endpoint->descr->endpoint_address + & USB_ENDPOINT_ADDR_DIR_IN) == 0) { + device->bulk_out = endpoint->handle; + hasOut = true; + } + + if (hasIn && hasOut) + break; + } + + if (!(hasIn && hasOut)) + continue; + + device->interface = interface->descr->interface_number; + break; + } + } + + if (device->interface == 0xff) { + TRACE_ALWAYS("no valid interface found\n"); + free(device); + return B_ERROR; + } + + mutex_init(&device->lock, "usb_printer device lock"); + + device->notify = create_sem(0, "usb_printer callback notify"); + if (device->notify < B_OK) { + mutex_destroy(&device->lock); + free(device); + return device->notify; + } + + mutex_lock(&gDeviceListLock); + uint32 freeDeviceMask = 0; + device->device_number = 0; + printer_device *other = gDeviceList; + while (other != NULL) { + // set max device number + 1 + if (other->device_number >= device->device_number) + device->device_number = other->device_number + 1; + + // record used devices + if (other->device_number < 32) { + freeDeviceMask |= 1 << other->device_number; + } + + other = other->link; + } + if (freeDeviceMask != (uint32)-1) { + // reuse device number of first 32 devices + for (int32 device_number = 0; device_number < 32; device_number ++) { + if (freeDeviceMask & (1 << device_number) == 0) { + device->device_number = device_number; + break; + } + } + } + + device->link = gDeviceList; + gDeviceList = device; + uint32 deviceNumber = gDeviceCount++; + sprintf(device->name, DEVICE_NAME, deviceNumber); + mutex_unlock(&gDeviceListLock); + + TRACE("new device: 0x%08lx\n", (uint32)device); + *cookie = (void *)device; + return B_OK; +} + + +static status_t +usb_printer_device_removed(void *cookie) +{ + TRACE("device_removed(0x%08lx)\n", (uint32)cookie); + printer_device *device = (printer_device *)cookie; + + mutex_lock(&gDeviceListLock); + if (gDeviceList == device) { + gDeviceList = device->link; + } else { + printer_device *element = gDeviceList; + while (element) { + if (element->link == device) { + element->link = device->link; + break; + } + + element = element->link; + } + } + gDeviceCount--; + + device->removed = true; + gUSBModule->cancel_queued_transfers(device->bulk_in); + gUSBModule->cancel_queued_transfers(device->bulk_out); + if (device->open_count == 0) + usb_printer_free_device(device); + + mutex_unlock(&gDeviceListLock); + return B_OK; +} + + +// +//#pragma mark - Partial Buffer Functions +// + +#if 0 +static bool +usb_printer_needs_partial_buffer(printer_device *device, off_t position, size_t length, + uint32 &blockPosition, uint16 &blockCount) +{ + blockPosition = (uint32)(position / device->block_size); + if ((off_t)blockPosition * device->block_size != position) + return true; + + blockCount = (uint16)(length / device->block_size); + if ((size_t)blockCount * device->block_size != length) + return true; + + return false; +} + + +static status_t +usb_printer_block_read(printer_device *device, uint32 blockPosition, uint16 blockCount, + void *buffer, size_t *length) +{ + status_t result = usb_printer_operation(device, SCSI_READ_10, 10, blockPosition, + blockCount, buffer, length, true); + return result; +} + + +static status_t +usb_printer_block_write(printer_device *device, uint32 blockPosition, uint16 blockCount, + void *buffer, size_t *length) +{ + status_t result = usb_printer_operation(device, SCSI_WRITE_10, 10, blockPosition, + blockCount, buffer, length, false); + if (result == B_OK) + lun->should_sync = true; + return result; +} + + +static status_t +usb_printer_prepare_partial_buffer(printer_device *device, off_t position, size_t length, + void *&partialBuffer, void *&blockBuffer, uint32 &blockPosition, + uint16 &blockCount) +{ + blockPosition = (uint32)(position / lun->block_size); + blockCount = (uint16)((uint32)((position + length + lun->block_size - 1) + / lun->block_size) - blockPosition); + size_t blockLength = blockCount * lun->block_size; + blockBuffer = malloc(blockLength); + if (blockBuffer == NULL) { + TRACE_ALWAYS("no memory to allocate partial buffer\n"); + return B_NO_MEMORY; + } + + status_t result = usb_printer_block_read(device, blockPosition, blockCount, + blockBuffer, &blockLength); + if (result != B_OK) { + TRACE_ALWAYS("block read failed when filling partial buffer\n"); + free(blockBuffer); + return result; + } + + off_t offset = position - (blockPosition * lun->block_size); + partialBuffer = (uint8 *)blockBuffer + offset; + return B_OK; +} +#endif + +// +//#pragma mark - Driver Hooks +// + + +static status_t +usb_printer_open(const char *name, uint32 flags, void **cookie) +{ + TRACE("open(%s)\n", name); + if (strncmp(name, DEVICE_NAME_BASE, strlen(DEVICE_NAME_BASE)) != 0) + return B_NAME_NOT_FOUND; + + mutex_lock(&gDeviceListLock); + printer_device *device = gDeviceList; + while (device) { + if (strncmp(name, device->name, 32) == 0) { + if (device->removed) { + mutex_unlock(&gDeviceListLock); + return B_ERROR; + } + + device->open_count++; + *cookie = device; + mutex_unlock(&gDeviceListLock); + return B_OK; + } + + device = device->link; + } + + mutex_unlock(&gDeviceListLock); + return B_NAME_NOT_FOUND; +} + + +static status_t +usb_printer_close(void *cookie) +{ + TRACE("close()\n"); + return B_OK; +} + + +static status_t +usb_printer_free(void *cookie) +{ + TRACE("free()\n"); + mutex_lock(&gDeviceListLock); + + printer_device *device = (printer_device *)cookie; + device->open_count--; + 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_printer_free_device(device); + } + + mutex_unlock(&gDeviceListLock); + return B_OK; +} + + +static status_t +usb_printer_ioctl(void *cookie, uint32 op, void *buffer, size_t length) +{ + printer_device *device = (printer_device *)cookie; + mutex_lock(&device->lock); + if (device->removed) { + mutex_unlock(&device->lock); + return B_DEV_NOT_READY; + } + + status_t result = B_DEV_INVALID_IOCTL; + switch (op) { + case USB_PRINTER_GET_DEVICE_ID: { + // TODO implement + strcpy(buffer, "Not implemented"); + result = B_OK; + break; + } + + default: + TRACE_ALWAYS("unhandled ioctl %ld\n", op); + break; + } + + mutex_unlock(&device->lock); + return result; +} + + +static status_t +usb_printer_transfer(printer_device* device, bool directionIn, void* buffer, size_t* length) +{ + status_t result = B_ERROR; + if (buffer == NULL || length == NULL || *length <= 0) { + return result; + } + + result = usb_printer_transfer_data(device, true, buffer, *length); + if (result != B_OK) { + return result; + } + size_t transferedData = device->actual_length; + if (device->status != B_OK || transferedData != *length) { + // sending or receiving of the data failed + if (device->status == B_DEV_STALLED) { + TRACE("stall while transfering data\n"); + gUSBModule->clear_feature(directionIn ? device->bulk_in + : device->bulk_out, USB_FEATURE_ENDPOINT_HALT); + } else { + TRACE_ALWAYS("sending or receiving of the data failed\n"); + usb_printer_reset_recovery(device); + return B_ERROR; + } + } + *length = transferedData; + + return result; +} + +static status_t +usb_printer_read(void *cookie, off_t position, void *buffer, size_t *length) +{ + if (buffer == NULL || length == NULL) + return B_BAD_VALUE; + + TRACE("read(%lld, %ld)\n", position, *length); + printer_device *device = (printer_device *)cookie; + mutex_lock(&device->lock); + if (device->removed) { + *length = 0; + mutex_unlock(&device->lock); + return B_DEV_NOT_READY; + } + + status_t result = usb_printer_transfer(device, true, buffer, length); + + mutex_unlock(&device->lock); + if (result == B_OK) { + TRACE("read successful with %ld bytes\n", *length); + return B_OK; + } + + *length = 0; + TRACE_ALWAYS("read fails with 0x%08lx\n", result); + return result; +} + + +static status_t +usb_printer_write(void *cookie, off_t position, const void *buffer, + size_t *length) +{ + if (buffer == NULL || length == NULL) + return B_BAD_VALUE; + + TRACE("write(%lld, %ld)\n", position, *length); + printer_device *device = (printer_device *)cookie; + mutex_lock(&device->lock); + if (device->removed) { + *length = 0; + mutex_unlock(&device->lock); + return B_DEV_NOT_READY; + } + + status_t result = usb_printer_transfer(device, false, (void*)buffer, length); + + mutex_unlock(&device->lock); + if (result == B_OK) { + TRACE("write successful with %ld bytes\n", *length); + return B_OK; + } + + *length = 0; + TRACE_ALWAYS("write fails with 0x%08lx\n", result); + return result; +} + + +// +//#pragma mark - Driver Entry Points +// + + +status_t +init_hardware() +{ + TRACE("init_hardware()\n"); + return B_OK; +} + + +status_t +init_driver() +{ + TRACE("init_driver()\n"); + static usb_notify_hooks notifyHooks = { + &usb_printer_device_added, + &usb_printer_device_removed + }; + + static usb_support_descriptor supportedDevices = { + PRINTER_INTERFACE_CLASS, + PRINTER_INTERFACE_SUBCLASS, + 0, // any protocol [... truncated: 210 lines follow ...] From mmlr at mail.berlios.de Fri Sep 11 09:29:38 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 11 Sep 2009 09:29:38 +0200 Subject: [Haiku-commits] r33061 - haiku/trunk/src/system/kernel/vm Message-ID: <200909110729.n8B7TcFJ016108@sheep.berlios.de> Author: mmlr Date: 2009-09-11 09:29:36 +0200 (Fri, 11 Sep 2009) New Revision: 33061 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33061&view=rev Modified: haiku/trunk/src/system/kernel/vm/vm.cpp Log: * Also take into account that the alignment due to B_ANY_KERNEL_BLOCK_ADDRESS can cause overflows. * Added a generic IS_VALID_SPOT() macro that checks for overflows and checks if the area will fit with the given constraints. * Use the macro to simplify the places where these checks are necessary. * Use the provided "end" limit instead of the address space end. It currently doesn't matter but makes more sense. * Rename newBase variables to alignedBase as that's what they are. Modified: haiku/trunk/src/system/kernel/vm/vm.cpp =================================================================== --- haiku/trunk/src/system/kernel/vm/vm.cpp 2009-09-11 06:17:13 UTC (rev 33060) +++ haiku/trunk/src/system/kernel/vm/vm.cpp 2009-09-11 07:29:36 UTC (rev 33061) @@ -1094,6 +1094,12 @@ } +// verifies that an area with the given aligned base and size fits into +// the spot defined by base and limit and does check for overflows +#define IS_VALID_SPOT(base, alignedBase, size, limit) \ + ((alignedBase) >= (base) && (alignedBase) + ((size) - 1) > (alignedBase) \ + && (alignedBase) + ((size) - 1) <= (limit)) + /*! Must be called with this address space's sem held */ static status_t find_and_insert_area_slot(vm_address_space* addressSpace, addr_t start, @@ -1157,10 +1163,11 @@ // find a hole big enough for a new area if (last == NULL) { // see if we can build it at the beginning of the virtual map - if (next == NULL || next->base > ROUNDUP(addressSpace->base, - alignment) + (size - 1)) { + addr_t alignedBase = ROUNDUP(addressSpace->base, alignment); + if (IS_VALID_SPOT(addressSpace->base, alignedBase, size, + next == NULL ? end : next->base)) { foundSpot = true; - area->base = ROUNDUP(addressSpace->base, alignment); + area->base = alignedBase; break; } @@ -1170,9 +1177,11 @@ // keep walking while (next != NULL) { - addr_t newBase = ROUNDUP(last->base + last->size, alignment); - if (next->base > newBase && next->base - newBase >= size) { - // we found a spot (it'll be filled up below) + addr_t alignedBase = ROUNDUP(last->base + last->size, alignment); + if (IS_VALID_SPOT(last->base + (last->size - 1), alignedBase, + size, next->base)) { + foundSpot = true; + area->base = alignedBase; break; } @@ -1180,13 +1189,15 @@ next = next->address_space_next; } - addr_t newBase = ROUNDUP(last->base + last->size, alignment); - addr_t aspaceEnd = addressSpace->base + (addressSpace->size - 1); - if (next != NULL || (aspaceEnd > newBase - && aspaceEnd - (newBase - 1) >= size)) { + if (foundSpot) + break; + + addr_t alignedBase = ROUNDUP(last->base + last->size, alignment); + if (IS_VALID_SPOT(last->base + (last->size - 1), alignedBase, + size, end)) { // got a spot foundSpot = true; - area->base = newBase; + area->base = alignedBase; break; } else { // We didn't find a free spot - if there were any reserved areas @@ -1203,8 +1214,8 @@ // TODO: take free space after the reserved area into // account! - if (next->base == ROUNDUP(next->base, alignment) - && next->size == size) { + addr_t alignedBase = ROUNDUP(next->base, alignment); + if (next->base == alignedBase && next->size == size) { // The reserved area is entirely covered, and thus, // removed if (last) @@ -1213,32 +1224,31 @@ addressSpace->areas = next->address_space_next; foundSpot = true; - area->base = next->base; + area->base = alignedBase; free(next); break; } - addr_t newBase = ROUNDUP(next->base, alignment); - if (newBase == next->base && next->size >= size) { + if (alignedBase == next->base && next->size >= size) { // The new area will be placed at the beginning of the // reserved area and the reserved area will be offset // and resized foundSpot = true; next->base += size; next->size -= size; - area->base = newBase; + area->base = alignedBase; break; } - if (newBase <= next->base + (next->size - 1) - && next->size - (newBase - next->base) >= size) { + if (IS_VALID_SPOT(next->base, alignedBase, size, + next->base + (next->size - 1))) { // The new area will be placed at the end of the // reserved area, and the reserved area will be resized // to make space foundSpot = true; - next->size = newBase - next->base; + next->size = alignedBase - next->base; last = next; - area->base = newBase; + area->base = alignedBase; break; } @@ -1249,6 +1259,7 @@ } case B_BASE_ADDRESS: + { // find a hole big enough for a new area beginning with "start" if (last == NULL) { // see if we can build it at the beginning of the specified start @@ -1273,14 +1284,14 @@ next = next->address_space_next; } - if (next != NULL || addressSpace->base + (addressSpace->size - 1) - - last->base + (last->size - 1) >= size) { + addr_t lastEnd = last->base + (last->size - 1); + if (next != NULL || end - lastEnd >= size) { // got a spot foundSpot = true; - if (last->base + last->size <= start) + if (lastEnd < start) area->base = start; else - area->base = last->base + last->size; + area->base = lastEnd + 1; break; } @@ -1290,6 +1301,7 @@ addressSpec = B_ANY_ADDRESS; last = NULL; goto second_chance; + } case B_EXACT_ADDRESS: // see if we can create it exactly here From korli at users.berlios.de Fri Sep 11 13:09:12 2009 From: korli at users.berlios.de (=?ISO-8859-1?B?Suly9G1lIER1dmFs?=) Date: Fri, 11 Sep 2009 13:09:12 +0200 Subject: [Haiku-commits] r33057 - in haiku/branches/components/gallium3d/src: add-ons/opengl/softpipe kits/opengl/mesa/gallium/auxiliary/pipebuffer kits/opengl/mesa/gallium/auxiliary/rtasm kits/opengl/mesa/gallium/auxiliary/tgsi kits/opengl/mesa/gallium/a Message-ID: Hi, 2009/9/11 : > Log: > updated to mesa master > Could you give in your commit message the version of mesa with which it is synched ? This is important for third party vendor sources. Ultimately they should also be included in the vendor branch. Bye, J?r?me From mmlr at mail.berlios.de Fri Sep 11 17:46:55 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 11 Sep 2009 17:46:55 +0200 Subject: [Haiku-commits] r33062 - haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata Message-ID: <200909111546.n8BFktdE021530@sheep.berlios.de> Author: mmlr Date: 2009-09-11 17:46:52 +0200 (Fri, 11 Sep 2009) New Revision: 33062 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33062&view=rev Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAHelper.cpp haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h Log: Merging r33039, r33042 and r33043 from trunk after consulting Marcus. Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp 2009-09-11 07:29:36 UTC (rev 33061) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp 2009-09-11 15:46:52 UTC (rev 33062) @@ -405,6 +405,9 @@ _FlushAndWait(150 * 1000); + // read status to clear any pending interrupts + _Status(); + return B_OK; } @@ -564,7 +567,8 @@ status_t ATAChannel::RecoverLostInterrupt() { - uint8 status = AltStatus(); + // read status to clear any pending interrupts + uint8 status = _Status(); if (status & (ATA_STATUS_BUSY | ATA_STATUS_DATA_REQUEST)) { TRACE_ERROR("RecoverLostInterrupt: device busy, status 0x%02x\n", status); return B_ERROR; @@ -829,6 +833,16 @@ } +uint8 +ATAChannel::_Status() +{ + ata_task_file taskFile; + if (_ReadRegs(&taskFile, ATA_MASK_STATUS) != B_OK) + return 0x01; + return taskFile.read.status; +} + + status_t ATAChannel::_WriteControl(uint8 value) { Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp 2009-09-11 07:29:36 UTC (rev 33061) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp 2009-09-11 15:46:52 UTC (rev 33062) @@ -512,6 +512,22 @@ return B_ERROR; } + if (1) { + // print device information + char modelNumber[sizeof(fInfoBlock.model_number) + 1]; + char serialNumber[sizeof(fInfoBlock.serial_number) + 1]; + char firmwareRev[sizeof(fInfoBlock.firmware_revision) + 1]; + strlcpy(modelNumber, fInfoBlock.model_number, sizeof(modelNumber)); + strlcpy(serialNumber, fInfoBlock.serial_number, sizeof(serialNumber)); + strlcpy(firmwareRev, fInfoBlock.firmware_revision, sizeof(firmwareRev)); + swap_words(modelNumber, sizeof(modelNumber) - 1); + swap_words(serialNumber, sizeof(serialNumber) - 1); + swap_words(firmwareRev, sizeof(firmwareRev) - 1); + TRACE_ALWAYS("model number: %s\n", modelNumber); + TRACE_ALWAYS("serial number: %s\n", serialNumber); + TRACE_ALWAYS("firmware rev.: %s\n", firmwareRev); + } + return B_OK; } Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAHelper.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAHelper.cpp 2009-09-11 07:29:36 UTC (rev 33061) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAHelper.cpp 2009-09-11 15:46:52 UTC (rev 33062) @@ -64,3 +64,15 @@ return size == 0; } + + +void +swap_words(void *data, size_t size) +{ + uint16 *word = (uint16 *)data; + size_t count = size / 2; + while (count--) { + *word = (*word << 8) | (*word >> 8); + word++; + } +} Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h 2009-09-11 07:29:36 UTC (rev 33061) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h 2009-09-11 15:46:52 UTC (rev 33062) @@ -55,7 +55,9 @@ bool copy_sg_data(scsi_ccb *ccb, uint offset, uint allocationLength, void *buffer, int size, bool toBuffer); +void swap_words(void *data, size_t size); + class ATAChannel { public: ATAChannel(device_node *node); @@ -120,6 +122,7 @@ status_t _WriteRegs(ata_task_file *taskFile, ata_reg_mask mask); status_t _WriteControl(uint8 value); + uint8 _Status(); void _FlushAndWait(bigtime_t waitTime); From mmlr at mail.berlios.de Fri Sep 11 17:52:19 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 11 Sep 2009 17:52:19 +0200 Subject: [Haiku-commits] r33063 - in haiku/branches/releases/r1alpha1/src/add-ons: kernel/drivers/audio/hda media/media-add-ons/multi_audio Message-ID: <200909111552.n8BFqJIQ022221@sheep.berlios.de> Author: mmlr Date: 2009-09-11 17:52:17 +0200 (Fri, 11 Sep 2009) New Revision: 33063 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33063&view=rev Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp haiku/branches/releases/r1alpha1/src/add-ons/media/media-add-ons/multi_audio/MultiAudioUtility.cpp Log: Merging r32971 from trunk. It disables the use of the yet unsupported float format in the multi audio add-on and adds a bit of debug output to HDA. Modified: haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp 2009-09-11 15:46:52 UTC (rev 33062) +++ haiku/branches/releases/r1alpha1/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp 2009-09-11 15:52:17 UTC (rev 33063) @@ -1,10 +1,11 @@ /* - * Copyright 2007-2008, Haiku, Inc. All Rights Reserved. + * Copyright 2007-2009, Haiku, Inc. All Rights Reserved. * Distributed under the terms of the MIT License. * * Authors: * Ithamar Adema, ithamar AT unet DOT nl * Axel D?rfler, axeld at pinc-software.de + * J?r?me Duval, korli at users.berlios.de */ @@ -153,12 +154,15 @@ static void dump_widget_stream_support(hda_widget& widget) { - dprintf("\tSupported formats: %s%s%s%s%s\n", + dprintf("\tSupported formats: %s%s%s%s%s%s%s%s\n", widget.d.io.formats & B_FMT_8BIT_S ? "8bits " : "", widget.d.io.formats & B_FMT_16BIT ? "16bits " : "", widget.d.io.formats & B_FMT_20BIT ? "20bits " : "", widget.d.io.formats & B_FMT_24BIT ? "24bits " : "", - widget.d.io.formats & B_FMT_32BIT ? "32bits " : ""); + widget.d.io.formats & B_FMT_32BIT ? "32bits " : "", + widget.d.io.formats & B_FMT_FLOAT ? "float " : "", + widget.d.io.formats & B_FMT_DOUBLE ? "double " : "", + widget.d.io.formats & B_FMT_EXTENDED ? "extended " : ""); dprintf("\tSupported rates: %s%s%s%s%s%s%s%s%s%s%s%s\n", widget.d.io.rates & B_SR_8000 ? "8khz " : "", widget.d.io.rates & B_SR_11025 ? "11khz " : "", Modified: haiku/branches/releases/r1alpha1/src/add-ons/media/media-add-ons/multi_audio/MultiAudioUtility.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/add-ons/media/media-add-ons/multi_audio/MultiAudioUtility.cpp 2009-09-11 15:46:52 UTC (rev 33062) +++ haiku/branches/releases/r1alpha1/src/add-ons/media/media-add-ons/multi_audio/MultiAudioUtility.cpp 2009-09-11 15:52:17 UTC (rev 33063) @@ -141,8 +141,9 @@ select_format(uint32 format) { // best format - if (format & B_FMT_FLOAT) - return B_FMT_FLOAT; + // TODO ensure we support this format + /*if (format & B_FMT_FLOAT) + return B_FMT_FLOAT;*/ if (format & B_FMT_32BIT) return B_FMT_32BIT; if (format & B_FMT_24BIT) From aljen-mlists at o2.pl Fri Sep 11 18:10:52 2009 From: aljen-mlists at o2.pl (Artur Wyszynski) Date: Fri, 11 Sep 2009 18:10:52 +0200 Subject: [Haiku-commits] r33057 - in haiku/branches/components/gallium3d/src: add-ons/opengl/softpipe kits/opengl/mesa/gallium/auxiliary/pipebuffer kits/opengl/mesa/gallium/auxiliary/rtasm kits/opengl/mesa/gallium/auxiliary/tgsi kits/opengl/mesa/gallium/a In-Reply-To: References: Message-ID: <4AAA768C.1090102@o2.pl> Hey, J?r?me Duval pisze: > Hi, > > 2009/9/11 : >> Log: >> updated to mesa master >> > > Could you give in your commit message the version of mesa with which > it is synched ? > This is important for third party vendor sources. Ultimately they > should also be included in the vendor branch. > There is no version, i mean it's mesa 7.7 but for gallium porting i just use always latest code from mesa git repo. It could go to the vendor branch when it will be more mature :) > Bye, > J?r?me > _______________________________________________ > Haiku-commits mailing list > Haiku-commits at lists.berlios.de > https://lists.berlios.de/mailman/listinfo/haiku-commits > From mmlr at mail.berlios.de Fri Sep 11 18:51:19 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 11 Sep 2009 18:51:19 +0200 Subject: [Haiku-commits] r33064 - haiku/branches/releases/r1alpha1/src/servers/net Message-ID: <200909111651.n8BGpJEs010892@sheep.berlios.de> Author: mmlr Date: 2009-09-11 18:51:13 +0200 (Fri, 11 Sep 2009) New Revision: 33064 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33064&view=rev Modified: haiku/branches/releases/r1alpha1/src/servers/net/DHCPClient.cpp Log: Merging r33049 from trunk: * DHCPClient now passes communication problems with NetServer on to caller, as a result failed DHPC-requests will no longer result in bogus static configurations (but an auto-config IP-address will be picked instead) Modified: haiku/branches/releases/r1alpha1/src/servers/net/DHCPClient.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/servers/net/DHCPClient.cpp 2009-09-11 15:52:17 UTC (rev 33063) +++ haiku/branches/releases/r1alpha1/src/servers/net/DHCPClient.cpp 2009-09-11 16:51:13 UTC (rev 33064) @@ -550,10 +550,9 @@ // configure interface BMessage reply; - Target().SendMessage(&fConfiguration, &reply); - - if (reply.FindInt32("status", &fStatus) != B_OK) - status = B_OK; + status = Target().SendMessage(&fConfiguration, &reply); + if (status == B_OK) + status = reply.FindInt32("status", &fStatus); break; } From aljen at mail.berlios.de Fri Sep 11 19:35:17 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Fri, 11 Sep 2009 19:35:17 +0200 Subject: [Haiku-commits] r33065 - haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe Message-ID: <200909111735.n8BHZHxq015073@sheep.berlios.de> Author: aljen Date: 2009-09-11 19:35:15 +0200 (Fri, 11 Sep 2009) New Revision: 33065 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33065&view=rev Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.c Log: Fixed typo, use mapped buffer Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.c 2009-09-11 16:51:13 UTC (rev 33064) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/haiku_softpipe_winsys.c 2009-09-11 17:35:15 UTC (rev 33065) @@ -269,7 +269,7 @@ data = screen->buffer_map(screen, texture->buffer, 0); - copy_bitmap_bits(bitmap, buffer->data + surface->offset, bitsLength); + copy_bitmap_bits(bitmap, data + surface->offset, bitsLength); screen->buffer_unmap(screen, texture->buffer); From mmlr at mail.berlios.de Fri Sep 11 20:12:17 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 11 Sep 2009 20:12:17 +0200 Subject: [Haiku-commits] r33066 - haiku/trunk/build/scripts Message-ID: <200909111812.n8BICH3W025700@sheep.berlios.de> Author: mmlr Date: 2009-09-11 20:12:16 +0200 (Fri, 11 Sep 2009) New Revision: 33066 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33066&view=rev Modified: haiku/trunk/build/scripts/build_haiku_cd Log: Force uid and gid to 0 when building the CD. This avoids taking over foreign user and group ids on build platforms that support them. Fixes #4458. Modified: haiku/trunk/build/scripts/build_haiku_cd =================================================================== --- haiku/trunk/build/scripts/build_haiku_cd 2009-09-11 17:35:15 UTC (rev 33065) +++ haiku/trunk/build/scripts/build_haiku_cd 2009-09-11 18:12:16 UTC (rev 33066) @@ -147,7 +147,7 @@ # build the iso image echo "Building CD image ..." -mkisofs -b `basename $cdBootFloppy` -U -R -V "$cdLabel" -o "$cdImagePath" "$tPrefix" +mkisofs -uid 0 -gid 0 -b `basename $cdBootFloppy` -U -R -V "$cdLabel" -o "$cdImagePath" "$tPrefix" # cleanup output dir $rmAttrs -rf "$outputDir" From mmlr at mail.berlios.de Fri Sep 11 20:14:53 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Fri, 11 Sep 2009 20:14:53 +0200 Subject: [Haiku-commits] r33067 - haiku/branches/releases/r1alpha1/build/scripts Message-ID: <200909111814.n8BIErBZ025974@sheep.berlios.de> Author: mmlr Date: 2009-09-11 20:14:52 +0200 (Fri, 11 Sep 2009) New Revision: 33067 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33067&view=rev Modified: haiku/branches/releases/r1alpha1/build/scripts/build_haiku_cd Log: Merging r33066 from trunk: Force uid and gid to 0 when building the CD. This avoids taking over foreign user and group ids on build platforms that support them. Fixes #4458. Modified: haiku/branches/releases/r1alpha1/build/scripts/build_haiku_cd =================================================================== --- haiku/branches/releases/r1alpha1/build/scripts/build_haiku_cd 2009-09-11 18:12:16 UTC (rev 33066) +++ haiku/branches/releases/r1alpha1/build/scripts/build_haiku_cd 2009-09-11 18:14:52 UTC (rev 33067) @@ -147,7 +147,7 @@ # build the iso image echo "Building CD image ..." -mkisofs -b `basename $cdBootFloppy` -U -R -V "$cdLabel" -o "$cdImagePath" "$tPrefix" +mkisofs -uid 0 -gid 0 -b `basename $cdBootFloppy` -U -R -V "$cdLabel" -o "$cdImagePath" "$tPrefix" # cleanup output dir $rmAttrs -rf "$outputDir" From aljen at mail.berlios.de Fri Sep 11 23:06:37 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Fri, 11 Sep 2009 23:06:37 +0200 Subject: [Haiku-commits] r33068 - in haiku/branches/components/gallium3d: build/config_headers build/scripts headers/os/app headers/private/app src/add-ons/kernel/bus_managers/ata src/add-ons/kernel/busses/scsi/ahci src/add-ons/kernel/drivers src/add-ons/kernel/drivers/audio/ac97/es1370 src/add-ons/kernel/drivers/audio/hda src/add-ons/kernel/drivers/printer src/add-ons/kernel/drivers/printer/usb src/add-ons/kernel/generic/ata_adapter src/bin/rc src/kits/app src/servers/net src/system/kernel/vm Message-ID: <200909112106.n8BL6bSm012068@sheep.berlios.de> Author: aljen Date: 2009-09-11 23:06:24 +0200 (Fri, 11 Sep 2009) New Revision: 33068 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33068&view=rev Added: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/ haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/Jamfile haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/usb/ haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/usb/Jamfile haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/usb/usb_printer.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/usb/usb_printer.h Removed: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/Jamfile haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/usb/ haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/usb/Jamfile haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/usb/usb_printer.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/usb/usb_printer.h Modified: haiku/branches/components/gallium3d/build/config_headers/tracing_config.h haiku/branches/components/gallium3d/build/scripts/build_haiku_cd haiku/branches/components/gallium3d/headers/os/app/Message.h haiku/branches/components/gallium3d/headers/private/app/MessagePrivate.h haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAHelper.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci.c haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.c haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp haiku/branches/components/gallium3d/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c haiku/branches/components/gallium3d/src/bin/rc/parser.y haiku/branches/components/gallium3d/src/kits/app/InitTerminateLibBe.cpp haiku/branches/components/gallium3d/src/kits/app/Message.cpp haiku/branches/components/gallium3d/src/servers/net/DHCPClient.cpp haiku/branches/components/gallium3d/src/system/kernel/vm/vm.cpp Log: merged changes from trunk r33038-r33067 Modified: haiku/branches/components/gallium3d/build/config_headers/tracing_config.h =================================================================== --- haiku/branches/components/gallium3d/build/config_headers/tracing_config.h 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/build/config_headers/tracing_config.h 2009-09-11 21:06:24 UTC (rev 33068) @@ -20,6 +20,7 @@ #define AHCI_PORT_TRACING 0 #define ATA_TRACING 0 +#define ATA_DMA_TRACING 0 #define ATAPI_TRACING 0 #define BFS_TRACING 0 #define BLOCK_CACHE_BLOCK_TRACING 0 Modified: haiku/branches/components/gallium3d/build/scripts/build_haiku_cd =================================================================== --- haiku/branches/components/gallium3d/build/scripts/build_haiku_cd 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/build/scripts/build_haiku_cd 2009-09-11 21:06:24 UTC (rev 33068) @@ -147,7 +147,7 @@ # build the iso image echo "Building CD image ..." -mkisofs -b `basename $cdBootFloppy` -U -R -V "$cdLabel" -o "$cdImagePath" "$tPrefix" +mkisofs -uid 0 -gid 0 -b `basename $cdBootFloppy` -U -R -V "$cdLabel" -o "$cdImagePath" "$tPrefix" # cleanup output dir $rmAttrs -rf "$outputDir" Modified: haiku/branches/components/gallium3d/headers/os/app/Message.h =================================================================== --- haiku/branches/components/gallium3d/headers/os/app/Message.h 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/headers/os/app/Message.h 2009-09-11 21:06:24 UTC (rev 33068) @@ -339,6 +339,7 @@ port_id port, int32 token, bigtime_t timeout); static void _StaticInit(); + static void _StaticReInitForkedChild(); static void _StaticCleanup(); static void _StaticCacheCleanup(); static int32 _StaticGetCachedReplyPort(); Modified: haiku/branches/components/gallium3d/headers/private/app/MessagePrivate.h =================================================================== --- haiku/branches/components/gallium3d/headers/private/app/MessagePrivate.h 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/headers/private/app/MessagePrivate.h 2009-09-11 21:06:24 UTC (rev 33068) @@ -208,6 +208,12 @@ } static void + StaticReInitForkedChild() + { + BMessage::_StaticReInitForkedChild(); + } + + static void StaticCleanup() { BMessage::_StaticCleanup(); Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAChannel.cpp 2009-09-11 21:06:24 UTC (rev 33068) @@ -405,6 +405,9 @@ _FlushAndWait(150 * 1000); + // read status to clear any pending interrupts + _Status(); + return B_OK; } @@ -564,7 +567,8 @@ status_t ATAChannel::RecoverLostInterrupt() { - uint8 status = AltStatus(); + // read status to clear any pending interrupts + uint8 status = _Status(); if (status & (ATA_STATUS_BUSY | ATA_STATUS_DATA_REQUEST)) { TRACE_ERROR("RecoverLostInterrupt: device busy, status 0x%02x\n", status); return B_ERROR; @@ -829,6 +833,16 @@ } +uint8 +ATAChannel::_Status() +{ + ata_task_file taskFile; + if (_ReadRegs(&taskFile, ATA_MASK_STATUS) != B_OK) + return 0x01; + return taskFile.read.status; +} + + status_t ATAChannel::_WriteControl(uint8 value) { Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATADevice.cpp 2009-09-11 21:06:24 UTC (rev 33068) @@ -512,6 +512,22 @@ return B_ERROR; } + if (1) { + // print device information + char modelNumber[sizeof(fInfoBlock.model_number) + 1]; + char serialNumber[sizeof(fInfoBlock.serial_number) + 1]; + char firmwareRev[sizeof(fInfoBlock.firmware_revision) + 1]; + strlcpy(modelNumber, fInfoBlock.model_number, sizeof(modelNumber)); + strlcpy(serialNumber, fInfoBlock.serial_number, sizeof(serialNumber)); + strlcpy(firmwareRev, fInfoBlock.firmware_revision, sizeof(firmwareRev)); + swap_words(modelNumber, sizeof(modelNumber) - 1); + swap_words(serialNumber, sizeof(serialNumber) - 1); + swap_words(firmwareRev, sizeof(firmwareRev) - 1); + TRACE_ALWAYS("model number: %s\n", modelNumber); + TRACE_ALWAYS("serial number: %s\n", serialNumber); + TRACE_ALWAYS("firmware rev.: %s\n", firmwareRev); + } + return B_OK; } Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAHelper.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAHelper.cpp 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAHelper.cpp 2009-09-11 21:06:24 UTC (rev 33068) @@ -64,3 +64,15 @@ return size == 0; } + + +void +swap_words(void *data, size_t size) +{ + uint16 *word = (uint16 *)data; + size_t count = size / 2; + while (count--) { + *word = (*word << 8) | (*word >> 8); + word++; + } +} Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/bus_managers/ata/ATAPrivate.h 2009-09-11 21:06:24 UTC (rev 33068) @@ -55,7 +55,9 @@ bool copy_sg_data(scsi_ccb *ccb, uint offset, uint allocationLength, void *buffer, int size, bool toBuffer); +void swap_words(void *data, size_t size); + class ATAChannel { public: ATAChannel(device_node *node); @@ -120,6 +122,7 @@ status_t _WriteRegs(ata_task_file *taskFile, ata_reg_mask mask); status_t _WriteControl(uint8 value); + uint8 _Status(); void _FlushAndWait(bigtime_t waitTime); Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci.c 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci.c 2009-09-11 21:06:24 UTC (rev 33068) @@ -9,7 +9,7 @@ #include -#define TRACE(a...) dprintf("\33[35mahci:\33[0m " a) +#define TRACE(a...) dprintf("ahci: " a) #define FLOW(a...) dprintf("ahci: " a) #define AHCI_ID_GENERATOR "ahci/id" Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/busses/scsi/ahci/ahci_port.cpp 2009-09-11 21:06:24 UTC (rev 33068) @@ -632,7 +632,7 @@ swap_words(serialNumber, sizeof(serialNumber) - 1); swap_words(firmwareRev, sizeof(firmwareRev) - 1); - TRACE("model number: %s\n", modelNumber); + TRACE("model number: %s\n", modelNumber); TRACE("serial number: %s\n", serialNumber); TRACE("firmware rev.: %s\n", firmwareRev); Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.c 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/ac97/es1370/es1370.c 2009-09-11 21:06:24 UTC (rev 33068) @@ -500,8 +500,8 @@ void *settings_handle; pci_info info; int ix = 0; + status_t err; num_cards = 0; - status_t err; PRINT(("init_driver()\n")); Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-09-11 21:06:24 UTC (rev 33068) @@ -98,8 +98,13 @@ stream->Write8(HDAC_STREAM_STATUS, status); + if (status & STATUS_FIFO_ERROR) + dprintf("hda: stream fifo error (id:%ld)\n", stream->id); + if (status & STATUS_DESCRIPTOR_ERROR) + dprintf("hda: stream descriptor error (id:%ld)\n", stream->id); + if ((status & STATUS_BUFFER_COMPLETED) == 0) { - dprintf("hda: stream status %x\n", status); + dprintf("hda: stream buffer not completed (id:%ld)\n", stream->id); return; } @@ -114,13 +119,6 @@ stream->frames_count += stream->buffer_length; stream->buffer_cycle = position / bufferSize; - // playback interrupts come early, offsets don't work on non intel - // TODO find out why - if (stream->type == STREAM_PLAYBACK - && stream->controller->pci_info.vendor_id != INTEL_VENDORID) { - stream->buffer_cycle++; - } - release_spinlock(&stream->lock); release_sem_etc(controller->buffer_ready_sem, 1, B_DO_NOT_RESCHEDULE); @@ -558,13 +556,18 @@ // TODO check on other vendors, see in stream_handle_interrupt() // Tested only on Intel ICH8 uint32 offset = 0; - if (stream->type == STREAM_PLAYBACK && stream->controller->pci_info.vendor_id == INTEL_VENDORID) { - if (stream->sample_size == 2) - offset = 6; - else if (stream->sample_size > 2) - offset = 8; + if (stream->type == STREAM_PLAYBACK) { + if (stream->controller->pci_info.vendor_id == INTEL_VENDORID) { + if (stream->sample_size == 2) + offset = 3; + else if (stream->sample_size > 2) + offset = 4; + } else { + offset = 11; + } + offset *= 64; + offset = ALIGN(offset, 128); } - offset *= 32; /* Calculate size of buffer (aligned to 128 bytes) */ bufferSize = stream->sample_size * stream->num_channels Copied: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer (from rev 33067, haiku/trunk/src/add-ons/kernel/drivers/printer) Deleted: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/Jamfile Copied: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/Jamfile (from rev 33067, haiku/trunk/src/add-ons/kernel/drivers/printer/Jamfile) Copied: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/usb (from rev 33067, haiku/trunk/src/add-ons/kernel/drivers/printer/usb) Deleted: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/usb/Jamfile Copied: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/usb/Jamfile (from rev 33067, haiku/trunk/src/add-ons/kernel/drivers/printer/usb/Jamfile) Deleted: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/usb/usb_printer.cpp Copied: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/usb/usb_printer.cpp (from rev 33067, haiku/trunk/src/add-ons/kernel/drivers/printer/usb/usb_printer.cpp) Deleted: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/usb/usb_printer.h Copied: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/printer/usb/usb_printer.h (from rev 33067, haiku/trunk/src/add-ons/kernel/drivers/printer/usb/usb_printer.h) Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c 2009-09-11 21:06:24 UTC (rev 33068) @@ -12,6 +12,7 @@ #include #include +#include #define debug_level_flow 0 #define debug_level_error 3 @@ -25,13 +26,18 @@ #define INTERRUPT_TRACING 0 #if INTERRUPT_TRACING - #include #define TRACE_INT(a...) ktrace_printf(a) #else #define TRACE_INT(a...) #endif +#if ATA_DMA_TRACING + #define TRACE_DMA(x...) ktrace_printf(x) +#else + #define TRACE_DMA(x...) +#endif + static ata_for_controller_interface *sATA; static device_manager_info *sDeviceManager; @@ -240,12 +246,17 @@ prd_entry *prd = channel->prdt; int i; + TRACE_DMA("ata_adapter: prepare_dma (%s) %u entrys:\n", + writeToDevice ? "write" : "read", sgListCount); + for (i = sgListCount - 1, prd = channel->prdt; i >= 0; --i, ++prd, ++sgList) { prd->address = B_HOST_TO_LENDIAN_INT32(pci->ram_address(device, sgList->address)); // 0 means 64K - this is done automatically be discarding upper 16 bits prd->count = B_HOST_TO_LENDIAN_INT16((uint16)sgList->size); prd->EOT = i == 0; + TRACE_DMA("ata_adapter: %p, %ld => 0x%08x, %d, %d\n", + sgList->address, sgList->size, prd->address, prd->count, prd->EOT); SHOW_FLOW( 4, "%x, %x, %d", (int)prd->address, prd->count, prd->EOT); } Modified: haiku/branches/components/gallium3d/src/bin/rc/parser.y =================================================================== --- haiku/branches/components/gallium3d/src/bin/rc/parser.y 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/src/bin/rc/parser.y 2009-09-11 21:06:24 UTC (rev 33068) @@ -1758,20 +1758,20 @@ // it doesn't seem to hurt, and we only do it in DEBUG mode anyway. for (sym_iter_t i = symbol_table.begin(); i != symbol_table.end(); ++i) { - free_mem(i->first); + free_mem((void*) i->first); } for (type_iter_t i = type_table.begin(); i != type_table.end(); ++i) { - free_mem(i->first); + free_mem((void*) i->first); type_t type = i->second; for (int32 t = 0; t < type.count; ++t) { - free_mem(type.fields[t].name); - free_mem(type.fields[t].data.ptr); + free_mem((void*) type.fields[t].name); + free_mem((void*) type.fields[t].data.ptr); } - free_mem(type.fields); - free_mem(type.name); - free_mem(type.def_name); + free_mem((void*) type.fields); + free_mem((void*) type.name); + free_mem((void*) type.def_name); } #endif Modified: haiku/branches/components/gallium3d/src/kits/app/InitTerminateLibBe.cpp =================================================================== --- haiku/branches/components/gallium3d/src/kits/app/InitTerminateLibBe.cpp 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/src/kits/app/InitTerminateLibBe.cpp 2009-09-11 21:06:24 UTC (rev 33068) @@ -10,6 +10,7 @@ #include +#include #include #include @@ -22,6 +23,17 @@ #define OUT printf +static void +initialize_forked_child() +{ + DBG(OUT("initialize_forked_child()\n")); + + BMessage::Private::StaticReInitForkedChild(); + + DBG(OUT("initialize_forked_child() done\n")); +} + + extern "C" void initialize_before() { @@ -30,6 +42,8 @@ BMessage::Private::StaticInit(); BRoster::Private::InitBeRoster(); + atfork(initialize_forked_child); + DBG(OUT("initialize_before() done\n")); } Modified: haiku/branches/components/gallium3d/src/kits/app/Message.cpp =================================================================== --- haiku/branches/components/gallium3d/src/kits/app/Message.cpp 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/src/kits/app/Message.cpp 2009-09-11 21:06:24 UTC (rev 33068) @@ -1972,6 +1972,22 @@ void +BMessage::_StaticReInitForkedChild() +{ + DEBUG_FUNCTION_ENTER2; + + // overwrite the inherited ports with a set of our own + sReplyPorts[0] = create_port(1, "tmp_rport0"); + sReplyPorts[1] = create_port(1, "tmp_rport1"); + sReplyPorts[2] = create_port(1, "tmp_rport2"); + + sReplyPortInUse[0] = 0; + sReplyPortInUse[1] = 0; + sReplyPortInUse[2] = 0; +} + + +void BMessage::_StaticCleanup() { DEBUG_FUNCTION_ENTER2; Modified: haiku/branches/components/gallium3d/src/servers/net/DHCPClient.cpp =================================================================== --- haiku/branches/components/gallium3d/src/servers/net/DHCPClient.cpp 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/src/servers/net/DHCPClient.cpp 2009-09-11 21:06:24 UTC (rev 33068) @@ -550,10 +550,9 @@ // configure interface BMessage reply; - Target().SendMessage(&fConfiguration, &reply); - - if (reply.FindInt32("status", &fStatus) != B_OK) - status = B_OK; + status = Target().SendMessage(&fConfiguration, &reply); + if (status == B_OK) + status = reply.FindInt32("status", &fStatus); break; } Modified: haiku/branches/components/gallium3d/src/system/kernel/vm/vm.cpp =================================================================== --- haiku/branches/components/gallium3d/src/system/kernel/vm/vm.cpp 2009-09-11 18:14:52 UTC (rev 33067) +++ haiku/branches/components/gallium3d/src/system/kernel/vm/vm.cpp 2009-09-11 21:06:24 UTC (rev 33068) @@ -1094,6 +1094,12 @@ } +// verifies that an area with the given aligned base and size fits into +// the spot defined by base and limit and does check for overflows +#define IS_VALID_SPOT(base, alignedBase, size, limit) \ + ((alignedBase) >= (base) && (alignedBase) + ((size) - 1) > (alignedBase) \ + && (alignedBase) + ((size) - 1) <= (limit)) + /*! Must be called with this address space's sem held */ static status_t find_and_insert_area_slot(vm_address_space* addressSpace, addr_t start, @@ -1157,10 +1163,11 @@ // find a hole big enough for a new area if (last == NULL) { // see if we can build it at the beginning of the virtual map - if (next == NULL || next->base > ROUNDUP(addressSpace->base, - alignment) + (size - 1)) { + addr_t alignedBase = ROUNDUP(addressSpace->base, alignment); + if (IS_VALID_SPOT(addressSpace->base, alignedBase, size, + next == NULL ? end : next->base)) { foundSpot = true; - area->base = ROUNDUP(addressSpace->base, alignment); + area->base = alignedBase; break; } @@ -1170,9 +1177,11 @@ // keep walking while (next != NULL) { - addr_t newBase = ROUNDUP(last->base + last->size, alignment); - if (next->base > newBase && next->base - newBase >= size) { - // we found a spot (it'll be filled up below) + addr_t alignedBase = ROUNDUP(last->base + last->size, alignment); + if (IS_VALID_SPOT(last->base + (last->size - 1), alignedBase, + size, next->base)) { + foundSpot = true; + area->base = alignedBase; break; } @@ -1180,13 +1189,15 @@ next = next->address_space_next; } - addr_t newBase = ROUNDUP(last->base + last->size, alignment); - addr_t aspaceEnd = addressSpace->base + (addressSpace->size - 1); - if (next != NULL || (aspaceEnd > newBase - && aspaceEnd - (newBase - 1) >= size)) { + if (foundSpot) + break; + + addr_t alignedBase = ROUNDUP(last->base + last->size, alignment); + if (IS_VALID_SPOT(last->base + (last->size - 1), alignedBase, + size, end)) { // got a spot foundSpot = true; - area->base = newBase; + area->base = alignedBase; break; } else { // We didn't find a free spot - if there were any reserved areas @@ -1203,8 +1214,8 @@ // TODO: take free space after the reserved area into // account! - if (next->base == ROUNDUP(next->base, alignment) - && next->size == size) { + addr_t alignedBase = ROUNDUP(next->base, alignment); + if (next->base == alignedBase && next->size == size) { // The reserved area is entirely covered, and thus, // removed if (last) @@ -1213,32 +1224,31 @@ addressSpace->areas = next->address_space_next; foundSpot = true; - area->base = next->base; + area->base = alignedBase; free(next); break; } - addr_t newBase = ROUNDUP(next->base, alignment); - if (newBase == next->base && next->size >= size) { + if (alignedBase == next->base && next->size >= size) { // The new area will be placed at the beginning of the // reserved area and the reserved area will be offset // and resized foundSpot = true; next->base += size; next->size -= size; - area->base = newBase; + area->base = alignedBase; break; } - if (newBase <= next->base + (next->size - 1) - && next->size - (newBase - next->base) >= size) { + if (IS_VALID_SPOT(next->base, alignedBase, size, + next->base + (next->size - 1))) { // The new area will be placed at the end of the // reserved area, and the reserved area will be resized // to make space foundSpot = true; - next->size = newBase - next->base; + next->size = alignedBase - next->base; last = next; - area->base = newBase; + area->base = alignedBase; break; } @@ -1249,6 +1259,7 @@ } case B_BASE_ADDRESS: + { // find a hole big enough for a new area beginning with "start" if (last == NULL) { // see if we can build it at the beginning of the specified start @@ -1273,14 +1284,14 @@ next = next->address_space_next; } - if (next != NULL || addressSpace->base + (addressSpace->size - 1) - - last->base + (last->size - 1) >= size) { + addr_t lastEnd = last->base + (last->size - 1); + if (next != NULL || end - lastEnd >= size) { // got a spot foundSpot = true; - if (last->base + last->size <= start) + if (lastEnd < start) area->base = start; else - area->base = last->base + last->size; + area->base = lastEnd + 1; break; } @@ -1290,6 +1301,7 @@ addressSpec = B_ANY_ADDRESS; last = NULL; goto second_chance; + } case B_EXACT_ADDRESS: // see if we can create it exactly here From stpere at mail.berlios.de Sat Sep 12 02:57:56 2009 From: stpere at mail.berlios.de (stpere at BerliOS) Date: Sat, 12 Sep 2009 02:57:56 +0200 Subject: [Haiku-commits] r33069 - haiku/trunk/src/preferences/screensaver Message-ID: <200909120057.n8C0vu1x017713@sheep.berlios.de> Author: stpere Date: 2009-09-12 02:57:55 +0200 (Sat, 12 Sep 2009) New Revision: 33069 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33069&view=rev Modified: haiku/trunk/src/preferences/screensaver/PasswordWindow.cpp haiku/trunk/src/preferences/screensaver/PasswordWindow.h Log: ScreenSaver: Didn't accept a one char password * Sanitize (and pad) the salt passed to the crypt function * Made the password and confirm password control the same size. Fixes ticket #4466. Modified: haiku/trunk/src/preferences/screensaver/PasswordWindow.cpp =================================================================== --- haiku/trunk/src/preferences/screensaver/PasswordWindow.cpp 2009-09-11 21:06:24 UTC (rev 33068) +++ haiku/trunk/src/preferences/screensaver/PasswordWindow.cpp 2009-09-12 00:57:55 UTC (rev 33069) @@ -82,6 +82,7 @@ float width, height; fConfirmControl->GetPreferredSize(&width, &height); fPasswordControl->ResizeTo(width, height); + fConfirmControl->ResizeTo(width, height); float divider = be_plain_font->StringWidth("Confirm password:") + 5.0; fConfirmControl->SetDivider(divider); @@ -123,6 +124,44 @@ } +char * +PasswordWindow::_SanitizeSalt(const char *password) +{ + char *salt; + + uint8 length = strlen(password); + + if (length < 2) + salt = new char[3]; + else + salt = new char[length + 1]; + + uint8 i = 0; + uint8 j = 0; + for (; i < length; i++) { + if ((password[i] >= 'A' && password[i] <= 'Z') + || (password[i] >= 'a' && password[i] <= 'z') + || (password[i] >= '0' && password[i] <= '9') + || (password[i] == '.' || password[i] == '/')) { + salt[j] = password[i]; + j++; + } + } + + /* + * We need to pad the salt. + */ + while (j < 2) { + salt[j] = '.'; + j++; + } + + salt[j] = '\0'; + + return salt; +} + + void PasswordWindow::MessageReceived(BMessage *message) { @@ -135,9 +174,10 @@ "Passwords don't match. Try again.","OK"); alert->Go(); break; - } - fSettings.SetPassword(crypt(fPasswordControl->Text(), - fPasswordControl->Text())); + } + const char *salt = _SanitizeSalt(fPasswordControl->Text()); + fSettings.SetPassword(crypt(fPasswordControl->Text(), salt)); + delete salt; } else { fSettings.SetPassword(""); } Modified: haiku/trunk/src/preferences/screensaver/PasswordWindow.h =================================================================== --- haiku/trunk/src/preferences/screensaver/PasswordWindow.h 2009-09-11 21:06:24 UTC (rev 33068) +++ haiku/trunk/src/preferences/screensaver/PasswordWindow.h 2009-09-12 00:57:55 UTC (rev 33069) @@ -30,6 +30,7 @@ private: void _Setup(); + char * _SanitizeSalt(const char *password); BRadioButton *fUseCustom; BRadioButton *fUseNetwork; From stpere at mail.berlios.de Sat Sep 12 03:16:16 2009 From: stpere at mail.berlios.de (stpere at BerliOS) Date: Sat, 12 Sep 2009 03:16:16 +0200 Subject: [Haiku-commits] r33070 - haiku/trunk/src/preferences/screensaver Message-ID: <200909120116.n8C1GGP0020210@sheep.berlios.de> Author: stpere Date: 2009-09-12 03:16:15 +0200 (Sat, 12 Sep 2009) New Revision: 33070 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33070&view=rev Modified: haiku/trunk/src/preferences/screensaver/PasswordWindow.cpp Log: ScreenSaver : Clean up the sanitize routine to use the isalnum(..) function. Modified: haiku/trunk/src/preferences/screensaver/PasswordWindow.cpp =================================================================== --- haiku/trunk/src/preferences/screensaver/PasswordWindow.cpp 2009-09-12 00:57:55 UTC (rev 33069) +++ haiku/trunk/src/preferences/screensaver/PasswordWindow.cpp 2009-09-12 01:16:15 UTC (rev 33070) @@ -18,7 +18,9 @@ #include #include +#include + const uint32 kMsgDone = 'done'; const uint32 kMsgPasswordTypeChanged = 'pwtp'; @@ -139,10 +141,7 @@ uint8 i = 0; uint8 j = 0; for (; i < length; i++) { - if ((password[i] >= 'A' && password[i] <= 'Z') - || (password[i] >= 'a' && password[i] <= 'z') - || (password[i] >= '0' && password[i] <= '9') - || (password[i] == '.' || password[i] == '/')) { + if (isalnum(password[i]) || password[i] == '.' || password[i] == '/') { salt[j] = password[i]; j++; } From stpere at mail.berlios.de Sat Sep 12 03:39:18 2009 From: stpere at mail.berlios.de (stpere at BerliOS) Date: Sat, 12 Sep 2009 03:39:18 +0200 Subject: [Haiku-commits] r33071 - haiku/trunk/src/preferences/fonts Message-ID: <200909120139.n8C1dIFu022156@sheep.berlios.de> Author: stpere Date: 2009-09-12 03:39:18 +0200 (Sat, 12 Sep 2009) New Revision: 33071 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33071&view=rev Modified: haiku/trunk/src/preferences/fonts/MainWindow.cpp haiku/trunk/src/preferences/fonts/MainWindow.h Log: Fonts Preflet : The centering didn't work. * Make use of CenterOnScreen(); to center the window rather than the dirty trick I tried months ago. Modified: haiku/trunk/src/preferences/fonts/MainWindow.cpp =================================================================== --- haiku/trunk/src/preferences/fonts/MainWindow.cpp 2009-09-12 01:16:15 UTC (rev 33070) +++ haiku/trunk/src/preferences/fonts/MainWindow.cpp 2009-09-12 01:39:18 UTC (rev 33071) @@ -36,8 +36,7 @@ MainWindow::MainWindow() : BWindow(BRect(0, 0, 1, 1), "Fonts", B_TITLED_WINDOW, - B_ASYNCHRONOUS_CONTROLS | B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS), - fCentered(false) + B_ASYNCHRONOUS_CONTROLS | B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS) { fDefaultsButton = new BButton("defaults", "Defaults", new BMessage(kMsgSetDefaults), B_WILL_DRAW); @@ -77,21 +76,16 @@ if (fSettings.WindowCorner() == BPoint(-1, -1)) { // center window on screen - fCentered = true; + CenterOnScreen(); } else { MoveTo(fSettings.WindowCorner()); // make sure window is on screen BScreen screen(this); if (!screen.Frame().InsetByCopy(10, 10).Intersects(Frame())) - fCentered = true; + CenterOnScreen(); } - if (fCentered) { - // draw offscreen to avoid flashing windows - MoveTo(BPoint(-1000, -1000)); - } - fRunner = new BMessageRunner(this, new BMessage(kMsgCheckFonts), 3000000); // every 3 seconds @@ -99,16 +93,6 @@ } -void -MainWindow::Show() -{ - BWindow::Show(); - - if (fCentered) - _Center(); -} - - MainWindow::~MainWindow() { delete fRunner; Modified: haiku/trunk/src/preferences/fonts/MainWindow.h =================================================================== --- haiku/trunk/src/preferences/fonts/MainWindow.h 2009-09-12 01:16:15 UTC (rev 33070) +++ haiku/trunk/src/preferences/fonts/MainWindow.h 2009-09-12 01:39:18 UTC (rev 33071) @@ -27,14 +27,11 @@ virtual bool QuitRequested(); virtual void MessageReceived(BMessage *message); - virtual void Show(); private: void _Center(); - bool fCentered; - BMessageRunner* fRunner; FontView* fFontsView; BButton* fDefaultsButton; From aljen at mail.berlios.de Sat Sep 12 04:41:59 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 04:41:59 +0200 Subject: [Haiku-commits] r33072 - in haiku/branches/components/gallium3d: build/jam src/preferences src/preferences/opengl Message-ID: <200909120241.n8C2fxb9029052@sheep.berlios.de> Author: aljen Date: 2009-09-12 04:41:50 +0200 (Sat, 12 Sep 2009) New Revision: 33072 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33072&view=rev Added: haiku/branches/components/gallium3d/src/preferences/opengl/ haiku/branches/components/gallium3d/src/preferences/opengl/CapabilitiesView.cpp haiku/branches/components/gallium3d/src/preferences/opengl/CapabilitiesView.h haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsList.cpp haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsList.h haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsView.cpp haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsView.h haiku/branches/components/gallium3d/src/preferences/opengl/InfoView.cpp haiku/branches/components/gallium3d/src/preferences/opengl/InfoView.h haiku/branches/components/gallium3d/src/preferences/opengl/Jamfile haiku/branches/components/gallium3d/src/preferences/opengl/LogoView.cpp haiku/branches/components/gallium3d/src/preferences/opengl/LogoView.h haiku/branches/components/gallium3d/src/preferences/opengl/OpenGL.rdef haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLApp.cpp haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLApp.h haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLView.cpp haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLView.h haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLWindow.cpp haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLWindow.h haiku/branches/components/gallium3d/src/preferences/opengl/OpenGL_logo.png Modified: haiku/branches/components/gallium3d/build/jam/HaikuImage haiku/branches/components/gallium3d/src/preferences/Jamfile Log: Added OpenGL preferences (for now display only information) Modified: haiku/branches/components/gallium3d/build/jam/HaikuImage =================================================================== --- haiku/branches/components/gallium3d/build/jam/HaikuImage 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/build/jam/HaikuImage 2009-09-12 02:41:50 UTC (rev 33072) @@ -71,7 +71,7 @@ ShowImage SoundRecorder StyledEdit Terminal TextSearch TV Workspaces ; SYSTEM_PREFERENCES = Appearance Backgrounds CPUFrequency DataTranslations E-mail - FileTypes Fonts Keyboard Keymap Media Mouse Network Printers + FileTypes Fonts Keyboard Keymap Media Mouse Network OpenGL Printers Screen ScreenSaver Sounds Time Touchpad Tracker VirtualMemory ; SYSTEM_DEMOS = BSnow Chart Clock Cortex FontDemo Modified: haiku/branches/components/gallium3d/src/preferences/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/preferences/Jamfile 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/src/preferences/Jamfile 2009-09-12 02:41:50 UTC (rev 33072) @@ -17,6 +17,7 @@ SubInclude HAIKU_TOP src preferences media ; SubInclude HAIKU_TOP src preferences mouse ; SubInclude HAIKU_TOP src preferences network ; +SubInclude HAIKU_TOP src preferences opengl ; SubInclude HAIKU_TOP src preferences print ; SubInclude HAIKU_TOP src preferences screen ; SubInclude HAIKU_TOP src preferences screensaver ; Added: haiku/branches/components/gallium3d/src/preferences/opengl/CapabilitiesView.cpp =================================================================== --- haiku/branches/components/gallium3d/src/preferences/opengl/CapabilitiesView.cpp 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/src/preferences/opengl/CapabilitiesView.cpp 2009-09-12 02:41:50 UTC (rev 33072) @@ -0,0 +1,223 @@ +/* + * Copyright 2009 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Author: + * Artur Wyszynski + */ + +#include "CapabilitiesView.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +void +AddStringView(BView* view, const char* viewName, const char* name, + const char* value, bool spacer) +{ + if (!view) + return; + + BRect dummyRect(0, 0, 0, 0); + const float kSpacer = 5; + + BString tempViewName(viewName); + BStringView *nameView = new BStringView(dummyRect, tempViewName.String(), + name, B_FOLLOW_NONE); + tempViewName.Append("Value"); + BStringView *valueView = new BStringView(dummyRect, tempViewName.String(), + value, B_FOLLOW_NONE); + + if (spacer) { + view->AddChild(BGroupLayoutBuilder(B_VERTICAL) + .Add(BGroupLayoutBuilder(B_HORIZONTAL) + .Add(nameView) + .Add(BSpaceLayoutItem::CreateGlue()) + .Add(valueView) + ) + .Add(BSpaceLayoutItem::CreateVerticalStrut(kSpacer)) + ); + } else { + view->AddChild(BGroupLayoutBuilder(B_VERTICAL) + .Add(BGroupLayoutBuilder(B_HORIZONTAL) + .Add(nameView) + .Add(BSpaceLayoutItem::CreateGlue()) + .Add(valueView) + ) + ); + } +} + + +CapabilitiesView::CapabilitiesView() + : BView("Capabilities", 0, NULL) +{ + SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); + SetLayout(new BGroupLayout(B_VERTICAL)); + + BRect dummyRect(0, 0, 0, 0); + + const float kInset = 10; + + int lights = 0; + int clippingPlanes = 0; + int modelStack = 0; + int projectionStack = 0; + int textureStack = 0; + int maxTex3d = 0; + int maxTex2d = 0; + int nameStack = 0; + int listStack = 0; + int maxPoly = 0; + int attribStack = 0; + int buffers = 0; + int convolutionWidth = 0; + int convolutionHeight = 0; + int maxIndex = 0; + int maxVertex = 0; + int textureUnits = 0; + + glGetIntegerv(GL_MAX_LIGHTS, &lights); + glGetIntegerv(GL_MAX_CLIP_PLANES, &clippingPlanes); + glGetIntegerv(GL_MAX_MODELVIEW_STACK_DEPTH, &modelStack); + glGetIntegerv(GL_MAX_PROJECTION_STACK_DEPTH, &projectionStack); + glGetIntegerv(GL_MAX_TEXTURE_STACK_DEPTH, &textureStack); + glGetIntegerv(GL_MAX_3D_TEXTURE_SIZE, &maxTex3d); + glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxTex2d); + glGetIntegerv(GL_MAX_NAME_STACK_DEPTH, &nameStack); + glGetIntegerv(GL_MAX_LIST_NESTING, &listStack); + glGetIntegerv(GL_MAX_EVAL_ORDER, &maxPoly); + glGetIntegerv(GL_MAX_ATTRIB_STACK_DEPTH, &attribStack); + glGetIntegerv(GL_AUX_BUFFERS, &buffers); + glGetIntegerv(GL_MAX_CONVOLUTION_WIDTH, &convolutionWidth); + glGetIntegerv(GL_MAX_CONVOLUTION_HEIGHT, &convolutionHeight); + glGetIntegerv(GL_MAX_ELEMENTS_INDICES, &maxIndex); + glGetIntegerv(GL_MAX_ELEMENTS_VERTICES, &maxVertex); + glGetIntegerv(GL_MAX_TEXTURE_UNITS_ARB, &textureUnits); + + BString tempString; + BView *rootView = new BView("root view", 0, NULL); + rootView->SetLayout(new BGroupLayout(B_VERTICAL)); + + tempString << (int32) buffers; + AddStringView(rootView, "Buffers", "Auxiliary buffer(s):", + tempString.String(), true); + + tempString.SetTo(""); + tempString << (int32) modelStack; + AddStringView(rootView, "ModelStack", "Model stack size:", + tempString.String(), true); + + tempString.SetTo(""); + tempString << (int32) projectionStack; + AddStringView(rootView, "ProjectionStack", "Projection stack size:", + tempString.String(), true); + + tempString.SetTo(""); + tempString << (int32) textureStack; + AddStringView(rootView, "TextureStack", "Texture stack size:", + tempString.String(), true); + + tempString.SetTo(""); + tempString << (int32) nameStack; + AddStringView(rootView, "NameStack", "Name stack size:", + tempString.String(), true); + + tempString.SetTo(""); + tempString << (int32) listStack; + AddStringView(rootView, "ListStack", "List stack size:", + tempString.String(), true); + + tempString.SetTo(""); + tempString << (int32) attribStack; + AddStringView(rootView, "AttribStack", "Attributes stack size:", + tempString.String(), true); + + tempString.SetTo(""); + tempString << (int32) maxTex3d; + AddStringView(rootView, "MaxTex3D", "Maximum 3D texture size:", + tempString.String(), true); + + tempString.SetTo(""); + tempString << (int32) maxTex2d; + AddStringView(rootView, "MaxTex2D", "Maximum 2D texture size:", + tempString.String(), true); + + tempString.SetTo(""); + tempString << (int32) textureUnits; + AddStringView(rootView, "MaxTexUnits", "Maximum texture units:", + tempString.String(), true); + + tempString.SetTo(""); + tempString << (int32) lights; + AddStringView(rootView, "MaxLights", "Maximum lights:", + tempString.String(), true); + + tempString.SetTo(""); + tempString << (int32) clippingPlanes; + AddStringView(rootView, "MaxClippingPlanes", "Maximum clipping planes:", + tempString.String(), true); + + tempString.SetTo(""); + tempString << (int32) maxPoly; + AddStringView(rootView, "MaxPoly", "Maximum evaluators equation order:", + tempString.String(), true); + + tempString.SetTo(""); + tempString << (int32) convolutionWidth << "x" << convolutionHeight; + AddStringView(rootView, "MaxConvultion", "Maximum convolution:", + tempString.String(), true); + + tempString.SetTo(""); + tempString << (int32) maxIndex; + AddStringView(rootView, "MaxIndex", "Maximum recommended index elements:", + tempString.String(), true); + + tempString.SetTo(""); + tempString << (int32) maxVertex; + AddStringView(rootView, "MaxVertex", "Maximum recommended vertex elements:", + tempString.String(), true); + + AddChild(BGroupLayoutBuilder(B_VERTICAL) + .Add(rootView) + .SetInsets(kInset, kInset, kInset, kInset) + ); +} + + +CapabilitiesView::~CapabilitiesView() +{ + +} + + +void +CapabilitiesView::MessageReceived(BMessage* message) +{ + switch (message->what) { + default: + BView::MessageReceived(message); + } +} + + +void +CapabilitiesView::AttachedToWindow() +{ + +} + + +void +CapabilitiesView::DetachedFromWindow() +{ + +} Added: haiku/branches/components/gallium3d/src/preferences/opengl/CapabilitiesView.h =================================================================== --- haiku/branches/components/gallium3d/src/preferences/opengl/CapabilitiesView.h 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/src/preferences/opengl/CapabilitiesView.h 2009-09-12 02:41:50 UTC (rev 33072) @@ -0,0 +1,25 @@ +/* + * Copyright 2009 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Author: + * Artur Wyszynski + */ + +#ifndef CAPABILITIES_VIEW_H +#define CAPABILITIES_VIEW_H + + +#include + +class CapabilitiesView : public BView { +public: + CapabilitiesView(); + virtual ~CapabilitiesView(); + + virtual void MessageReceived(BMessage* message); + virtual void AttachedToWindow(); + virtual void DetachedFromWindow(); +}; + +#endif /* CAPABILITIES_VIEW_H */ Added: haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsList.cpp =================================================================== --- haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsList.cpp 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsList.cpp 2009-09-12 02:41:50 UTC (rev 33072) @@ -0,0 +1,47 @@ +/* + * Copyright 2009 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Author: + * Artur Wyszynski + */ + +#include "ExtensionsList.h" + +#include +#include + + +ExtensionRow::ExtensionRow(const char* extensionName) + : BRow(), + fExtensionName(extensionName) +{ + SetField(new BStringField(extensionName), 0); +} + + +ExtensionRow::~ExtensionRow() +{ + +} + + +ExtensionsList::ExtensionsList() + : BColumnListView("ExtensionsList", B_FOLLOW_ALL) +{ + BStringColumn* column = new BStringColumn("Available", 280, 280, 280, + B_TRUNCATE_MIDDLE); + AddColumn(column, 0); + SetSortingEnabled(true); + SetSortColumn(column, true, true); +} + + +ExtensionsList::~ExtensionsList() +{ + BRow *row; + while ((row = RowAt((int32)0, NULL)) != NULL) { + RemoveRow(row); + delete row; + } +} Added: haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsList.h =================================================================== --- haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsList.h 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsList.h 2009-09-12 02:41:50 UTC (rev 33072) @@ -0,0 +1,33 @@ +/* + * Copyright 2009 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Author: + * Artur Wyszynski + */ + +#ifndef EXTENSIONS_LIST_H +#define EXTENSIONS_LIST_H + + +#include +#include + + +class ExtensionRow : public BRow { +public: + ExtensionRow(const char* extensionName); + virtual ~ExtensionRow(); + +private: + BString fExtensionName; +}; + + +class ExtensionsList : public BColumnListView { +public: + ExtensionsList(); + virtual ~ExtensionsList(); +}; + +#endif /* EXTENSIONS_LIST_H */ Added: haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsView.cpp =================================================================== --- haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsView.cpp 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsView.cpp 2009-09-12 02:41:50 UTC (rev 33072) @@ -0,0 +1,78 @@ +/* + * Copyright 2009 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Author: + * Artur Wyszynski + */ + +#include "ExtensionsView.h" + +#include +#include +#include +#include +#include +#include +#include "ExtensionsList.h" + + +ExtensionsView::ExtensionsView() + : BView("Extensions", 0, NULL) +{ + SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); + SetLayout(new BGroupLayout(B_VERTICAL)); + + const float kInset = 10; + + ExtensionsList *extList = new ExtensionsList(); + + char *list = (char*)glGetString(GL_EXTENSIONS); + if (list) { + while (*list) { + char extName[255]; + int n = strcspn(list, " "); + strncpy(extName, list, n); + extName[n] = 0; + extList->AddRow(new ExtensionRow(extName)); + if (!list[n]) + break; + list += (n + 1); // next ! + } + } + + AddChild(BGroupLayoutBuilder(B_VERTICAL) + .Add(extList) + .SetInsets(kInset, kInset, kInset, kInset) + ); +} + + +ExtensionsView::~ExtensionsView() +{ + +} + + +void +ExtensionsView::MessageReceived(BMessage* message) +{ + switch (message->what) { + default: + BView::MessageReceived(message); + } +} + + +void +ExtensionsView::AttachedToWindow() +{ + +} + + +void +ExtensionsView::DetachedFromWindow() +{ + +} Added: haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsView.h =================================================================== --- haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsView.h 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsView.h 2009-09-12 02:41:50 UTC (rev 33072) @@ -0,0 +1,26 @@ +/* + * Copyright 2009 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Author: + * Artur Wyszynski + */ + +#ifndef EXTENSIONS_VIEW_H +#define EXTENSIONS_VIEW_H + + +#include + +class ExtensionsView : public BView { +public: + ExtensionsView(); + virtual ~ExtensionsView(); + + virtual void MessageReceived(BMessage* message); + virtual void AttachedToWindow(); + virtual void DetachedFromWindow(); +}; + + +#endif /* EXTENSIONS_VIEW_H */ Added: haiku/branches/components/gallium3d/src/preferences/opengl/InfoView.cpp =================================================================== --- haiku/branches/components/gallium3d/src/preferences/opengl/InfoView.cpp 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/src/preferences/opengl/InfoView.cpp 2009-09-12 02:41:50 UTC (rev 33072) @@ -0,0 +1,119 @@ +/* + * Copyright 2009 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Author: + * Artur Wyszynski + */ + +#include "InfoView.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +InfoView::InfoView() + : BView("Information", 0, NULL) +{ + SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); + SetLayout(new BGroupLayout(B_VERTICAL)); + + BRect dummyRect(0, 0, 0, 0); + + BStringView *version = new BStringView(dummyRect, "Version", + "OpenGL Version:", B_FOLLOW_NONE); + BStringView *versionValue = new BStringView(dummyRect, "VersionVal", + (const char*)glGetString(GL_VERSION), B_FOLLOW_NONE); + BStringView *vendor = new BStringView(dummyRect, "Vendor", + "Vendor Name:", B_FOLLOW_NONE); + BStringView *vendorValue = new BStringView(dummyRect, "VendorVal", + (const char*)glGetString(GL_VENDOR), B_FOLLOW_NONE); + BStringView *renderer = new BStringView(dummyRect, "Renderer", + "Renderer Name:", B_FOLLOW_NONE); + BStringView *rendererValue = new BStringView(dummyRect, "RendererVal", + (const char*)glGetString(GL_RENDERER), B_FOLLOW_NONE); + BStringView *gluVersion = new BStringView(dummyRect, "GLUVersion", + "GLU Version:", B_FOLLOW_NONE); + BStringView *gluVersionValue = new BStringView(dummyRect, "GLUVersionVal", + (const char*)gluGetString(GLU_VERSION), B_FOLLOW_NONE); + BStringView *glutVersion = new BStringView(dummyRect, "GLUTVersion", + "GLUT API Version:", B_FOLLOW_NONE); + BString glutApiVer; + glutApiVer << (int32)GLUT_API_VERSION; + BStringView *glutVersionValue = new BStringView(dummyRect, "GLUTVersionVal", + glutApiVer.String(), B_FOLLOW_NONE); + + const float kInset = 10; + const float kSpacer = 5; + + AddChild(BGroupLayoutBuilder(B_VERTICAL) + .Add(BGroupLayoutBuilder(B_HORIZONTAL) + .Add(version) + .Add(BSpaceLayoutItem::CreateGlue()) + .Add(versionValue) + ) + .Add(BSpaceLayoutItem::CreateVerticalStrut(kSpacer)) + .Add(BGroupLayoutBuilder(B_HORIZONTAL) + .Add(vendor) + .Add(BSpaceLayoutItem::CreateGlue()) + .Add(vendorValue) + ) + .Add(BSpaceLayoutItem::CreateVerticalStrut(kSpacer)) + .Add(BGroupLayoutBuilder(B_HORIZONTAL) + .Add(renderer) + .Add(BSpaceLayoutItem::CreateGlue()) + .Add(rendererValue) + ) + .Add(BSpaceLayoutItem::CreateVerticalStrut(kSpacer)) + .Add(BGroupLayoutBuilder(B_HORIZONTAL) + .Add(gluVersion) + .Add(BSpaceLayoutItem::CreateGlue()) + .Add(gluVersionValue) + ) + .Add(BSpaceLayoutItem::CreateVerticalStrut(kSpacer)) + .Add(BGroupLayoutBuilder(B_HORIZONTAL) + .Add(glutVersion) + .Add(BSpaceLayoutItem::CreateGlue()) + .Add(glutVersionValue) + ) + .Add(BSpaceLayoutItem::CreateGlue()) + .SetInsets(kInset, kInset, kInset, kInset) + ); +} + + +InfoView::~InfoView() +{ + +} + + +void +InfoView::MessageReceived(BMessage* message) +{ + switch (message->what) { + default: + BView::MessageReceived(message); + } +} + + +void +InfoView::AttachedToWindow() +{ + +} + + +void +InfoView::DetachedFromWindow() +{ + +} Added: haiku/branches/components/gallium3d/src/preferences/opengl/InfoView.h =================================================================== --- haiku/branches/components/gallium3d/src/preferences/opengl/InfoView.h 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/src/preferences/opengl/InfoView.h 2009-09-12 02:41:50 UTC (rev 33072) @@ -0,0 +1,25 @@ +/* + * Copyright 2009 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Author: + * Artur Wyszynski + */ + +#ifndef INFO_VIEW_H +#define INFO_VIEW_H + + +#include + +class InfoView : public BView { +public: + InfoView(); + virtual ~InfoView(); + + virtual void MessageReceived(BMessage* message); + virtual void AttachedToWindow(); + virtual void DetachedFromWindow(); +}; + +#endif /* INFO_VIEW_H */ Added: haiku/branches/components/gallium3d/src/preferences/opengl/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/preferences/opengl/Jamfile 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/src/preferences/opengl/Jamfile 2009-09-12 02:41:50 UTC (rev 33072) @@ -0,0 +1,17 @@ +SubDir HAIKU_TOP src preferences opengl ; + +UsePrivateHeaders interface ; + +Preference OpenGL : + OpenGLApp.cpp + OpenGLWindow.cpp + OpenGLView.cpp + CapabilitiesView.cpp + ExtensionsList.cpp + ExtensionsView.cpp + InfoView.cpp + LogoView.cpp + : be GL translation libcolumnlistview.a $(TARGET_LIBSUPC++) + : OpenGL.rdef + ; + Added: haiku/branches/components/gallium3d/src/preferences/opengl/LogoView.cpp =================================================================== --- haiku/branches/components/gallium3d/src/preferences/opengl/LogoView.cpp 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/src/preferences/opengl/LogoView.cpp 2009-09-12 02:41:50 UTC (rev 33072) @@ -0,0 +1,71 @@ +/* + * Copyright 2009 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Stephan A?mus + * Artur Wyszynski + */ + +#include "LogoView.h" + +#include +#include +#include +#include +#include + + +LogoView::LogoView(const BRect& frame) + : BView(frame, "LogoView", B_FOLLOW_ALL, B_WILL_DRAW + | B_FULL_UPDATE_ON_RESIZE), + fLogo(NULL) +{ + SetViewColor(255, 255, 255); + fLogo = BTranslationUtils::GetBitmap(B_PNG_FORMAT, "OpenGL_logo.png"); + if (fLogo) { + SetExplicitMinSize( + BSize(fLogo->Bounds().Width(), fLogo->Bounds().Height() + 6)); + } +} + + +LogoView::~LogoView() +{ + delete fLogo; +} + + +void +LogoView::Draw(BRect update) +{ + if (!fLogo) + return; + + BRect bounds(Bounds()); + BPoint placement; + placement.x = (bounds.left + bounds.right - fLogo->Bounds().Width()) / 2; + placement.y = (bounds.top + bounds.bottom - fLogo->Bounds().Height()) / 2; + + DrawBitmap(fLogo, placement); + rgb_color borderColor = tint_color(ui_color(B_PANEL_BACKGROUND_COLOR), + B_DARKEN_3_TINT); + SetHighColor(borderColor); + StrokeLine(bounds.LeftBottom(), bounds.RightBottom()); +} + + +void +LogoView::GetPreferredSize(float* _width, float* _height) +{ + float width = 0.0; + float height = 0.0; + if (fLogo) { + width = fLogo->Bounds().Width(); + height = fLogo->Bounds().Height(); + } + if (_width) + *_width = width; + if (_height) + *_height = height; +} Added: haiku/branches/components/gallium3d/src/preferences/opengl/LogoView.h =================================================================== --- haiku/branches/components/gallium3d/src/preferences/opengl/LogoView.h 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/src/preferences/opengl/LogoView.h 2009-09-12 02:41:50 UTC (rev 33072) @@ -0,0 +1,28 @@ +/* + * Copyright 2009 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Stephan A?mus + * Artur Wyszynski + */ + +#ifndef LOGO_VIEW_H +#define LOGO_VIEW_H + + +#include + +class LogoView : public BView { +public: + LogoView(const BRect& frame); + virtual ~LogoView(); + + virtual void Draw(BRect update); + virtual void GetPreferredSize(float* _width, float* _height); + +private: + BBitmap* fLogo; +}; + +#endif /* LOGO_VIEW_H */ Added: haiku/branches/components/gallium3d/src/preferences/opengl/OpenGL.rdef =================================================================== --- haiku/branches/components/gallium3d/src/preferences/opengl/OpenGL.rdef 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/src/preferences/opengl/OpenGL.rdef 2009-09-12 02:41:50 UTC (rev 33072) @@ -0,0 +1,45 @@ + +resource(1, "BEOS:APP_SIG") #'MIMS' "application/x-vnd.Haiku-OpenGL"; + +resource app_flags B_SINGLE_LAUNCH; + +resource app_version { + major = 1, + middle = 0, + minor = 0, + + variety = B_APPV_DEVELOPMENT, + internal = 0, + + short_info = "OpenGL", + long_info = "OpenGL ?2009 Haiku" +}; + +resource(1, "OpenGL_logo.png") #'PNG ' import "OpenGL_logo.png"; + +resource vector_icon { + $"6E6369660B0500020016023A3D24339506B715A93DDB134A79084A1A1100D7FF" + $"B80594020016023A3D24339506B715A93DDB134A79084A1A1100D2FF8505C402" + $"0016023A692E36692FBA2ECD3E2ECC4B89A4496318005CFF83020016023C8000" + $"0000000000003C00004AC00049000000F4FFDB03A9FF00020106033C00000000" + $"000000003C00004680004680000B9EEDFF2567CEFFFF0473B3020106033C0000" + $"0000000000003C000046800046800000B9FF97BE05D65EFF04994304016E0F0A" + $"044C60516060505C4E02043334BD6D34B7B434263926BBDC26BE0E333EB7B43E" + $"BD6D3E403940BE0E40BBDC0A0651365A395A504C5E425842400A084C444C5EC3" + $"AFCB27C3AFC72B4450C15AC9CB425842400A04C1EFC6634450C15AC9CBC1DECA" + $"180A04C317C6E8C1EFC663C1DECA18C316CACE0A04C3AFCB27C3AFC72BC317C6" + $"E8C316CACE0A0451365A394C4442400A044C445A395A504C5E0A04484648484A" + $"C3234AC2570404BE404A3246324A323E4236423C4232373202042E22BB3722B5" + $"F022222E22B5F022BB372E3AB5F03ABB373A3A2E3ABB373AB5F00608BFDBB506" + $"B560B506B560B443B638222E22B75722BAB3B717BD1FB52DBC80B717BD1F2836" + $"28322A34263024302E2828282A2826060CA2EBAF2E28B98632263428302E302C" + $"303036323436BBB3BC32BBB3BC32BCB6BB513A2E3ABA053AB668B9EDB3FDBBE9" + $"B493B9EDB3FD2E2430260614BFDDAFABE82E22B90C22B72A22B506B560B5E6B4" + $"68B506B56028282826282A242E30283226302A3436B717BD1FB717BD1FB78EBD" + $"452E3AB80E3AB9C53ABBB3BC32BADCBCEBBBB3BC3234363632302E3030302C34" + $"283226B953282E30262E24B9EDB3FDB9EDB3FDB980B3DD0D0A0A020001000A0A" + $"010A124000000000000000003FB6DB42000043249201178400040A00030A020B" + $"1001178400040A010103000A020104000A030105000A040106000A060107000A" + $"050108000A0301091001178100040A070109000A08010E000A09020C0D00" +}; + Added: haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLApp.cpp =================================================================== --- haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLApp.cpp 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLApp.cpp 2009-09-12 02:41:50 UTC (rev 33072) @@ -0,0 +1,39 @@ +/* + * Copyright 2009 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Author: + * Artur Wyszynski + */ + +#include "OpenGLApp.h" +#include "OpenGLWindow.h" + + +OpenGLApp::OpenGLApp() + : BApplication("application/x-vnd.Haiku-OpenGL") +{ +} + + +OpenGLApp::~OpenGLApp() +{ +} + + +void +OpenGLApp::ReadyToRun() +{ + fWindow = new OpenGLWindow(); + fWindow->Show(); + +} + + +int main(int argc, const char** argv) +{ + OpenGLApp app; + app.Run(); + return 0; +} + Added: haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLApp.h =================================================================== --- haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLApp.h 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLApp.h 2009-09-12 02:41:50 UTC (rev 33072) @@ -0,0 +1,28 @@ +/* + * Copyright 2009 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Author: + * Artur Wyszynski + */ + +#ifndef OPENGL_APP_H +#define OPENGL_APP_H + + +#include +#include "OpenGLWindow.h" + + +class OpenGLApp : public BApplication { +public: + OpenGLApp(); + virtual ~OpenGLApp(); + + virtual void ReadyToRun(); + +private: + OpenGLWindow* fWindow; +}; + +#endif /* OPENGL_APP_H_ */ Added: haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLView.cpp =================================================================== --- haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLView.cpp 2009-09-12 01:39:18 UTC (rev 33071) +++ haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLView.cpp 2009-09-12 02:41:50 UTC (rev 33072) @@ -0,0 +1,90 @@ +/* + * Copyright 2009 Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Author: + * Artur Wyszynski + */ + +#include "OpenGLView.h" + +#include +#include +#include +#include +#include +#include +#include "CapabilitiesView.h" +#include "ExtensionsView.h" +#include "InfoView.h" +#include "LogoView.h" + + +OpenGLView::OpenGLView() + : BView("OpenGLView", 0, NULL) +{ + SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); + SetLayout(new BGroupLayout(B_VERTICAL)); + + const float kInset = 10; + BRect dummy(0, 0, 2, 2); + + fGLView = new BGLView(dummy, "gl info", B_FOLLOW_NONE, 0, + BGL_RGB | BGL_DOUBLE); + fGLView->Hide(); + AddChild(fGLView); + + fGLView->LockGL(); + + LogoView *logoView = new LogoView(dummy); + + BTabView *tabView = new BTabView("tab view", B_WIDTH_FROM_LABEL); + + InfoView *infoView = new InfoView(); + tabView->AddTab(infoView); + + CapabilitiesView *capabilitiesView = new CapabilitiesView(); + tabView->AddTab(capabilitiesView); + + ExtensionsView *extensionsView = new ExtensionsView(); + tabView->AddTab(extensionsView); + + fGLView->UnlockGL(); + + AddChild(BGroupLayoutBuilder(B_VERTICAL) + .Add(logoView) + .Add(BGroupLayoutBuilder(B_HORIZONTAL) + .Add(tabView) + .SetInsets(kInset, kInset, kInset, kInset) + ) + ); +} + + +OpenGLView::~OpenGLView() +{ +} + + +void +OpenGLView::MessageReceived(BMessage* message) +{ + switch (message->what) { + default: + BView::MessageReceived(message); + } +} + + +void +OpenGLView::AttachedToWindow() [... truncated: 146 lines follow ...] From aljen-mlists at o2.pl Sat Sep 12 04:44:12 2009 From: aljen-mlists at o2.pl (Artur Wyszynski) Date: Sat, 12 Sep 2009 04:44:12 +0200 Subject: [Haiku-commits] r33072 - in haiku/branches/components/gallium3d: build/jam src/preferences src/preferences/opengl In-Reply-To: <200909120241.n8C2fxb9029052@sheep.berlios.de> References: <200909120241.n8C2fxb9029052@sheep.berlios.de> Message-ID: <4AAB0AFC.1000202@o2.pl> aljen at mail.berlios.de pisze: [..] > Added OpenGL preferences (for now display only information) It looks like this http://hitomi.pl/haiku/opengl_prefs.png, now it's only missing an icon :) Btw, merge it to trunk ? Regards, Artur Wyszynski From koki at haikuzone.net Sat Sep 12 04:48:25 2009 From: koki at haikuzone.net (Jorge G. Mare) Date: Fri, 11 Sep 2009 19:48:25 -0700 Subject: [Haiku-commits] r33072 - in haiku/branches/components/gallium3d: build/jam src/preferences src/preferences/opengl In-Reply-To: <4AAB0AFC.1000202@o2.pl> References: <200909120241.n8C2fxb9029052@sheep.berlios.de> <4AAB0AFC.1000202@o2.pl> Message-ID: <4AAB0BF9.9000206@haikuzone.net> Howdy, Artur Wyszynski wrote: > aljen at mail.berlios.de pisze: > [..] > >> Added OpenGL preferences (for now display only information) >> > > It looks like this http://hitomi.pl/haiku/opengl_prefs.png, now it's > only missing an icon :) > Cool! The OpenGL logo looks a bit awkward where it is now. Perhaps you can put it at the bottom of the Information tab? Cheers, Jorge/aka Koki From stpere at mail.berlios.de Sat Sep 12 04:59:51 2009 From: stpere at mail.berlios.de (stpere at BerliOS) Date: Sat, 12 Sep 2009 04:59:51 +0200 Subject: [Haiku-commits] r33073 - haiku/trunk/src/apps/expander Message-ID: <200909120259.n8C2xpAI031201@sheep.berlios.de> Author: stpere Date: 2009-09-12 04:59:50 +0200 (Sat, 12 Sep 2009) New Revision: 33073 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33073&view=rev Modified: haiku/trunk/src/apps/expander/ExpanderWindow.cpp Log: Expander: Smarter window sizing * When using the "Show Content" feature, enlarge the window horizontally rather than wrapping. Ref: enhancement request #3797. Modified: haiku/trunk/src/apps/expander/ExpanderWindow.cpp =================================================================== --- haiku/trunk/src/apps/expander/ExpanderWindow.cpp 2009-09-12 02:41:50 UTC (rev 33072) +++ haiku/trunk/src/apps/expander/ExpanderWindow.cpp 2009-09-12 02:59:50 UTC (rev 33073) @@ -361,8 +361,16 @@ if (!fExpandingStarted && fListingStarted) { BString string; int32 i = 0; - while (msg->FindString("output", i++, &string) == B_OK) + while (msg->FindString("output", i++, &string) == B_OK) { + // expand the window if we need... + float delta = fListingText->StringWidth(string.String()) + - fListingText->Frame().Width(); + if (delta > 0) { + ResizeTo(Frame().Width() + delta, + Frame().Height()); + } fListingText->Insert(string.String()); + } fListingText->ScrollToSelection(); } From aljen at mail.berlios.de Sat Sep 12 05:08:53 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 05:08:53 +0200 Subject: [Haiku-commits] r33074 - in haiku/trunk: build/jam src/preferences src/preferences/opengl Message-ID: <200909120308.n8C38r0p032166@sheep.berlios.de> Author: aljen Date: 2009-09-12 05:08:40 +0200 (Sat, 12 Sep 2009) New Revision: 33074 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33074&view=rev Added: haiku/trunk/src/preferences/opengl/ haiku/trunk/src/preferences/opengl/CapabilitiesView.cpp haiku/trunk/src/preferences/opengl/CapabilitiesView.h haiku/trunk/src/preferences/opengl/ExtensionsList.cpp haiku/trunk/src/preferences/opengl/ExtensionsList.h haiku/trunk/src/preferences/opengl/ExtensionsView.cpp haiku/trunk/src/preferences/opengl/ExtensionsView.h haiku/trunk/src/preferences/opengl/InfoView.cpp haiku/trunk/src/preferences/opengl/InfoView.h haiku/trunk/src/preferences/opengl/Jamfile haiku/trunk/src/preferences/opengl/LogoView.cpp haiku/trunk/src/preferences/opengl/LogoView.h haiku/trunk/src/preferences/opengl/OpenGL.rdef haiku/trunk/src/preferences/opengl/OpenGLApp.cpp haiku/trunk/src/preferences/opengl/OpenGLApp.h haiku/trunk/src/preferences/opengl/OpenGLView.cpp haiku/trunk/src/preferences/opengl/OpenGLView.h haiku/trunk/src/preferences/opengl/OpenGLWindow.cpp haiku/trunk/src/preferences/opengl/OpenGLWindow.h haiku/trunk/src/preferences/opengl/OpenGL_logo.png Removed: haiku/trunk/src/preferences/opengl/CapabilitiesView.cpp haiku/trunk/src/preferences/opengl/CapabilitiesView.h haiku/trunk/src/preferences/opengl/ExtensionsList.cpp haiku/trunk/src/preferences/opengl/ExtensionsList.h haiku/trunk/src/preferences/opengl/ExtensionsView.cpp haiku/trunk/src/preferences/opengl/ExtensionsView.h haiku/trunk/src/preferences/opengl/InfoView.cpp haiku/trunk/src/preferences/opengl/InfoView.h haiku/trunk/src/preferences/opengl/Jamfile haiku/trunk/src/preferences/opengl/LogoView.cpp haiku/trunk/src/preferences/opengl/LogoView.h haiku/trunk/src/preferences/opengl/OpenGL.rdef haiku/trunk/src/preferences/opengl/OpenGLApp.cpp haiku/trunk/src/preferences/opengl/OpenGLApp.h haiku/trunk/src/preferences/opengl/OpenGLView.cpp haiku/trunk/src/preferences/opengl/OpenGLView.h haiku/trunk/src/preferences/opengl/OpenGLWindow.cpp haiku/trunk/src/preferences/opengl/OpenGLWindow.h haiku/trunk/src/preferences/opengl/OpenGL_logo.png Modified: haiku/trunk/build/jam/HaikuImage haiku/trunk/src/preferences/Jamfile Log: merged r33072 from gallium3d branch (OpenGL preferences) Modified: haiku/trunk/build/jam/HaikuImage =================================================================== --- haiku/trunk/build/jam/HaikuImage 2009-09-12 02:59:50 UTC (rev 33073) +++ haiku/trunk/build/jam/HaikuImage 2009-09-12 03:08:40 UTC (rev 33074) @@ -71,7 +71,7 @@ ShowImage SoundRecorder StyledEdit Terminal TextSearch TV Workspaces ; SYSTEM_PREFERENCES = Appearance Backgrounds CPUFrequency DataTranslations E-mail - FileTypes Fonts Keyboard Keymap Media Mouse Network Printers + FileTypes Fonts Keyboard Keymap Media Mouse Network OpenGL Printers Screen ScreenSaver Sounds Time Touchpad Tracker VirtualMemory ; SYSTEM_DEMOS = BSnow Chart Clock Cortex FontDemo Modified: haiku/trunk/src/preferences/Jamfile =================================================================== --- haiku/trunk/src/preferences/Jamfile 2009-09-12 02:59:50 UTC (rev 33073) +++ haiku/trunk/src/preferences/Jamfile 2009-09-12 03:08:40 UTC (rev 33074) @@ -17,6 +17,7 @@ SubInclude HAIKU_TOP src preferences media ; SubInclude HAIKU_TOP src preferences mouse ; SubInclude HAIKU_TOP src preferences network ; +SubInclude HAIKU_TOP src preferences opengl ; SubInclude HAIKU_TOP src preferences print ; SubInclude HAIKU_TOP src preferences screen ; SubInclude HAIKU_TOP src preferences screensaver ; Copied: haiku/trunk/src/preferences/opengl (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl) Deleted: haiku/trunk/src/preferences/opengl/CapabilitiesView.cpp Copied: haiku/trunk/src/preferences/opengl/CapabilitiesView.cpp (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/CapabilitiesView.cpp) Deleted: haiku/trunk/src/preferences/opengl/CapabilitiesView.h Copied: haiku/trunk/src/preferences/opengl/CapabilitiesView.h (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/CapabilitiesView.h) Deleted: haiku/trunk/src/preferences/opengl/ExtensionsList.cpp Copied: haiku/trunk/src/preferences/opengl/ExtensionsList.cpp (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsList.cpp) Deleted: haiku/trunk/src/preferences/opengl/ExtensionsList.h Copied: haiku/trunk/src/preferences/opengl/ExtensionsList.h (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsList.h) Deleted: haiku/trunk/src/preferences/opengl/ExtensionsView.cpp Copied: haiku/trunk/src/preferences/opengl/ExtensionsView.cpp (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsView.cpp) Deleted: haiku/trunk/src/preferences/opengl/ExtensionsView.h Copied: haiku/trunk/src/preferences/opengl/ExtensionsView.h (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/ExtensionsView.h) Deleted: haiku/trunk/src/preferences/opengl/InfoView.cpp Copied: haiku/trunk/src/preferences/opengl/InfoView.cpp (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/InfoView.cpp) Deleted: haiku/trunk/src/preferences/opengl/InfoView.h Copied: haiku/trunk/src/preferences/opengl/InfoView.h (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/InfoView.h) Deleted: haiku/trunk/src/preferences/opengl/Jamfile Copied: haiku/trunk/src/preferences/opengl/Jamfile (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/Jamfile) Deleted: haiku/trunk/src/preferences/opengl/LogoView.cpp Copied: haiku/trunk/src/preferences/opengl/LogoView.cpp (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/LogoView.cpp) Deleted: haiku/trunk/src/preferences/opengl/LogoView.h Copied: haiku/trunk/src/preferences/opengl/LogoView.h (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/LogoView.h) Deleted: haiku/trunk/src/preferences/opengl/OpenGL.rdef Copied: haiku/trunk/src/preferences/opengl/OpenGL.rdef (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/OpenGL.rdef) Deleted: haiku/trunk/src/preferences/opengl/OpenGLApp.cpp Copied: haiku/trunk/src/preferences/opengl/OpenGLApp.cpp (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLApp.cpp) Deleted: haiku/trunk/src/preferences/opengl/OpenGLApp.h Copied: haiku/trunk/src/preferences/opengl/OpenGLApp.h (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLApp.h) Deleted: haiku/trunk/src/preferences/opengl/OpenGLView.cpp Copied: haiku/trunk/src/preferences/opengl/OpenGLView.cpp (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLView.cpp) Deleted: haiku/trunk/src/preferences/opengl/OpenGLView.h Copied: haiku/trunk/src/preferences/opengl/OpenGLView.h (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLView.h) Deleted: haiku/trunk/src/preferences/opengl/OpenGLWindow.cpp Copied: haiku/trunk/src/preferences/opengl/OpenGLWindow.cpp (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLWindow.cpp) Deleted: haiku/trunk/src/preferences/opengl/OpenGLWindow.h Copied: haiku/trunk/src/preferences/opengl/OpenGLWindow.h (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/OpenGLWindow.h) Deleted: haiku/trunk/src/preferences/opengl/OpenGL_logo.png Copied: haiku/trunk/src/preferences/opengl/OpenGL_logo.png (from rev 33072, haiku/branches/components/gallium3d/src/preferences/opengl/OpenGL_logo.png) From stpere at mail.berlios.de Sat Sep 12 05:09:53 2009 From: stpere at mail.berlios.de (stpere at BerliOS) Date: Sat, 12 Sep 2009 05:09:53 +0200 Subject: [Haiku-commits] r33075 - haiku/trunk/src/apps/expander Message-ID: <200909120309.n8C39rcX032209@sheep.berlios.de> Author: stpere Date: 2009-09-12 05:09:52 +0200 (Sat, 12 Sep 2009) New Revision: 33075 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33075&view=rev Modified: haiku/trunk/src/apps/expander/ExpanderWindow.cpp haiku/trunk/src/apps/expander/ExpanderWindow.h Log: Expander: Smarter window resize * Rather than enlarging the window on (potentially) every line, simply keep the largest delta and use it only once at the end of the listing. Ref: r33073 and ticket #3797. Modified: haiku/trunk/src/apps/expander/ExpanderWindow.cpp =================================================================== --- haiku/trunk/src/apps/expander/ExpanderWindow.cpp 2009-09-12 03:08:40 UTC (rev 33074) +++ haiku/trunk/src/apps/expander/ExpanderWindow.cpp 2009-09-12 03:09:52 UTC (rev 33075) @@ -365,9 +365,8 @@ // expand the window if we need... float delta = fListingText->StringWidth(string.String()) - fListingText->Frame().Width(); - if (delta > 0) { - ResizeTo(Frame().Width() + delta, - Frame().Height()); + if (delta > fLargestDelta) { + fLargestDelta = delta; } fListingText->Insert(string.String()); } @@ -385,6 +384,9 @@ } else if (fListingStarted){ fSourceChanged = false; StopListing(); + if (fLargestDelta > 0.0f) + ResizeBy(fLargestDelta, 0.0f); + fLargestDelta = 0.0f; } else fStatusView->SetText(""); break; @@ -597,6 +599,8 @@ { _UpdateWindowSize(true); + fLargestDelta = 0.0f; + if (fListingScroll->IsHidden()) fListingScroll->Show(); Modified: haiku/trunk/src/apps/expander/ExpanderWindow.h =================================================================== --- haiku/trunk/src/apps/expander/ExpanderWindow.h 2009-09-12 03:08:40 UTC (rev 33074) +++ haiku/trunk/src/apps/expander/ExpanderWindow.h 2009-09-12 03:09:52 UTC (rev 33075) @@ -77,6 +77,8 @@ BMessage fSettings; ExpanderPreferences *fPreferences; ExpanderRules fRules; + + float fLargestDelta; }; #endif /* EXPANDER_WINDOW_H */ From stpere at mail.berlios.de Sat Sep 12 05:44:12 2009 From: stpere at mail.berlios.de (stpere at BerliOS) Date: Sat, 12 Sep 2009 05:44:12 +0200 Subject: [Haiku-commits] r33076 - haiku/trunk/src/apps/installer Message-ID: <200909120344.n8C3iChh001128@sheep.berlios.de> Author: stpere Date: 2009-09-12 05:44:10 +0200 (Sat, 12 Sep 2009) New Revision: 33076 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33076&view=rev Modified: haiku/trunk/src/apps/installer/InstallerWindow.cpp Log: Installer : truncated string in menu fields * Delay the display of the alert just a little bit, to let the menu fields enough time to adjust. Fixes ticket #3893. Modified: haiku/trunk/src/apps/installer/InstallerWindow.cpp =================================================================== --- haiku/trunk/src/apps/installer/InstallerWindow.cpp 2009-09-12 03:09:52 UTC (rev 33075) +++ haiku/trunk/src/apps/installer/InstallerWindow.cpp 2009-09-12 03:44:10 UTC (rev 33076) @@ -50,6 +50,7 @@ const uint32 SETUP_MESSAGE = 'iSEP'; const uint32 START_SCAN = 'iSSC'; const uint32 PACKAGE_CHECKBOX = 'iPCB'; +const uint32 ENCOURAGE_DRIVESETUP = 'iENC'; class LogoView : public BView { public: @@ -382,6 +383,13 @@ fSizeView->SetText(string); break; } + case ENCOURAGE_DRIVESETUP: + { + (new BAlert("use drive setup", "No partitions have been found that " + "are suitable for installation. Please setup partitions and " + "initialize at least one partition with the Be File System." , + "Ok"))->Go(); + } case MSG_STATUS_MESSAGE: { // TODO: Was this supposed to prevent status messages still arriving @@ -629,10 +637,7 @@ if (!fEncouragedToSetupPartitions && !foundOneSuitableTarget) { // Focus the users attention on the DriveSetup button fEncouragedToSetupPartitions = true; - (new BAlert("use drive setup", "No partitions have been found that " - "are suitable for installation. Please setup partitions and " - "initialize at least one partition with the Be File System." , - "Ok"))->Go(); + PostMessage(ENCOURAGE_DRIVESETUP); } } From stpere at mail.berlios.de Sat Sep 12 07:20:11 2009 From: stpere at mail.berlios.de (stpere at BerliOS) Date: Sat, 12 Sep 2009 07:20:11 +0200 Subject: [Haiku-commits] r33077 - haiku/trunk/src/apps/soundrecorder Message-ID: <200909120520.n8C5KB1k004803@sheep.berlios.de> Author: stpere Date: 2009-09-12 07:19:52 +0200 (Sat, 12 Sep 2009) New Revision: 33077 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33077&view=rev Modified: haiku/trunk/src/apps/soundrecorder/RecorderWindow.cpp haiku/trunk/src/apps/soundrecorder/SoundListView.cpp Log: SoundRecorder : Several style "fixup". No functional change. Modified: haiku/trunk/src/apps/soundrecorder/RecorderWindow.cpp =================================================================== --- haiku/trunk/src/apps/soundrecorder/RecorderWindow.cpp 2009-09-12 03:44:10 UTC (rev 33076) +++ haiku/trunk/src/apps/soundrecorder/RecorderWindow.cpp 2009-09-12 05:19:52 UTC (rev 33077) @@ -135,6 +135,7 @@ Show(); } + RecorderWindow::~RecorderWindow() { // The sound consumer and producer are Nodes; it has to be released and the Roster @@ -673,6 +674,7 @@ } } + void RecorderWindow::Play(BMessage * message) { @@ -714,6 +716,7 @@ fPlayer->SetHasData(true); } + void RecorderWindow::Stop(BMessage * message) { @@ -724,6 +727,7 @@ StopPlaying(); } + void RecorderWindow::Save(BMessage * message) { @@ -749,6 +753,7 @@ fSavePanel->Show(); } + void RecorderWindow::DoSave(BMessage * message) { @@ -814,6 +819,7 @@ } } + void RecorderWindow::Selected(BMessage * message) { @@ -831,6 +837,7 @@ UpdateButtons(); } + status_t RecorderWindow::MakeRecordConnection(const media_node & input) { @@ -940,6 +947,7 @@ return err; } + status_t RecorderWindow::StopRecording() { @@ -1032,6 +1040,7 @@ extern "C" status_t DecodedFormat__11BMediaTrackP12media_format(BMediaTrack *self, media_format *inout_format); #endif + status_t RecorderWindow::UpdatePlayFile(SoundListItem* item, bool updateDisplay) { @@ -1059,7 +1068,7 @@ return err; } - for (int ix=0; ixCountTracks(); ix++) { + for (int ix=0; ix < fPlayFile->CountTracks(); ix++) { BMediaTrack * track = fPlayFile->TrackAt(ix); fPlayFormat.type = B_MEDIA_RAW_AUDIO; #ifdef __HAIKU__ @@ -1250,6 +1259,7 @@ } } + void RecorderWindow::NotifyPlayFile(void * cookie, BSoundPlayer::sound_player_notification code, ...) Modified: haiku/trunk/src/apps/soundrecorder/SoundListView.cpp =================================================================== --- haiku/trunk/src/apps/soundrecorder/SoundListView.cpp 2009-09-12 03:44:10 UTC (rev 33076) +++ haiku/trunk/src/apps/soundrecorder/SoundListView.cpp 2009-09-12 05:19:52 UTC (rev 33077) @@ -17,10 +17,12 @@ { } + SoundListView::~SoundListView() { } + void SoundListView::Draw(BRect updateRect) { @@ -65,6 +67,7 @@ SetText(name); } + SoundListItem::~SoundListItem() { } From mmlr at mail.berlios.de Sat Sep 12 07:53:13 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 12 Sep 2009 07:53:13 +0200 Subject: [Haiku-commits] r33078 - haiku/trunk/src/preferences/mouse Message-ID: <200909120553.n8C5rDIx008470@sheep.berlios.de> Author: mmlr Date: 2009-09-12 07:53:09 +0200 (Sat, 12 Sep 2009) New Revision: 33078 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33078&view=rev Modified: haiku/trunk/src/preferences/mouse/Mouse.rdef haiku/trunk/src/preferences/mouse/MouseView.cpp haiku/trunk/src/preferences/mouse/MouseView.h haiku/trunk/src/preferences/mouse/SettingsView.cpp Log: * Removed copyrighted bitmaps. * Draw a pseudo mouse instead of using the bitmap. It's ugly and should be done properly by someone with more of an artistic talent than me. But it should do for now. * Downright removed the little icons. The code is still there, but since the icons aren't there anymore it will simply fail to load them and not use them. Modified: haiku/trunk/src/preferences/mouse/Mouse.rdef =================================================================== --- haiku/trunk/src/preferences/mouse/Mouse.rdef 2009-09-12 05:19:52 UTC (rev 33077) +++ haiku/trunk/src/preferences/mouse/Mouse.rdef 2009-09-12 05:53:09 UTC (rev 33078) @@ -15,11 +15,9 @@ internal = 0, short_info = "Mouse", - long_info = "Mouse ?2002-2007 Haiku" + long_info = "Mouse ?2002-2009 Haiku" }; -#ifdef HAIKU_TARGET_PLATFORM_HAIKU - resource vector_icon { $"6E636966080301000002000202AC6DA33A810CBCBF0CAEA9C248C4E546BB2A00" $"01000000FF010000FF020016023D2328BA287D3B40A23E5D334837CE48FA2500" @@ -37,357 +35,3 @@ $"01031001178422040A020101000A030102000A0001041001178100040A060104" $"123FE3AA0000000000003FDFFC41DB9540107701178100040A04010300" }; - -#else // HAIKU_TARGET_PLATFORM_HAIKU - -resource large_icon { - $"FFFFFFFFFFFF000000000000000000000EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFF00000E0F0F0F0F0F0F0F0E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFF00000E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FF000E0FFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FF000EFFFFFFFFFFFF00111717180000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FF00000E0FFFFFFF00111717181717180000FFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFF00000E0F00111817171817180A3F170000FFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFF0000111717181717180A3F171718170000FFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFF00111717181717180A3F171718171718170000FFFFFFFFFFFFFFFF" - $"FFFFFFFF00111717181717180A3F171718171718171817170000FFFFFFFFFFFF" - $"FFFFFF00111717181717180A3F17171817171817183F171718170000FFFFFFFF" - $"FFFF003F1717181717180A3F1717181717181718171C3F171718110A00FFFFFF" - $"FFFF003F3F171718170B3F171700001817171817183F171718110A0B00FFFFFF" - $"FFFF0011113F3F170B3F1717005B5B001817171817181717110B0B0000FFFFFF" - $"FFFF00111111113F0A18171700DA5B5B00171817171817110B0A000B000FFFFF" - $"FFFF000A0B1111110A3F3F002B2CDA5B001717181718110A0B000A0B000FFFFF" - $"FFFF0011110A0B110A1111002B2FEB001817181717110B0B000A0B000F0FFFFF" - $"FFFF00111111110A0B11002B2B2F2F0017181717110B0B000A0B000F0F0EFFFF" - $"FFFFFF00001111111100002B2F2F003F3F1717110B0B000A0B000F0F0EFFFFFF" - $"FFFFFFFFFF00001111002B2CEB2F0011113F110A0B000A0B000F0F0FFFFFFFFF" - $"FFFFFF000000FF0000002B2F2F000A1111110B0B000A0B000F0F0EFFFFFFFFFF" - $"FFFF005B5B5B00FF002B2CEB2F00110A0B110A000B0B000F0E0FFFFFFFFFFFFF" - $"FF005B5B5BDA00FF002B2F2F00111111110A000B0B000E0F0FFFFFFFFFFFFFFF" - $"FF002B2CDA5B5B002B2CEB2F0000001111110B0A000F0F0FFFFFFFFFFFFFFFFF" - $"FFFF002B2CDA5B2B2CEB2F00FFFFFF0000110A000F0F0FFFFFFFFFFFFFFFFFFF" - $"FFFF002B2BDA5B2C2B2FEB00FFFFFFFFFF00000E0F0FFFFFFFFFFFFFFFFFFFFF" - $"FFFFFF002B2C2B2B2F2F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFF002B2C2B2B2F2F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFF002B2CEB2F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFF002B2CEB2F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFF002B2F000E0F0F0F0F0F0F0F0F0FFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFF0000000E0F0F0F0F0F0F0F0F0F0FFFFFFFFFFFFFFFFFFFFFFFFFFF" -}; - -resource mini_icon { - $"FF00000000000E0F0FFFFFFFFFFFFFFF" - $"000F0F0F000000FFFFFFFFFFFFFFFFFF" - $"000FFF001717180000FFFFFFFFFFFFFF" - $"FF0000171718170B3F0000FFFFFFFFFF" - $"FF00171718170B3F1717180000FFFFFF" - $"003F3F17170B3F17171817171800FFFF" - $"000A113F0A3F001717181717110B00FF" - $"00110A0B11005B00171817110B0A00FF" - $"000011110A002F003F17110B0A000FFF" - $"FFFF0000002F000A11110B0A000FFFFF" - $"FF00FFFF002F00110A0B0A000FFFFFFF" - $"002B00002F0000000A0B000FFFFFFFFF" - $"002B5B2CEB00FFFF00000EFFFFFFFFFF" - $"FF002B2F00FFFFFFFFFFFFFFFFFFFFFF" - $"FF002B2F00FFFFFFFFFFFFFFFFFFFFFF" - $"FFFF00000E0F0F0F0FFFFFFFFFFFFFFF" -}; - -#endif // HAIKU_TARGET_PLATFORM_HAIKU - -resource(601, "double_click_bmap") #'bits' array { - $"424D06070000000000003A000000280000000E0000001E000000010018000000" - $"0000CC060000130B0000130B00000000000000000000FFFFFFFFD8D8D8000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"00D8D8D800000000008080808080808080808080808080808080808080808080" - $"808080808080808080808080800000000000000000B8B8B8FFFFFFB8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880808000000000000000" - $"00B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B88080800000000000000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B88080800000000000000000B8B8B8FFFFFFB8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8808080000000" - $"0000000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B87F7F7F0000000000000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B88080800000000000000000B8B8B8" - $"FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B88080" - $"800000000000000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B88080800000000000000000B8B8B8FFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80808000000000000000" - $"0080808080808080808080808080808080808080808080808080808080808080" - $"80808080800000000000000000B8B8B8FFFFFFB8B8B8B8B8B8C0C0C0808080FF" - $"FFFFC0C0C0B8B8B8B8B8B8B8B8B88080800000000000000000B8B8B8FFFFFFB8" - $"B8B8B8B8B8C0C0C0808080FFFFFFC0C0C0B8B8B8B8B8B8B8B8B8808080000000" - $"0000000000B8B8B8FFFFFFB8B8B8B8B8B8C0C0C0808080FFFFFFC0C0C0B8B8B8" - $"B8B8B8B8B8B88080800000000000000000B8B8B8FFFFFFFFFFFFFFFFFFFFFFFF" - $"808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8080800000000000000000B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8808080B8B8B8B8B8B8B8B8B8B8B8B8B8B8B88080" - $"800000000000D8D8D80000000000000000000000000000005858580000000000" - $"00000000000000000000000000D8D8D80000D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8000000000000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D80000D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D80000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D80000D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"0000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D80000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"989898D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D80000D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8989898989898989898D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D80000D8D8D8D8D8D8D8D8D8D8D8D89898989898989898989898989898" - $"98D8D8D8D8D8D8D8D8D8D8D8D8D8D8D80000D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8989898D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D80000D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8989898989898989898D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D80000D8D8D8D8D8D8D8D8D8D8D8D898989898989898989898" - $"9898989898D8D8D8D8D8D8D8D8D8D8D8D8D8D8D80000D8D8D8D8D8D8D8D8D898" - $"9898989898989898989898989898989898989898D8D8D8D8D8D8D8D8D8D8D8D8" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"000000000000" -}; - -resource(602, "speed_bmap") #'bits' array { - $"424DE8080000000000003A000000280000001900000016000000010018000000" - $"0000AE080000130B0000130B00000000000000000000FFFFFFFFD8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D800000000000000000000000000000000000000000000" - $"0000000000000000000000000000D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D800000080808080808080808080" - $"808080808080808080808080808080808080808080808080808000000000D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D800" - $"0000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFF" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B88080800000" - $"0000D8D8D8D8D8D8D8D8D8989898D8D8D8989898989898989898989898D8D8D8" - $"D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8" - $"B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880" - $"808000000000989898D8D8D89898989898989898989898989898989898989898" - $"98D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B87F7F7F00000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880808000000000D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D800" - $"0000B8B8B8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFF80808000000000D8D8D8D8D8D8D8D8D8989898D8D8D898989898989898" - $"9898989898D8D8D8D8D8D8000000808080808080808080808080808080808080" - $"80808080808080808080808080808080808000000000D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFF" - $"B8B8B8B8B8B8C0C0C0808080FFFFFFC0C0C0B8B8B8B8B8B8B8B8B88080800000" - $"0000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8C0C0C0808080FFFFFFC0C0C0B8B8" - $"B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8C0C0" - $"C0808080FFFFFFC0C0C0B8B8B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8" - $"B8FFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80" - $"808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8000000B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8808080B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D800000000000000000000" - $"0000000000585858000000000000000000000000000000000000D8D8D800D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000000000000000D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D800D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D800000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000" -}; - -resource(603, "acceleration_bmap") #'bits' array { - $"424D83080000000000003A000000280000001900000015000000010018000000" - $"000049080000130B0000130B00000000F8410000F841FFFFFFFFD8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D80000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D800000080808080808080808080808080808080808080808080" - $"808080808080808080808080808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880808000000000D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D800" - $"0000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8D8D8D898" - $"9898D8D8D8989898989898989898989898D8D8D8D8D8D8000000B8B8B8FFFFFF" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B88080800000" - $"0000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B87F7F7F00000000989898D8D8D8" - $"989898989898989898989898989898989898989898D8D8D8D8D8D8000000B8B8" - $"B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880" - $"808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B87F7F7F00000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80808000000000D8D8" - $"D8D8D8D8D8D8D8989898D8D8D8989898989898989898989898D8D8D8D8D8D800" - $"0000808080808080808080808080808080808080808080808080808080808080" - $"80808080808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8C0C0C0808080" - $"FFFFFFC0C0C0B8B8B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFF" - $"B8B8B8B8B8B8C0C0C0808080FFFFFFC0C0C0B8B8B8B8B8B8B8B8B88080800000" - $"0000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8C0C0C0808080FFFFFFC0C0C0B8B8" - $"B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFFFFFFFFFFFFFFFFF" - $"FF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80808000000000D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8808080B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880" - $"808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D800000000000000000000000000000058585800000000" - $"0000000000000000000000000000D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8000000000000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D800D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D800000090413D3D3DFF0000" - $"80420000984100008042000008423D0000FF0000804200000C42000080420000" - $"4842003D00FF0000804200004C42000080420000844200003DFF000082420000" - $"004000008242000090413E3E3EFF000082420000984100008242000008423E00" - $"00FF0000824200000C420000824200004842003E00FF0000824200004C420000" - $"82420000844200003EFF000084420000004000008442000090413F3F3FFF0000" - $"84420000984100008442000008423F0000FF0000844200000C42000084420000" - $"4842003F00FF0000844200004C42000084420000844200003FFF000086420000" - $"00400000864200009041404040FF000086420000984100008642000008424000" - $"00FF0000864200000C420000864200004842004000FF0000864200004C420000" - $"864200008442000040FF00008842000000400000884200009041414141FF0000" - $"8842000098410000884200000842410000FF0000884200000C42000088420000" - $"4842004100FF0000884200004C420000884200008442000041FF00008A420000" - $"004000008A4200009041424242FF00008A420000984100008A42000008424200" - $"00FF00008A4200000C4200008A4200004842004200FF00008A4200004C420000" - $"8A4200008442000042FF00008C420000004000008C4200009041434343FF0000" - $"8C420000984100008C4200000842430000FF00008C4200000C4200008C420000" - $"484200" -}; - -resource(604, "mouse_bmap") #'bits' array { - $"89504E470D0A1A0A0000000D4948445200000039000000520806000000EE2B7C" - $"1C000000017352474200AECE1CE900000006624B474400FF00FF00FFA0BDA793" - $"000000097048597300000B1300000B1301009A9C180000000774494D4507D904" - $"0B17142E3075A9E9000007474944415478DAE55CA176E34A0CD5FA0484C59F10" - $"1858D67E46685960616160580B0B0BFD09FD84C2C2C0941926CC6561FBC03BE3" - $"A328F74AB2B3D9D79E6792C68EC7A3917475258DFB6BB7DBFD962B1F4DD3C86A" - $"B5121191CD66D3FF3D9FCFE56F1C95FC0F8E5FD7D464D334F07CDBB6BD36FF86" - $"4627D714F0E9E9895EBFBFBFEF056DDBF6AA825E45934DD3C8CDCD4DF8BBB7B7" - $"371191AB6BF58F0B196930D2EA35047585643EF59D0EBD38837CB208B75C2EBF" - $"BD909BCDE6E433D4A4156EB1585C6D72C7E351A6D3E9E87BBAAE93BAAEA5EB3A" - $"111159AFD7BD66ADB9F742364D7315E13C61D8357BBEEB3A994EA7723C1EE938" - $"E5DAF3F3F319D9383357BD0AB3D9EC6221BD31D8357B3E9AC7E7E7672FEC6AB5" - $"EA1956094D13ADC5F97CDEAFE06C3693AFAFAF9469653582BE1F8F47A9EB1A9E" - $"2BA668EF2F5AB39F45E32EAD2B03CC6633391C0E67E7B30296DF96F3E83B9A50" - $"D7752713F64CD3CEA7FCBEEB3A592E973DBEB46D2B95D6A29E48C6D790206851" - $"EC8A6BF0289F4C284F30FB5C36864BD0F54DD3E9F464A53DAD14EDA28716818A" - $"89B289DB85B1CFD4BF29CFAFEBBA9F0F8C937A80E2E8DA57CA40560BCC67B4AF" - $"216D9705B38BA32D412F1E7397F29BFD7E1F9381F240BB5A7A1122F0B1F7E885" - $"40E6CB0460DFED18FA7CD1E27EBF3FBBBFCA808B36CBF2A9B5AC1FE4F9AF5D04" - $"F45D9F4748EAC5D23207AB8C6A2803F1D08F397EB4801E60A1FBEC73F4770462" - $"D5D08978E8C6263666DC31085F2C8C6A32130FB3146E8845448B63E754B48400" - $"4B447C9FB4AB12810BF2270B24DEC26440C71390B90D5AE4AB953F1822226BC9" - $"98774640661155163CB2020DA17F11C0447342088F9E31413716627E0968D8C0" - $"EEF15C3431E47B568BF63E4D444273B5748E05733BB89D10FADB9A2C03109685" - $"308191BFA78BCB2C605B0767BE8678288A8508603C7231240A8442B2958ED8CA" - $"1870B15A8C7C35EBF7833539368646F14F53330FFCBC6BCC27CF184F1944F347" - $"ED735E9E38445BE81A334FFB1B86092CD69F7157941E6901F5805E29023D4CDF" - $"97D15294246779F7043D68B7DBFD2735545495CB70EABAAE219D83427E7C7CFC" - $"98CAB93D4A19152D4A2FE476BBED857B7D7DFD71423E3C3CD09AF14444E4E5E5" - $"E5443816DF5828F17C8C8189364D66922831463EBC582CFA8232B2C28988C8E3" - $"E3A3DCDEDECAE170804082268180C822A4CDF3509D55331BE48F5EF5BC8CB9DD" - $"6EFBB920617B733D1C0E7DB8B0AB6C611A71C83271DDA32863E9CA9C46EF4C7C" - $"D5F7B2D44B8F57040EC98015C6C620CB31112DB3953D2FF78C2A725E7E9AC95D" - $"27CC571821462C8569C59A21ABC5322D659A3C8C76A668DD9FACD3583291A900" - $"6866C3DA09D6D2422123CE9869ECB0872066E46940FB34BB6EC14DD34F2AA406" - $"8F6C26C2BA48993093613143AB85A92CC4EB243161232D4642793136AA1AB0B0" - $"E60A995D3D1D3658963FB66E8BC24286607873A8BC1562E0A3BB470C4C6C553B" - $"6ADA6404B4097536FFADBC5C8D998A662ED92CC1D37499785DD730EEB21A4FD4" - $"FC3D8B9388CDB0029345E3284EA289977B34AD8BAA102856A3D0E45606B42699" - $"4659239615A150F3B63C27E2ADCC95180086D53A8F41204D46250C1617757375" - $"4821DB03C588DAD1AE96573745B68F80E6129445E18351C2E8A8221AE7D55D51" - $"31D8D3A007221E4BF2B4A9018801DB2422E0ACDB8B5670487DC6EB2267CA90F6" - $"7E6F6EB475E7B507B2DBC88694243DDA57428B87071E11A9B24EEC858B28948C" - $"69CA226D7A69DA45BD10869A8C85B02C652C2869E16CBCCDF2E6CACB34221FCC" - $"80855784F23638E805D41506D6646280E8A22BAB162058CF6AC726C3688CF277" - $"B429902134B2A6CA737C2D1822D943DAE088FD20ADD95D6088E0B3189E46D708" - $"E2197A46E062358834A5358AC64685B50C25A48CC74BB7F4EEA7085C8AF68600" - $"8EC77E50B9236AF8545E29839996AEB17A486C4B932CA388EA3E085133254CAA" - $"49560D1F0A34DA9F581DC66E588CF6BCA27662C675AAA184389B287B714D27DE" - $"1E2563355EA4758F69550CF9A2EDD1511CD4ED864C59F392FA6F1A78BC7D715A" - $"7034982E2ED938171596B38B1891F014F0B02CC46332DA7791EF0DE957A0A01E" - $"9532B35611321E5676C830996833A297B722D28DC031B39D26DC91C59A2FF635" - $"22AB49B4A38A8580689361761B6A6AF7078A732CFBB042587F8E6AA3515E9A49" - $"C33239F0992651AC625A1C92BDB38A41A6B560F7118D39AA4CF269C34AB40533" - $"33F98C4F458BC198142D2E479B65CBB1DFEF21C8B0B4C78B6D430B5DD1BB5FEC" - $"591364AACC3C6DB778A8063D7061C22253CD6C4B3D31D7F57ADDBF401D4D96F5" - $"4A86EC66646126EA7F64626DB9A65FF19FCFE75295D77F501E87B274E453C8DF" - $"B29B0B87D67CC6B09E4AE4DF5764DFDFDF4FCC96B5F1582D05759C325AC8D45F" - $"F5C2D97EA85DD4DD6E17BF095BCC52BFE0C5B4C538E9252FD1780529AF5AE1B9" - $"CCC98BDBE50DEFBBBB3BB8D533B33D2CF382E8986A5FF4BBB66DA558A5D6E299" - $"905A586FD761C43E2E6D210C39AC7056402AA4D6EA773FEC3F5340FF6DC2FD8F" - $"1165957EC2E1FD2B8D6AEC8DDF49B8689EFF005C55DCD2263C579C0000000049" - $"454E44AE426082" -}; - -resource(605, "pressed_mouse_bmap") #'bits' array { - $"89504E470D0A1A0A0000000D49484452000000380000001D0802000000708538" - $"CC000000017352474200AECE1CE9000000097048597300000B1300000B130100" - $"9A9C180000000774494D4507D9040B162E2CFA107C8B000001E54944415458C3" - $"CD58BBB583300C557C285452B241283382BB64848C4049999211283342CA9494" - $"E9B242CA8CE0D2E52BF4A2A3671BE30789830A8EB1FCB95C5D19C1E6F1788067" - $"4DD320A2B536FFF57C3EFB78B6DB6D118478381CE04B763C1E01E072B938FD1B" - $"6694206AAD01A02C4B7F097AE2F4FEB8CBF71A63CAB234C630D0BEEFABAA2246" - $"7F81364D432C12C420D06CF67C3EA971BD5EBBAE0380FD7EFF27F48C921E2B83" - $"C537D25A775D475815D319448988EF8542B7E665E91395C3A8E31E13E53C888C" - $"3271AE3166B7DB9D4E27005092CE441BCB0F1F81E46F6128D4E4A0B1ED27C99B" - $"9D91B41A4D67528AE050DE43EE1764452E4A571E362F237D7990D28A389D1156" - $"E2AC2F4C3BCA16FBB2D1D0073340825E12D974D088C889ABE685E35D2CC6E3C3" - $"74A602FD8A51993291F5996D2C38B25FAD0DE5D87B51AD16256B94E0AA55455C" - $"9E248E468BCF25F2124572B5CA35ABFA57DDF5169B3C80E5A9F4B5D0CB57EE24" - $"4192D12233D0F4AA5C7EF465051AC1177421A23126ACD18F0A34224DDF25651A" - $"AEF0F3336AADF55D14EED8F124E73827D9C2FEF470C9C1018DD247EA300C2C0B" - $"A791B3BFAA2AE7990B4649106FB7DB1ACA14FA0F52D735A3DF68AD29B9866160" - $"01904FCA99DBC19239D8C909E11016F9C22124F4770411DBB6A5C6FD7EFF01F7" - $"2616EDC24D58E30000000049454E44AE426082" -}; - Modified: haiku/trunk/src/preferences/mouse/MouseView.cpp =================================================================== --- haiku/trunk/src/preferences/mouse/MouseView.cpp 2009-09-12 05:19:52 UTC (rev 33077) +++ haiku/trunk/src/preferences/mouse/MouseView.cpp 2009-09-12 05:53:09 UTC (rev 33078) @@ -12,10 +12,10 @@ #include "MouseView.h" -#include #include #include #include +#include #include #include #include @@ -31,19 +31,27 @@ #include "MouseWindow.h" -static const int32 kOneButtonOffsets[4] = {0, 55}; -static const int32 kTwoButtonOffsets[4] = {0, 27, 55}; -static const int32 kThreeButtonOffsets[4] = {0, 18, 36, 55}; - static const int32 kButtonTop = 6; +static const int32 kMouseDownWidth = 72; +static const int32 kMouseDownHeight = 30; -static const rgb_color kButtonPressedColor = {120, 120, 120}; -static const rgb_color kButtonReleasedLeftColor = {255, 255, 255}; -static const rgb_color kButtonReleasedRightColor = {184, 184, 184}; -static const rgb_color kButtonPressedSeparatorColor = {48, 48, 48}; -static const rgb_color kButtonReleasedSeparatorColor = {88, 88, 88}; -static const rgb_color kButtonTextColor = {32, 32, 32}; +static const int32 kOneButtonOffsets[4] + = { 0, kMouseDownWidth }; +static const int32 kTwoButtonOffsets[4] + = { 0, kMouseDownWidth / 2, kMouseDownWidth }; +static const int32 kThreeButtonOffsets[4] + = { 0, kMouseDownWidth / 3, kMouseDownWidth / 3 * 2, kMouseDownWidth }; +static const rgb_color kButtonPressedColor = { 120, 120, 120 }; +static const rgb_color kButtonReleasedLeftColor = { 255, 255, 255 }; +static const rgb_color kButtonReleasedRightColor = { 184, 184, 184 }; +static const rgb_color kButtonPressedSeparatorColor = { 48, 48, 48 }; +static const rgb_color kButtonReleasedSeparatorColor = { 88, 88, 88 }; +static const rgb_color kButtonTextColor = { 32, 32, 32 }; +static const rgb_color kMouseShadowColor = { 150, 150, 150 }; +static const rgb_color kMouseBodyTopColor = { 210, 210, 210 }; +static const rgb_color kMouseBodyBottomColor = { 140, 140, 140 }; +static const rgb_color kMouseOutlineColor = { 0, 0, 0 }; static const int32* getButtonOffsets(int32 type) @@ -86,18 +94,12 @@ fButtons(0), fOldButtons(0) { - fMouseBitmap = BTranslationUtils::GetBitmap("mouse_bmap"); - fMouseDownBitmap = BTranslationUtils::GetBitmap("pressed_mouse_bmap"); - - fMouseDownBounds = fMouseDownBitmap->Bounds(); SetEventMask(B_POINTER_EVENTS, B_NO_POINTER_HISTORY); } MouseView::~MouseView() { - delete fMouseBitmap; - delete fMouseDownBitmap; } @@ -105,9 +107,9 @@ MouseView::GetPreferredSize(float* _width, float* _height) { if (_width) - *_width = fMouseBitmap != NULL ? fMouseBitmap->Bounds().Width() : 57; + *_width = kMouseDownWidth + 2; if (_height) - *_height = fMouseBitmap != NULL ? fMouseBitmap->Bounds().Height() : 82; + *_height = 100; } @@ -115,8 +117,8 @@ MouseView::MouseUp(BPoint) { fButtons = 0; - Invalidate(BRect(0, kButtonTop, fMouseDownBounds.Width(), - kButtonTop + fMouseDownBounds.Height())); + Invalidate(BRect(0, kButtonTop, kMouseDownWidth, + kButtonTop + kMouseDownHeight)); fOldButtons = fButtons; } @@ -140,8 +142,8 @@ GetClippingRegion(&clipping); if (fOldButtons != fButtons) { - Invalidate(BRect(0, kButtonTop, - fMouseDownBounds.Width(), kButtonTop + fMouseDownBounds.Height())); + Invalidate(BRect(0, kButtonTop, kMouseDownWidth, kButtonTop + + kMouseDownHeight)); fOldButtons = fButtons; } @@ -149,7 +151,7 @@ int32 button = -1; for (int32 i = 0; i <= fType; i++) { BRect frame(offset[i], kButtonTop, offset[i + 1] - 1, - kButtonTop + fMouseDownBounds.Height()); + kButtonTop + kMouseDownHeight); if (frame.Contains(where)) { button = i; break; @@ -197,11 +199,25 @@ void MouseView::Draw(BRect updateFrame) { - // Draw the mouse top - SetDrawingMode(B_OP_ALPHA); - if (fMouseBitmap != NULL) - DrawBitmapAsync(fMouseBitmap, updateFrame, updateFrame); + BRect mouseBody(Bounds()); + mouseBody.right -= 2; + mouseBody.bottom -= 2; + float radius = 10; + // Draw the shadow + SetHighColor(kMouseShadowColor); + FillRoundRect(mouseBody.OffsetByCopy(2, 2), radius, radius); + + // Draw the body + BGradientLinear gradient(mouseBody.LeftTop(), mouseBody.LeftBottom()); + gradient.AddColor(kMouseBodyTopColor, 0); + gradient.AddColor(kMouseBodyBottomColor, 255); + FillRoundRect(mouseBody, radius, radius, gradient); + + // Draw the outline + SetHighColor(kMouseOutlineColor); + StrokeRoundRect(mouseBody, radius, radius); + mouse_map map; fSettings.Mapping(map); @@ -210,22 +226,17 @@ for (int32 i = 0; i < fType; i++) { BRect border(offset[i] + 1, kButtonTop + 2, offset[i + 1] - 1, - kButtonTop + fMouseDownBounds.Height() - 4); + kButtonTop + kMouseDownHeight - 4); bool pressed = (fButtons & map.button[_ConvertFromVisualOrder(i)]) != 0; // is button currently pressed? if (pressed) { - BRect frame(offset[i], 0, offset[i + 1], - fMouseDownBounds.Height() + 1); - if (fMouseDownBitmap != NULL) - DrawBitmapAsync(fMouseDownBitmap, frame, - frame.OffsetByCopy(0, kButtonTop)); - else if (fMouseBitmap == NULL) { - SetHighColor(kButtonPressedColor); - SetDrawingMode(B_OP_OVER); - FillRect(frame.OffsetByCopy(0, kButtonTop)); - } + BRect frame(offset[i], 0, offset[i + 1], kMouseDownHeight - 1); + frame.InsetBy(1, 1); + SetHighColor(kButtonPressedColor); + FillRect(frame.OffsetByCopy(0, kButtonTop)); } + SetDrawingMode(B_OP_OVER); if (i > 0 && fType > i) { Modified: haiku/trunk/src/preferences/mouse/MouseView.h =================================================================== --- haiku/trunk/src/preferences/mouse/MouseView.h 2009-09-12 05:19:52 UTC (rev 33077) +++ haiku/trunk/src/preferences/mouse/MouseView.h 2009-09-12 05:53:09 UTC (rev 33078) @@ -39,8 +39,6 @@ typedef BView inherited; const MouseSettings &fSettings; - BBitmap *fMouseBitmap, *fMouseDownBitmap; - BRect fMouseDownBounds; int32 fType; uint32 fButtons; Modified: haiku/trunk/src/preferences/mouse/SettingsView.cpp =================================================================== --- haiku/trunk/src/preferences/mouse/SettingsView.cpp 2009-09-12 05:19:52 UTC (rev 33077) +++ haiku/trunk/src/preferences/mouse/SettingsView.cpp 2009-09-12 05:53:09 UTC (rev 33078) @@ -89,7 +89,8 @@ length = fClickSpeedSlider->Bounds().Height() + 6; fDoubleClickBmpPoint.y = fRightArea.top + - (length - fDoubleClickBitmap->Bounds().Height()) / 2; + (length - (fDoubleClickBitmap != NULL + ? fDoubleClickBitmap->Bounds().Height() : 0)) / 2; fRightArea.top += length; // Create the "Mouse Speed" slider... @@ -101,7 +102,8 @@ AddChild(fMouseSpeedSlider); fSpeedBmpPoint.y = fRightArea.top + - (length - fSpeedBitmap->Bounds().Height()) / 2; + (length - (fSpeedBitmap != NULL + ? fSpeedBitmap->Bounds().Height() : 0)) / 2; fRightArea.top += length; // Create the "Mouse Acceleration" slider... @@ -113,7 +115,8 @@ AddChild(fAccelerationSlider); fAccelerationBmpPoint.y = fRightArea.top + - (length - fAccelerationBitmap->Bounds().Height()) / 2; + (length - (fAccelerationBitmap != NULL + ? fAccelerationBitmap->Bounds().Height() : 0)) / 2; fRightArea.top += length - 3; // Add the "Focus follows mouse" pop up menu @@ -149,15 +152,17 @@ fLeftArea.bottom = fRightArea.bottom; // Position mouse bitmaps - fDoubleClickBmpPoint.x = fRightArea.right - - fDoubleClickBitmap->Bounds().right - 15; - fSpeedBmpPoint.x = fRightArea.right - fSpeedBitmap->Bounds().right - 15; - fAccelerationBmpPoint.x = fRightArea.right - - fAccelerationBitmap->Bounds().right - 15; + fDoubleClickBmpPoint.x = fRightArea.right - 15 + - (fDoubleClickBitmap != NULL ? fDoubleClickBitmap->Bounds().right : 0); + fSpeedBmpPoint.x = fRightArea.right - 15 + - (fSpeedBitmap != NULL ? fSpeedBitmap->Bounds().right : 0); + fAccelerationBmpPoint.x = fRightArea.right - 15 + - (fAccelerationBitmap != NULL ? fAccelerationBitmap->Bounds().right + : 0); // Resize sliders to equal size length = fRightArea.left - 5; - fClickSpeedSlider->ResizeTo(fDoubleClickBmpPoint.x - length - 11, + fClickSpeedSlider->ResizeTo(fDoubleClickBmpPoint.x - length, fClickSpeedSlider->Bounds().Height()); fMouseSpeedSlider->ResizeTo(fSpeedBmpPoint.x - length, fMouseSpeedSlider->Bounds().Height()); From mmlr at mail.berlios.de Sat Sep 12 07:55:22 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 12 Sep 2009 07:55:22 +0200 Subject: [Haiku-commits] r33079 - haiku/trunk/src/preferences/keyboard Message-ID: <200909120555.n8C5tM9r011904@sheep.berlios.de> Author: mmlr Date: 2009-09-12 07:55:19 +0200 (Sat, 12 Sep 2009) New Revision: 33079 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33079&view=rev Modified: haiku/trunk/src/preferences/keyboard/Keyboard.rdef haiku/trunk/src/preferences/keyboard/KeyboardView.cpp Log: Remove copyrighted bitmaps. Adjusted the code to simply ignore them if they can't be loaded. Modified: haiku/trunk/src/preferences/keyboard/Keyboard.rdef =================================================================== --- haiku/trunk/src/preferences/keyboard/Keyboard.rdef 2009-09-12 05:53:09 UTC (rev 33078) +++ haiku/trunk/src/preferences/keyboard/Keyboard.rdef 2009-09-12 05:55:19 UTC (rev 33079) @@ -15,11 +15,9 @@ internal = 0, short_info = "Keyboard", - long_info = "Keyboard ?2004-2007 Haiku" + long_info = "Keyboard ?2004-2009 Haiku" }; -#ifdef HAIKU_TARGET_PLATFORM_HAIKU - resource vector_icon { $"6E63696605020016023910813A2974BB43733A501C4A60D94AC7F400E9FFB902" $"001602B8513BB55C0A38B9DABBC2B74A98024B8D270066FF9002011603BC39E2" @@ -35,143 +33,3 @@ $"0106000A03030908071001178322040A000107000A010108000A020109000A03" $"0105100117810004" }; - -#else // HAIKU_TARGET_PLATFORM_HAIKU - -resource large_icon { - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFF001B1C1B0000FFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFF001B151C3F1B1C0000FFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFF001B151C1C0F1B1C1B1C0000FFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFF001B151C1C00151C1B1C1B1C1C00FFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFF001B151C1C1B0000001C1C1B1C3F0E00FFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFF003F3F15151C1B1C15001C1B3F0E0F00FFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFF003F153F3F15151C001B1C3F0E0F0F00FFFFFFFFFFFFFF" - $"FFFFFFFFFFFF0000003F151515163F3F15151C3F0E0F0F0F0F00FFFFFFFFFFFF" - $"FFFFFFFFFF001B1C1B000016151515163F3F3F0E0F0F0F0F0F00FFFFFFFFFFFF" - $"FFFFFFFF001B151C1C1B1C000015151615150F0F0F0000000F00FFFFFFFFFFFF" - $"FFFFFF001B151C00001C1B1C1C00001515150F0F001C1B1C0000FFFFFFFFFFFF" - $"FFFF001B151C1C001B00001C1C1B1C0000150F001C151B1C1C1B0000FFFFFFFF" - $"FF001B151C1C1B1C001C1B1C1B1C007B7B00001C151C00001B1C1B1C0000FFFF" - $"FF003F3F15151C1B001C1C1B1C3F00DA7B7B00151C003F001B001C1B1C1C00FF" - $"FF003F153F3F15151C1B1C1C3F002B2CDA7B001B1C1C1B00001C1B1C1C3F0E00" - $"003F151515163F3F15151C3F0E002B2FEB003F15151C1B001C1C1B1C3F0E0F00" - $"003F1515151615153F3F3F0E002B2B2F2F00163F3F15151C1B1C1C3F0E0F0F00" - $"003F15151516151515160E0F002B2F2F00161515153F3F15151C3F0E0F0F0F00" - $"003F15151516151515160E002B2B2F2F001615151516153F3F3F0E0F0F0F0F00" - $"003F15151500000016150F002B2F2F003F15151516151515160E0F0F0F0F0F00" - $"FF000015007B7B7B0015002B2B2F2F003F15151516151515160E0F0F0F0F0F00" - $"FFFFFF007B7B7BDA0015002B2F2F00003F15151516151515160E0F0F0F0F00FF" - $"FFFFFF002B2CDA7B7B002B2CEB2F00FF0000151515161515150F0F0F0F00FFFF" - $"FFFFFFFF002B2CDA7B2B2CEB2F00FFFFFFFF000015151516150F0F0E00FFFFFF" - $"FFFFFFFF002B2CDA7B2B2CEB2F00FFFFFFFFFFFF00001515150F0F00FFFFFFFF" - $"FFFFFFFFFF002B2C2B2B2F2F00FFFFFFFFFFFFFFFFFF0000150F00FFFFFFFFFF" - $"FFFFFFFFFF002B2C2B2B2F2F00FFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFF" - $"FFFFFFFFFFFF002B2CEB2F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFF002B2CEB2F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFF002B2F000E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFF0000000E0F0F0F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -}; - -resource mini_icon { - $"FFFFFFFFFFFFFF0000FFFFFFFFFFFFFF" - $"FFFFFFFFFFFF001B1C0000FFFFFFFFFF" - $"FFFFFFFFFF001B1C1B1C1C0000FFFFFF" - $"FFFFFFFF00153F3F1B1C0F0F00FFFFFF" - $"FFFF00001B0015163F0E0F0F00FFFFFF" - $"FF001B1C1B1C0000150F000000FFFFFF" - $"003F3F1B1C1B1C0000001C1B1C0000FF" - $"0015153F3F1B007B001C1B1C1C1B1C00" - $"00151516150F002F003F1B1C1B1C0F00" - $"0015151615002F0015153F3F1B0F0F00" - $"0000000000002F00151516150F0F0F00" - $"FF002B00002F0000001515150F0F0000" - $"FF002B7B2CEB00FFFF0000150F0000FF" - $"FFFF002B2F0000FFFFFFFF000000FFFF" - $"FFFF002B2F00FFFFFFFFFFFFFFFFFFFF" - $"FFFFFF00000E0F0FFFFFFFFFFFFFFFFF" -}; - -#endif // HAIKU_TARGET_PLATFORM_HAIKU - -resource file_types message; - -resource(601, "key_bmap") #'bits' array { - $"424D14050000000000003A000000280000001100000012000000010018000000" - $"0000DA040000130B0000130B00000000F0420000F042FFFFFFFFD8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000000000D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8000000000000A8A8A8787878000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000000000A8A8A8A8A8A8A8A8A8" - $"787878787878000000D8D8D8D8D8D8D8D8D8D8D8D800D8D8D8D8D8D8D8D8D800" - $"0000000000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8787878787878787878000000" - $"D8D8D8D8D8D8D8D8D800D8D8D8000000000000A8A8A8A8A8A8A8A8A8A8A8A8A8" - $"A8A8A8A8A8A8A8A8787878787878787878787878000000D8D8D8D8D8D8000000" - $"00FFFFFFA8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A878787878" - $"7878787878787878787878000000D8D8D800000000FFFFFFA8A8A8A8A8A8A8A8" - $"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A878787878787878787878787887878787" - $"878700000000000000FFFFFFA8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8" - $"A8A8A8A878787878787878787878787878787878787800000000000000FFFFFF" - $"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8FFFFFFFFFFFFFFFFFF7878787878" - $"7878787878787878787800000000000000FFFFFFA8A8A8A8A8A8A8A8A8A8A8A8" - $"FFFFFFFFFFFFA8A8A8A8A8A8E0E0E0FFFFFF7878787878787878787878780000" - $"0000D8D8D8000000FFFFFFA8A8A8FFFFFFFFFFFFA8A8A8A8A8A8E0E0E0000000" - $"D8D8D8E0E0E0FFFFFF78787878787878787800000000D8D8D8000000FFFFFFFF" - $"FFFFA8A8A8A8A8A8E0E0E0D8D8D8E0E0E0A8A8A8000000E0E0E0E0E0E0FFFFFF" - $"78787878787800000000D8D8D8000000D8D8D8A8A8A8E0E0E0E0E0E0D8D8D800" - $"0000000000000000E0E0E0E0E0E0D8D8D8E0E0E0FFFFFF78787800000000D8D8" - $"D8D8D8D8000000D8D8D8A8A8A8E0E0E0E0E0E0000000A8A8A8E0E0E0D8D8D8E0" - $"E0E0D8D8D8E0E0E0E0E0E0000000D8D8D800D8D8D8D8D8D8D8D8D8000000D8D8" - $"D8A8A8A8E0E0E0E0E0E0787878D8D8D8E0E0E0D8D8D8E0E0E0000000000000D8" - $"D8D8D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8000000D8D8D8A8A8A8E0E0E0FFFF" - $"FFD8D8D8E0E0E0000000000000D8D8D8D8D8D8D8D8D8D8D8D800D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8000000D8D8D8E0E0E0D8D8D8000000000000D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"000000000000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D800000008428E0000FF0000114300000C420000114300004842008E00FF0000" - $"114300004C42000011430000844200008EFF0000124300000040000012430000" - $"90418F8F8FFFF99001000000984100001243000008428F0000FF000012430000" - $"0C420000124300004842008F00FF0000124300004C4200001243000084420000" - $"8FFF00001343000000400000134300009041909090FF00001343000098410000" - $"134300000842900000FF0000134300000C420000134300004842009000FF0000" - $"134300004C420000134300008442000090FF0000144300000040000014430000" - $"9041919191FF00001443000098410000144300000842910000FF000014430000" - $"0C420000144300004842009100FF0000144300004C4200001443000084420000" - $"91FF000015430000004000001543000090419292" -}; - -resource(602, "clock_bmap") #'bits' array { - $"424DEB030000000000003A000000280000000F0000000F000000010018000000" - $"0000B1030000130B0000130B00000800000008000000FFFFFFFFD8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8000000000000000000000000000000D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8000000D8D8D8D8D8D8D8D8D800000000000080808080808080" - $"8080808080808080000000000000D8D8D8D8D8D8D8D8D8000000D8D8D8D8D8D8" - $"000000B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B88080808080800000" - $"00D8D8D8D8D8D8000000D8D8D8000000B8B8B8B8B8B8B8B8B880808080808080" - $"8080808080808080B8B8B8B8B8B8808080000000D8D8D8000000D8D8D8000000" - $"B8B8B8B8B8B8808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080B8B8B88080" - $"80000000D8D8D8000000000000FFFFFFB8B8B8808080FFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFF808080B8B8B8808080000000000000000000FFFFFF" - $"B8B8B8808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080B8B8" - $"B8808080000000000000000000FFFFFFB8B8B8808080FFFFFFFFFFFFFFFFFF00" - $"0000000000FFFFFFFFFFFF808080B8B8B8808080000000000000000000FFFFFF" - $"B8B8B8808080FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF808080B8B8" - $"B8808080000000000000000000FFFFFFB8B8B8808080FFFFFFFFFFFFFFFFFF00" - $"0000FFFFFFFFFFFFFFFFFF808080B8B8B8808080000000000000D8D8D8000000" - $"FFFFFFB8B8B8808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080B8B8B8B8B8" - $"B8000000D8D8D8000000D8D8D8000000FFFFFFB8B8B8B8B8B880808080808080" - $"8080808080808080B8B8B8B8B8B8B8B8B8000000D8D8D8000000D8D8D8D8D8D8" - $"000000FFFFFFFFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B80000" - $"00D8D8D8D8D8D8000000D8D8D8D8D8D8D8D8D8000000000000FFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFF000000000000D8D8D8D8D8D8D8D8D8000000D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8000000000000000000000000000000D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D800000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000804000008040000140000000505" - $"0000A504070085050000A40404000D000000000000000000000063000100A404" - $"0400FFFFFFFF61000100FFFFFFFF0B4D01000100000000000000000000000000" - $"0000000000000000000000" -}; - Modified: haiku/trunk/src/preferences/keyboard/KeyboardView.cpp =================================================================== --- haiku/trunk/src/preferences/keyboard/KeyboardView.cpp 2009-09-12 05:53:09 UTC (rev 33078) +++ haiku/trunk/src/preferences/keyboard/KeyboardView.cpp 2009-09-12 05:55:19 UTC (rev 33079) @@ -66,8 +66,8 @@ // Create the "Typing test area" text box... frame.OffsetBy(0,frame.Height() + 15); - frame.right = fDelaySlider->Frame().right + fIconBitmap->Bounds().Width() + - kBorderSpace; + frame.right = fDelaySlider->Frame().right + kBorderSpace + + (fIconBitmap != NULL ? fIconBitmap->Bounds().Width() : 0); BTextControl *textcontrol = new BTextControl(frame,"typing_test_area",NULL, "Typing test area", new BMessage('TTEA'), @@ -80,11 +80,11 @@ // Create the box for the sliders... frame.left = frame.top = kBorderSpace; - frame.right = frame.left + fDelaySlider->Frame().right + - fClockBitmap->Bounds().Width() + (kBorderSpace*2); - frame.bottom = textcontrol->Frame().bottom + (kBorderSpace*2); - fBox = new BBox(frame,"keyboard_box",B_FOLLOW_LEFT,B_WILL_DRAW, - B_FANCY_BORDER); + frame.right = frame.left + fDelaySlider->Frame().right + (kBorderSpace * 2) + + (fClockBitmap != NULL ? fClockBitmap->Bounds().Width() : 0); + frame.bottom = textcontrol->Frame().bottom + (kBorderSpace * 2); + fBox = new BBox(frame,"keyboard_box",B_FOLLOW_LEFT, B_WILL_DRAW, + B_FANCY_BORDER); AddChild(fBox); fBox->AddChild(fRepeatSlider); @@ -118,14 +118,18 @@ { BPoint pt; pt.x = fRepeatSlider->Frame().right + 10; - pt.y = fRepeatSlider->Frame().bottom - 35 - - (fIconBitmap->Bounds().Height()/3); - - fBox->DrawBitmap(fIconBitmap,pt); - - pt.y = fDelaySlider->Frame().bottom - 35 - - (fIconBitmap->Bounds().Height()/3); - fBox->DrawBitmap(fClockBitmap,pt); + + if (fIconBitmap != NULL) { + pt.y = fRepeatSlider->Frame().bottom - 35 + - fIconBitmap->Bounds().Height() / 3; + fBox->DrawBitmap(fIconBitmap,pt); + } + + if (fClockBitmap != NULL) { + pt.y = fDelaySlider->Frame().bottom - 35 + - fClockBitmap->Bounds().Height() / 3; + fBox->DrawBitmap(fClockBitmap,pt); + } } void From mmlr at mail.berlios.de Sat Sep 12 07:59:18 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 12 Sep 2009 07:59:18 +0200 Subject: [Haiku-commits] r33080 - in haiku/trunk/src/servers: app print Message-ID: <200909120559.n8C5xIoU022800@sheep.berlios.de> Author: mmlr Date: 2009-09-12 07:59:16 +0200 (Sat, 12 Sep 2009) New Revision: 33080 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33080&view=rev Modified: haiku/trunk/src/servers/app/app_server.rdef haiku/trunk/src/servers/print/print_server.rdef Log: Remove copyrighted icons from app and print server. They don't yet have a replacement. Modified: haiku/trunk/src/servers/app/app_server.rdef =================================================================== --- haiku/trunk/src/servers/app/app_server.rdef 2009-09-12 05:55:19 UTC (rev 33079) +++ haiku/trunk/src/servers/app/app_server.rdef 2009-09-12 05:59:16 UTC (rev 33080) @@ -15,63 +15,9 @@ internal = 0, short_info = "app_server", - long_info = "app_server ?2004-2007 Haiku Inc." + long_info = "app_server ?2004-2009 Haiku Inc." }; -resource large_icon array { - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFF" - $"FFFFFFFFFF000000000000FA0000000000000000FFFF003FD9D9D90000FFFFFF" - $"FFFFFFFF003F3F3F3F00FAFAFAFA00003F3F3F3F00003FD9D9D9D9D9D90000FF" - $"FFFFFFFF003FD9D900FAFAFAFAFAFA5D00D9D9D93F3FAAAAD9D9D9D9D9D98300" - $"FFFFFFFF003FD9003FFAFAFAFAFA5D5D00D9D9D9D9838383AAAAD9D9D983AA00" - $"FFFFFFFF11000000F9F9FAFAFA5D5D5D00838383833F3FD93F3FAAAA83AAAA00" - $"FFFFFFFFFF111100F9F9F9F95D5D5D5D003F3F3F3FD9D9D9D9D93F3FAAAAAA00" - $"FFFFFFFFFFFFFF00F9F9F9F95D5D5D5D00D9D9D9D9D9D9D9D9D9D9D983AA0111" - $"FFFFFFFFFFFF0000F9F9F9F95D5D5D5D0000D9D9D9D9D93F3FD9D9D9D9AA0017" - $"FFFFFFFFFF006000F9F9F9F95D5D5D00A3A30000D9D9D93F3FD9D9D9D9830011" - $"FFFFFFFF0060600000F9F9F95D5D00A3A35A5A2D00D9D9D9D9D9D9D983AA0111" - $"FFFFFF003F3F6060600000F95D00A3A35A5A2D2D0083D9D9D9D9D983AA001111" - $"FFFFFF0086863F3F60D5D50000A33F3F5A2D2D2D0083D9D9D9D983AA001111FF" - $"FFFFFF0086868686D5D5D500A3A3A3A32D2D2D2D00AAD9D9D983AA001111FFFF" - $"FFFFFF0086868686D5D5D500A3A3A3A32D2D2D2D00AAAAAA83AA001111FFFFFF" - $"FFFFFF0086868686D5D5D500A3A3A3A32D2D2D2D00AAAA83AA001111FFFFFFFF" - $"FFFF000086868686D5D5D500A3A3A3A32D2D2D00AAAA83AA001111FFFFFFFFFF" - $"FF003F0000868686D5D5000000A3A3A32D2D00AAAA83AA001111FFFFFFFFFFFF" - $"003FD983AA000086D500AA00AA0000A32D00AAAA83AA001111FFFFFFFFFFFFFF" - $"00D983AA003FD90000AA00AAAAAAAA0000AAAA83AA001111FFFFFFFFFFFFFFFF" - $"FF0000003FD9D983AA0083D9D9AAAA00AAAA83AA001111FFFFFFFFFFFFFFFFFF" - $"FFFF003FD9D983AA003FD9D983AA00AAAA83AA001111FFFFFFFFFFFFFFFFFFFF" - $"FFFF00D9838300003FD9D983AA00D9D983AA001111FFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFF0000001100D9D983AA003FD983AA001111FFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFF000000003FD98300001111FFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFF000000111111FFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -}; - -resource mini_icon array { - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFF000000FFFFFF0000FFFFFF" - $"FFFFFF0000FAFAFA000000D9D90000FF" - $"FFFF0000FAFAFAFA5D00D9AAAAD98300" - $"FFFF0000F9F9FA5D5D00833F3FAAAA00" - $"FFFF1100F9F95D5D5D00D9D9D9D9AA00" - $"FFFF0000F9F95D5D000000003FD9AA00" - $"FF00600000005D00005A2D00D9830011" - $"FF00863FD5D500A33F2DEB00830011FF" - $"FF008686D5D500A3A32DEB000011FFFF" - $"00008686D50000A3A32D000011FFFFFF" - $"008300000000AA0000000011FFFFFFFF" - $"FF00D98300D900D9830011FFFFFFFFFF" - $"FFFF0000000000000011FFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -}; - #ifdef HAIKU_TARGET_PLATFORM_HAIKU resource(0, "info") #'VICN' array { Modified: haiku/trunk/src/servers/print/print_server.rdef =================================================================== --- haiku/trunk/src/servers/print/print_server.rdef 2009-09-12 05:55:19 UTC (rev 33079) +++ haiku/trunk/src/servers/print/print_server.rdef 2009-09-12 05:59:16 UTC (rev 33080) @@ -15,60 +15,6 @@ resource app_flags B_EXCLUSIVE_LAUNCH | B_BACKGROUND_APP; -resource(101, "BEOS:L:STD_ICON") #'ICON' array { - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFF" - $"FFFFFFFFFF000000000000000000000000000000FFFF003FD9D9D90000FFFFFF" - $"FFFFFFFF003F3F3F3F3F3F3F3F3F3F3F3F3F3F3F00003FD9D9D9D9D9D90000FF" - $"FFFFFFFF003FD9D9D9D9D9D9D9D9D9D9D9D9D9D93F3F00AAD9D9D9D9D9D98300" - $"FFFFFFFF003FD9838383838383830000D9D9D9D9D9838383AAAAD9D9D983AA00" - $"FFFFFFFF1100000000000000000018170000D983833F3FD93F3FAAAA83AAAA00" - $"FFFFFFFFFF111111111111110017040411180000D9D9D9D9D9D93F3FAAAAAA00" - $"FFFFFFFFFFFFFFFFFFFFFF0017040405041111170000D9D9D9D9D9D983AA0111" - $"FFFFFFFFFFFFFFFFFFFF0017040405FEFE040411171800003FD9D9D9D9AA0017" - $"FFFFFFFFFFFFFFFFFF00111717058962FDFEFE04170B0B003FD9D9D9D9830011" - $"FFFFFFFFFFFFFFFF0017111111171889896217180B0B0B00D9D9D9D983830011" - $"FFFFFFFFFFFFFF0000111717111111181717170B0B0B0B00D9D9D98383011111" - $"FFFFFFFFFFFF003F001111111717111111180B0B0B0B00AAD9D98383001111FF" - $"FFFFFFFFFF003FD90004041111111718110B0B0B0B00AAAAD98383001111FFFF" - $"FFFFFFFF003FD98300171705041111110B0B0B0B00AAAAD98383001111FFFFFF" - $"FFFFFF003FD9838300111117170504110B0B0B00AAAAD98383001111FFFFFFFF" - $"FFFF003FD98383003F000011111718040B0B00AAAAD98383001111FFFFFFFFFF" - $"FF003FD98383003FD9AAAA00001111040B00AAAAD98383011111FFFFFFFFFFFF" - $"003FD98383003FD9D9838300AA00000000AAAAD98383001111FFFFFFFFFFFFFF" - $"00D98383003FD9D98383003FD9AAAA83003FD98383001111FFFFFFFFFFFFFFFF" - $"FF0000003FD9D98383003FD9D98383003FD98383001111FFFFFFFFFFFFFFFFFF" - $"FFFF003FD9D98383003FD9D98383003FD98383001111FFFFFFFFFFFFFFFFFFFF" - $"FFFF00D9D98383003FD9D98383003FD98383001111FFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFF0083830000D9D98383003FD98383001111FFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFF0000FFFF000000003FD98300001111FFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFF000000111111FFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -}; - -resource(101, "BEOS:M:STD_ICON") #'MICN' array { - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFF0000FFFFFF" - $"FFFFFF0000000000000000D9D90000FF" - $"FFFF00D9D983000000D983AAAAD98300" - $"FFFF0000000011111100003F3FAAAA00" - $"FFFF11110011110404170B00D9D9AA00" - $"FFFFFF00171711FE170B0B003FD98301" - $"FFFFFF00040417180B0B0B00D9830011" - $"FFFF0000111104040B0B00AA830011FF" - $"FF00D900000011110B00AA830011FFFF" - $"00D98300D900000000AA830011FFFFFF" - $"008300D98300D900D9830011FFFFFFFF" - $"FF00D98300D900D9830011FFFFFFFFFF" - $"FFFF0000000000000011FFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -}; - resource(0, "JOB_SETUP_OFF") #'bits' array { $"62697473000000000000000041F8000041F80000000000800000200800001000" $"393939FF393939FF393939FF393939FF393939FF393939FF393939FF393939FF" From mmlr at mail.berlios.de Sat Sep 12 08:03:40 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 12 Sep 2009 08:03:40 +0200 Subject: [Haiku-commits] r33081 - in haiku/branches/releases/r1alpha1/src: preferences/keyboard preferences/mouse servers/app servers/print Message-ID: <200909120603.n8C63eOK023276@sheep.berlios.de> Author: mmlr Date: 2009-09-12 08:03:36 +0200 (Sat, 12 Sep 2009) New Revision: 33081 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33081&view=rev Modified: haiku/branches/releases/r1alpha1/src/preferences/keyboard/Keyboard.rdef haiku/branches/releases/r1alpha1/src/preferences/keyboard/KeyboardView.cpp haiku/branches/releases/r1alpha1/src/preferences/mouse/Mouse.rdef haiku/branches/releases/r1alpha1/src/preferences/mouse/MouseView.cpp haiku/branches/releases/r1alpha1/src/preferences/mouse/MouseView.h haiku/branches/releases/r1alpha1/src/preferences/mouse/SettingsView.cpp haiku/branches/releases/r1alpha1/src/servers/app/app_server.rdef haiku/branches/releases/r1alpha1/src/servers/print/print_server.rdef Log: Merging r33078-r33080 from trunk. Removing copyrighted icons and bitmaps. Modified: haiku/branches/releases/r1alpha1/src/preferences/keyboard/Keyboard.rdef =================================================================== --- haiku/branches/releases/r1alpha1/src/preferences/keyboard/Keyboard.rdef 2009-09-12 05:59:16 UTC (rev 33080) +++ haiku/branches/releases/r1alpha1/src/preferences/keyboard/Keyboard.rdef 2009-09-12 06:03:36 UTC (rev 33081) @@ -15,11 +15,9 @@ internal = 0, short_info = "Keyboard", - long_info = "Keyboard ?2004-2007 Haiku" + long_info = "Keyboard ?2004-2009 Haiku" }; -#ifdef HAIKU_TARGET_PLATFORM_HAIKU - resource vector_icon { $"6E63696605020016023910813A2974BB43733A501C4A60D94AC7F400E9FFB902" $"001602B8513BB55C0A38B9DABBC2B74A98024B8D270066FF9002011603BC39E2" @@ -35,143 +33,3 @@ $"0106000A03030908071001178322040A000107000A010108000A020109000A03" $"0105100117810004" }; - -#else // HAIKU_TARGET_PLATFORM_HAIKU - -resource large_icon { - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFF001B1C1B0000FFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFF001B151C3F1B1C0000FFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFF001B151C1C0F1B1C1B1C0000FFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFF001B151C1C00151C1B1C1B1C1C00FFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFF001B151C1C1B0000001C1C1B1C3F0E00FFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFF003F3F15151C1B1C15001C1B3F0E0F00FFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFF003F153F3F15151C001B1C3F0E0F0F00FFFFFFFFFFFFFF" - $"FFFFFFFFFFFF0000003F151515163F3F15151C3F0E0F0F0F0F00FFFFFFFFFFFF" - $"FFFFFFFFFF001B1C1B000016151515163F3F3F0E0F0F0F0F0F00FFFFFFFFFFFF" - $"FFFFFFFF001B151C1C1B1C000015151615150F0F0F0000000F00FFFFFFFFFFFF" - $"FFFFFF001B151C00001C1B1C1C00001515150F0F001C1B1C0000FFFFFFFFFFFF" - $"FFFF001B151C1C001B00001C1C1B1C0000150F001C151B1C1C1B0000FFFFFFFF" - $"FF001B151C1C1B1C001C1B1C1B1C007B7B00001C151C00001B1C1B1C0000FFFF" - $"FF003F3F15151C1B001C1C1B1C3F00DA7B7B00151C003F001B001C1B1C1C00FF" - $"FF003F153F3F15151C1B1C1C3F002B2CDA7B001B1C1C1B00001C1B1C1C3F0E00" - $"003F151515163F3F15151C3F0E002B2FEB003F15151C1B001C1C1B1C3F0E0F00" - $"003F1515151615153F3F3F0E002B2B2F2F00163F3F15151C1B1C1C3F0E0F0F00" - $"003F15151516151515160E0F002B2F2F00161515153F3F15151C3F0E0F0F0F00" - $"003F15151516151515160E002B2B2F2F001615151516153F3F3F0E0F0F0F0F00" - $"003F15151500000016150F002B2F2F003F15151516151515160E0F0F0F0F0F00" - $"FF000015007B7B7B0015002B2B2F2F003F15151516151515160E0F0F0F0F0F00" - $"FFFFFF007B7B7BDA0015002B2F2F00003F15151516151515160E0F0F0F0F00FF" - $"FFFFFF002B2CDA7B7B002B2CEB2F00FF0000151515161515150F0F0F0F00FFFF" - $"FFFFFFFF002B2CDA7B2B2CEB2F00FFFFFFFF000015151516150F0F0E00FFFFFF" - $"FFFFFFFF002B2CDA7B2B2CEB2F00FFFFFFFFFFFF00001515150F0F00FFFFFFFF" - $"FFFFFFFFFF002B2C2B2B2F2F00FFFFFFFFFFFFFFFFFF0000150F00FFFFFFFFFF" - $"FFFFFFFFFF002B2C2B2B2F2F00FFFFFFFFFFFFFFFFFFFFFF0000FFFFFFFFFFFF" - $"FFFFFFFFFFFF002B2CEB2F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFF002B2CEB2F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFF002B2F000E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFF0000000E0F0F0F0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -}; - -resource mini_icon { - $"FFFFFFFFFFFFFF0000FFFFFFFFFFFFFF" - $"FFFFFFFFFFFF001B1C0000FFFFFFFFFF" - $"FFFFFFFFFF001B1C1B1C1C0000FFFFFF" - $"FFFFFFFF00153F3F1B1C0F0F00FFFFFF" - $"FFFF00001B0015163F0E0F0F00FFFFFF" - $"FF001B1C1B1C0000150F000000FFFFFF" - $"003F3F1B1C1B1C0000001C1B1C0000FF" - $"0015153F3F1B007B001C1B1C1C1B1C00" - $"00151516150F002F003F1B1C1B1C0F00" - $"0015151615002F0015153F3F1B0F0F00" - $"0000000000002F00151516150F0F0F00" - $"FF002B00002F0000001515150F0F0000" - $"FF002B7B2CEB00FFFF0000150F0000FF" - $"FFFF002B2F0000FFFFFFFF000000FFFF" - $"FFFF002B2F00FFFFFFFFFFFFFFFFFFFF" - $"FFFFFF00000E0F0FFFFFFFFFFFFFFFFF" -}; - -#endif // HAIKU_TARGET_PLATFORM_HAIKU - -resource file_types message; - -resource(601, "key_bmap") #'bits' array { - $"424D14050000000000003A000000280000001100000012000000010018000000" - $"0000DA040000130B0000130B00000000F0420000F042FFFFFFFFD8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000000000D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8000000000000A8A8A8787878000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000000000A8A8A8A8A8A8A8A8A8" - $"787878787878000000D8D8D8D8D8D8D8D8D8D8D8D800D8D8D8D8D8D8D8D8D800" - $"0000000000A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8787878787878787878000000" - $"D8D8D8D8D8D8D8D8D800D8D8D8000000000000A8A8A8A8A8A8A8A8A8A8A8A8A8" - $"A8A8A8A8A8A8A8A8787878787878787878787878000000D8D8D8D8D8D8000000" - $"00FFFFFFA8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A878787878" - $"7878787878787878787878000000D8D8D800000000FFFFFFA8A8A8A8A8A8A8A8" - $"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A878787878787878787878787887878787" - $"878700000000000000FFFFFFA8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8" - $"A8A8A8A878787878787878787878787878787878787800000000000000FFFFFF" - $"A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8A8FFFFFFFFFFFFFFFFFF7878787878" - $"7878787878787878787800000000000000FFFFFFA8A8A8A8A8A8A8A8A8A8A8A8" - $"FFFFFFFFFFFFA8A8A8A8A8A8E0E0E0FFFFFF7878787878787878787878780000" - $"0000D8D8D8000000FFFFFFA8A8A8FFFFFFFFFFFFA8A8A8A8A8A8E0E0E0000000" - $"D8D8D8E0E0E0FFFFFF78787878787878787800000000D8D8D8000000FFFFFFFF" - $"FFFFA8A8A8A8A8A8E0E0E0D8D8D8E0E0E0A8A8A8000000E0E0E0E0E0E0FFFFFF" - $"78787878787800000000D8D8D8000000D8D8D8A8A8A8E0E0E0E0E0E0D8D8D800" - $"0000000000000000E0E0E0E0E0E0D8D8D8E0E0E0FFFFFF78787800000000D8D8" - $"D8D8D8D8000000D8D8D8A8A8A8E0E0E0E0E0E0000000A8A8A8E0E0E0D8D8D8E0" - $"E0E0D8D8D8E0E0E0E0E0E0000000D8D8D800D8D8D8D8D8D8D8D8D8000000D8D8" - $"D8A8A8A8E0E0E0E0E0E0787878D8D8D8E0E0E0D8D8D8E0E0E0000000000000D8" - $"D8D8D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8000000D8D8D8A8A8A8E0E0E0FFFF" - $"FFD8D8D8E0E0E0000000000000D8D8D8D8D8D8D8D8D8D8D8D800D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8000000D8D8D8E0E0E0D8D8D8000000000000D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"000000000000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D800000008428E0000FF0000114300000C420000114300004842008E00FF0000" - $"114300004C42000011430000844200008EFF0000124300000040000012430000" - $"90418F8F8FFFF99001000000984100001243000008428F0000FF000012430000" - $"0C420000124300004842008F00FF0000124300004C4200001243000084420000" - $"8FFF00001343000000400000134300009041909090FF00001343000098410000" - $"134300000842900000FF0000134300000C420000134300004842009000FF0000" - $"134300004C420000134300008442000090FF0000144300000040000014430000" - $"9041919191FF00001443000098410000144300000842910000FF000014430000" - $"0C420000144300004842009100FF0000144300004C4200001443000084420000" - $"91FF000015430000004000001543000090419292" -}; - -resource(602, "clock_bmap") #'bits' array { - $"424DEB030000000000003A000000280000000F0000000F000000010018000000" - $"0000B1030000130B0000130B00000800000008000000FFFFFFFFD8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8000000000000000000000000000000D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8000000D8D8D8D8D8D8D8D8D800000000000080808080808080" - $"8080808080808080000000000000D8D8D8D8D8D8D8D8D8000000D8D8D8D8D8D8" - $"000000B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B88080808080800000" - $"00D8D8D8D8D8D8000000D8D8D8000000B8B8B8B8B8B8B8B8B880808080808080" - $"8080808080808080B8B8B8B8B8B8808080000000D8D8D8000000D8D8D8000000" - $"B8B8B8B8B8B8808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080B8B8B88080" - $"80000000D8D8D8000000000000FFFFFFB8B8B8808080FFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFF808080B8B8B8808080000000000000000000FFFFFF" - $"B8B8B8808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080B8B8" - $"B8808080000000000000000000FFFFFFB8B8B8808080FFFFFFFFFFFFFFFFFF00" - $"0000000000FFFFFFFFFFFF808080B8B8B8808080000000000000000000FFFFFF" - $"B8B8B8808080FFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFF808080B8B8" - $"B8808080000000000000000000FFFFFFB8B8B8808080FFFFFFFFFFFFFFFFFF00" - $"0000FFFFFFFFFFFFFFFFFF808080B8B8B8808080000000000000D8D8D8000000" - $"FFFFFFB8B8B8808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF808080B8B8B8B8B8" - $"B8000000D8D8D8000000D8D8D8000000FFFFFFB8B8B8B8B8B880808080808080" - $"8080808080808080B8B8B8B8B8B8B8B8B8000000D8D8D8000000D8D8D8D8D8D8" - $"000000FFFFFFFFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B80000" - $"00D8D8D8D8D8D8000000D8D8D8D8D8D8D8D8D8000000000000FFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFF000000000000D8D8D8D8D8D8D8D8D8000000D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8000000000000000000000000000000D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D800000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000804000008040000140000000505" - $"0000A504070085050000A40404000D000000000000000000000063000100A404" - $"0400FFFFFFFF61000100FFFFFFFF0B4D01000100000000000000000000000000" - $"0000000000000000000000" -}; - Modified: haiku/branches/releases/r1alpha1/src/preferences/keyboard/KeyboardView.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/preferences/keyboard/KeyboardView.cpp 2009-09-12 05:59:16 UTC (rev 33080) +++ haiku/branches/releases/r1alpha1/src/preferences/keyboard/KeyboardView.cpp 2009-09-12 06:03:36 UTC (rev 33081) @@ -66,8 +66,8 @@ // Create the "Typing test area" text box... frame.OffsetBy(0,frame.Height() + 15); - frame.right = fDelaySlider->Frame().right + fIconBitmap->Bounds().Width() + - kBorderSpace; + frame.right = fDelaySlider->Frame().right + kBorderSpace + + (fIconBitmap != NULL ? fIconBitmap->Bounds().Width() : 0); BTextControl *textcontrol = new BTextControl(frame,"typing_test_area",NULL, "Typing test area", new BMessage('TTEA'), @@ -80,11 +80,11 @@ // Create the box for the sliders... frame.left = frame.top = kBorderSpace; - frame.right = frame.left + fDelaySlider->Frame().right + - fClockBitmap->Bounds().Width() + (kBorderSpace*2); - frame.bottom = textcontrol->Frame().bottom + (kBorderSpace*2); - fBox = new BBox(frame,"keyboard_box",B_FOLLOW_LEFT,B_WILL_DRAW, - B_FANCY_BORDER); + frame.right = frame.left + fDelaySlider->Frame().right + (kBorderSpace * 2) + + (fClockBitmap != NULL ? fClockBitmap->Bounds().Width() : 0); + frame.bottom = textcontrol->Frame().bottom + (kBorderSpace * 2); + fBox = new BBox(frame,"keyboard_box",B_FOLLOW_LEFT, B_WILL_DRAW, + B_FANCY_BORDER); AddChild(fBox); fBox->AddChild(fRepeatSlider); @@ -118,14 +118,18 @@ { BPoint pt; pt.x = fRepeatSlider->Frame().right + 10; - pt.y = fRepeatSlider->Frame().bottom - 35 - - (fIconBitmap->Bounds().Height()/3); - - fBox->DrawBitmap(fIconBitmap,pt); - - pt.y = fDelaySlider->Frame().bottom - 35 - - (fIconBitmap->Bounds().Height()/3); - fBox->DrawBitmap(fClockBitmap,pt); + + if (fIconBitmap != NULL) { + pt.y = fRepeatSlider->Frame().bottom - 35 + - fIconBitmap->Bounds().Height() / 3; + fBox->DrawBitmap(fIconBitmap,pt); + } + + if (fClockBitmap != NULL) { + pt.y = fDelaySlider->Frame().bottom - 35 + - fClockBitmap->Bounds().Height() / 3; + fBox->DrawBitmap(fClockBitmap,pt); + } } void Modified: haiku/branches/releases/r1alpha1/src/preferences/mouse/Mouse.rdef =================================================================== --- haiku/branches/releases/r1alpha1/src/preferences/mouse/Mouse.rdef 2009-09-12 05:59:16 UTC (rev 33080) +++ haiku/branches/releases/r1alpha1/src/preferences/mouse/Mouse.rdef 2009-09-12 06:03:36 UTC (rev 33081) @@ -15,11 +15,9 @@ internal = 0, short_info = "Mouse", - long_info = "Mouse ?2002-2007 Haiku" + long_info = "Mouse ?2002-2009 Haiku" }; -#ifdef HAIKU_TARGET_PLATFORM_HAIKU - resource vector_icon { $"6E636966080301000002000202AC6DA33A810CBCBF0CAEA9C248C4E546BB2A00" $"01000000FF010000FF020016023D2328BA287D3B40A23E5D334837CE48FA2500" @@ -37,357 +35,3 @@ $"01031001178422040A020101000A030102000A0001041001178100040A060104" $"123FE3AA0000000000003FDFFC41DB9540107701178100040A04010300" }; - -#else // HAIKU_TARGET_PLATFORM_HAIKU - -resource large_icon { - $"FFFFFFFFFFFF000000000000000000000EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFF00000E0F0F0F0F0F0F0F0E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFF00000E0FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FF000E0FFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FF000EFFFFFFFFFFFF00111717180000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FF00000E0FFFFFFF00111717181717180000FFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFF00000E0F00111817171817180A3F170000FFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFF0000111717181717180A3F171718170000FFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFF00111717181717180A3F171718171718170000FFFFFFFFFFFFFFFF" - $"FFFFFFFF00111717181717180A3F171718171718171817170000FFFFFFFFFFFF" - $"FFFFFF00111717181717180A3F17171817171817183F171718170000FFFFFFFF" - $"FFFF003F1717181717180A3F1717181717181718171C3F171718110A00FFFFFF" - $"FFFF003F3F171718170B3F171700001817171817183F171718110A0B00FFFFFF" - $"FFFF0011113F3F170B3F1717005B5B001817171817181717110B0B0000FFFFFF" - $"FFFF00111111113F0A18171700DA5B5B00171817171817110B0A000B000FFFFF" - $"FFFF000A0B1111110A3F3F002B2CDA5B001717181718110A0B000A0B000FFFFF" - $"FFFF0011110A0B110A1111002B2FEB001817181717110B0B000A0B000F0FFFFF" - $"FFFF00111111110A0B11002B2B2F2F0017181717110B0B000A0B000F0F0EFFFF" - $"FFFFFF00001111111100002B2F2F003F3F1717110B0B000A0B000F0F0EFFFFFF" - $"FFFFFFFFFF00001111002B2CEB2F0011113F110A0B000A0B000F0F0FFFFFFFFF" - $"FFFFFF000000FF0000002B2F2F000A1111110B0B000A0B000F0F0EFFFFFFFFFF" - $"FFFF005B5B5B00FF002B2CEB2F00110A0B110A000B0B000F0E0FFFFFFFFFFFFF" - $"FF005B5B5BDA00FF002B2F2F00111111110A000B0B000E0F0FFFFFFFFFFFFFFF" - $"FF002B2CDA5B5B002B2CEB2F0000001111110B0A000F0F0FFFFFFFFFFFFFFFFF" - $"FFFF002B2CDA5B2B2CEB2F00FFFFFF0000110A000F0F0FFFFFFFFFFFFFFFFFFF" - $"FFFF002B2BDA5B2C2B2FEB00FFFFFFFFFF00000E0F0FFFFFFFFFFFFFFFFFFFFF" - $"FFFFFF002B2C2B2B2F2F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFF002B2C2B2B2F2F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFF002B2CEB2F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFF002B2CEB2F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFF002B2F000E0F0F0F0F0F0F0F0F0FFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFF0000000E0F0F0F0F0F0F0F0F0F0FFFFFFFFFFFFFFFFFFFFFFFFFFF" -}; - -resource mini_icon { - $"FF00000000000E0F0FFFFFFFFFFFFFFF" - $"000F0F0F000000FFFFFFFFFFFFFFFFFF" - $"000FFF001717180000FFFFFFFFFFFFFF" - $"FF0000171718170B3F0000FFFFFFFFFF" - $"FF00171718170B3F1717180000FFFFFF" - $"003F3F17170B3F17171817171800FFFF" - $"000A113F0A3F001717181717110B00FF" - $"00110A0B11005B00171817110B0A00FF" - $"000011110A002F003F17110B0A000FFF" - $"FFFF0000002F000A11110B0A000FFFFF" - $"FF00FFFF002F00110A0B0A000FFFFFFF" - $"002B00002F0000000A0B000FFFFFFFFF" - $"002B5B2CEB00FFFF00000EFFFFFFFFFF" - $"FF002B2F00FFFFFFFFFFFFFFFFFFFFFF" - $"FF002B2F00FFFFFFFFFFFFFFFFFFFFFF" - $"FFFF00000E0F0F0F0FFFFFFFFFFFFFFF" -}; - -#endif // HAIKU_TARGET_PLATFORM_HAIKU - -resource(601, "double_click_bmap") #'bits' array { - $"424D06070000000000003A000000280000000E0000001E000000010018000000" - $"0000CC060000130B0000130B00000000000000000000FFFFFFFFD8D8D8000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"00D8D8D800000000008080808080808080808080808080808080808080808080" - $"808080808080808080808080800000000000000000B8B8B8FFFFFFB8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880808000000000000000" - $"00B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B88080800000000000000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B88080800000000000000000B8B8B8FFFFFFB8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8808080000000" - $"0000000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B87F7F7F0000000000000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B88080800000000000000000B8B8B8" - $"FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B88080" - $"800000000000000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B88080800000000000000000B8B8B8FFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80808000000000000000" - $"0080808080808080808080808080808080808080808080808080808080808080" - $"80808080800000000000000000B8B8B8FFFFFFB8B8B8B8B8B8C0C0C0808080FF" - $"FFFFC0C0C0B8B8B8B8B8B8B8B8B88080800000000000000000B8B8B8FFFFFFB8" - $"B8B8B8B8B8C0C0C0808080FFFFFFC0C0C0B8B8B8B8B8B8B8B8B8808080000000" - $"0000000000B8B8B8FFFFFFB8B8B8B8B8B8C0C0C0808080FFFFFFC0C0C0B8B8B8" - $"B8B8B8B8B8B88080800000000000000000B8B8B8FFFFFFFFFFFFFFFFFFFFFFFF" - $"808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8080800000000000000000B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8808080B8B8B8B8B8B8B8B8B8B8B8B8B8B8B88080" - $"800000000000D8D8D80000000000000000000000000000005858580000000000" - $"00000000000000000000000000D8D8D80000D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8000000000000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D80000D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D80000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D80000D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"0000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D80000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"989898D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D80000D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8989898989898989898D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D80000D8D8D8D8D8D8D8D8D8D8D8D89898989898989898989898989898" - $"98D8D8D8D8D8D8D8D8D8D8D8D8D8D8D80000D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8989898D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D80000D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8989898989898989898D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D80000D8D8D8D8D8D8D8D8D8D8D8D898989898989898989898" - $"9898989898D8D8D8D8D8D8D8D8D8D8D8D8D8D8D80000D8D8D8D8D8D8D8D8D898" - $"9898989898989898989898989898989898989898D8D8D8D8D8D8D8D8D8D8D8D8" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"000000000000" -}; - -resource(602, "speed_bmap") #'bits' array { - $"424DE8080000000000003A000000280000001900000016000000010018000000" - $"0000AE080000130B0000130B00000000000000000000FFFFFFFFD8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D800000000000000000000000000000000000000000000" - $"0000000000000000000000000000D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D800000080808080808080808080" - $"808080808080808080808080808080808080808080808080808000000000D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D800" - $"0000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFF" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B88080800000" - $"0000D8D8D8D8D8D8D8D8D8989898D8D8D8989898989898989898989898D8D8D8" - $"D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8" - $"B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880" - $"808000000000989898D8D8D89898989898989898989898989898989898989898" - $"98D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B87F7F7F00000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880808000000000D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D800" - $"0000B8B8B8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFF80808000000000D8D8D8D8D8D8D8D8D8989898D8D8D898989898989898" - $"9898989898D8D8D8D8D8D8000000808080808080808080808080808080808080" - $"80808080808080808080808080808080808000000000D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFF" - $"B8B8B8B8B8B8C0C0C0808080FFFFFFC0C0C0B8B8B8B8B8B8B8B8B88080800000" - $"0000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8C0C0C0808080FFFFFFC0C0C0B8B8" - $"B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8C0C0" - $"C0808080FFFFFFC0C0C0B8B8B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8" - $"B8FFFFFFFFFFFFFFFFFFFFFFFF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80" - $"808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8000000B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8808080B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D800000000000000000000" - $"0000000000585858000000000000000000000000000000000000D8D8D800D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000000000000000D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D800D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D800000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000000000000000" -}; - -resource(603, "acceleration_bmap") #'bits' array { - $"424D83080000000000003A000000280000001900000015000000010018000000" - $"000049080000130B0000130B00000000F8410000F841FFFFFFFFD8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D80000" - $"0000000000000000000000000000000000000000000000000000000000000000" - $"0000D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D800000080808080808080808080808080808080808080808080" - $"808080808080808080808080808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880808000000000D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D800" - $"0000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8D8D8D898" - $"9898D8D8D8989898989898989898989898D8D8D8D8D8D8000000B8B8B8FFFFFF" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B88080800000" - $"0000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B87F7F7F00000000989898D8D8D8" - $"989898989898989898989898989898989898989898D8D8D8D8D8D8000000B8B8" - $"B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880" - $"808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8B8B8B8B8B8B8B8B8B8B8" - $"B8B8B8B8B8B8B8B8B8B8B87F7F7F00000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80808000000000D8D8" - $"D8D8D8D8D8D8D8989898D8D8D8989898989898989898989898D8D8D8D8D8D800" - $"0000808080808080808080808080808080808080808080808080808080808080" - $"80808080808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8C0C0C0808080" - $"FFFFFFC0C0C0B8B8B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFF" - $"B8B8B8B8B8B8C0C0C0808080FFFFFFC0C0C0B8B8B8B8B8B8B8B8B88080800000" - $"0000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8000000B8B8B8FFFFFFB8B8B8B8B8B8C0C0C0808080FFFFFFC0C0C0B8B8" - $"B8B8B8B8B8B8B880808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8B8FFFFFFFFFFFFFFFFFFFFFF" - $"FF808080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80808000000000D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000B8B8" - $"B8B8B8B8B8B8B8B8B8B8B8B8B8808080B8B8B8B8B8B8B8B8B8B8B8B8B8B8B880" - $"808000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D800000000000000000000000000000058585800000000" - $"0000000000000000000000000000D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8000000000000000000D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D800D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D800D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8000000" - $"D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D8D800000090413D3D3DFF0000" - $"80420000984100008042000008423D0000FF0000804200000C42000080420000" - $"4842003D00FF0000804200004C42000080420000844200003DFF000082420000" - $"004000008242000090413E3E3EFF000082420000984100008242000008423E00" - $"00FF0000824200000C420000824200004842003E00FF0000824200004C420000" - $"82420000844200003EFF000084420000004000008442000090413F3F3FFF0000" - $"84420000984100008442000008423F0000FF0000844200000C42000084420000" - $"4842003F00FF0000844200004C42000084420000844200003FFF000086420000" - $"00400000864200009041404040FF000086420000984100008642000008424000" - $"00FF0000864200000C420000864200004842004000FF0000864200004C420000" - $"864200008442000040FF00008842000000400000884200009041414141FF0000" - $"8842000098410000884200000842410000FF0000884200000C42000088420000" - $"4842004100FF0000884200004C420000884200008442000041FF00008A420000" - $"004000008A4200009041424242FF00008A420000984100008A42000008424200" - $"00FF00008A4200000C4200008A4200004842004200FF00008A4200004C420000" - $"8A4200008442000042FF00008C420000004000008C4200009041434343FF0000" - $"8C420000984100008C4200000842430000FF00008C4200000C4200008C420000" - $"484200" -}; - -resource(604, "mouse_bmap") #'bits' array { - $"89504E470D0A1A0A0000000D4948445200000039000000520806000000EE2B7C" - $"1C000000017352474200AECE1CE900000006624B474400FF00FF00FFA0BDA793" - $"000000097048597300000B1300000B1301009A9C180000000774494D4507D904" - $"0B17142E3075A9E9000007474944415478DAE55CA176E34A0CD5FA0484C59F10" - $"1858D67E46685960616160580B0B0BFD09FD84C2C2C0941926CC6561FBC03BE3" - $"A328F74AB2B3D9D79E6792C68EC7A3917475258DFB6BB7DBFD962B1F4DD3C86A" - $"B5121191CD66D3FF3D9FCFE56F1C95FC0F8E5FD7D464D334F07CDBB6BD36FF86" - $"4627D714F0E9E9895EBFBFBFEF056DDBF6AA825E45934DD3C8CDCD4DF8BBB7B7" - $"371191AB6BF58F0B196930D2EA35047585643EF59D0EBD38837CB208B75C2EBF" - $"BD909BCDE6E433D4A4156EB1585C6D72C7E351A6D3E9E87BBAAE93BAAEA5EB3A" - $"111159AFD7BD66ADB9F742364D7315E13C61D8357BBEEB3A994EA7723C1EE938" - $"E5DAF3F3F319D9383357BD0AB3D9EC6221BD31D8357B3E9AC7E7E7672FEC6AB5" - $"EA1956094D13ADC5F97CDEAFE06C3693AFAFAF9469653582BE1F8F47A9EB1A9E" - $"2BA668EF2F5AB39F45E32EAD2B03CC6633391C0E67E7B30296DF96F3E83B9A50" - $"D7752713F64CD3CEA7FCBEEB3A592E973DBEB46D2B95D6A29E48C6D790206851" - $"EC8A6BF0289F4C284F30FB5C36864BD0F54DD3E9F464A53DAD14EDA28716818A" - $"89B289DB85B1CFD4BF29CFAFEBBA9F0F8C937A80E2E8DA57CA40560BCC67B4AF" - $"216D9705B38BA32D412F1E7397F29BFD7E1F9381F240BB5A7A1122F0B1F7E885" - $"40E6CB0460DFED18FA7CD1E27EBF3FBBBFCA808B36CBF2A9B5AC1FE4F9AF5D04" - $"F45D9F4748EAC5D23207AB8C6A2803F1D08F397EB4801E60A1FBEC73F4770462" - $"D5D08978E8C6263666DC31085F2C8C6A32130FB3146E8845448B63E754B48400" - $"4B447C9FB4AB12810BF2270B24DEC26440C71390B90D5AE4AB953F1822226BC9" - $"98774640661155163CB2020DA17F11C0447342088F9E31413716627E0968D8C0" - $"EEF15C3431E47B568BF63E4D444273B5748E05733BB89D10FADB9A2C03109685" - $"308191BFA78BCB2C605B0767BE8678288A8508603C7231240A8442B2958ED8CA" - $"1870B15A8C7C35EBF7833539368646F14F53330FFCBC6BCC27CF184F1944F347" - $"ED735E9E38445BE81A334FFB1B86092CD69F7157941E6901F5805E29023D4CDF" - $"97D15294246779F7043D68B7DBFD2735545495CB70EABAAE219D83427E7C7CFC" - $"98CAB93D4A19152D4A2FE476BBED857B7D7DFD71423E3C3CD09AF14444E4E5E5" - $"E5443816DF5828F17C8C8189364D66922831463EBC582CFA8232B2C28988C8E3" - $"E3A3DCDEDECAE170804082268180C822A4CDF3509D55331BE48F5EF5BC8CB9DD" - $"6EFBB920617B733D1C0E7DB8B0AB6C611A71C83271DDA32863E9CA9C46EF4C7C" - $"D5F7B2D44B8F57040EC98015C6C620CB31112DB3953D2FF78C2A725E7E9AC95D" - $"27CC571821462C8569C59A21ABC5322D659A3C8C76A668DD9FACD3583291A900" - $"6866C3DA09D6D2422123CE9869ECB0872066E46940FB34BB6EC14DD34F2AA406" - $"8F6C26C2BA48993093613143AB85A92CC4EB243161232D4642793136AA1AB0B0" - $"E60A995D3D1D3658963FB66E8BC24286607873A8BC1562E0A3BB470C4C6C553B" - $"6ADA6404B4097536FFADBC5C8D998A662ED92CC1D37499785DD730EEB21A4FD4" - $"FC3D8B9388CDB0029345E3284EA289977B34AD8BAA102856A3D0E45606B42699" - $"4659239615A150F3B63C27E2ADCC95180086D53A8F41204D46250C1617757375" - $"4821DB03C588DAD1AE96573745B68F80E6129445E18351C2E8A8221AE7D55D51" - $"31D8D3A007221E4BF2B4A9018801DB2422E0ACDB8B5670487DC6EB2267CA90F6" - $"7E6F6EB475E7B507B2DBC88694243DDA57428B87071E11A9B24EEC858B28948C" - $"69CA226D7A69DA45BD10869A8C85B02C652C2869E16CBCCDF2E6CACB34221FCC" - $"80855784F23638E805D41506D6646280E8A22BAB162058CF6AC726C3688CF277" - $"B429902134B2A6CA737C2D1822D943DAE088FD20ADD95D6088E0B3189E46D708" - $"E2197A46E062358834A5358AC64685B50C25A48CC74BB7F4EEA7085C8AF68600" - $"8EC77E50B9236AF8545E29839996AEB17A486C4B932CA388EA3E085133254CAA" - $"49560D1F0A34DA9F581DC66E588CF6BCA27662C675AAA184389B287B714D27DE" - $"1E2563355EA4758F69550CF9A2EDD1511CD4ED864C59F392FA6F1A78BC7D715A" - $"7034982E2ED938171596B38B1891F014F0B02CC46332DA7791EF0DE957A0A01E" - $"9532B35611321E5676C830996833A297B722D28DC031B39D26DC91C59A2FF635" - $"22AB49B4A38A8580689361761B6A6AF7078A732CFBB042587F8E6AA3515E9A49" - $"C33239F0992651AC625A1C92BDB38A41A6B560F7118D39AA4CF269C34AB40533" - $"33F98C4F458BC198142D2E479B65CBB1DFEF21C8B0B4C78B6D430B5DD1BB5FEC" - $"591364AACC3C6DB778A8063D7061C22253CD6C4B3D31D7F57ADDBF401D4D96F5" - $"4A86EC66646126EA7F64626DB9A65FF19FCFE75295D77F501E87B274E453C8DF" - $"B29B0B87D67CC6B09E4AE4DF5764DFDFDF4FCC96B5F1582D05759C325AC8D45F" - $"F5C2D97EA85DD4DD6E17BF095BCC52BFE0C5B4C538E9252FD1780529AF5AE1B9" - $"CCC98BDBE50DEFBBBB3BB8D533B33D2CF382E8986A5FF4BBB66DA558A5D6E299" - $"905A586FD761C43E2E6D210C39AC7056402AA4D6EA773FEC3F5340FF6DC2FD8F" - $"1165957EC2E1FD2B8D6AEC8DDF49B8689EFF005C55DCD2263C579C0000000049" - $"454E44AE426082" -}; - -resource(605, "pressed_mouse_bmap") #'bits' array { - $"89504E470D0A1A0A0000000D49484452000000380000001D0802000000708538" - $"CC000000017352474200AECE1CE9000000097048597300000B1300000B130100" - $"9A9C180000000774494D4507D9040B162E2CFA107C8B000001E54944415458C3" - $"CD58BBB583300C557C285452B241283382BB64848C4049999211283342CA9494" - $"E9B242CA8CE0D2E52BF4A2A3671BE30789830A8EB1FCB95C5D19C1E6F1788067" - $"4DD320A2B536FFF57C3EFB78B6DB6D118478381CE04B763C1E01E072B938FD1B" - $"6694206AAD01A02C4B7F097AE2F4FEB8CBF71A63CAB234C630D0BEEFABAA2246" - $"7F81364D432C12C420D06CF67C3EA971BD5EBBAE0380FD7EFF27F48C921E2B83" - $"C537D25A775D475815D319448988EF8542B7E665E91395C3A8E31E13E53C888C" - $"3271AE3166B7DB9D4E27005092CE441BCB0F1F81E46F6128D4E4A0B1ED27C99B" - $"9D91B41A4D67528AE050DE43EE1764452E4A571E362F237D7990D28A389D1156" - $"E2AC2F4C3BCA16FBB2D1D0073340825E12D974D088C889ABE685E35D2CC6E3C3" - $"74A602FD8A51993291F5996D2C38B25FAD0DE5D87B51AD16256B94E0AA55455C" - $"9E248E468BCF25F2124572B5CA35ABFA57DDF5169B3C80E5A9F4B5D0CB57EE24" - $"4192D12233D0F4AA5C7EF465051AC1177421A23126ACD18F0A34224DDF25651A" - $"AEF0F3336AADF55D14EED8F124E73827D9C2FEF470C9C1018DD247EA300C2C0B" - $"A791B3BFAA2AE7990B4649106FB7DB1ACA14FA0F52D735A3DF68AD29B9866160" - $"01904FCA99DBC19239D8C909E11016F9C22124F4770411DBB6A5C6FD7EFF01F7" - $"2616EDC24D58E30000000049454E44AE426082" -}; - Modified: haiku/branches/releases/r1alpha1/src/preferences/mouse/MouseView.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/preferences/mouse/MouseView.cpp 2009-09-12 05:59:16 UTC (rev 33080) +++ haiku/branches/releases/r1alpha1/src/preferences/mouse/MouseView.cpp 2009-09-12 06:03:36 UTC (rev 33081) @@ -12,10 +12,10 @@ #include "MouseView.h" -#include #include #include #include +#include #include #include #include @@ -31,19 +31,27 @@ #include "MouseWindow.h" -static const int32 kOneButtonOffsets[4] = {0, 55}; -static const int32 kTwoButtonOffsets[4] = {0, 27, 55}; -static const int32 kThreeButtonOffsets[4] = {0, 18, 36, 55}; - static const int32 kButtonTop = 6; +static const int32 kMouseDownWidth = 72; +static const int32 kMouseDownHeight = 30; -static const rgb_color kButtonPressedColor = {120, 120, 120}; -static const rgb_color kButtonReleasedLeftColor = {255, 255, 255}; -static const rgb_color kButtonReleasedRightColor = {184, 184, 184}; -static const rgb_color kButtonPressedSeparatorColor = {48, 48, 48}; -static const rgb_color kButtonReleasedSeparatorColor = {88, 88, 88}; -static const rgb_color kButtonTextColor = {32, 32, 32}; +static const int32 kOneButtonOffsets[4] + = { 0, kMouseDownWidth }; +static const int32 kTwoButtonOffsets[4] + = { 0, kMouseDownWidth / 2, kMouseDownWidth }; +static const int32 kThreeButtonOffsets[4] + = { 0, kMouseDownWidth / 3, kMouseDownWidth / 3 * 2, kMouseDownWidth }; +static const rgb_color kButtonPressedColor = { 120, 120, 120 }; +static const rgb_color kButtonReleasedLeftColor = { 255, 255, 255 }; +static const rgb_color kButtonReleasedRightColor = { 184, 184, 184 }; +static const rgb_color kButtonPressedSeparatorColor = { 48, 48, 48 }; +static const rgb_color kButtonReleasedSeparatorColor = { 88, 88, 88 }; +static const rgb_color kButtonTextColor = { 32, 32, 32 }; +static const rgb_color kMouseShadowColor = { 150, 150, 150 }; +static const rgb_color kMouseBodyTopColor = { 210, 210, 210 }; +static const rgb_color kMouseBodyBottomColor = { 140, 140, 140 }; +static const rgb_color kMouseOutlineColor = { 0, 0, 0 }; static const int32* getButtonOffsets(int32 type) @@ -86,18 +94,12 @@ fButtons(0), fOldButtons(0) { - fMouseBitmap = BTranslationUtils::GetBitmap("mouse_bmap"); - fMouseDownBitmap = BTranslationUtils::GetBitmap("pressed_mouse_bmap"); - - fMouseDownBounds = fMouseDownBitmap->Bounds(); SetEventMask(B_POINTER_EVENTS, B_NO_POINTER_HISTORY); } MouseView::~MouseView() { - delete fMouseBitmap; - delete fMouseDownBitmap; } @@ -105,9 +107,9 @@ MouseView::GetPreferredSize(float* _width, float* _height) { if (_width) - *_width = fMouseBitmap != NULL ? fMouseBitmap->Bounds().Width() : 57; + *_width = kMouseDownWidth + 2; if (_height) - *_height = fMouseBitmap != NULL ? fMouseBitmap->Bounds().Height() : 82; + *_height = 100; } @@ -115,8 +117,8 @@ MouseView::MouseUp(BPoint) { fButtons = 0; - Invalidate(BRect(0, kButtonTop, fMouseDownBounds.Width(), - kButtonTop + fMouseDownBounds.Height())); + Invalidate(BRect(0, kButtonTop, kMouseDownWidth, + kButtonTop + kMouseDownHeight)); fOldButtons = fButtons; } @@ -140,8 +142,8 @@ GetClippingRegion(&clipping); if (fOldButtons != fButtons) { - Invalidate(BRect(0, kButtonTop, - fMouseDownBounds.Width(), kButtonTop + fMouseDownBounds.Height())); + Invalidate(BRect(0, kButtonTop, kMouseDownWidth, kButtonTop + + kMouseDownHeight)); fOldButtons = fButtons; } @@ -149,7 +151,7 @@ int32 button = -1; for (int32 i = 0; i <= fType; i++) { BRect frame(offset[i], kButtonTop, offset[i + 1] - 1, - kButtonTop + fMouseDownBounds.Height()); + kButtonTop + kMouseDownHeight); if (frame.Contains(where)) { button = i; break; @@ -197,11 +199,25 @@ void MouseView::Draw(BRect updateFrame) { - // Draw the mouse top - SetDrawingMode(B_OP_ALPHA); - if (fMouseBitmap != NULL) - DrawBitmapAsync(fMouseBitmap, updateFrame, updateFrame); + BRect mouseBody(Bounds()); + mouseBody.right -= 2; + mouseBody.bottom -= 2; + float radius = 10; + // Draw the shadow + SetHighColor(kMouseShadowColor); + FillRoundRect(mouseBody.OffsetByCopy(2, 2), radius, radius); + + // Draw the body + BGradientLinear gradient(mouseBody.LeftTop(), mouseBody.LeftBottom()); + gradient.AddColor(kMouseBodyTopColor, 0); + gradient.AddColor(kMouseBodyBottomColor, 255); + FillRoundRect(mouseBody, radius, radius, gradient); + + // Draw the outline + SetHighColor(kMouseOutlineColor); + StrokeRoundRect(mouseBody, radius, radius); + mouse_map map; fSettings.Mapping(map); @@ -210,22 +226,17 @@ for (int32 i = 0; i < fType; i++) { BRect border(offset[i] + 1, kButtonTop + 2, offset[i + 1] - 1, - kButtonTop + fMouseDownBounds.Height() - 4); + kButtonTop + kMouseDownHeight - 4); bool pressed = (fButtons & map.button[_ConvertFromVisualOrder(i)]) != 0; // is button currently pressed? if (pressed) { - BRect frame(offset[i], 0, offset[i + 1], - fMouseDownBounds.Height() + 1); - if (fMouseDownBitmap != NULL) - DrawBitmapAsync(fMouseDownBitmap, frame, - frame.OffsetByCopy(0, kButtonTop)); - else if (fMouseBitmap == NULL) { - SetHighColor(kButtonPressedColor); - SetDrawingMode(B_OP_OVER); - FillRect(frame.OffsetByCopy(0, kButtonTop)); - } + BRect frame(offset[i], 0, offset[i + 1], kMouseDownHeight - 1); + frame.InsetBy(1, 1); + SetHighColor(kButtonPressedColor); + FillRect(frame.OffsetByCopy(0, kButtonTop)); } + SetDrawingMode(B_OP_OVER); if (i > 0 && fType > i) { Modified: haiku/branches/releases/r1alpha1/src/preferences/mouse/MouseView.h =================================================================== --- haiku/branches/releases/r1alpha1/src/preferences/mouse/MouseView.h 2009-09-12 05:59:16 UTC (rev 33080) +++ haiku/branches/releases/r1alpha1/src/preferences/mouse/MouseView.h 2009-09-12 06:03:36 UTC (rev 33081) @@ -39,8 +39,6 @@ typedef BView inherited; const MouseSettings &fSettings; - BBitmap *fMouseBitmap, *fMouseDownBitmap; - BRect fMouseDownBounds; int32 fType; uint32 fButtons; Modified: haiku/branches/releases/r1alpha1/src/preferences/mouse/SettingsView.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/preferences/mouse/SettingsView.cpp 2009-09-12 05:59:16 UTC (rev 33080) +++ haiku/branches/releases/r1alpha1/src/preferences/mouse/SettingsView.cpp 2009-09-12 06:03:36 UTC (rev 33081) @@ -89,7 +89,8 @@ length = fClickSpeedSlider->Bounds().Height() + 6; fDoubleClickBmpPoint.y = fRightArea.top + - (length - fDoubleClickBitmap->Bounds().Height()) / 2; + (length - (fDoubleClickBitmap != NULL + ? fDoubleClickBitmap->Bounds().Height() : 0)) / 2; fRightArea.top += length; // Create the "Mouse Speed" slider... @@ -101,7 +102,8 @@ AddChild(fMouseSpeedSlider); fSpeedBmpPoint.y = fRightArea.top + - (length - fSpeedBitmap->Bounds().Height()) / 2; + (length - (fSpeedBitmap != NULL + ? fSpeedBitmap->Bounds().Height() : 0)) / 2; fRightArea.top += length; // Create the "Mouse Acceleration" slider... @@ -113,7 +115,8 @@ AddChild(fAccelerationSlider); fAccelerationBmpPoint.y = fRightArea.top + - (length - fAccelerationBitmap->Bounds().Height()) / 2; + (length - (fAccelerationBitmap != NULL + ? fAccelerationBitmap->Bounds().Height() : 0)) / 2; fRightArea.top += length - 3; // Add the "Focus follows mouse" pop up menu @@ -149,15 +152,17 @@ fLeftArea.bottom = fRightArea.bottom; // Position mouse bitmaps - fDoubleClickBmpPoint.x = fRightArea.right - - fDoubleClickBitmap->Bounds().right - 15; - fSpeedBmpPoint.x = fRightArea.right - fSpeedBitmap->Bounds().right - 15; - fAccelerationBmpPoint.x = fRightArea.right - - fAccelerationBitmap->Bounds().right - 15; + fDoubleClickBmpPoint.x = fRightArea.right - 15 + - (fDoubleClickBitmap != NULL ? fDoubleClickBitmap->Bounds().right : 0); + fSpeedBmpPoint.x = fRightArea.right - 15 + - (fSpeedBitmap != NULL ? fSpeedBitmap->Bounds().right : 0); + fAccelerationBmpPoint.x = fRightArea.right - 15 + - (fAccelerationBitmap != NULL ? fAccelerationBitmap->Bounds().right + : 0); // Resize sliders to equal size length = fRightArea.left - 5; - fClickSpeedSlider->ResizeTo(fDoubleClickBmpPoint.x - length - 11, + fClickSpeedSlider->ResizeTo(fDoubleClickBmpPoint.x - length, fClickSpeedSlider->Bounds().Height()); fMouseSpeedSlider->ResizeTo(fSpeedBmpPoint.x - length, fMouseSpeedSlider->Bounds().Height()); Modified: haiku/branches/releases/r1alpha1/src/servers/app/app_server.rdef =================================================================== --- haiku/branches/releases/r1alpha1/src/servers/app/app_server.rdef 2009-09-12 05:59:16 UTC (rev 33080) +++ haiku/branches/releases/r1alpha1/src/servers/app/app_server.rdef 2009-09-12 06:03:36 UTC (rev 33081) @@ -15,63 +15,9 @@ internal = 0, short_info = "app_server", - long_info = "app_server ?2004-2007 Haiku Inc." + long_info = "app_server ?2004-2009 Haiku Inc." }; -resource large_icon array { - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFF00FFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFF" - $"FFFFFFFFFF000000000000FA0000000000000000FFFF003FD9D9D90000FFFFFF" - $"FFFFFFFF003F3F3F3F00FAFAFAFA00003F3F3F3F00003FD9D9D9D9D9D90000FF" - $"FFFFFFFF003FD9D900FAFAFAFAFAFA5D00D9D9D93F3FAAAAD9D9D9D9D9D98300" - $"FFFFFFFF003FD9003FFAFAFAFAFA5D5D00D9D9D9D9838383AAAAD9D9D983AA00" - $"FFFFFFFF11000000F9F9FAFAFA5D5D5D00838383833F3FD93F3FAAAA83AAAA00" - $"FFFFFFFFFF111100F9F9F9F95D5D5D5D003F3F3F3FD9D9D9D9D93F3FAAAAAA00" - $"FFFFFFFFFFFFFF00F9F9F9F95D5D5D5D00D9D9D9D9D9D9D9D9D9D9D983AA0111" - $"FFFFFFFFFFFF0000F9F9F9F95D5D5D5D0000D9D9D9D9D93F3FD9D9D9D9AA0017" - $"FFFFFFFFFF006000F9F9F9F95D5D5D00A3A30000D9D9D93F3FD9D9D9D9830011" - $"FFFFFFFF0060600000F9F9F95D5D00A3A35A5A2D00D9D9D9D9D9D9D983AA0111" - $"FFFFFF003F3F6060600000F95D00A3A35A5A2D2D0083D9D9D9D9D983AA001111" - $"FFFFFF0086863F3F60D5D50000A33F3F5A2D2D2D0083D9D9D9D983AA001111FF" - $"FFFFFF0086868686D5D5D500A3A3A3A32D2D2D2D00AAD9D9D983AA001111FFFF" - $"FFFFFF0086868686D5D5D500A3A3A3A32D2D2D2D00AAAAAA83AA001111FFFFFF" - $"FFFFFF0086868686D5D5D500A3A3A3A32D2D2D2D00AAAA83AA001111FFFFFFFF" - $"FFFF000086868686D5D5D500A3A3A3A32D2D2D00AAAA83AA001111FFFFFFFFFF" - $"FF003F0000868686D5D5000000A3A3A32D2D00AAAA83AA001111FFFFFFFFFFFF" - $"003FD983AA000086D500AA00AA0000A32D00AAAA83AA001111FFFFFFFFFFFFFF" - $"00D983AA003FD90000AA00AAAAAAAA0000AAAA83AA001111FFFFFFFFFFFFFFFF" - $"FF0000003FD9D983AA0083D9D9AAAA00AAAA83AA001111FFFFFFFFFFFFFFFFFF" - $"FFFF003FD9D983AA003FD9D983AA00AAAA83AA001111FFFFFFFFFFFFFFFFFFFF" - $"FFFF00D9838300003FD9D983AA00D9D983AA001111FFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFF0000001100D9D983AA003FD983AA001111FFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFF000000003FD98300001111FFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFF000000111111FFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -}; - -resource mini_icon array { - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFF000000FFFFFF0000FFFFFF" - $"FFFFFF0000FAFAFA000000D9D90000FF" - $"FFFF0000FAFAFAFA5D00D9AAAAD98300" - $"FFFF0000F9F9FA5D5D00833F3FAAAA00" - $"FFFF1100F9F95D5D5D00D9D9D9D9AA00" - $"FFFF0000F9F95D5D000000003FD9AA00" - $"FF00600000005D00005A2D00D9830011" - $"FF00863FD5D500A33F2DEB00830011FF" - $"FF008686D5D500A3A32DEB000011FFFF" - $"00008686D50000A3A32D000011FFFFFF" - $"008300000000AA0000000011FFFFFFFF" - $"FF00D98300D900D9830011FFFFFFFFFF" - $"FFFF0000000000000011FFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -}; - #ifdef HAIKU_TARGET_PLATFORM_HAIKU resource(0, "info") #'VICN' array { Modified: haiku/branches/releases/r1alpha1/src/servers/print/print_server.rdef =================================================================== --- haiku/branches/releases/r1alpha1/src/servers/print/print_server.rdef 2009-09-12 05:59:16 UTC (rev 33080) +++ haiku/branches/releases/r1alpha1/src/servers/print/print_server.rdef 2009-09-12 06:03:36 UTC (rev 33081) @@ -15,60 +15,6 @@ resource app_flags B_EXCLUSIVE_LAUNCH | B_BACKGROUND_APP; -resource(101, "BEOS:L:STD_ICON") #'ICON' array { - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFF" - $"FFFFFFFFFF000000000000000000000000000000FFFF003FD9D9D90000FFFFFF" - $"FFFFFFFF003F3F3F3F3F3F3F3F3F3F3F3F3F3F3F00003FD9D9D9D9D9D90000FF" - $"FFFFFFFF003FD9D9D9D9D9D9D9D9D9D9D9D9D9D93F3F00AAD9D9D9D9D9D98300" - $"FFFFFFFF003FD9838383838383830000D9D9D9D9D9838383AAAAD9D9D983AA00" - $"FFFFFFFF1100000000000000000018170000D983833F3FD93F3FAAAA83AAAA00" - $"FFFFFFFFFF111111111111110017040411180000D9D9D9D9D9D93F3FAAAAAA00" - $"FFFFFFFFFFFFFFFFFFFFFF0017040405041111170000D9D9D9D9D9D983AA0111" - $"FFFFFFFFFFFFFFFFFFFF0017040405FEFE040411171800003FD9D9D9D9AA0017" - $"FFFFFFFFFFFFFFFFFF00111717058962FDFEFE04170B0B003FD9D9D9D9830011" - $"FFFFFFFFFFFFFFFF0017111111171889896217180B0B0B00D9D9D9D983830011" - $"FFFFFFFFFFFFFF0000111717111111181717170B0B0B0B00D9D9D98383011111" - $"FFFFFFFFFFFF003F001111111717111111180B0B0B0B00AAD9D98383001111FF" - $"FFFFFFFFFF003FD90004041111111718110B0B0B0B00AAAAD98383001111FFFF" - $"FFFFFFFF003FD98300171705041111110B0B0B0B00AAAAD98383001111FFFFFF" - $"FFFFFF003FD9838300111117170504110B0B0B00AAAAD98383001111FFFFFFFF" - $"FFFF003FD98383003F000011111718040B0B00AAAAD98383001111FFFFFFFFFF" - $"FF003FD98383003FD9AAAA00001111040B00AAAAD98383011111FFFFFFFFFFFF" - $"003FD98383003FD9D9838300AA00000000AAAAD98383001111FFFFFFFFFFFFFF" - $"00D98383003FD9D98383003FD9AAAA83003FD98383001111FFFFFFFFFFFFFFFF" - $"FF0000003FD9D98383003FD9D98383003FD98383001111FFFFFFFFFFFFFFFFFF" - $"FFFF003FD9D98383003FD9D98383003FD98383001111FFFFFFFFFFFFFFFFFFFF" - $"FFFF00D9D98383003FD9D98383003FD98383001111FFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFF0083830000D9D98383003FD98383001111FFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFF0000FFFF000000003FD98300001111FFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFF000000111111FFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -}; - -resource(101, "BEOS:M:STD_ICON") #'MICN' array { - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFF0000FFFFFF" - $"FFFFFF0000000000000000D9D90000FF" - $"FFFF00D9D983000000D983AAAAD98300" - $"FFFF0000000011111100003F3FAAAA00" - $"FFFF11110011110404170B00D9D9AA00" - $"FFFFFF00171711FE170B0B003FD98301" - $"FFFFFF00040417180B0B0B00D9830011" - $"FFFF0000111104040B0B00AA830011FF" - $"FF00D900000011110B00AA830011FFFF" - $"00D98300D900000000AA830011FFFFFF" - $"008300D98300D900D9830011FFFFFFFF" - $"FF00D98300D900D9830011FFFFFFFFFF" - $"FFFF0000000000000011FFFFFFFFFFFF" - $"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" -}; - resource(0, "JOB_SETUP_OFF") #'bits' array { $"62697473000000000000000041F8000041F80000000000800000200800001000" $"393939FF393939FF393939FF393939FF393939FF393939FF393939FF393939FF" From mmlr at mail.berlios.de Sat Sep 12 08:11:13 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 12 Sep 2009 08:11:13 +0200 Subject: [Haiku-commits] r33082 - haiku/trunk/build/jam Message-ID: <200909120611.n8C6BDvR026424@sheep.berlios.de> Author: mmlr Date: 2009-09-12 08:11:11 +0200 (Sat, 12 Sep 2009) New Revision: 33082 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33082&view=rev Modified: haiku/trunk/build/jam/HaikuImage Log: Add ideinfo and idestatus only when building with the IDE stack. Modified: haiku/trunk/build/jam/HaikuImage =================================================================== --- haiku/trunk/build/jam/HaikuImage 2009-09-12 06:03:36 UTC (rev 33081) +++ haiku/trunk/build/jam/HaikuImage 2009-09-12 06:11:11 UTC (rev 33082) @@ -38,8 +38,8 @@ funzip fwcontrol gawk $(X86_ONLY)gdb getlimits grep groups gzip gzexe hd head hey hostname - id ident ideinfo idestatus ifconfig install installsound iroster - isvolume + id ident ifconfig install installsound iroster isvolume + $(IDE_ONLY)ideinfo $(IDE_ONLY)idestatus join keymap kill less lessecho lesskey link listarea listattr listimage listdev From mmlr at mail.berlios.de Sat Sep 12 08:13:19 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 12 Sep 2009 08:13:19 +0200 Subject: [Haiku-commits] r33083 - haiku/branches/releases/r1alpha1/build/jam Message-ID: <200909120613.n8C6DJ2n026706@sheep.berlios.de> Author: mmlr Date: 2009-09-12 08:13:17 +0200 (Sat, 12 Sep 2009) New Revision: 33083 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33083&view=rev Modified: haiku/branches/releases/r1alpha1/build/jam/HaikuImage Log: Merge r33082 from trunk: Add ideinfo and idestatus only when building with the IDE stack. Modified: haiku/branches/releases/r1alpha1/build/jam/HaikuImage =================================================================== --- haiku/branches/releases/r1alpha1/build/jam/HaikuImage 2009-09-12 06:11:11 UTC (rev 33082) +++ haiku/branches/releases/r1alpha1/build/jam/HaikuImage 2009-09-12 06:13:17 UTC (rev 33083) @@ -37,8 +37,8 @@ ftp ftpd funzip gawk $(X86_ONLY)gdb getlimits grep groups gzip gzexe hd head hey hostname - id ident ideinfo idestatus ifconfig install installsound iroster - isvolume + id ident ifconfig install installsound iroster isvolume + $(IDE_ONLY)ideinfo $(IDE_ONLY)idestatus join keymap kill less lessecho lesskey link listarea listattr listimage listdev From stpere at mail.berlios.de Sat Sep 12 08:20:52 2009 From: stpere at mail.berlios.de (stpere at BerliOS) Date: Sat, 12 Sep 2009 08:20:52 +0200 Subject: [Haiku-commits] r33084 - haiku/trunk/src/apps/midiplayer Message-ID: <200909120620.n8C6Kq0u030487@sheep.berlios.de> Author: stpere Date: 2009-09-12 08:20:51 +0200 (Sat, 12 Sep 2009) New Revision: 33084 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33084&view=rev Modified: haiku/trunk/src/apps/midiplayer/MidiPlayerWindow.cpp haiku/trunk/src/apps/midiplayer/MidiPlayerWindow.h Log: MidiPlayer : CenterOnScreen * Remove the local version (not really working) of CenterOnScreen and use the shared one. Modified: haiku/trunk/src/apps/midiplayer/MidiPlayerWindow.cpp =================================================================== --- haiku/trunk/src/apps/midiplayer/MidiPlayerWindow.cpp 2009-09-12 06:13:17 UTC (rev 33083) +++ haiku/trunk/src/apps/midiplayer/MidiPlayerWindow.cpp 2009-09-12 06:20:51 UTC (rev 33084) @@ -290,18 +290,6 @@ //------------------------------------------------------------------------------ -void MidiPlayerWindow::CenterOnScreen() -{ - BRect screenRect = BScreen(this).Frame(); - BRect windowRect = Frame(); - - MoveTo( - (screenRect.Width() - windowRect.Width()) / 2, - (screenRect.Height() - windowRect.Height()) / 2); -} - -//------------------------------------------------------------------------------ - void MidiPlayerWindow::InitControls() { Lock(); Modified: haiku/trunk/src/apps/midiplayer/MidiPlayerWindow.h =================================================================== --- haiku/trunk/src/apps/midiplayer/MidiPlayerWindow.h 2009-09-12 06:13:17 UTC (rev 33083) +++ haiku/trunk/src/apps/midiplayer/MidiPlayerWindow.h 2009-09-12 06:20:51 UTC (rev 33084) @@ -64,7 +64,6 @@ void CreateInputMenu(); void CreateReverbMenu(); void CreateViews(); - void CenterOnScreen(); void InitControls(); void LoadSettings(); void SaveSettings(); From laplace at mail.berlios.de Sat Sep 12 09:15:49 2009 From: laplace at mail.berlios.de (laplace at mail.berlios.de) Date: Sat, 12 Sep 2009 09:15:49 +0200 Subject: [Haiku-commits] r33085 - haiku/trunk/src/apps/bootman Message-ID: <200909120715.n8C7FnTT011772@sheep.berlios.de> Author: laplace Date: 2009-09-12 09:15:29 +0200 (Sat, 12 Sep 2009) New Revision: 33085 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33085&view=rev Modified: haiku/trunk/src/apps/bootman/BootManagerController.cpp Log: Fixed typo. +alphabranch Modified: haiku/trunk/src/apps/bootman/BootManagerController.cpp =================================================================== --- haiku/trunk/src/apps/bootman/BootManagerController.cpp 2009-09-12 06:20:51 UTC (rev 33084) +++ haiku/trunk/src/apps/bootman/BootManagerController.cpp 2009-09-12 07:15:29 UTC (rev 33085) @@ -297,7 +297,7 @@ "save the MBR into.\n\n" "If something goes wrong with the installation or if " "you later wish to remove the boot menu, simply run the " - "bootman program and choose to 'Uninstall' option."; + "bootman program and choose the 'Uninstall' option."; return new FileSelectionPage(&fSettings, frame, "saveMBR", description.String(), B_SAVE_PANEL); From aljen at mail.berlios.de Sat Sep 12 12:03:42 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 12:03:42 +0200 Subject: [Haiku-commits] r33086 - in haiku/branches/components/gallium3d: headers/libs headers/libs/drm src/libs src/libs/drm src/libs/drm/intel src/libs/drm/nouveau src/libs/drm/radeon Message-ID: <200909121003.n8CA3g7f018728@sheep.berlios.de> Author: aljen Date: 2009-09-12 12:03:07 +0200 (Sat, 12 Sep 2009) New Revision: 33086 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33086&view=rev Added: haiku/branches/components/gallium3d/headers/libs/drm/ haiku/branches/components/gallium3d/headers/libs/drm/drm.h haiku/branches/components/gallium3d/headers/libs/drm/drm_mode.h haiku/branches/components/gallium3d/headers/libs/drm/i915_drm.h haiku/branches/components/gallium3d/headers/libs/drm/nouveau_drm.h haiku/branches/components/gallium3d/headers/libs/drm/radeon_drm.h haiku/branches/components/gallium3d/src/libs/drm/ haiku/branches/components/gallium3d/src/libs/drm/Jamfile haiku/branches/components/gallium3d/src/libs/drm/intel/ haiku/branches/components/gallium3d/src/libs/drm/intel/intel_bufmgr.c haiku/branches/components/gallium3d/src/libs/drm/intel/intel_bufmgr.h haiku/branches/components/gallium3d/src/libs/drm/intel/intel_bufmgr_fake.c haiku/branches/components/gallium3d/src/libs/drm/intel/intel_bufmgr_gem.c haiku/branches/components/gallium3d/src/libs/drm/intel/intel_bufmgr_priv.h haiku/branches/components/gallium3d/src/libs/drm/intel/intel_chipset.h haiku/branches/components/gallium3d/src/libs/drm/intel/mm.c haiku/branches/components/gallium3d/src/libs/drm/intel/mm.h haiku/branches/components/gallium3d/src/libs/drm/libdrm_lists.h haiku/branches/components/gallium3d/src/libs/drm/nouveau/ haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_bo.c haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_bo.h haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_channel.c haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_channel.h haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_class.h haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_device.c haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_device.h haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_drmif.h haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_grobj.c haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_grobj.h haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_notifier.c haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_notifier.h haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_private.h haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_pushbuf.c haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_pushbuf.h haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_resource.c haiku/branches/components/gallium3d/src/libs/drm/nouveau/nouveau_resource.h haiku/branches/components/gallium3d/src/libs/drm/radeon/ haiku/branches/components/gallium3d/src/libs/drm/radeon/radeon_bo.h haiku/branches/components/gallium3d/src/libs/drm/radeon/radeon_bo_gem.c haiku/branches/components/gallium3d/src/libs/drm/radeon/radeon_bo_gem.h haiku/branches/components/gallium3d/src/libs/drm/radeon/radeon_cs.h haiku/branches/components/gallium3d/src/libs/drm/radeon/radeon_cs_gem.c haiku/branches/components/gallium3d/src/libs/drm/radeon/radeon_cs_gem.h haiku/branches/components/gallium3d/src/libs/drm/radeon/radeon_cs_space.c haiku/branches/components/gallium3d/src/libs/drm/radeon/radeon_track.c haiku/branches/components/gallium3d/src/libs/drm/radeon/radeon_track.h haiku/branches/components/gallium3d/src/libs/drm/xf86drm.c haiku/branches/components/gallium3d/src/libs/drm/xf86drm.h haiku/branches/components/gallium3d/src/libs/drm/xf86drmHash.c haiku/branches/components/gallium3d/src/libs/drm/xf86drmMode.c haiku/branches/components/gallium3d/src/libs/drm/xf86drmMode.h haiku/branches/components/gallium3d/src/libs/drm/xf86drmRandom.c haiku/branches/components/gallium3d/src/libs/drm/xf86drmSL.c haiku/branches/components/gallium3d/src/libs/drm/xf86mm.h Modified: haiku/branches/components/gallium3d/src/libs/Jamfile Log: Added libdrm: * libdrm.so * libdrm_intel.so * libdrm_radeon.so * libdrm_nouveau.so Added: haiku/branches/components/gallium3d/headers/libs/drm/drm.h =================================================================== --- haiku/branches/components/gallium3d/headers/libs/drm/drm.h 2009-09-12 07:15:29 UTC (rev 33085) +++ haiku/branches/components/gallium3d/headers/libs/drm/drm.h 2009-09-12 10:03:07 UTC (rev 33086) @@ -0,0 +1,859 @@ +/** + * \file drm.h + * Header for the Direct Rendering Manager + * + * \author Rickard E. (Rik) Faith + * + * \par Acknowledgments: + * Dec 1999, Richard Henderson , move to generic \c cmpxchg. + */ + +/* + * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas. + * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. + * All rights reserved. + * + * 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 (including the next + * paragraph) 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 + * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS 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. + */ + +/** + * \mainpage + * + * The Direct Rendering Manager (DRM) is a device-independent kernel-level + * device driver that provides support for the XFree86 Direct Rendering + * Infrastructure (DRI). + * + * The DRM supports the Direct Rendering Infrastructure (DRI) in four major + * ways: + * -# The DRM provides synchronized access to the graphics hardware via + * the use of an optimized two-tiered lock. + * -# The DRM enforces the DRI security policy for access to the graphics + * hardware by only allowing authenticated X11 clients access to + * restricted regions of memory. + * -# The DRM provides a generic DMA engine, complete with multiple + * queues and the ability to detect the need for an OpenGL context + * switch. + * -# The DRM is extensible via the use of small device-specific modules + * that rely extensively on the API exported by the DRM module. + * + */ + +#ifndef _DRM_H_ +#define _DRM_H_ + +#ifndef __user +#define __user +#endif +#ifndef __iomem +#define __iomem +#endif + +#ifdef __GNUC__ +# define DEPRECATED __attribute__ ((deprecated)) +#else +# define DEPRECATED +# ifndef __FUNCTION__ +# define __FUNCTION__ __func__ /* C99 */ +# endif +# ifndef __volatile__ +# define __volatile__ volatile +# endif +#endif + +#if defined(__linux__) +#include /* For _IO* macros */ +#define DRM_IOCTL_NR(n) _IOC_NR(n) +#define DRM_IOC_VOID _IOC_NONE +#define DRM_IOC_READ _IOC_READ +#define DRM_IOC_WRITE _IOC_WRITE +#define DRM_IOC_READWRITE _IOC_READ|_IOC_WRITE +#define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size) +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__HAIKU__) +#include +#define DRM_IOCTL_NR(n) ((n) & 0xff) +#define DRM_IOC_VOID IOC_VOID +#define DRM_IOC_READ IOC_OUT +#define DRM_IOC_WRITE IOC_IN +#define DRM_IOC_READWRITE IOC_INOUT +#define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size) +#endif + +#ifdef __OpenBSD__ +#define DRM_MAJOR 81 +#endif +#if defined(__linux__) || defined(__NetBSD__) +#define DRM_MAJOR 226 +#endif +#define DRM_MAX_MINOR 15 + +#define DRM_NAME "drm" /**< Name in kernel, /dev, and /proc */ +#define DRM_MIN_ORDER 5 /**< At least 2^5 bytes = 32 bytes */ +#define DRM_MAX_ORDER 22 /**< Up to 2^22 bytes = 4MB */ +#define DRM_RAM_PERCENT 10 /**< How much system ram can we lock? */ + +#define _DRM_LOCK_HELD 0x80000000U /**< Hardware lock is held */ +#define _DRM_LOCK_CONT 0x40000000U /**< Hardware lock is contended */ +#define _DRM_LOCK_IS_HELD(lock) ((lock) & _DRM_LOCK_HELD) +#define _DRM_LOCK_IS_CONT(lock) ((lock) & _DRM_LOCK_CONT) +#define _DRM_LOCKING_CONTEXT(lock) ((lock) & ~(_DRM_LOCK_HELD|_DRM_LOCK_CONT)) + +#if defined(__linux__) +typedef unsigned int drm_handle_t; +#else +#include +typedef unsigned long drm_handle_t; /**< To mapped regions */ +#endif +typedef unsigned int drm_context_t; /**< GLXContext handle */ +typedef unsigned int drm_drawable_t; +typedef unsigned int drm_magic_t; /**< Magic for authentication */ + +/** + * Cliprect. + * + * \warning If you change this structure, make sure you change + * XF86DRIClipRectRec in the server as well + * + * \note KW: Actually it's illegal to change either for + * backwards-compatibility reasons. + */ +struct drm_clip_rect { + unsigned short x1; + unsigned short y1; + unsigned short x2; + unsigned short y2; +}; + +/** + * Texture region, + */ +struct drm_tex_region { + unsigned char next; + unsigned char prev; + unsigned char in_use; + unsigned char padding; + unsigned int age; +}; + +/** + * Hardware lock. + * + * The lock structure is a simple cache-line aligned integer. To avoid + * processor bus contention on a multiprocessor system, there should not be any + * other data stored in the same cache line. + */ +struct drm_hw_lock { + __volatile__ unsigned int lock; /**< lock variable */ + char padding[60]; /**< Pad to cache line */ +}; + +/* This is beyond ugly, and only works on GCC. However, it allows me to use + * drm.h in places (i.e., in the X-server) where I can't use size_t. The real + * fix is to use uint32_t instead of size_t, but that fix will break existing + * LP64 (i.e., PowerPC64, SPARC64, IA-64, Alpha, etc.) systems. That *will* + * eventually happen, though. I chose 'unsigned long' to be the fallback type + * because that works on all the platforms I know about. Hopefully, the + * real fix will happen before that bites us. + */ + +#ifdef __SIZE_TYPE__ +# define DRM_SIZE_T __SIZE_TYPE__ +#else +# warning "__SIZE_TYPE__ not defined. Assuming sizeof(size_t) == sizeof(unsigned long)!" +# define DRM_SIZE_T unsigned long +#endif + +/** + * DRM_IOCTL_VERSION ioctl argument type. + * + * \sa drmGetVersion(). + */ +struct drm_version { + int version_major; /**< Major version */ + int version_minor; /**< Minor version */ + int version_patchlevel; /**< Patch level */ + DRM_SIZE_T name_len; /**< Length of name buffer */ + char __user *name; /**< Name of driver */ + DRM_SIZE_T date_len; /**< Length of date buffer */ + char __user *date; /**< User-space buffer to hold date */ + DRM_SIZE_T desc_len; /**< Length of desc buffer */ + char __user *desc; /**< User-space buffer to hold desc */ +}; + +/** + * DRM_IOCTL_GET_UNIQUE ioctl argument type. + * + * \sa drmGetBusid() and drmSetBusId(). + */ +struct drm_unique { + DRM_SIZE_T unique_len; /**< Length of unique */ + char __user *unique; /**< Unique name for driver instantiation */ +}; + +#undef DRM_SIZE_T + +struct drm_list { + int count; /**< Length of user-space structures */ + struct drm_version __user *version; +}; + +struct drm_block { + int unused; +}; + +/** + * DRM_IOCTL_CONTROL ioctl argument type. + * + * \sa drmCtlInstHandler() and drmCtlUninstHandler(). + */ +struct drm_control { + enum { + DRM_ADD_COMMAND, + DRM_RM_COMMAND, + DRM_INST_HANDLER, + DRM_UNINST_HANDLER + } func; + int irq; +}; + +/** + * Type of memory to map. + */ +enum drm_map_type { + _DRM_FRAME_BUFFER = 0, /**< WC (no caching), no core dump */ + _DRM_REGISTERS = 1, /**< no caching, no core dump */ + _DRM_SHM = 2, /**< shared, cached */ + _DRM_AGP = 3, /**< AGP/GART */ + _DRM_SCATTER_GATHER = 4, /**< Scatter/gather memory for PCI DMA */ + _DRM_CONSISTENT = 5, /**< Consistent memory for PCI DMA */ + _DRM_GEM = 6, + _DRM_TTM = 7, +}; + +/** + * Memory mapping flags. + */ +enum drm_map_flags { + _DRM_RESTRICTED = 0x01, /**< Cannot be mapped to user-virtual */ + _DRM_READ_ONLY = 0x02, + _DRM_LOCKED = 0x04, /**< shared, cached, locked */ + _DRM_KERNEL = 0x08, /**< kernel requires access */ + _DRM_WRITE_COMBINING = 0x10, /**< use write-combining if available */ + _DRM_CONTAINS_LOCK = 0x20, /**< SHM page that contains lock */ + _DRM_REMOVABLE = 0x40, /**< Removable mapping */ + _DRM_DRIVER = 0x80 /**< Managed by driver */ +}; + +struct drm_ctx_priv_map { + unsigned int ctx_id; /**< Context requesting private mapping */ + void *handle; /**< Handle of map */ +}; + +/** + * DRM_IOCTL_GET_MAP, DRM_IOCTL_ADD_MAP and DRM_IOCTL_RM_MAP ioctls + * argument type. + * + * \sa drmAddMap(). + */ +struct drm_map { + unsigned long offset; /**< Requested physical address (0 for SAREA)*/ + unsigned long size; /**< Requested physical size (bytes) */ + enum drm_map_type type; /**< Type of memory to map */ + enum drm_map_flags flags; /**< Flags */ + void *handle; /**< User-space: "Handle" to pass to mmap() */ + /**< Kernel-space: kernel-virtual address */ + int mtrr; /**< MTRR slot used */ + /* Private data */ +}; + +/** + * DRM_IOCTL_GET_CLIENT ioctl argument type. + */ +struct drm_client { + int idx; /**< Which client desired? */ + int auth; /**< Is client authenticated? */ + unsigned long pid; /**< Process ID */ + unsigned long uid; /**< User ID */ + unsigned long magic; /**< Magic */ + unsigned long iocs; /**< Ioctl count */ +}; + +enum drm_stat_type { + _DRM_STAT_LOCK, + _DRM_STAT_OPENS, + _DRM_STAT_CLOSES, + _DRM_STAT_IOCTLS, + _DRM_STAT_LOCKS, + _DRM_STAT_UNLOCKS, + _DRM_STAT_VALUE, /**< Generic value */ + _DRM_STAT_BYTE, /**< Generic byte counter (1024bytes/K) */ + _DRM_STAT_COUNT, /**< Generic non-byte counter (1000/k) */ + + _DRM_STAT_IRQ, /**< IRQ */ + _DRM_STAT_PRIMARY, /**< Primary DMA bytes */ + _DRM_STAT_SECONDARY, /**< Secondary DMA bytes */ + _DRM_STAT_DMA, /**< DMA */ + _DRM_STAT_SPECIAL, /**< Special DMA (e.g., priority or polled) */ + _DRM_STAT_MISSED /**< Missed DMA opportunity */ + /* Add to the *END* of the list */ +}; + +/** + * DRM_IOCTL_GET_STATS ioctl argument type. + */ +struct drm_stats { + unsigned long count; + struct { + unsigned long value; + enum drm_stat_type type; + } data[15]; +}; + +/** + * Hardware locking flags. + */ +enum drm_lock_flags { + _DRM_LOCK_READY = 0x01, /**< Wait until hardware is ready for DMA */ + _DRM_LOCK_QUIESCENT = 0x02, /**< Wait until hardware quiescent */ + _DRM_LOCK_FLUSH = 0x04, /**< Flush this context's DMA queue first */ + _DRM_LOCK_FLUSH_ALL = 0x08, /**< Flush all DMA queues first */ + /* These *HALT* flags aren't supported yet + -- they will be used to support the + full-screen DGA-like mode. */ + _DRM_HALT_ALL_QUEUES = 0x10, /**< Halt all current and future queues */ + _DRM_HALT_CUR_QUEUES = 0x20 /**< Halt all current queues */ +}; + +/** + * DRM_IOCTL_LOCK, DRM_IOCTL_UNLOCK and DRM_IOCTL_FINISH ioctl argument type. + * + * \sa drmGetLock() and drmUnlock(). + */ +struct drm_lock { + int context; + enum drm_lock_flags flags; +}; + +/** + * DMA flags + * + * \warning + * These values \e must match xf86drm.h. + * + * \sa drm_dma. + */ +enum drm_dma_flags { + /* Flags for DMA buffer dispatch */ + _DRM_DMA_BLOCK = 0x01, /**< + * Block until buffer dispatched. + * + * \note The buffer may not yet have + * been processed by the hardware -- + * getting a hardware lock with the + * hardware quiescent will ensure + * that the buffer has been + * processed. + */ + _DRM_DMA_WHILE_LOCKED = 0x02, /**< Dispatch while lock held */ + _DRM_DMA_PRIORITY = 0x04, /**< High priority dispatch */ + + /* Flags for DMA buffer request */ + _DRM_DMA_WAIT = 0x10, /**< Wait for free buffers */ + _DRM_DMA_SMALLER_OK = 0x20, /**< Smaller-than-requested buffers OK */ + _DRM_DMA_LARGER_OK = 0x40 /**< Larger-than-requested buffers OK */ +}; + +/** + * DRM_IOCTL_ADD_BUFS and DRM_IOCTL_MARK_BUFS ioctl argument type. + * + * \sa drmAddBufs(). + */ +struct drm_buf_desc { + int count; /**< Number of buffers of this size */ + int size; /**< Size in bytes */ + int low_mark; /**< Low water mark */ + int high_mark; /**< High water mark */ + enum { + _DRM_PAGE_ALIGN = 0x01, /**< Align on page boundaries for DMA */ + _DRM_AGP_BUFFER = 0x02, /**< Buffer is in AGP space */ + _DRM_SG_BUFFER = 0x04, /**< Scatter/gather memory buffer */ + _DRM_FB_BUFFER = 0x08, /**< Buffer is in frame buffer */ + _DRM_PCI_BUFFER_RO = 0x10 /**< Map PCI DMA buffer read-only */ + } flags; + unsigned long agp_start; /**< + * Start address of where the AGP buffers are + * in the AGP aperture + */ +}; + +/** + * DRM_IOCTL_INFO_BUFS ioctl argument type. + */ +struct drm_buf_info { + int count; /**< Number of buffers described in list */ + struct drm_buf_desc __user *list; /**< List of buffer descriptions */ +}; + +/** + * DRM_IOCTL_FREE_BUFS ioctl argument type. + */ +struct drm_buf_free { + int count; + int __user *list; +}; + +/** + * Buffer information + * + * \sa drm_buf_map. + */ +struct drm_buf_pub { + int idx; /**< Index into the master buffer list */ + int total; /**< Buffer size */ + int used; /**< Amount of buffer in use (for DMA) */ + void __user *address; /**< Address of buffer */ +}; + +/** + * DRM_IOCTL_MAP_BUFS ioctl argument type. + */ +struct drm_buf_map { + int count; /**< Length of the buffer list */ +#if defined(__cplusplus) + void __user *c_virtual; +#else + void __user *virtual; /**< Mmap'd area in user-virtual */ +#endif + struct drm_buf_pub __user *list; /**< Buffer information */ +}; + +/** + * DRM_IOCTL_DMA ioctl argument type. + * + * Indices here refer to the offset into the buffer list in drm_buf_get. + * + * \sa drmDMA(). + */ +struct drm_dma { + int context; /**< Context handle */ + int send_count; /**< Number of buffers to send */ + int __user *send_indices; /**< List of handles to buffers */ + int __user *send_sizes; /**< Lengths of data to send */ + enum drm_dma_flags flags; /**< Flags */ + int request_count; /**< Number of buffers requested */ + int request_size; /**< Desired size for buffers */ + int __user *request_indices; /**< Buffer information */ + int __user *request_sizes; + int granted_count; /**< Number of buffers granted */ +}; + +enum drm_ctx_flags { + _DRM_CONTEXT_PRESERVED = 0x01, + _DRM_CONTEXT_2DONLY = 0x02 +}; + +/** + * DRM_IOCTL_ADD_CTX ioctl argument type. + * + * \sa drmCreateContext() and drmDestroyContext(). + */ +struct drm_ctx { + drm_context_t handle; + enum drm_ctx_flags flags; +}; + +/** + * DRM_IOCTL_RES_CTX ioctl argument type. + */ +struct drm_ctx_res { + int count; + struct drm_ctx __user *contexts; +}; + +/** + * DRM_IOCTL_ADD_DRAW and DRM_IOCTL_RM_DRAW ioctl argument type. + */ +struct drm_draw { + drm_drawable_t handle; +}; + +/** + * DRM_IOCTL_UPDATE_DRAW ioctl argument type. + */ +typedef enum { + DRM_DRAWABLE_CLIPRECTS, +} drm_drawable_info_type_t; + +struct drm_update_draw { + drm_drawable_t handle; + unsigned int type; + unsigned int num; + unsigned long long data; +}; + +/** + * DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type. + */ +struct drm_auth { + drm_magic_t magic; +}; + +/** + * DRM_IOCTL_IRQ_BUSID ioctl argument type. + * + * \sa drmGetInterruptFromBusID(). + */ +struct drm_irq_busid { + int irq; /**< IRQ number */ + int busnum; /**< bus number */ + int devnum; /**< device number */ + int funcnum; /**< function number */ +}; + +enum drm_vblank_seq_type { + _DRM_VBLANK_ABSOLUTE = 0x0, /**< Wait for specific vblank sequence number */ + _DRM_VBLANK_RELATIVE = 0x1, /**< Wait for given number of vblanks */ + _DRM_VBLANK_FLIP = 0x8000000, /**< Scheduled buffer swap should flip */ + _DRM_VBLANK_NEXTONMISS = 0x10000000, /**< If missed, wait for next vblank */ + _DRM_VBLANK_SECONDARY = 0x20000000, /**< Secondary display controller */ + _DRM_VBLANK_SIGNAL = 0x40000000 /**< Send signal instead of blocking */ +}; + +#define _DRM_VBLANK_TYPES_MASK (_DRM_VBLANK_ABSOLUTE | _DRM_VBLANK_RELATIVE) +#define _DRM_VBLANK_FLAGS_MASK (_DRM_VBLANK_SIGNAL | _DRM_VBLANK_SECONDARY | \ + _DRM_VBLANK_NEXTONMISS) + +struct drm_wait_vblank_request { + enum drm_vblank_seq_type type; + unsigned int sequence; + unsigned long signal; +}; + +struct drm_wait_vblank_reply { + enum drm_vblank_seq_type type; + unsigned int sequence; + long tval_sec; + long tval_usec; +}; + +/** + * DRM_IOCTL_WAIT_VBLANK ioctl argument type. + * + * \sa drmWaitVBlank(). + */ +union drm_wait_vblank { + struct drm_wait_vblank_request request; + struct drm_wait_vblank_reply reply; +}; + + +#define _DRM_PRE_MODESET 1 +#define _DRM_POST_MODESET 2 + +/** + * DRM_IOCTL_MODESET_CTL ioctl argument type + * + * \sa drmModesetCtl(). + */ +struct drm_modeset_ctl { + uint32_t crtc; + uint32_t cmd; +}; + +/** + * DRM_IOCTL_AGP_ENABLE ioctl argument type. + * + * \sa drmAgpEnable(). + */ +struct drm_agp_mode { + unsigned long mode; /**< AGP mode */ +}; + +/** + * DRM_IOCTL_AGP_ALLOC and DRM_IOCTL_AGP_FREE ioctls argument type. + * + * \sa drmAgpAlloc() and drmAgpFree(). + */ +struct drm_agp_buffer { + unsigned long size; /**< In bytes -- will round to page boundary */ + unsigned long handle; /**< Used for binding / unbinding */ + unsigned long type; /**< Type of memory to allocate */ + unsigned long physical; /**< Physical used by i810 */ +}; + +/** + * DRM_IOCTL_AGP_BIND and DRM_IOCTL_AGP_UNBIND ioctls argument type. + * + * \sa drmAgpBind() and drmAgpUnbind(). + */ +struct drm_agp_binding { + unsigned long handle; /**< From drm_agp_buffer */ + unsigned long offset; /**< In bytes -- will round to page boundary */ +}; + +/** + * DRM_IOCTL_AGP_INFO ioctl argument type. + * + * \sa drmAgpVersionMajor(), drmAgpVersionMinor(), drmAgpGetMode(), + * drmAgpBase(), drmAgpSize(), drmAgpMemoryUsed(), drmAgpMemoryAvail(), + * drmAgpVendorId() and drmAgpDeviceId(). + */ +struct drm_agp_info { + int agp_version_major; + int agp_version_minor; + unsigned long mode; + unsigned long aperture_base; /**< physical address */ + unsigned long aperture_size; /**< bytes */ + unsigned long memory_allowed; /**< bytes */ + unsigned long memory_used; + + /** \name PCI information */ + /*@{ */ + unsigned short id_vendor; + unsigned short id_device; + /*@} */ +}; + +/** + * DRM_IOCTL_SG_ALLOC ioctl argument type. + */ +struct drm_scatter_gather { + unsigned long size; /**< In bytes -- will round to page boundary */ + unsigned long handle; /**< Used for mapping / unmapping */ +}; + +/** + * DRM_IOCTL_SET_VERSION ioctl argument type. + */ +struct drm_set_version { + int drm_di_major; + int drm_di_minor; + int drm_dd_major; + int drm_dd_minor; +}; + +struct drm_gem_close { + /** Handle of the object to be closed. */ + uint32_t handle; + uint32_t pad; +}; + +struct drm_gem_flink { + /** Handle for the object being named */ + uint32_t handle; + + /** Returned global name */ + uint32_t name; +}; + +struct drm_gem_open { + /** Name of object being opened */ + uint32_t name; + + /** Returned handle for the object */ + uint32_t handle; + + /** Returned size of the object */ + uint64_t size; +}; + +#include "drm_mode.h" + +/** + * \name Ioctls Definitions + */ +/*@{*/ + +#define DRM_IOCTL_BASE 'd' +#define DRM_IO(nr) _IO(DRM_IOCTL_BASE,nr) +#define DRM_IOR(nr,type) _IOR(DRM_IOCTL_BASE,nr,type) +#define DRM_IOW(nr,type) _IOW(DRM_IOCTL_BASE,nr,type) +#define DRM_IOWR(nr,type) _IOWR(DRM_IOCTL_BASE,nr,type) + +#define DRM_IOCTL_VERSION DRM_IOWR(0x00, struct drm_version) +#define DRM_IOCTL_GET_UNIQUE DRM_IOWR(0x01, struct drm_unique) +#define DRM_IOCTL_GET_MAGIC DRM_IOR( 0x02, struct drm_auth) +#define DRM_IOCTL_IRQ_BUSID DRM_IOWR(0x03, struct drm_irq_busid) +#define DRM_IOCTL_GET_MAP DRM_IOWR(0x04, struct drm_map) +#define DRM_IOCTL_GET_CLIENT DRM_IOWR(0x05, struct drm_client) +#define DRM_IOCTL_GET_STATS DRM_IOR( 0x06, struct drm_stats) +#define DRM_IOCTL_SET_VERSION DRM_IOWR(0x07, struct drm_set_version) +#define DRM_IOCTL_MODESET_CTL DRM_IOW(0x08, struct drm_modeset_ctl) + +#define DRM_IOCTL_GEM_CLOSE DRM_IOW (0x09, struct drm_gem_close) +#define DRM_IOCTL_GEM_FLINK DRM_IOWR(0x0a, struct drm_gem_flink) +#define DRM_IOCTL_GEM_OPEN DRM_IOWR(0x0b, struct drm_gem_open) + +#define DRM_IOCTL_SET_UNIQUE DRM_IOW( 0x10, struct drm_unique) +#define DRM_IOCTL_AUTH_MAGIC DRM_IOW( 0x11, struct drm_auth) +#define DRM_IOCTL_BLOCK DRM_IOWR(0x12, struct drm_block) +#define DRM_IOCTL_UNBLOCK DRM_IOWR(0x13, struct drm_block) +#define DRM_IOCTL_CONTROL DRM_IOW( 0x14, struct drm_control) +#define DRM_IOCTL_ADD_MAP DRM_IOWR(0x15, struct drm_map) +#define DRM_IOCTL_ADD_BUFS DRM_IOWR(0x16, struct drm_buf_desc) +#define DRM_IOCTL_MARK_BUFS DRM_IOW( 0x17, struct drm_buf_desc) +#define DRM_IOCTL_INFO_BUFS DRM_IOWR(0x18, struct drm_buf_info) +#define DRM_IOCTL_MAP_BUFS DRM_IOWR(0x19, struct drm_buf_map) +#define DRM_IOCTL_FREE_BUFS DRM_IOW( 0x1a, struct drm_buf_free) + +#define DRM_IOCTL_RM_MAP DRM_IOW( 0x1b, struct drm_map) + +#define DRM_IOCTL_SET_SAREA_CTX DRM_IOW( 0x1c, struct drm_ctx_priv_map) +#define DRM_IOCTL_GET_SAREA_CTX DRM_IOWR(0x1d, struct drm_ctx_priv_map) + +#define DRM_IOCTL_SET_MASTER DRM_IO(0x1e) +#define DRM_IOCTL_DROP_MASTER DRM_IO(0x1f) + +#define DRM_IOCTL_ADD_CTX DRM_IOWR(0x20, struct drm_ctx) +#define DRM_IOCTL_RM_CTX DRM_IOWR(0x21, struct drm_ctx) +#define DRM_IOCTL_MOD_CTX DRM_IOW( 0x22, struct drm_ctx) +#define DRM_IOCTL_GET_CTX DRM_IOWR(0x23, struct drm_ctx) +#define DRM_IOCTL_SWITCH_CTX DRM_IOW( 0x24, struct drm_ctx) +#define DRM_IOCTL_NEW_CTX DRM_IOW( 0x25, struct drm_ctx) +#define DRM_IOCTL_RES_CTX DRM_IOWR(0x26, struct drm_ctx_res) +#define DRM_IOCTL_ADD_DRAW DRM_IOWR(0x27, struct drm_draw) +#define DRM_IOCTL_RM_DRAW DRM_IOWR(0x28, struct drm_draw) +#define DRM_IOCTL_DMA DRM_IOWR(0x29, struct drm_dma) +#define DRM_IOCTL_LOCK DRM_IOW( 0x2a, struct drm_lock) +#define DRM_IOCTL_UNLOCK DRM_IOW( 0x2b, struct drm_lock) +#define DRM_IOCTL_FINISH DRM_IOW( 0x2c, struct drm_lock) + +#define DRM_IOCTL_AGP_ACQUIRE DRM_IO( 0x30) +#define DRM_IOCTL_AGP_RELEASE DRM_IO( 0x31) +#define DRM_IOCTL_AGP_ENABLE DRM_IOW( 0x32, struct drm_agp_mode) +#define DRM_IOCTL_AGP_INFO DRM_IOR( 0x33, struct drm_agp_info) +#define DRM_IOCTL_AGP_ALLOC DRM_IOWR(0x34, struct drm_agp_buffer) +#define DRM_IOCTL_AGP_FREE DRM_IOW( 0x35, struct drm_agp_buffer) +#define DRM_IOCTL_AGP_BIND DRM_IOW( 0x36, struct drm_agp_binding) +#define DRM_IOCTL_AGP_UNBIND DRM_IOW( 0x37, struct drm_agp_binding) + +#define DRM_IOCTL_SG_ALLOC DRM_IOWR(0x38, struct drm_scatter_gather) +#define DRM_IOCTL_SG_FREE DRM_IOW( 0x39, struct drm_scatter_gather) + +#define DRM_IOCTL_WAIT_VBLANK DRM_IOWR(0x3a, union drm_wait_vblank) + +#define DRM_IOCTL_UPDATE_DRAW DRM_IOW(0x3f, struct drm_update_draw) + +#define DRM_IOCTL_MM_INIT DRM_IOWR(0xc0, struct drm_mm_init_arg) +#define DRM_IOCTL_MM_TAKEDOWN DRM_IOWR(0xc1, struct drm_mm_type_arg) +#define DRM_IOCTL_MM_LOCK DRM_IOWR(0xc2, struct drm_mm_type_arg) +#define DRM_IOCTL_MM_UNLOCK DRM_IOWR(0xc3, struct drm_mm_type_arg) + +#define DRM_IOCTL_FENCE_CREATE DRM_IOWR(0xc4, struct drm_fence_arg) +#define DRM_IOCTL_FENCE_REFERENCE DRM_IOWR(0xc6, struct drm_fence_arg) +#define DRM_IOCTL_FENCE_UNREFERENCE DRM_IOWR(0xc7, struct drm_fence_arg) +#define DRM_IOCTL_FENCE_SIGNALED DRM_IOWR(0xc8, struct drm_fence_arg) +#define DRM_IOCTL_FENCE_FLUSH DRM_IOWR(0xc9, struct drm_fence_arg) +#define DRM_IOCTL_FENCE_WAIT DRM_IOWR(0xca, struct drm_fence_arg) +#define DRM_IOCTL_FENCE_EMIT DRM_IOWR(0xcb, struct drm_fence_arg) +#define DRM_IOCTL_FENCE_BUFFERS DRM_IOWR(0xcc, struct drm_fence_arg) + +#define DRM_IOCTL_BO_CREATE DRM_IOWR(0xcd, struct drm_bo_create_arg) +#define DRM_IOCTL_BO_MAP DRM_IOWR(0xcf, struct drm_bo_map_wait_idle_arg) +#define DRM_IOCTL_BO_UNMAP DRM_IOWR(0xd0, struct drm_bo_handle_arg) +#define DRM_IOCTL_BO_REFERENCE DRM_IOWR(0xd1, struct drm_bo_reference_info_arg) +#define DRM_IOCTL_BO_UNREFERENCE DRM_IOWR(0xd2, struct drm_bo_handle_arg) +#define DRM_IOCTL_BO_SETSTATUS DRM_IOWR(0xd3, struct drm_bo_map_wait_idle_arg) +#define DRM_IOCTL_BO_INFO DRM_IOWR(0xd4, struct drm_bo_reference_info_arg) +#define DRM_IOCTL_BO_WAIT_IDLE DRM_IOWR(0xd5, struct drm_bo_map_wait_idle_arg) +#define DRM_IOCTL_BO_VERSION DRM_IOR(0xd6, struct drm_bo_version_arg) +#define DRM_IOCTL_MM_INFO DRM_IOWR(0xd7, struct drm_mm_info_arg) + +#define DRM_IOCTL_MODE_GETRESOURCES DRM_IOWR(0xA0, struct drm_mode_card_res) + +#define DRM_IOCTL_MODE_GETCRTC DRM_IOWR(0xA1, struct drm_mode_crtc) +#define DRM_IOCTL_MODE_SETCRTC DRM_IOWR(0xA2, struct drm_mode_crtc) +#define DRM_IOCTL_MODE_CURSOR DRM_IOWR(0xA3, struct drm_mode_cursor) +#define DRM_IOCTL_MODE_GETGAMMA DRM_IOWR(0xA4, struct drm_mode_crtc_lut) +#define DRM_IOCTL_MODE_SETGAMMA DRM_IOWR(0xA5, struct drm_mode_crtc_lut) + +#define DRM_IOCTL_MODE_GETENCODER DRM_IOWR(0xA6, struct drm_mode_get_encoder) + +#define DRM_IOCTL_MODE_GETCONNECTOR DRM_IOWR(0xA7, struct drm_mode_get_connector) +#define DRM_IOCTL_MODE_ATTACHMODE DRM_IOWR(0xA8, struct drm_mode_mode_cmd) +#define DRM_IOCTL_MODE_DETACHMODE DRM_IOWR(0xA9, struct drm_mode_mode_cmd) +#define DRM_IOCTL_MODE_GETPROPERTY DRM_IOWR(0xAA, struct drm_mode_get_property) +#define DRM_IOCTL_MODE_SETPROPERTY DRM_IOWR(0xAB, struct drm_mode_connector_set_property) +#define DRM_IOCTL_MODE_GETPROPBLOB DRM_IOWR(0xAC, struct drm_mode_get_blob) + +#define DRM_IOCTL_MODE_GETFB DRM_IOWR(0xAD, struct drm_mode_fb_cmd) +#define DRM_IOCTL_MODE_ADDFB DRM_IOWR(0xAE, struct drm_mode_fb_cmd) +#define DRM_IOCTL_MODE_RMFB DRM_IOWR(0xAF, uint32_t) + +/*@}*/ + +/** + * Device specific ioctls should only be in their respective headers + * The device specific ioctl range is from 0x40 to 0x99. + * Generic IOCTLS restart at 0xA0. + * + * \sa drmCommandNone(), drmCommandRead(), drmCommandWrite(), and + * drmCommandReadWrite(). + */ +#define DRM_COMMAND_BASE 0x40 +#define DRM_COMMAND_END 0xA0 + +/* typedef area */ +#ifndef __KERNEL__ +typedef struct drm_clip_rect drm_clip_rect_t; +typedef struct drm_tex_region drm_tex_region_t; +typedef struct drm_hw_lock drm_hw_lock_t; +typedef struct drm_version drm_version_t; +typedef struct drm_unique drm_unique_t; +typedef struct drm_list drm_list_t; +typedef struct drm_block drm_block_t; +typedef struct drm_control drm_control_t; +typedef enum drm_map_type drm_map_type_t; +typedef enum drm_map_flags drm_map_flags_t; +typedef struct drm_ctx_priv_map drm_ctx_priv_map_t; +typedef struct drm_map drm_map_t; +typedef struct drm_client drm_client_t; +typedef enum drm_stat_type drm_stat_type_t; +typedef struct drm_stats drm_stats_t; +typedef enum drm_lock_flags drm_lock_flags_t; +typedef struct drm_lock drm_lock_t; +typedef enum drm_dma_flags drm_dma_flags_t; +typedef struct drm_buf_desc drm_buf_desc_t; +typedef struct drm_buf_info drm_buf_info_t; +typedef struct drm_buf_free drm_buf_free_t; +typedef struct drm_buf_pub drm_buf_pub_t; +typedef struct drm_buf_map drm_buf_map_t; +typedef struct drm_dma drm_dma_t; +typedef union drm_wait_vblank drm_wait_vblank_t; +typedef struct drm_agp_mode drm_agp_mode_t; +typedef enum drm_ctx_flags drm_ctx_flags_t; +typedef struct drm_ctx drm_ctx_t; +typedef struct drm_ctx_res drm_ctx_res_t; +typedef struct drm_draw drm_draw_t; +typedef struct drm_update_draw drm_update_draw_t; +typedef struct drm_auth drm_auth_t; +typedef struct drm_irq_busid drm_irq_busid_t; +typedef enum drm_vblank_seq_type drm_vblank_seq_type_t; +typedef struct drm_agp_buffer drm_agp_buffer_t; +typedef struct drm_agp_binding drm_agp_binding_t; +typedef struct drm_agp_info drm_agp_info_t; +typedef struct drm_scatter_gather drm_scatter_gather_t; +typedef struct drm_set_version drm_set_version_t; + +typedef struct drm_fence_arg drm_fence_arg_t; +typedef struct drm_mm_type_arg drm_mm_type_arg_t; +typedef struct drm_mm_init_arg drm_mm_init_arg_t; +#endif + +#endif Added: haiku/branches/components/gallium3d/headers/libs/drm/drm_mode.h =================================================================== --- haiku/branches/components/gallium3d/headers/libs/drm/drm_mode.h 2009-09-12 07:15:29 UTC (rev 33085) +++ haiku/branches/components/gallium3d/headers/libs/drm/drm_mode.h 2009-09-12 10:03:07 UTC (rev 33086) @@ -0,0 +1,273 @@ +/* + * Copyright (c) 2007 Dave Airlie + * Copyright (c) 2007 Jakob Bornecrantz + * Copyright (c) 2008 Red Hat Inc. + * Copyright (c) 2007-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA + * Copyright (c) 2007-2008 Intel Corporation + * + * 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. + */ + +#ifndef _DRM_MODE_H +#define _DRM_MODE_H + +#ifdef __linux__ +#if !defined(__KERNEL__) && !defined(_KERNEL) +#include +#else +#include +#endif +#endif + +#define DRM_DISPLAY_INFO_LEN 32 +#define DRM_CONNECTOR_NAME_LEN 32 +#define DRM_DISPLAY_MODE_LEN 32 +#define DRM_PROP_NAME_LEN 32 + +#define DRM_MODE_TYPE_BUILTIN (1<<0) +#define DRM_MODE_TYPE_CLOCK_C ((1<<1) | DRM_MODE_TYPE_BUILTIN) +#define DRM_MODE_TYPE_CRTC_C ((1<<2) | DRM_MODE_TYPE_BUILTIN) +#define DRM_MODE_TYPE_PREFERRED (1<<3) +#define DRM_MODE_TYPE_DEFAULT (1<<4) +#define DRM_MODE_TYPE_USERDEF (1<<5) +#define DRM_MODE_TYPE_DRIVER (1<<6) + +/* Video mode flags */ +/* bit compatible with the xorg definitions. */ +#define DRM_MODE_FLAG_PHSYNC (1<<0) +#define DRM_MODE_FLAG_NHSYNC (1<<1) +#define DRM_MODE_FLAG_PVSYNC (1<<2) +#define DRM_MODE_FLAG_NVSYNC (1<<3) +#define DRM_MODE_FLAG_INTERLACE (1<<4) +#define DRM_MODE_FLAG_DBLSCAN (1<<5) +#define DRM_MODE_FLAG_CSYNC (1<<6) +#define DRM_MODE_FLAG_PCSYNC (1<<7) +#define DRM_MODE_FLAG_NCSYNC (1<<8) +#define DRM_MODE_FLAG_HSKEW (1<<9) /* hskew provided */ +#define DRM_MODE_FLAG_BCAST (1<<10) +#define DRM_MODE_FLAG_PIXMUX (1<<11) +#define DRM_MODE_FLAG_DBLCLK (1<<12) +#define DRM_MODE_FLAG_CLKDIV2 (1<<13) + +/* DPMS flags */ +/* bit compatible with the xorg definitions. */ +#define DRM_MODE_DPMS_ON 0 +#define DRM_MODE_DPMS_STANDBY 1 +#define DRM_MODE_DPMS_SUSPEND 2 +#define DRM_MODE_DPMS_OFF 3 + +/* Scaling mode options */ +#define DRM_MODE_SCALE_NON_GPU 0 +#define DRM_MODE_SCALE_FULLSCREEN 1 +#define DRM_MODE_SCALE_NO_SCALE 2 +#define DRM_MODE_SCALE_ASPECT 3 + +/* Dithering mode options */ +#define DRM_MODE_DITHERING_OFF 0 +#define DRM_MODE_DITHERING_ON 1 + +struct drm_mode_modeinfo { + uint32_t clock; + uint16_t hdisplay, hsync_start, hsync_end, htotal, hskew; + uint16_t vdisplay, vsync_start, vsync_end, vtotal, vscan; + + uint32_t vrefresh; /* vertical refresh * 1000 */ + + uint32_t flags; + uint32_t type; + char name[DRM_DISPLAY_MODE_LEN]; +}; + +struct drm_mode_card_res { + uint64_t fb_id_ptr; + uint64_t crtc_id_ptr; + uint64_t connector_id_ptr; + uint64_t encoder_id_ptr; + uint32_t count_fbs; + uint32_t count_crtcs; + uint32_t count_connectors; + uint32_t count_encoders; + uint32_t min_width, max_width; + uint32_t min_height, max_height; +}; + +struct drm_mode_crtc { + uint64_t set_connectors_ptr; + uint32_t count_connectors; + + uint32_t crtc_id; /**< Id */ + uint32_t fb_id; /**< Id of framebuffer */ + + uint32_t x, y; /**< Position on the frameuffer */ + + uint32_t gamma_size; + uint32_t mode_valid; + struct drm_mode_modeinfo mode; +}; + +#define DRM_MODE_ENCODER_NONE 0 +#define DRM_MODE_ENCODER_DAC 1 +#define DRM_MODE_ENCODER_TMDS 2 +#define DRM_MODE_ENCODER_LVDS 3 +#define DRM_MODE_ENCODER_TVDAC 4 + +struct drm_mode_get_encoder { [... truncated: 24668 lines follow ...] From aljen at mail.berlios.de Sat Sep 12 12:13:43 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 12:13:43 +0200 Subject: [Haiku-commits] r33087 - in haiku/branches/components/gallium3d/src/libs/drm: . intel Message-ID: <200909121013.n8CADhwI019445@sheep.berlios.de> Author: aljen Date: 2009-09-12 12:13:42 +0200 (Sat, 12 Sep 2009) New Revision: 33087 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33087&view=rev Modified: haiku/branches/components/gallium3d/src/libs/drm/intel/intel_bufmgr_gem.c haiku/branches/components/gallium3d/src/libs/drm/xf86drm.c Log: Ooops, wrong conversion ;P Modified: haiku/branches/components/gallium3d/src/libs/drm/intel/intel_bufmgr_gem.c =================================================================== --- haiku/branches/components/gallium3d/src/libs/drm/intel/intel_bufmgr_gem.c 2009-09-12 10:03:07 UTC (rev 33086) +++ haiku/branches/components/gallium3d/src/libs/drm/intel/intel_bufmgr_gem.c 2009-09-12 10:13:42 UTC (rev 33087) @@ -612,7 +612,7 @@ bo_gem->free_time = time.tv_sec; #else bigtime_t systemTime = system_time(); - bo_gem->free_time = systemTime / 1000000; + bo_gem->free_time = systemTime * 1000000; #endif bo_gem->name = NULL; Modified: haiku/branches/components/gallium3d/src/libs/drm/xf86drm.c =================================================================== --- haiku/branches/components/gallium3d/src/libs/drm/xf86drm.c 2009-09-12 10:03:07 UTC (rev 33086) +++ haiku/branches/components/gallium3d/src/libs/drm/xf86drm.c 2009-09-12 10:13:42 UTC (rev 33087) @@ -1943,7 +1943,7 @@ } #else bigtime_t systemTime = system_time(); - timeout.tv_sec = systemTime / 1000000; + timeout.tv_sec = systemTime * 1000000; timeout.tv_nsec = systemTime * 1000; #endif timeout.tv_sec++; @@ -1956,7 +1956,7 @@ clock_gettime(CLOCK_MONOTONIC, &cur); #else systemTime = system_time(); - cur.tv_sec = systemTime / 1000000; + cur.tv_sec = systemTime * 1000000; cur.tv_nsec = systemTime * 1000; #endif /* Timeout after 1s */ From aljen at mail.berlios.de Sat Sep 12 13:09:29 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 13:09:29 +0200 Subject: [Haiku-commits] r33088 - in haiku/branches/components/gallium3d: headers/libs/drm headers/private/opengl/GL/internal src/kits/opengl/mesa src/kits/opengl/mesa/drivers src/kits/opengl/mesa/drivers/dri src/kits/opengl/mesa/drivers/dri/common src/kits/opengl/mesa/drivers/dri/common/xmlpool src/kits/opengl/mesa/gallium src/kits/opengl/mesa/gallium/state_trackers src/kits/opengl/mesa/gallium/state_trackers/dri Message-ID: <200909121109.n8CB9TYE027158@sheep.berlios.de> Author: aljen Date: 2009-09-12 13:09:08 +0200 (Sat, 12 Sep 2009) New Revision: 33088 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33088&view=rev Added: haiku/branches/components/gallium3d/headers/libs/drm/drm_sarea.h haiku/branches/components/gallium3d/headers/private/opengl/GL/internal/dri_interface.h haiku/branches/components/gallium3d/headers/private/opengl/GL/internal/sarea.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/ haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/ haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/depthtmp.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/dri_metaops.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/dri_metaops.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/dri_util.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/dri_util.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/drirenderbuffer.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/drirenderbuffer.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/extension_helper.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/memops.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/mmio.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/mmx.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/spantmp.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/spantmp2.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/spantmp_common.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/stenciltmp.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/texmem.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/texmem.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/utils.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/utils.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/vblank.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/vblank.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/xmlconfig.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/xmlconfig.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/xmlpool.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/xmlpool/ haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/xmlpool/options.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/xmlpool/t_options.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/state_trackers/ haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/state_trackers/dri/ haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/state_trackers/dri/dri_context.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/state_trackers/dri/dri_context.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/state_trackers/dri/dri_drawable.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/state_trackers/dri/dri_drawable.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/state_trackers/dri/dri_extensions.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/state_trackers/dri/dri_screen.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/state_trackers/dri/dri_screen.h haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/state_trackers/dri/dri_util.c haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/state_trackers/dri/dri_util.h Modified: haiku/branches/components/gallium3d/src/kits/opengl/mesa/Jamfile Log: Added gallium dri state_tracker and mesa dri common drivers code Added: haiku/branches/components/gallium3d/headers/libs/drm/drm_sarea.h =================================================================== --- haiku/branches/components/gallium3d/headers/libs/drm/drm_sarea.h 2009-09-12 10:13:42 UTC (rev 33087) +++ haiku/branches/components/gallium3d/headers/libs/drm/drm_sarea.h 2009-09-12 11:09:08 UTC (rev 33088) @@ -0,0 +1,84 @@ +/** + * \file drm_sarea.h + * \brief SAREA definitions + * + * \author Michel D?zer + */ + +/* + * Copyright 2002 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * 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 (including the next + * paragraph) 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 + * TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS 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. + */ + +#ifndef _DRM_SAREA_H_ +#define _DRM_SAREA_H_ + +#include "drm.h" + +/* SAREA area needs to be at least a page */ +#if defined(__alpha__) +#define SAREA_MAX 0x2000 +#elif defined(__ia64__) +#define SAREA_MAX 0x10000 /* 64kB */ +#else +/* Intel 830M driver needs at least 8k SAREA */ +#define SAREA_MAX 0x2000UL +#endif + +/** Maximum number of drawables in the SAREA */ +#define SAREA_MAX_DRAWABLES 256 + +#define SAREA_DRAWABLE_CLAIMED_ENTRY 0x80000000 + +/** SAREA drawable */ +struct drm_sarea_drawable { + unsigned int stamp; + unsigned int flags; +}; + +/** SAREA frame */ +struct drm_sarea_frame { + unsigned int x; + unsigned int y; + unsigned int width; + unsigned int height; + unsigned int fullscreen; +}; + +/** SAREA */ +struct drm_sarea { + /** first thing is always the DRM locking structure */ + struct drm_hw_lock lock; + /** \todo Use readers/writer lock for drm_sarea::drawable_lock */ + struct drm_hw_lock drawable_lock; + struct drm_sarea_drawable drawableTable[SAREA_MAX_DRAWABLES]; /**< drawables */ + struct drm_sarea_frame frame; /**< frame */ + drm_context_t dummy_context; +}; + +#ifndef __KERNEL__ +typedef struct drm_sarea_drawable drm_sarea_drawable_t; +typedef struct drm_sarea_frame drm_sarea_frame_t; +typedef struct drm_sarea drm_sarea_t; +#endif + +#endif /* _DRM_SAREA_H_ */ Added: haiku/branches/components/gallium3d/headers/private/opengl/GL/internal/dri_interface.h =================================================================== --- haiku/branches/components/gallium3d/headers/private/opengl/GL/internal/dri_interface.h 2009-09-12 10:13:42 UTC (rev 33087) +++ haiku/branches/components/gallium3d/headers/private/opengl/GL/internal/dri_interface.h 2009-09-12 11:09:08 UTC (rev 33088) @@ -0,0 +1,737 @@ +/* + * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. + * Copyright 2007-2008 Red Hat, Inc. + * (C) Copyright IBM Corporation 2004 + * All Rights Reserved. + * + * 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 + * on the rights to use, copy, modify, merge, publish, distribute, sub + * license, 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 (including the next + * paragraph) 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 NON-INFRINGEMENT. IN NO EVENT SHALL + * THE COPYRIGHT HOLDERS AND/OR THEIR SUPPLIERS 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 dri_interface.h + * + * This file contains all the types and functions that define the interface + * between a DRI driver and driver loader. Currently, the most common driver + * loader is the XFree86 libGL.so. However, other loaders do exist, and in + * the future the server-side libglx.a will also be a loader. + * + * \author Kevin E. Martin + * \author Ian Romanick + * \author Kristian H?gsberg + */ + +#ifndef DRI_INTERFACE_H +#define DRI_INTERFACE_H + +/* For archs with no drm.h */ +#if !defined(__APPLE__) && !defined(__CYGWIN__) && !defined(__GNU__) +#include +#else +typedef unsigned int drm_context_t; +typedef unsigned int drm_drawable_t; +typedef struct drm_clip_rect drm_clip_rect_t; +#endif + +/** + * \name DRI interface structures + * + * The following structures define the interface between the GLX client + * side library and the DRI (direct rendering infrastructure). + */ +/*@{*/ +typedef struct __DRIdisplayRec __DRIdisplay; +typedef struct __DRIscreenRec __DRIscreen; +typedef struct __DRIcontextRec __DRIcontext; +typedef struct __DRIdrawableRec __DRIdrawable; +typedef struct __DRIconfigRec __DRIconfig; +typedef struct __DRIframebufferRec __DRIframebuffer; +typedef struct __DRIversionRec __DRIversion; + +typedef struct __DRIcoreExtensionRec __DRIcoreExtension; +typedef struct __DRIextensionRec __DRIextension; +typedef struct __DRIcopySubBufferExtensionRec __DRIcopySubBufferExtension; +typedef struct __DRIswapControlExtensionRec __DRIswapControlExtension; +typedef struct __DRIallocateExtensionRec __DRIallocateExtension; +typedef struct __DRIframeTrackingExtensionRec __DRIframeTrackingExtension; +typedef struct __DRImediaStreamCounterExtensionRec __DRImediaStreamCounterExtension; +typedef struct __DRItexOffsetExtensionRec __DRItexOffsetExtension; +typedef struct __DRItexBufferExtensionRec __DRItexBufferExtension; +typedef struct __DRIlegacyExtensionRec __DRIlegacyExtension; +typedef struct __DRIswrastExtensionRec __DRIswrastExtension; +typedef struct __DRIbufferRec __DRIbuffer; +typedef struct __DRIdri2ExtensionRec __DRIdri2Extension; +typedef struct __DRIdri2LoaderExtensionRec __DRIdri2LoaderExtension; +typedef struct __DRI2flushExtensionRec __DRI2flushExtension; + +/*@}*/ + + +/** + * Extension struct. Drivers 'inherit' from this struct by embedding + * it as the first element in the extension struct. + * + * We never break API in for a DRI extension. If we need to change + * the way things work in a non-backwards compatible manner, we + * introduce a new extension. During a transition period, we can + * leave both the old and the new extension in the driver, which + * allows us to move to the new interface without having to update the + * loader(s) in lock step. + * + * However, we can add entry points to an extension over time as long + * as we don't break the old ones. As we add entry points to an + * extension, we increase the version number. The corresponding + * #define can be used to guard code that accesses the new entry + * points at compile time and the version field in the extension + * struct can be used at run-time to determine how to use the + * extension. + */ +struct __DRIextensionRec { + const char *name; + int version; +}; + +/** + * The first set of extension are the screen extensions, returned by + * __DRIcore::getExtensions(). This entry point will return a list of + * extensions and the loader can use the ones it knows about by + * casting them to more specific extensions and advertising any GLX + * extensions the DRI extensions enables. + */ + +/** + * Used by drivers to indicate support for setting the read drawable. + */ +#define __DRI_READ_DRAWABLE "DRI_ReadDrawable" +#define __DRI_READ_DRAWABLE_VERSION 1 + +/** + * Used by drivers that implement the GLX_MESA_copy_sub_buffer extension. + */ +#define __DRI_COPY_SUB_BUFFER "DRI_CopySubBuffer" +#define __DRI_COPY_SUB_BUFFER_VERSION 1 +struct __DRIcopySubBufferExtensionRec { + __DRIextension base; + void (*copySubBuffer)(__DRIdrawable *drawable, int x, int y, int w, int h); +}; + +/** + * Used by drivers that implement the GLX_SGI_swap_control or + * GLX_MESA_swap_control extension. + */ +#define __DRI_SWAP_CONTROL "DRI_SwapControl" +#define __DRI_SWAP_CONTROL_VERSION 1 +struct __DRIswapControlExtensionRec { + __DRIextension base; + void (*setSwapInterval)(__DRIdrawable *drawable, unsigned int inteval); + unsigned int (*getSwapInterval)(__DRIdrawable *drawable); +}; + +/** + * Used by drivers that implement the GLX_MESA_allocate_memory. + */ +#define __DRI_ALLOCATE "DRI_Allocate" +#define __DRI_ALLOCATE_VERSION 1 +struct __DRIallocateExtensionRec { + __DRIextension base; + + void *(*allocateMemory)(__DRIscreen *screen, GLsizei size, + GLfloat readfreq, GLfloat writefreq, + GLfloat priority); + + void (*freeMemory)(__DRIscreen *screen, GLvoid *pointer); + + GLuint (*memoryOffset)(__DRIscreen *screen, const GLvoid *pointer); +}; + +/** + * Used by drivers that implement the GLX_MESA_swap_frame_usage extension. + */ +#define __DRI_FRAME_TRACKING "DRI_FrameTracking" +#define __DRI_FRAME_TRACKING_VERSION 1 +struct __DRIframeTrackingExtensionRec { + __DRIextension base; + + /** + * Enable or disable frame usage tracking. + * + * \since Internal API version 20030317. + */ + int (*frameTracking)(__DRIdrawable *drawable, GLboolean enable); + + /** + * Retrieve frame usage information. + * + * \since Internal API version 20030317. + */ + int (*queryFrameTracking)(__DRIdrawable *drawable, + int64_t * sbc, int64_t * missedFrames, + float * lastMissedUsage, float * usage); +}; + + +/** + * Used by drivers that implement the GLX_SGI_video_sync extension. + */ +#define __DRI_MEDIA_STREAM_COUNTER "DRI_MediaStreamCounter" +#define __DRI_MEDIA_STREAM_COUNTER_VERSION 1 +struct __DRImediaStreamCounterExtensionRec { + __DRIextension base; + + /** + * Wait for the MSC to equal target_msc, or, if that has already passed, + * the next time (MSC % divisor) is equal to remainder. If divisor is + * zero, the function will return as soon as MSC is greater than or equal + * to target_msc. + */ + int (*waitForMSC)(__DRIdrawable *drawable, + int64_t target_msc, int64_t divisor, int64_t remainder, + int64_t * msc, int64_t * sbc); + + /** + * Get the number of vertical refreshes since some point in time before + * this function was first called (i.e., system start up). + */ + int (*getDrawableMSC)(__DRIscreen *screen, __DRIdrawable *drawable, + int64_t *msc); +}; + + +#define __DRI_TEX_OFFSET "DRI_TexOffset" +#define __DRI_TEX_OFFSET_VERSION 1 +struct __DRItexOffsetExtensionRec { + __DRIextension base; + + /** + * Method to override base texture image with a driver specific 'offset'. + * The depth passed in allows e.g. to ignore the alpha channel of texture + * images where the non-alpha components don't occupy a whole texel. + * + * For GLX_EXT_texture_from_pixmap with AIGLX. + */ + void (*setTexOffset)(__DRIcontext *pDRICtx, GLint texname, + unsigned long long offset, GLint depth, GLuint pitch); +}; + + +#define __DRI_TEX_BUFFER "DRI_TexBuffer" +#define __DRI_TEX_BUFFER_VERSION 2 +struct __DRItexBufferExtensionRec { + __DRIextension base; + + /** + * Method to override base texture image with the contents of a + * __DRIdrawable. + * + * For GLX_EXT_texture_from_pixmap with AIGLX. Deprecated in favor of + * setTexBuffer2 in version 2 of this interface + */ + void (*setTexBuffer)(__DRIcontext *pDRICtx, + GLint target, + __DRIdrawable *pDraw); + + /** + * Method to override base texture image with the contents of a + * __DRIdrawable, including the required texture format attribute. + * + * For GLX_EXT_texture_from_pixmap with AIGLX. + */ + void (*setTexBuffer2)(__DRIcontext *pDRICtx, + GLint target, + GLint format, + __DRIdrawable *pDraw); +}; + +/** + * Used by drivers that implement DRI2 + */ +#define __DRI2_FLUSH "DRI2_Flush" +#define __DRI2_FLUSH_VERSION 1 +struct __DRI2flushExtensionRec { + __DRIextension base; + void (*flush)(__DRIdrawable *drawable); +}; + + +/** + * XML document describing the configuration options supported by the + * driver. + */ +extern const char __driConfigOptions[]; + +/*@}*/ + +/** + * The following extensions describe loader features that the DRI + * driver can make use of. Some of these are mandatory, such as the + * getDrawableInfo extension for DRI and the DRI Loader extensions for + * DRI2, while others are optional, and if present allow the driver to + * expose certain features. The loader pass in a NULL terminated + * array of these extensions to the driver in the createNewScreen + * constructor. + */ + +typedef struct __DRIgetDrawableInfoExtensionRec __DRIgetDrawableInfoExtension; +typedef struct __DRIsystemTimeExtensionRec __DRIsystemTimeExtension; +typedef struct __DRIdamageExtensionRec __DRIdamageExtension; +typedef struct __DRIloaderExtensionRec __DRIloaderExtension; +typedef struct __DRIswrastLoaderExtensionRec __DRIswrastLoaderExtension; + + +/** + * Callback to getDrawableInfo protocol + */ +#define __DRI_GET_DRAWABLE_INFO "DRI_GetDrawableInfo" +#define __DRI_GET_DRAWABLE_INFO_VERSION 1 +struct __DRIgetDrawableInfoExtensionRec { + __DRIextension base; + + /** + * This function is used to get information about the position, size, and + * clip rects of a drawable. + */ + GLboolean (* getDrawableInfo) ( __DRIdrawable *drawable, + unsigned int * index, unsigned int * stamp, + int * x, int * y, int * width, int * height, + int * numClipRects, drm_clip_rect_t ** pClipRects, + int * backX, int * backY, + int * numBackClipRects, drm_clip_rect_t ** pBackClipRects, + void *loaderPrivate); +}; + +/** + * Callback to get system time for media stream counter extensions. + */ +#define __DRI_SYSTEM_TIME "DRI_SystemTime" +#define __DRI_SYSTEM_TIME_VERSION 1 +struct __DRIsystemTimeExtensionRec { + __DRIextension base; + + /** + * Get the 64-bit unadjusted system time (UST). + */ + int (*getUST)(int64_t * ust); + + /** + * Get the media stream counter (MSC) rate. + * + * Matching the definition in GLX_OML_sync_control, this function returns + * the rate of the "media stream counter". In practical terms, this is + * the frame refresh rate of the display. + */ + GLboolean (*getMSCRate)(__DRIdrawable *draw, + int32_t * numerator, int32_t * denominator, + void *loaderPrivate); +}; + +/** + * Damage reporting + */ +#define __DRI_DAMAGE "DRI_Damage" +#define __DRI_DAMAGE_VERSION 1 +struct __DRIdamageExtensionRec { + __DRIextension base; + + /** + * Reports areas of the given drawable which have been modified by the + * driver. + * + * \param drawable which the drawing was done to. + * \param rects rectangles affected, with the drawable origin as the + * origin. + * \param x X offset of the drawable within the screen (used in the + * front_buffer case) + * \param y Y offset of the drawable within the screen. + * \param front_buffer boolean flag for whether the drawing to the + * drawable was actually done directly to the front buffer (instead + * of backing storage, for example) + * \param loaderPrivate the data passed in at createNewDrawable time + */ + void (*reportDamage)(__DRIdrawable *draw, + int x, int y, + drm_clip_rect_t *rects, int num_rects, + GLboolean front_buffer, + void *loaderPrivate); +}; + +#define __DRI_SWRAST_IMAGE_OP_DRAW 1 +#define __DRI_SWRAST_IMAGE_OP_CLEAR 2 +#define __DRI_SWRAST_IMAGE_OP_SWAP 3 + +/** + * SWRast Loader extension. + */ +#define __DRI_SWRAST_LOADER "DRI_SWRastLoader" +#define __DRI_SWRAST_LOADER_VERSION 1 +struct __DRIswrastLoaderExtensionRec { + __DRIextension base; + + /* + * Drawable position and size + */ + void (*getDrawableInfo)(__DRIdrawable *drawable, + int *x, int *y, int *width, int *height, + void *loaderPrivate); + + /** + * Put image to drawable + */ + void (*putImage)(__DRIdrawable *drawable, int op, + int x, int y, int width, int height, char *data, + void *loaderPrivate); + + /** + * Get image from drawable + */ + void (*getImage)(__DRIdrawable *drawable, + int x, int y, int width, int height, char *data, + void *loaderPrivate); +}; + +/** + * The remaining extensions describe driver extensions, immediately + * available interfaces provided by the driver. To start using the + * driver, dlsym() for the __DRI_DRIVER_EXTENSIONS symbol and look for + * the extension you need in the array. + */ +#define __DRI_DRIVER_EXTENSIONS "__driDriverExtensions" + +/** + * Tokens for __DRIconfig attribs. A number of attributes defined by + * GLX or EGL standards are not in the table, as they must be provided + * by the loader. For example, FBConfig ID or visual ID, drawable type. + */ + +#define __DRI_ATTRIB_BUFFER_SIZE 1 +#define __DRI_ATTRIB_LEVEL 2 +#define __DRI_ATTRIB_RED_SIZE 3 +#define __DRI_ATTRIB_GREEN_SIZE 4 +#define __DRI_ATTRIB_BLUE_SIZE 5 +#define __DRI_ATTRIB_LUMINANCE_SIZE 6 +#define __DRI_ATTRIB_ALPHA_SIZE 7 +#define __DRI_ATTRIB_ALPHA_MASK_SIZE 8 +#define __DRI_ATTRIB_DEPTH_SIZE 9 +#define __DRI_ATTRIB_STENCIL_SIZE 10 +#define __DRI_ATTRIB_ACCUM_RED_SIZE 11 +#define __DRI_ATTRIB_ACCUM_GREEN_SIZE 12 +#define __DRI_ATTRIB_ACCUM_BLUE_SIZE 13 +#define __DRI_ATTRIB_ACCUM_ALPHA_SIZE 14 +#define __DRI_ATTRIB_SAMPLE_BUFFERS 15 +#define __DRI_ATTRIB_SAMPLES 16 +#define __DRI_ATTRIB_RENDER_TYPE 17 +#define __DRI_ATTRIB_CONFIG_CAVEAT 18 +#define __DRI_ATTRIB_CONFORMANT 19 +#define __DRI_ATTRIB_DOUBLE_BUFFER 20 +#define __DRI_ATTRIB_STEREO 21 +#define __DRI_ATTRIB_AUX_BUFFERS 22 +#define __DRI_ATTRIB_TRANSPARENT_TYPE 23 +#define __DRI_ATTRIB_TRANSPARENT_INDEX_VALUE 24 +#define __DRI_ATTRIB_TRANSPARENT_RED_VALUE 25 +#define __DRI_ATTRIB_TRANSPARENT_GREEN_VALUE 26 +#define __DRI_ATTRIB_TRANSPARENT_BLUE_VALUE 27 +#define __DRI_ATTRIB_TRANSPARENT_ALPHA_VALUE 28 +#define __DRI_ATTRIB_FLOAT_MODE 29 +#define __DRI_ATTRIB_RED_MASK 30 +#define __DRI_ATTRIB_GREEN_MASK 31 +#define __DRI_ATTRIB_BLUE_MASK 32 +#define __DRI_ATTRIB_ALPHA_MASK 33 +#define __DRI_ATTRIB_MAX_PBUFFER_WIDTH 34 +#define __DRI_ATTRIB_MAX_PBUFFER_HEIGHT 35 +#define __DRI_ATTRIB_MAX_PBUFFER_PIXELS 36 +#define __DRI_ATTRIB_OPTIMAL_PBUFFER_WIDTH 37 +#define __DRI_ATTRIB_OPTIMAL_PBUFFER_HEIGHT 38 +#define __DRI_ATTRIB_VISUAL_SELECT_GROUP 39 +#define __DRI_ATTRIB_SWAP_METHOD 40 +#define __DRI_ATTRIB_MAX_SWAP_INTERVAL 41 +#define __DRI_ATTRIB_MIN_SWAP_INTERVAL 42 +#define __DRI_ATTRIB_BIND_TO_TEXTURE_RGB 43 +#define __DRI_ATTRIB_BIND_TO_TEXTURE_RGBA 44 +#define __DRI_ATTRIB_BIND_TO_MIPMAP_TEXTURE 45 +#define __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS 46 +#define __DRI_ATTRIB_YINVERTED 47 + +/* __DRI_ATTRIB_RENDER_TYPE */ +#define __DRI_ATTRIB_RGBA_BIT 0x01 +#define __DRI_ATTRIB_COLOR_INDEX_BIT 0x02 +#define __DRI_ATTRIB_LUMINANCE_BIT 0x04 + +/* __DRI_ATTRIB_CONFIG_CAVEAT */ +#define __DRI_ATTRIB_SLOW_BIT 0x01 +#define __DRI_ATTRIB_NON_CONFORMANT_CONFIG 0x02 + +/* __DRI_ATTRIB_TRANSPARENT_TYPE */ +#define __DRI_ATTRIB_TRANSPARENT_RGB 0x00 +#define __DRI_ATTRIB_TRANSPARENT_INDEX 0x01 + +/* __DRI_ATTRIB_BIND_TO_TEXTURE_TARGETS */ +#define __DRI_ATTRIB_TEXTURE_1D_BIT 0x01 +#define __DRI_ATTRIB_TEXTURE_2D_BIT 0x02 +#define __DRI_ATTRIB_TEXTURE_RECTANGLE_BIT 0x04 + +/** + * This extension defines the core DRI functionality. + */ +#define __DRI_CORE "DRI_Core" +#define __DRI_CORE_VERSION 1 + +struct __DRIcoreExtensionRec { + __DRIextension base; + + __DRIscreen *(*createNewScreen)(int screen, int fd, + unsigned int sarea_handle, + const __DRIextension **extensions, + const __DRIconfig ***driverConfigs, + void *loaderPrivate); + + void (*destroyScreen)(__DRIscreen *screen); + + const __DRIextension **(*getExtensions)(__DRIscreen *screen); + + int (*getConfigAttrib)(const __DRIconfig *config, + unsigned int attrib, + unsigned int *value); + + int (*indexConfigAttrib)(const __DRIconfig *config, int index, + unsigned int *attrib, unsigned int *value); + + __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, + const __DRIconfig *config, + unsigned int drawable_id, + unsigned int head, + void *loaderPrivate); + + void (*destroyDrawable)(__DRIdrawable *drawable); + + void (*swapBuffers)(__DRIdrawable *drawable); + + __DRIcontext *(*createNewContext)(__DRIscreen *screen, + const __DRIconfig *config, + __DRIcontext *shared, + void *loaderPrivate); + + int (*copyContext)(__DRIcontext *dest, + __DRIcontext *src, + unsigned long mask); + + void (*destroyContext)(__DRIcontext *context); + + int (*bindContext)(__DRIcontext *ctx, + __DRIdrawable *pdraw, + __DRIdrawable *pread); + + int (*unbindContext)(__DRIcontext *ctx); +}; + +/** + * Stored version of some component (i.e., server-side DRI module, kernel-side + * DRM, etc.). + * + * \todo + * There are several data structures that explicitly store a major version, + * minor version, and patch level. These structures should be modified to + * have a \c __DRIversionRec instead. + */ +struct __DRIversionRec { + int major; /**< Major version number. */ + int minor; /**< Minor version number. */ + int patch; /**< Patch-level. */ +}; + +/** + * Framebuffer information record. Used by libGL to communicate information + * about the framebuffer to the driver's \c __driCreateNewScreen function. + * + * In XFree86, most of this information is derrived from data returned by + * calling \c XF86DRIGetDeviceInfo. + * + * \sa XF86DRIGetDeviceInfo __DRIdisplayRec::createNewScreen + * __driUtilCreateNewScreen CallCreateNewScreen + * + * \bug This structure could be better named. + */ +struct __DRIframebufferRec { + unsigned char *base; /**< Framebuffer base address in the CPU's + * address space. This value is calculated by + * calling \c drmMap on the framebuffer handle + * returned by \c XF86DRIGetDeviceInfo (or a + * similar function). + */ + int size; /**< Framebuffer size, in bytes. */ + int stride; /**< Number of bytes from one line to the next. */ + int width; /**< Pixel width of the framebuffer. */ + int height; /**< Pixel height of the framebuffer. */ + int dev_priv_size; /**< Size of the driver's dev-priv structure. */ + void *dev_priv; /**< Pointer to the driver's dev-priv structure. */ +}; + + +/** + * This extension provides alternative screen, drawable and context + * constructors for legacy DRI functionality. This is used in + * conjunction with the core extension. + */ +#define __DRI_LEGACY "DRI_Legacy" +#define __DRI_LEGACY_VERSION 1 + +struct __DRIlegacyExtensionRec { + __DRIextension base; + + __DRIscreen *(*createNewScreen)(int screen, + const __DRIversion *ddx_version, + const __DRIversion *dri_version, + const __DRIversion *drm_version, + const __DRIframebuffer *frame_buffer, + void *pSAREA, int fd, + const __DRIextension **extensions, + const __DRIconfig ***driver_configs, + void *loaderPrivate); + + __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, + const __DRIconfig *config, + drm_drawable_t hwDrawable, + int renderType, const int *attrs, + void *loaderPrivate); + + __DRIcontext *(*createNewContext)(__DRIscreen *screen, + const __DRIconfig *config, + int render_type, + __DRIcontext *shared, + drm_context_t hwContext, + void *loaderPrivate); +}; + +/** + * This extension provides alternative screen, drawable and context + * constructors for swrast DRI functionality. This is used in + * conjunction with the core extension. + */ +#define __DRI_SWRAST "DRI_SWRast" +#define __DRI_SWRAST_VERSION 1 + +struct __DRIswrastExtensionRec { + __DRIextension base; + + __DRIscreen *(*createNewScreen)(int screen, + const __DRIextension **extensions, + const __DRIconfig ***driver_configs, + void *loaderPrivate); + + __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, + const __DRIconfig *config, + void *loaderPrivate); +}; + +/** + * DRI2 Loader extension. + */ +#define __DRI_BUFFER_FRONT_LEFT 0 +#define __DRI_BUFFER_BACK_LEFT 1 +#define __DRI_BUFFER_FRONT_RIGHT 2 +#define __DRI_BUFFER_BACK_RIGHT 3 +#define __DRI_BUFFER_DEPTH 4 +#define __DRI_BUFFER_STENCIL 5 +#define __DRI_BUFFER_ACCUM 6 +#define __DRI_BUFFER_FAKE_FRONT_LEFT 7 +#define __DRI_BUFFER_FAKE_FRONT_RIGHT 8 +#define __DRI_BUFFER_DEPTH_STENCIL 9 /**< Only available with DRI2 1.1 */ + +struct __DRIbufferRec { + unsigned int attachment; + unsigned int name; + unsigned int pitch; + unsigned int cpp; + unsigned int flags; +}; + +#define __DRI_DRI2_LOADER "DRI_DRI2Loader" +#define __DRI_DRI2_LOADER_VERSION 3 +struct __DRIdri2LoaderExtensionRec { + __DRIextension base; + + __DRIbuffer *(*getBuffers)(__DRIdrawable *driDrawable, + int *width, int *height, + unsigned int *attachments, int count, + int *out_count, void *loaderPrivate); + + /** + * Flush pending front-buffer rendering + * + * Any rendering that has been performed to the + * \c __DRI_BUFFER_FAKE_FRONT_LEFT will be flushed to the + * \c __DRI_BUFFER_FRONT_LEFT. + * + * \param driDrawable Drawable whose front-buffer is to be flushed + * \param loaderPrivate Loader's private data that was previously passed + * into __DRIdri2ExtensionRec::createNewDrawable + */ + void (*flushFrontBuffer)(__DRIdrawable *driDrawable, void *loaderPrivate); + + + /** + * Get list of buffers from the server + * + * Gets a list of buffer for the specified set of attachments. Unlike + * \c ::getBuffers, this function takes a list of attachments paired with + * opaque \c unsigned \c int value describing the format of the buffer. + * It is the responsibility of the caller to know what the service that + * allocates the buffers will expect to receive for the format. + * + * \param driDrawable Drawable whose buffers are being queried. + * \param width Output where the width of the buffers is stored. + * \param height Output where the height of the buffers is stored. + * \param attachments List of pairs of attachment ID and opaque format + * requested for the drawable. + * \param count Number of attachment / format pairs stored in + * \c attachments. + * \param loaderPrivate Loader's private data that was previously passed + * into __DRIdri2ExtensionRec::createNewDrawable. + */ + __DRIbuffer *(*getBuffersWithFormat)(__DRIdrawable *driDrawable, + int *width, int *height, + unsigned int *attachments, int count, + int *out_count, void *loaderPrivate); +}; + +/** + * This extension provides alternative screen, drawable and context + * constructors for DRI2. + */ +#define __DRI_DRI2 "DRI_DRI2" +#define __DRI_DRI2_VERSION 1 + +struct __DRIdri2ExtensionRec { + __DRIextension base; + + __DRIscreen *(*createNewScreen)(int screen, int fd, + const __DRIextension **extensions, + const __DRIconfig ***driver_configs, + void *loaderPrivate); + + __DRIdrawable *(*createNewDrawable)(__DRIscreen *screen, + const __DRIconfig *config, + void *loaderPrivate); + + __DRIcontext *(*createNewContext)(__DRIscreen *screen, + const __DRIconfig *config, + __DRIcontext *shared, + void *loaderPrivate); + +}; + +#endif Added: haiku/branches/components/gallium3d/headers/private/opengl/GL/internal/sarea.h =================================================================== --- haiku/branches/components/gallium3d/headers/private/opengl/GL/internal/sarea.h 2009-09-12 10:13:42 UTC (rev 33087) +++ haiku/branches/components/gallium3d/headers/private/opengl/GL/internal/sarea.h 2009-09-12 11:09:08 UTC (rev 33088) @@ -0,0 +1,92 @@ +/** + * \file sarea.h + * SAREA definitions. + * + * \author Kevin E. Martin + * \author Jens Owen + * \author Rickard E. (Rik) Faith + */ + +/* + * Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. + * Copyright 2000 VA Linux Systems, Inc. + * All Rights Reserved. + * + * 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, sub license, 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 (including the + * next paragraph) 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 NON-INFRINGEMENT. + * IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. + */ + + +#ifndef _SAREA_H_ +#define _SAREA_H_ + +#include "xf86drm.h" + +/* SAREA area needs to be at least a page */ +#if defined(__alpha__) +#define SAREA_MAX 0x2000 +#elif defined(__ia64__) +#define SAREA_MAX 0x10000 /* 64kB */ +#else +/* Intel 830M driver needs at least 8k SAREA */ +#define SAREA_MAX 0x2000 +#endif + +#define SAREA_MAX_DRAWABLES 256 + +#define SAREA_DRAWABLE_CLAIMED_ENTRY 0x80000000 + +/** + * SAREA per drawable information. + * + * \sa _XF86DRISAREA. + */ +typedef struct _XF86DRISAREADrawable { + unsigned int stamp; + unsigned int flags; +} XF86DRISAREADrawableRec, *XF86DRISAREADrawablePtr; + +/** + * SAREA frame information. + * + * \sa _XF86DRISAREA. + */ +typedef struct _XF86DRISAREAFrame { + unsigned int x; + unsigned int y; + unsigned int width; + unsigned int height; + unsigned int fullscreen; +} XF86DRISAREAFrameRec, *XF86DRISAREAFramePtr; + +/** + * SAREA definition. + */ +typedef struct _XF86DRISAREA { + /** first thing is always the DRM locking structure */ + drmLock lock; + /** \todo Use readers/writer lock for drawable_lock */ + drmLock drawable_lock; + XF86DRISAREADrawableRec drawableTable[SAREA_MAX_DRAWABLES]; + XF86DRISAREAFrameRec frame; + drm_context_t dummy_context; +} XF86DRISAREARec, *XF86DRISAREAPtr; + +#endif Modified: haiku/branches/components/gallium3d/src/kits/opengl/mesa/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/mesa/Jamfile 2009-09-12 10:13:42 UTC (rev 33087) +++ haiku/branches/components/gallium3d/src/kits/opengl/mesa/Jamfile 2009-09-12 11:09:08 UTC (rev 33088) @@ -11,11 +11,14 @@ DEBUG = 0 ; UsePrivateHeaders opengl ; +UseLibraryHeaders drm expat ; +UseHeaders [ FDirName $(SUBDIR) drivers dri common ] ; UseHeaders [ FDirName $(SUBDIR) main ] ; UseHeaders [ FDirName $(SUBDIR) glapi ] ; UseHeaders [ FDirName $(SUBDIR) gallium auxiliary ] ; UseHeaders [ FDirName $(SUBDIR) gallium include ] ; +UseHeaders [ FDirName $(SUBDIR) gallium state_trackers dri ] ; UseHeaders [ FDirName $(SUBDIR) math ] ; UseHeaders [ FDirName $(SUBDIR) tnl ] ; UseHeaders [ FDirName $(SUBDIR) shader ] ; @@ -26,8 +29,11 @@ UseHeaders [ FDirName $(SUBDIR) swrast_setup ] ; UseHeaders [ FDirName $(SUBDIR) vbo ] ; UseHeaders [ FDirName $(SUBDIR) vf ] ; +UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ; +UseHeaders [ FDirName $(HAIKU_TOP) src libs drm ] : true ; SEARCH_SOURCE += [ FDirName $(SUBDIR) drivers common ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) drivers dri common ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) glapi ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) main ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) math ] ; @@ -50,6 +56,7 @@ SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium auxiliary tgsi ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium auxiliary translate ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium auxiliary util ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium state_trackers dri ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) $(TARGET_ARCH) ] ; UsePublicObjectHeaders gen_matypes : opengl ; @@ -71,25 +78,23 @@ $(2) > $(1) ; } +local defines ; +defines = BEOS_THREADS GNU_ASSEMBLER HAVE_POSIX_MEMALIGN IN_DRI_DRIVER ; -{ - local defines ; - defines = BEOS_THREADS GNU_ASSEMBLER HAVE_POSIX_MEMALIGN ; +if $(TARGET_ARCH) = x86 { + 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 ; +} else if $(TARGET_ARCH) = sparc { + defines += USE_SPARC_ASM ; +} - if $(TARGET_ARCH) = x86 { - 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 ; - } else if $(TARGET_ARCH) = sparc { - defines += USE_SPARC_ASM ; - } +defines = [ FDefines $(defines) ] ; +SubDirCcFlags $(defines) ; +SubDirC++Flags $(defines) ; [... truncated: 19772 lines follow ...] From aljen at mail.berlios.de Sat Sep 12 13:16:56 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 13:16:56 +0200 Subject: [Haiku-commits] r33089 - in haiku/branches/components/gallium3d/src/add-ons/opengl: . i915 Message-ID: <200909121116.n8CBGuBc006068@sheep.berlios.de> Author: aljen Date: 2009-09-12 13:16:34 +0200 (Sat, 12 Sep 2009) New Revision: 33089 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33089&view=rev Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_batch.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_blit.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_blit.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_buffer.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_buffer.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_clear.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_context.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_context.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_debug.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_debug.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_debug_fp.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_flush.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_fpc.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_fpc_emit.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_fpc_translate.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_prim_emit.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_prim_vbuf.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_reg.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_screen.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_screen.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_derived.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_dynamic.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_emit.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_immediate.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_inlines.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_sampler.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_surface.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_texture.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_texture.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/intel_batchbuffer.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/intel_winsys.h Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/Jamfile Log: Added gallium3d i915 driver (not working yet :) ) Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/Jamfile 2009-09-12 11:09:08 UTC (rev 33088) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/Jamfile 2009-09-12 11:16:34 UTC (rev 33089) @@ -1,3 +1,4 @@ SubDir HAIKU_TOP src add-ons opengl ; -SubInclude HAIKU_TOP src add-ons opengl softpipe ; \ No newline at end of file +SubInclude HAIKU_TOP src add-ons opengl i915 ; +SubInclude HAIKU_TOP src add-ons opengl softpipe ; Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile 2009-09-12 11:09:08 UTC (rev 33088) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile 2009-09-12 11:16:34 UTC (rev 33089) @@ -0,0 +1,51 @@ +SubDir HAIKU_TOP src add-ons opengl i915 ; + +local defines ; +defines = BEOS_THREADS GNU_ASSEMBLER ; + +if $(TARGET_ARCH) = x86 { + 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 ; +} + +SubDirC++Flags [ FDefines $(defines) ] ; + +UsePrivateHeaders interface opengl ; + +UseHeaders [ FDirName $(HAIKU_TOP) src add-ons opengl trace ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl hgl ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa main ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa gallium include ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa gallium auxiliary ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa glapi ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa tnl ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa x86 ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa ppc ] ; + +Addon i915 : + i915_blit.c + i915_buffer.c + i915_clear.c + i915_context.c + i915_debug.c + i915_debug_fp.c + i915_flush.c + i915_fpc_emit.c + i915_fpc_translate.c + i915_prim_emit.c + i915_prim_vbuf.c + i915_screen.c + i915_state.c + i915_state_derived.c + i915_state_dynamic.c + i915_state_emit.c + i915_state_immediate.c + i915_state_sampler.c + i915_surface.c + i915_texture.c + : libGL.so libmesa.a be $(TARGET_LIBSUPC++) +; + Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_batch.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_batch.h 2009-09-12 11:09:08 UTC (rev 33088) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_batch.h 2009-09-12 11:16:34 UTC (rev 33089) @@ -0,0 +1,47 @@ +/************************************************************************** + * + * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * 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, sub license, 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 (including the + * next paragraph) 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 NON-INFRINGEMENT. + * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS 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. + * + **************************************************************************/ + +#ifndef I915_BATCH_H +#define I915_BATCH_H + +#include "intel_batchbuffer.h" + +#define BEGIN_BATCH(dwords, relocs) \ + (intel_batchbuffer_check(i915->batch, dwords, relocs)) + +#define OUT_BATCH(dword) \ + intel_batchbuffer_dword(i915->batch, dword) + +#define OUT_RELOC(buf, usage, offset) \ + intel_batchbuffer_reloc(i915->batch, buf, usage, offset) + +#define FLUSH_BATCH(fence) do { \ + intel_batchbuffer_flush(i915->batch, fence); \ + i915->hardware_dirty = ~0; \ +} while (0) + +#endif Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_blit.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_blit.c 2009-09-12 11:09:08 UTC (rev 33088) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_blit.c 2009-09-12 11:16:34 UTC (rev 33089) @@ -0,0 +1,151 @@ +/************************************************************************** + * + * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * 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, sub license, 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 (including the + * next paragraph) 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 NON-INFRINGEMENT. + * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS 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. + * + **************************************************************************/ + + +#include "i915_blit.h" +#include "i915_reg.h" +#include "i915_batch.h" +#include "i915_debug.h" + +#define FILE_DEBUG_FLAG DEBUG_BLIT + +void +i915_fill_blit(struct i915_context *i915, + unsigned cpp, + unsigned short dst_pitch, + struct intel_buffer *dst_buffer, + unsigned dst_offset, + short x, short y, + short w, short h, + unsigned color) +{ + unsigned BR13, CMD; + + + I915_DBG(i915, + "%s dst:buf(%p)/%d+%d %d,%d sz:%dx%d\n", + __FUNCTION__, + dst_buffer, dst_pitch, dst_offset, x, y, w, h); + + switch (cpp) { + case 1: + case 2: + case 3: + BR13 = (((int) dst_pitch) & 0xffff) | + (0xF0 << 16) | (1 << 24); + CMD = XY_COLOR_BLT_CMD; + break; + case 4: + BR13 = (((int) dst_pitch) & 0xffff) | + (0xF0 << 16) | (1 << 24) | (1 << 25); + CMD = (XY_COLOR_BLT_CMD | XY_COLOR_BLT_WRITE_ALPHA | + XY_COLOR_BLT_WRITE_RGB); + break; + default: + return; + } + + if (!BEGIN_BATCH(6, 1)) { + FLUSH_BATCH(NULL); + assert(BEGIN_BATCH(6, 1)); + } + OUT_BATCH(CMD); + OUT_BATCH(BR13); + OUT_BATCH((y << 16) | x); + OUT_BATCH(((y + h) << 16) | (x + w)); + OUT_RELOC(dst_buffer, INTEL_USAGE_2D_TARGET, dst_offset); + OUT_BATCH(color); + FLUSH_BATCH(NULL); +} + +void +i915_copy_blit(struct i915_context *i915, + unsigned do_flip, + unsigned cpp, + unsigned short src_pitch, + struct intel_buffer *src_buffer, + unsigned src_offset, + unsigned short dst_pitch, + struct intel_buffer *dst_buffer, + unsigned dst_offset, + short src_x, short src_y, + short dst_x, short dst_y, + short w, short h) +{ + unsigned CMD, BR13; + int dst_y2 = dst_y + h; + int dst_x2 = dst_x + w; + + + I915_DBG(i915, + "%s src:buf(%p)/%d+%d %d,%d dst:buf(%p)/%d+%d %d,%d sz:%dx%d\n", + __FUNCTION__, + src_buffer, src_pitch, src_offset, src_x, src_y, + dst_buffer, dst_pitch, dst_offset, dst_x, dst_y, w, h); + + switch (cpp) { + case 1: + case 2: + case 3: + BR13 = (((int) dst_pitch) & 0xffff) | + (0xCC << 16) | (1 << 24); + CMD = XY_SRC_COPY_BLT_CMD; + break; + case 4: + BR13 = (((int) dst_pitch) & 0xffff) | + (0xCC << 16) | (1 << 24) | (1 << 25); + CMD = (XY_SRC_COPY_BLT_CMD | XY_SRC_COPY_BLT_WRITE_ALPHA | + XY_SRC_COPY_BLT_WRITE_RGB); + break; + default: + return; + } + + if (dst_y2 < dst_y || dst_x2 < dst_x) { + return; + } + + /* Hardware can handle negative pitches but loses the ability to do + * proper overlapping blits in that case. We don't really have a + * need for either at this stage. + */ + assert (dst_pitch > 0 && src_pitch > 0); + + if (!BEGIN_BATCH(8, 2)) { + FLUSH_BATCH(NULL); + assert(BEGIN_BATCH(8, 2)); + } + OUT_BATCH(CMD); + OUT_BATCH(BR13); + OUT_BATCH((dst_y << 16) | dst_x); + OUT_BATCH((dst_y2 << 16) | dst_x2); + OUT_RELOC(dst_buffer, INTEL_USAGE_2D_TARGET, dst_offset); + OUT_BATCH((src_y << 16) | src_x); + OUT_BATCH(((int) src_pitch & 0xffff)); + OUT_RELOC(src_buffer, INTEL_USAGE_2D_SOURCE, src_offset); + FLUSH_BATCH(NULL); +} Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_blit.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_blit.h 2009-09-12 11:09:08 UTC (rev 33088) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_blit.h 2009-09-12 11:16:34 UTC (rev 33089) @@ -0,0 +1,55 @@ +/************************************************************************** + * + * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * 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, sub license, 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 (including the + * next paragraph) 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 NON-INFRINGEMENT. + * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS 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. + * + **************************************************************************/ + +#ifndef I915_BLIT_H +#define I915_BLIT_H + +#include "i915_context.h" + +extern void i915_copy_blit(struct i915_context *i915, + unsigned do_flip, + unsigned cpp, + unsigned short src_pitch, + struct intel_buffer *src_buffer, + unsigned src_offset, + unsigned short dst_pitch, + struct intel_buffer *dst_buffer, + unsigned dst_offset, + short srcx, short srcy, + short dstx, short dsty, + short w, short h); + +extern void i915_fill_blit(struct i915_context *i915, + unsigned cpp, + unsigned short dst_pitch, + struct intel_buffer *dst_buffer, + unsigned dst_offset, + short x, short y, + short w, short h, unsigned color); + + +#endif Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_buffer.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_buffer.c 2009-09-12 11:09:08 UTC (rev 33088) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_buffer.c 2009-09-12 11:16:34 UTC (rev 33089) @@ -0,0 +1,136 @@ +/************************************************************************** + * + * Copyright ? 2009 Jakob Bornecrantz + * + * 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 (including the next + * paragraph) 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. + * + **************************************************************************/ + +#include "util/u_memory.h" +#include "i915_screen.h" +#include "i915_buffer.h" + +struct intel_buffer; + +struct i915_buffer +{ + struct pipe_buffer base; + + struct intel_buffer *ibuf; /** hw buffer */ + + void *data; /**< user and malloc data */ + boolean own; /**< we own the data incase of malloc */ +}; + +static INLINE struct i915_buffer * +i915_buffer(struct pipe_buffer *buffer) +{ + return (struct i915_buffer *)buffer; +} + +static struct pipe_buffer * +i915_buffer_create(struct pipe_screen *screen, + unsigned alignment, + unsigned usage, + unsigned size) +{ + struct i915_buffer *buf = CALLOC_STRUCT(i915_buffer); + + if (!buf) + return NULL; + + pipe_reference_init(&buf->base.reference, 1); + buf->base.alignment = alignment; + buf->base.screen = screen; + buf->base.usage = usage; + buf->base.size = size; + buf->data = MALLOC(size); + buf->own = TRUE; + + if (!buf->data) + goto err; + + return &buf->base; + +err: + FREE(buf); + return NULL; +} + +static struct pipe_buffer * +i915_user_buffer_create(struct pipe_screen *screen, + void *ptr, + unsigned bytes) +{ + struct i915_buffer *buf = CALLOC_STRUCT(i915_buffer); + + if (!buf) + return NULL; + + pipe_reference_init(&buf->base.reference, 1); + buf->base.alignment = 0; + buf->base.screen = screen; + buf->base.usage = 0; + buf->base.size = bytes; + buf->data = ptr; + buf->own = FALSE; + + return &buf->base; +} + +static void * +i915_buffer_map(struct pipe_screen *screen, + struct pipe_buffer *buffer, + unsigned usage) +{ + struct i915_buffer *buf = i915_buffer(buffer); + assert(!buf->ibuf); + return buf->data; +} + +static void +i915_buffer_unmap(struct pipe_screen *screen, + struct pipe_buffer *buffer) +{ + struct i915_buffer *buf = i915_buffer(buffer); + assert(!buf->ibuf); +} + +static void +i915_buffer_destroy(struct pipe_buffer *buffer) +{ + struct i915_buffer *buf = i915_buffer(buffer); + assert(!buf->ibuf); + + if (buf->own) + FREE(buf->data); + FREE(buf); +} + +void i915_init_screen_buffer_functions(struct i915_screen *screen) +{ + screen->base.buffer_create = i915_buffer_create; + screen->base.user_buffer_create = i915_user_buffer_create; + screen->base.buffer_map = i915_buffer_map; + screen->base.buffer_map_range = NULL; + screen->base.buffer_flush_mapped_range = NULL; + screen->base.buffer_unmap = i915_buffer_unmap; + screen->base.buffer_destroy = i915_buffer_destroy; +} Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_buffer.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_buffer.h 2009-09-12 11:09:08 UTC (rev 33088) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_buffer.h 2009-09-12 11:16:34 UTC (rev 33089) @@ -0,0 +1,31 @@ +/************************************************************************** + * + * Copyright ? 2009 Jakob Bornecrantz + * + * 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 (including the next + * paragraph) 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. + * + **************************************************************************/ + +#ifndef I915_BUFFER_H +#define I915_BUFFER_H + +void i915_init_screen_buffer_functions(struct i915_screen *screen); + +#endif Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_clear.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_clear.c 2009-09-12 11:09:08 UTC (rev 33088) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_clear.c 2009-09-12 11:16:34 UTC (rev 33089) @@ -0,0 +1,48 @@ +/************************************************************************** + * + * Copyright 2007 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * 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, sub license, 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 (including the + * next paragraph) 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 NON-INFRINGEMENT. + * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS 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. + * + **************************************************************************/ + +/* Authors: + * Brian Paul + */ + + +#include "util/u_clear.h" +#include "i915_context.h" +#include "i915_state.h" + + +/** + * Clear the given buffers to the specified values. + * No masking, no scissor (clear entire buffer). + */ +void +i915_clear(struct pipe_context *pipe, unsigned buffers, const float *rgba, + double depth, unsigned stencil) +{ + util_clear(pipe, &i915_context(pipe)->framebuffer, buffers, rgba, depth, + stencil); +} Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_context.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_context.c 2009-09-12 11:09:08 UTC (rev 33088) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_context.c 2009-09-12 11:16:34 UTC (rev 33089) @@ -0,0 +1,237 @@ +/************************************************************************** + * + * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * 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, sub license, 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 (including the + * next paragraph) 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 NON-INFRINGEMENT. + * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS 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. + * + **************************************************************************/ + +#include "i915_context.h" +#include "i915_state.h" +#include "i915_screen.h" +#include "i915_batch.h" +#include "i915_texture.h" +#include "i915_reg.h" + +#include "draw/draw_context.h" +#include "pipe/p_defines.h" +#include "pipe/internal/p_winsys_screen.h" +#include "pipe/p_inlines.h" +#include "util/u_memory.h" +#include "pipe/p_screen.h" + + +/* + * Draw functions + */ + + +static boolean +i915_draw_range_elements(struct pipe_context *pipe, + struct pipe_buffer *indexBuffer, + unsigned indexSize, + unsigned min_index, + unsigned max_index, + unsigned prim, unsigned start, unsigned count) +{ + struct i915_context *i915 = i915_context(pipe); + struct draw_context *draw = i915->draw; + unsigned i; + + if (i915->dirty) + i915_update_derived(i915); + + /* + * Map vertex buffers + */ + for (i = 0; i < i915->num_vertex_buffers; i++) { + void *buf = pipe_buffer_map(pipe->screen, i915->vertex_buffer[i].buffer, + PIPE_BUFFER_USAGE_CPU_READ); + draw_set_mapped_vertex_buffer(draw, i, buf); + } + + /* + * Map index buffer, if present + */ + if (indexBuffer) { + void *mapped_indexes = pipe_buffer_map(pipe->screen, indexBuffer, + PIPE_BUFFER_USAGE_CPU_READ); + draw_set_mapped_element_buffer_range(draw, indexSize, + min_index, + max_index, + mapped_indexes); + } else { + draw_set_mapped_element_buffer(draw, 0, NULL); + } + + + draw_set_mapped_constant_buffer(draw, + i915->current.constants[PIPE_SHADER_VERTEX], + (i915->current.num_user_constants[PIPE_SHADER_VERTEX] * + 4 * sizeof(float))); + + /* + * Do the drawing + */ + draw_arrays(i915->draw, prim, start, count); + + /* + * unmap vertex/index buffers + */ + for (i = 0; i < i915->num_vertex_buffers; i++) { + pipe_buffer_unmap(pipe->screen, i915->vertex_buffer[i].buffer); + draw_set_mapped_vertex_buffer(draw, i, NULL); + } + + if (indexBuffer) { + pipe_buffer_unmap(pipe->screen, indexBuffer); + draw_set_mapped_element_buffer_range(draw, 0, start, start + count - 1, NULL); + } + + return TRUE; +} + +static boolean +i915_draw_elements(struct pipe_context *pipe, + struct pipe_buffer *indexBuffer, + unsigned indexSize, + unsigned prim, unsigned start, unsigned count) +{ + return i915_draw_range_elements(pipe, indexBuffer, + indexSize, + 0, 0xffffffff, + prim, start, count); +} + +static boolean +i915_draw_arrays(struct pipe_context *pipe, + unsigned prim, unsigned start, unsigned count) +{ + return i915_draw_elements(pipe, NULL, 0, prim, start, count); +} + + +/* + * Is referenced functions + */ + + +static unsigned int +i915_is_texture_referenced(struct pipe_context *pipe, + struct pipe_texture *texture, + unsigned face, unsigned level) +{ + /** + * FIXME: Return the corrent result. We can't alays return referenced + * since it causes a double flush within the vbo module. + */ +#if 0 + return PIPE_REFERENCED_FOR_READ | PIPE_REFERENCED_FOR_WRITE; +#else + return 0; +#endif +} + +static unsigned int +i915_is_buffer_referenced(struct pipe_context *pipe, + struct pipe_buffer *buf) +{ + /** + * FIXME: Return the corrent result. We can't alays return referenced + * since it causes a double flush within the vbo module. + */ +#if 0 + return PIPE_REFERENCED_FOR_READ | PIPE_REFERENCED_FOR_WRITE; +#else + return 0; +#endif +} + + +/* + * Generic context functions + */ + + +static void i915_destroy(struct pipe_context *pipe) +{ + struct i915_context *i915 = i915_context(pipe); + + draw_destroy(i915->draw); + + if(i915->batch) + i915->iws->batchbuffer_destroy(i915->batch); + + FREE(i915); +} + +struct pipe_context * +i915_create_context(struct pipe_screen *screen) +{ + struct i915_context *i915; + + i915 = CALLOC_STRUCT(i915_context); + if (i915 == NULL) + return NULL; + + i915->iws = i915_screen(screen)->iws; + i915->base.winsys = NULL; + i915->base.screen = screen; + + i915->base.destroy = i915_destroy; + + i915->base.clear = i915_clear; + + i915->base.draw_arrays = i915_draw_arrays; + i915->base.draw_elements = i915_draw_elements; + i915->base.draw_range_elements = i915_draw_range_elements; + + i915->base.is_texture_referenced = i915_is_texture_referenced; + i915->base.is_buffer_referenced = i915_is_buffer_referenced; + + /* + * Create drawing context and plug our rendering stage into it. + */ + i915->draw = draw_create(); + assert(i915->draw); + if (!debug_get_bool_option("I915_NO_VBUF", FALSE)) { + draw_set_rasterize_stage(i915->draw, i915_draw_vbuf_stage(i915)); + } else { + draw_set_rasterize_stage(i915->draw, i915_draw_render_stage(i915)); + } + + i915_init_surface_functions(i915); + i915_init_state_functions(i915); + i915_init_flush_functions(i915); + + draw_install_aaline_stage(i915->draw, &i915->base); + draw_install_aapoint_stage(i915->draw, &i915->base); + + i915->dirty = ~0; + i915->hardware_dirty = ~0; + + /* Batch stream debugging is a bit hacked up at the moment: + */ + i915->batch = i915->iws->batchbuffer_create(i915->iws); + + return &i915->base; +} Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_context.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_context.h 2009-09-12 11:09:08 UTC (rev 33088) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_context.h 2009-09-12 11:16:34 UTC (rev 33089) @@ -0,0 +1,350 @@ + /************************************************************************** + * + * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas. + * All Rights Reserved. + * + * 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, sub license, 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 (including the + * next paragraph) 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 NON-INFRINGEMENT. + * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS 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. + * + **************************************************************************/ + +#ifndef I915_CONTEXT_H +#define I915_CONTEXT_H + + +#include "pipe/p_context.h" +#include "pipe/p_defines.h" +#include "pipe/p_state.h" + +#include "draw/draw_vertex.h" + +#include "tgsi/tgsi_scan.h" + + +struct intel_winsys; +struct intel_buffer; +struct intel_batchbuffer; + + +#define I915_TEX_UNITS 8 + +#define I915_DYNAMIC_MODES4 0 +#define I915_DYNAMIC_DEPTHSCALE_0 1 /* just the header */ +#define I915_DYNAMIC_DEPTHSCALE_1 2 +#define I915_DYNAMIC_IAB 3 +#define I915_DYNAMIC_BC_0 4 /* just the header */ +#define I915_DYNAMIC_BC_1 5 +#define I915_DYNAMIC_BFO_0 6 +#define I915_DYNAMIC_BFO_1 7 +#define I915_DYNAMIC_STP_0 8 +#define I915_DYNAMIC_STP_1 9 +#define I915_DYNAMIC_SC_ENA_0 10 +#define I915_DYNAMIC_SC_RECT_0 11 +#define I915_DYNAMIC_SC_RECT_1 12 +#define I915_DYNAMIC_SC_RECT_2 13 +#define I915_MAX_DYNAMIC 14 + + +#define I915_IMMEDIATE_S0 0 +#define I915_IMMEDIATE_S1 1 +#define I915_IMMEDIATE_S2 2 +#define I915_IMMEDIATE_S3 3 +#define I915_IMMEDIATE_S4 4 +#define I915_IMMEDIATE_S5 5 +#define I915_IMMEDIATE_S6 6 +#define I915_IMMEDIATE_S7 7 +#define I915_MAX_IMMEDIATE 8 + +/* These must mach the order of LI0_STATE_* bits, as they will be used + * to generate hardware packets: + */ +#define I915_CACHE_STATIC 0 +#define I915_CACHE_DYNAMIC 1 /* handled specially */ +#define I915_CACHE_SAMPLER 2 +#define I915_CACHE_MAP 3 +#define I915_CACHE_PROGRAM 4 +#define I915_CACHE_CONSTANTS 5 +#define I915_MAX_CACHE 6 + +#define I915_MAX_CONSTANT 32 + + +/** See constant_flags[] below */ +#define I915_CONSTFLAG_USER 0x1f + + +/** + * Subclass of pipe_shader_state + */ +struct i915_fragment_shader +{ + struct pipe_shader_state state; + + struct tgsi_shader_info info; + + uint *program; + uint program_len; + + /** + * constants introduced during translation. + * These are placed at the end of the constant buffer and grow toward + * the beginning (eg: slot 31, 30 29, ...) + * User-provided constants start at 0. + * This allows both types of constants to co-exist (until there's too many) + * and doesn't require regenerating/changing the fragment program to + * shuffle constants around. + */ + uint num_constants; + float constants[I915_MAX_CONSTANT][4]; + + /** + * Status of each constant + * if I915_CONSTFLAG_PARAM, the value must be taken from the corresponding + * slot of the user's constant buffer. (set by pipe->set_constant_buffer()) + * Else, the bitmask indicates which components are occupied by immediates. + */ + ubyte constant_flags[I915_MAX_CONSTANT]; +}; + + +struct i915_cache_context; + +/* Use to calculate differences between state emitted to hardware and + * current driver-calculated state. + */ +struct i915_state +{ + unsigned immediate[I915_MAX_IMMEDIATE]; + unsigned dynamic[I915_MAX_DYNAMIC]; + + float constants[PIPE_SHADER_TYPES][I915_MAX_CONSTANT][4]; + /** number of constants passed in through a constant buffer */ + uint num_user_constants[PIPE_SHADER_TYPES]; + + /* texture sampler state */ + unsigned sampler[I915_TEX_UNITS][3]; + unsigned sampler_enable_flags; + unsigned sampler_enable_nr; + + /* texture image buffers */ + unsigned texbuffer[I915_TEX_UNITS][2]; + + /** Describes the current hardware vertex layout */ + struct vertex_info vertex_info; + + unsigned id; /* track lost context events */ +}; + +struct i915_blend_state { + unsigned iab; + unsigned modes4; + unsigned LIS5; + unsigned LIS6; +}; + +struct i915_depth_stencil_state { + unsigned stencil_modes4; + unsigned bfo[2]; + unsigned stencil_LIS5; + unsigned depth_LIS6; +}; + +struct i915_rasterizer_state { + int light_twoside : 1; + unsigned st; + enum interp_mode color_interp; + + unsigned LIS4; + unsigned LIS7; + unsigned sc[1]; + + const struct pipe_rasterizer_state *templ; + [... truncated: 9605 lines follow ...] From aljen at mail.berlios.de Sat Sep 12 13:42:46 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 13:42:46 +0200 Subject: [Haiku-commits] r33090 - in haiku/branches/components/gallium3d/src/add-ons/opengl/i915: . gem Message-ID: <200909121142.n8CBgk1K010638@sheep.berlios.de> Author: aljen Date: 2009-09-12 13:42:43 +0200 (Sat, 12 Sep 2009) New Revision: 33090 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33090&view=rev Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_api.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_batchbuffer.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_buffer.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_fence.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_winsys.h Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile Log: Added Intel GEM Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile 2009-09-12 11:16:34 UTC (rev 33089) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile 2009-09-12 11:42:43 UTC (rev 33090) @@ -13,7 +13,9 @@ SubDirC++Flags [ FDefines $(defines) ] ; UsePrivateHeaders interface opengl ; +UseLibraryHeaders drm ; +UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ; UseHeaders [ FDirName $(HAIKU_TOP) src add-ons opengl trace ] ; UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl hgl ] ; UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa ] ; @@ -24,8 +26,21 @@ UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa tnl ] ; UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa x86 ] ; UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa ppc ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src libs drm intel ] : true ; +UseHeaders [ FDirName $(HAIKU_TOP) src libs drm ] : true ; +UseHeaders [ FDirName $(SUBDIR) gem ] : true ; +UseHeaders [ FDirName $(SUBDIR) ] : true ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) gem ] ; + Addon i915 : + # intel gem + intel_drm_api.c + intel_drm_batchbuffer.c + intel_drm_buffer.c + intel_drm_fence.c + + # driver i915_blit.c i915_buffer.c i915_clear.c @@ -46,6 +61,6 @@ i915_state_sampler.c i915_surface.c i915_texture.c - : libGL.so libmesa.a be $(TARGET_LIBSUPC++) + : libGL.so libmesa.a be libdrm_intel.so $(TARGET_LIBSUPC++) ; Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_api.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_api.c 2009-09-12 11:16:34 UTC (rev 33089) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_api.c 2009-09-12 11:42:43 UTC (rev 33090) @@ -0,0 +1,202 @@ + +#include "state_tracker/drm_api.h" + +#include "intel_drm_winsys.h" +#include "util/u_memory.h" + +#include "i915_context.h" +#include "i915_screen.h" + + +/* + * Helper functions + */ + + +static void +intel_drm_get_device_id(unsigned int *device_id) +{ + char path[512]; + FILE *file; + void *shutup_gcc; + + /* + * FIXME: Fix this up to use a drm ioctl or whatever. + */ + + snprintf(path, sizeof(path), "/sys/class/drm/card0/device/device"); + file = fopen(path, "r"); + if (!file) { + return; + } + + shutup_gcc = fgets(path, sizeof(path), file); + sscanf(path, "%x", device_id); + fclose(file); +} + +static struct intel_buffer * +intel_drm_buffer_from_handle(struct intel_drm_winsys *idws, + const char* name, unsigned handle) +{ + struct intel_drm_buffer *buf = CALLOC_STRUCT(intel_drm_buffer); + + if (!buf) + return NULL; + + buf->magic = 0xDEAD1337; + buf->bo = drm_intel_bo_gem_create_from_name(idws->pools.gem, name, handle); + buf->flinked = TRUE; + buf->flink = handle; + + if (!buf->bo) + goto err; + + return (struct intel_buffer *)buf; + +err: + FREE(buf); + return NULL; +} + + +/* + * Exported functions + */ + + +static struct pipe_texture * +intel_drm_texture_from_shared_handle(struct drm_api *api, + struct pipe_screen *screen, + struct pipe_texture *templ, + const char* name, + unsigned pitch, + unsigned handle) +{ + struct intel_drm_winsys *idws = intel_drm_winsys(i915_screen(screen)->iws); + struct intel_buffer *buffer; + + buffer = intel_drm_buffer_from_handle(idws, name, handle); + if (!buffer) + return NULL; + + return i915_texture_blanket_intel(screen, templ, pitch, buffer); +} + +static boolean +intel_drm_shared_handle_from_texture(struct drm_api *api, + struct pipe_screen *screen, + struct pipe_texture *texture, + unsigned *pitch, + unsigned *handle) +{ + struct intel_drm_buffer *buf = NULL; + struct intel_buffer *buffer = NULL; + if (!i915_get_texture_buffer_intel(texture, &buffer, pitch)) + return FALSE; + + buf = intel_drm_buffer(buffer); + if (!buf->flinked) { + if (drm_intel_bo_flink(buf->bo, &buf->flink)) + return FALSE; + buf->flinked = TRUE; + } + + *handle = buf->flink; + + return TRUE; +} + +static boolean +intel_drm_local_handle_from_texture(struct drm_api *api, + struct pipe_screen *screen, + struct pipe_texture *texture, + unsigned *pitch, + unsigned *handle) +{ + struct intel_buffer *buffer = NULL; + if (!i915_get_texture_buffer_intel(texture, &buffer, pitch)) + return FALSE; + + *handle = intel_drm_buffer(buffer)->bo->handle; + + return TRUE; +} + +static void +intel_drm_winsys_destroy(struct intel_winsys *iws) +{ + struct intel_drm_winsys *idws = intel_drm_winsys(iws); + + drm_intel_bufmgr_destroy(idws->pools.gem); + + FREE(idws); +} + +static struct pipe_screen * +intel_drm_create_screen(struct drm_api *api, int drmFD, + struct drm_create_screen_arg *arg) +{ + struct intel_drm_winsys *idws; + unsigned int deviceID; + + if (arg != NULL) { + switch(arg->mode) { + case DRM_CREATE_NORMAL: + break; + default: + return NULL; + } + } + + idws = CALLOC_STRUCT(intel_drm_winsys); + if (!idws) + return NULL; + + intel_drm_get_device_id(&deviceID); + + intel_drm_winsys_init_batchbuffer_functions(idws); + intel_drm_winsys_init_buffer_functions(idws); + intel_drm_winsys_init_fence_functions(idws); + + idws->fd = drmFD; + idws->id = deviceID; + idws->max_batch_size = 16 * 4096; + + idws->base.destroy = intel_drm_winsys_destroy; + + idws->pools.gem = drm_intel_bufmgr_gem_init(idws->fd, idws->max_batch_size); + + idws->softpipe = FALSE; + idws->dump_cmd = debug_get_bool_option("INTEL_DUMP_CMD", FALSE); + + return i915_create_screen(&idws->base, deviceID); +} + +static struct pipe_context * +intel_drm_create_context(struct drm_api *api, struct pipe_screen *screen) +{ + return i915_create_context(screen); +} + +static void +destroy(struct drm_api *api) +{ + +} + +struct drm_api intel_drm_api = +{ + .create_context = intel_drm_create_context, + .create_screen = intel_drm_create_screen, + .texture_from_shared_handle = intel_drm_texture_from_shared_handle, + .shared_handle_from_texture = intel_drm_shared_handle_from_texture, + .local_handle_from_texture = intel_drm_local_handle_from_texture, + .destroy = destroy, +}; + +struct drm_api * +drm_api_create() +{ + return &intel_drm_api; +} Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_batchbuffer.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_batchbuffer.c 2009-09-12 11:16:34 UTC (rev 33089) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_batchbuffer.c 2009-09-12 11:42:43 UTC (rev 33090) @@ -0,0 +1,229 @@ + +#include "intel_drm_winsys.h" +#include "util/u_memory.h" + +#include "i915_drm.h" + +#define BATCH_RESERVED 16 + +#define INTEL_DEFAULT_RELOCS 100 +#define INTEL_MAX_RELOCS 400 + +#define INTEL_BATCH_NO_CLIPRECTS 0x1 +#define INTEL_BATCH_CLIPRECTS 0x2 + +#undef INTEL_RUN_SYNC +#undef INTEL_MAP_BATCHBUFFER + +struct intel_drm_batchbuffer +{ + struct intel_batchbuffer base; + + size_t actual_size; + + drm_intel_bo *bo; +}; + +static INLINE struct intel_drm_batchbuffer * +intel_drm_batchbuffer(struct intel_batchbuffer *batch) +{ + return (struct intel_drm_batchbuffer *)batch; +} + +static void +intel_drm_batchbuffer_reset(struct intel_drm_batchbuffer *batch) +{ + struct intel_drm_winsys *idws = intel_drm_winsys(batch->base.iws); + + if (batch->bo) + drm_intel_bo_unreference(batch->bo); + batch->bo = drm_intel_bo_alloc(idws->pools.gem, + "gallium3d_batchbuffer", + batch->actual_size, + 4096); + +#ifdef INTEL_MAP_BATCHBUFFER + drm_intel_bo_map(batch->bo, TRUE); + batch->base.map = batch->bo->virtual; +#endif + + memset(batch->base.map, 0, batch->actual_size); + batch->base.ptr = batch->base.map; + batch->base.size = batch->actual_size - BATCH_RESERVED; + batch->base.relocs = 0; +} + +static struct intel_batchbuffer * +intel_drm_batchbuffer_create(struct intel_winsys *iws) +{ + struct intel_drm_winsys *idws = intel_drm_winsys(iws); + struct intel_drm_batchbuffer *batch = CALLOC_STRUCT(intel_drm_batchbuffer); + + batch->actual_size = idws->max_batch_size; + +#ifdef INTEL_MAP_BATCHBUFFER + batch->base.map = NULL; +#else + batch->base.map = MALLOC(batch->actual_size); +#endif + batch->base.ptr = NULL; + batch->base.size = 0; + + batch->base.relocs = 0; + batch->base.max_relocs = 300;/*INTEL_DEFAULT_RELOCS;*/ + + batch->base.iws = iws; + + intel_drm_batchbuffer_reset(batch); + + return &batch->base; +} + +static int +intel_drm_batchbuffer_reloc(struct intel_batchbuffer *ibatch, + struct intel_buffer *buffer, + enum intel_buffer_usage usage, + unsigned pre_add) +{ + struct intel_drm_batchbuffer *batch = intel_drm_batchbuffer(ibatch); + unsigned write_domain = 0; + unsigned read_domain = 0; + unsigned offset; + int ret = 0; + + assert(batch->base.relocs < batch->base.max_relocs); + + if (usage == INTEL_USAGE_SAMPLER) { + write_domain = 0; + read_domain = I915_GEM_DOMAIN_SAMPLER; + + } else if (usage == INTEL_USAGE_RENDER) { + write_domain = I915_GEM_DOMAIN_RENDER; + read_domain = I915_GEM_DOMAIN_RENDER; + + } else if (usage == INTEL_USAGE_2D_TARGET) { + write_domain = I915_GEM_DOMAIN_RENDER; + read_domain = I915_GEM_DOMAIN_RENDER; + + } else if (usage == INTEL_USAGE_2D_SOURCE) { + write_domain = 0; + read_domain = I915_GEM_DOMAIN_RENDER; + + } else if (usage == INTEL_USAGE_VERTEX) { + write_domain = 0; + read_domain = I915_GEM_DOMAIN_VERTEX; + + } else { + assert(0); + return -1; + } + + offset = (unsigned)(batch->base.ptr - batch->base.map); + + ret = drm_intel_bo_emit_reloc(batch->bo, offset, + intel_bo(buffer), pre_add, + read_domain, + write_domain); + + ((uint32_t*)batch->base.ptr)[0] = intel_bo(buffer)->offset + pre_add; + batch->base.ptr += 4; + + if (!ret) + batch->base.relocs++; + + return ret; +} + +static void +intel_drm_batchbuffer_flush(struct intel_batchbuffer *ibatch, + struct pipe_fence_handle **fence) +{ + struct intel_drm_batchbuffer *batch = intel_drm_batchbuffer(ibatch); + unsigned used = 0; + int ret = 0; + int i; + + assert(intel_batchbuffer_space(ibatch) >= 0); + + used = batch->base.ptr - batch->base.map; + assert((used & 3) == 0); + + if (used & 4) { + // MI_FLUSH | FLUSH_MAP_CACHE; + intel_batchbuffer_dword(ibatch, (0x0<<29)|(0x4<<23)|(1<<0)); + // MI_NOOP + intel_batchbuffer_dword(ibatch, (0x0<<29)|(0x0<<23)); + // MI_BATCH_BUFFER_END; + intel_batchbuffer_dword(ibatch, (0x0<<29)|(0xA<<23)); + } else { + //MI_FLUSH | FLUSH_MAP_CACHE; + intel_batchbuffer_dword(ibatch, (0x0<<29)|(0x4<<23)|(1<<0)); + // MI_BATCH_BUFFER_END; + intel_batchbuffer_dword(ibatch, (0x0<<29)|(0xA<<23)); + } + + used = batch->base.ptr - batch->base.map; + +#ifdef INTEL_MAP_BATCHBUFFER + drm_intel_bo_unmap(batch->bo); +#else + drm_intel_bo_subdata(batch->bo, 0, used, batch->base.map); +#endif + + /* Do the sending to HW */ + ret = drm_intel_bo_exec(batch->bo, used, NULL, 0, 0); + assert(ret == 0); + + if (intel_drm_winsys(ibatch->iws)->dump_cmd) { + unsigned *ptr; + drm_intel_bo_map(batch->bo, FALSE); + ptr = (unsigned*)batch->bo->virtual; + + debug_printf("%s:\n", __func__); + for (i = 0; i < used / 4; i++, ptr++) { + debug_printf("\t%08x: %08x\n", i*4, *ptr); + } + + drm_intel_bo_unmap(batch->bo); + } else { +#ifdef INTEL_RUN_SYNC + drm_intel_bo_map(batch->bo, FALSE); + drm_intel_bo_unmap(batch->bo); +#endif + } + + if (fence) { + ibatch->iws->fence_reference(ibatch->iws, fence, NULL); + +#ifdef INTEL_RUN_SYNC + /* we run synced to GPU so just pass null */ + (*fence) = intel_drm_fence_create(NULL); +#else + (*fence) = intel_drm_fence_create(batch->bo); +#endif + } + + intel_drm_batchbuffer_reset(batch); +} + +static void +intel_drm_batchbuffer_destroy(struct intel_batchbuffer *ibatch) +{ + struct intel_drm_batchbuffer *batch = intel_drm_batchbuffer(ibatch); + + if (batch->bo) + drm_intel_bo_unreference(batch->bo); + +#ifndef INTEL_MAP_BATCHBUFFER + FREE(batch->base.map); +#endif + FREE(batch); +} + +void intel_drm_winsys_init_batchbuffer_functions(struct intel_drm_winsys *idws) +{ + idws->base.batchbuffer_create = intel_drm_batchbuffer_create; + idws->base.batchbuffer_reloc = intel_drm_batchbuffer_reloc; + idws->base.batchbuffer_flush = intel_drm_batchbuffer_flush; + idws->base.batchbuffer_destroy = intel_drm_batchbuffer_destroy; +} Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_buffer.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_buffer.c 2009-09-12 11:16:34 UTC (rev 33089) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_buffer.c 2009-09-12 11:42:43 UTC (rev 33090) @@ -0,0 +1,148 @@ + +#include "intel_drm_winsys.h" +#include "util/u_memory.h" + +#include "i915_drm.h" + +static struct intel_buffer * +intel_drm_buffer_create(struct intel_winsys *iws, + unsigned size, unsigned alignment, + enum intel_buffer_type type) +{ + struct intel_drm_buffer *buf = CALLOC_STRUCT(intel_drm_buffer); + struct intel_drm_winsys *idws = intel_drm_winsys(iws); + drm_intel_bufmgr *pool; + char *name; + + if (!buf) + return NULL; + + buf->magic = 0xDEAD1337; + buf->flinked = FALSE; + buf->flink = 0; + buf->map_gtt = FALSE; + + if (type == INTEL_NEW_TEXTURE) { + name = "gallium3d_texture"; + pool = idws->pools.gem; + } else if (type == INTEL_NEW_VERTEX) { + name = "gallium3d_vertex"; + pool = idws->pools.gem; + buf->map_gtt = TRUE; + } else if (type == INTEL_NEW_SCANOUT) { + name = "gallium3d_scanout"; + pool = idws->pools.gem; + buf->map_gtt = TRUE; + } else { + assert(0); + name = "gallium3d_unknown"; + pool = idws->pools.gem; + } + + buf->bo = drm_intel_bo_alloc(pool, name, size, alignment); + + if (!buf->bo) + goto err; + + return (struct intel_buffer *)buf; + +err: + assert(0); + FREE(buf); + return NULL; +} + +static int +intel_drm_buffer_set_fence_reg(struct intel_winsys *iws, + struct intel_buffer *buffer, + unsigned stride, + enum intel_buffer_tile tile) +{ + assert(I915_TILING_NONE == INTEL_TILE_NONE); + assert(I915_TILING_X == INTEL_TILE_X); + assert(I915_TILING_Y == INTEL_TILE_Y); + + return drm_intel_bo_set_tiling(intel_bo(buffer), &tile, stride); +} + +static void * +intel_drm_buffer_map(struct intel_winsys *iws, + struct intel_buffer *buffer, + boolean write) +{ + struct intel_drm_buffer *buf = intel_drm_buffer(buffer); + drm_intel_bo *bo = intel_bo(buffer); + int ret = 0; + + assert(bo); + + if (buf->map_count) + goto out; + + if (buf->map_gtt) + ret = drm_intel_gem_bo_map_gtt(bo); + else + ret = drm_intel_bo_map(bo, write); + + buf->ptr = bo->virtual; + + assert(ret == 0); +out: + if (ret) + return NULL; + + buf->map_count++; + return buf->ptr; +} + +static void +intel_drm_buffer_unmap(struct intel_winsys *iws, + struct intel_buffer *buffer) +{ + struct intel_drm_buffer *buf = intel_drm_buffer(buffer); + + if (--buf->map_count) + return; + + if (buf->map_gtt) + drm_intel_gem_bo_unmap_gtt(intel_bo(buffer)); + else + drm_intel_bo_unmap(intel_bo(buffer)); +} + +static int +intel_drm_buffer_write(struct intel_winsys *iws, + struct intel_buffer *buffer, + const void *data, + size_t size, + size_t offset) +{ + struct intel_drm_buffer *buf = intel_drm_buffer(buffer); + + return drm_intel_bo_subdata(buf->bo, offset, size, (void*)data); +} + +static void +intel_drm_buffer_destroy(struct intel_winsys *iws, + struct intel_buffer *buffer) +{ + drm_intel_bo_unreference(intel_bo(buffer)); + +#ifdef DEBUG + intel_drm_buffer(buffer)->magic = 0; + intel_drm_buffer(buffer)->bo = NULL; +#endif + + FREE(buffer); +} + +void +intel_drm_winsys_init_buffer_functions(struct intel_drm_winsys *idws) +{ + idws->base.buffer_create = intel_drm_buffer_create; + idws->base.buffer_set_fence_reg = intel_drm_buffer_set_fence_reg; + idws->base.buffer_map = intel_drm_buffer_map; + idws->base.buffer_unmap = intel_drm_buffer_unmap; + idws->base.buffer_write = intel_drm_buffer_write; + idws->base.buffer_destroy = intel_drm_buffer_destroy; +} Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_fence.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_fence.c 2009-09-12 11:16:34 UTC (rev 33089) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_fence.c 2009-09-12 11:42:43 UTC (rev 33090) @@ -0,0 +1,81 @@ + +#include "intel_drm_winsys.h" +#include "util/u_memory.h" +#include "pipe/p_refcnt.h" + +/** + * Because gem does not have fence's we have to create our own fences. + * + * They work by keeping the batchbuffer around and checking if that has + * been idled. If bo is NULL fence has expired. + */ +struct intel_drm_fence +{ + struct pipe_reference reference; + drm_intel_bo *bo; +}; + + +struct pipe_fence_handle * +intel_drm_fence_create(drm_intel_bo *bo) +{ + struct intel_drm_fence *fence = CALLOC_STRUCT(intel_drm_fence); + + pipe_reference_init(&fence->reference, 1); + /* bo is null if fence already expired */ + if (bo) { + drm_intel_bo_reference(bo); + fence->bo = bo; + } + + return (struct pipe_fence_handle *)fence; +} + +static void +intel_drm_fence_reference(struct intel_winsys *iws, + struct pipe_fence_handle **ptr, + struct pipe_fence_handle *fence) +{ + struct intel_drm_fence *old = (struct intel_drm_fence *)*ptr; + struct intel_drm_fence *f = (struct intel_drm_fence *)fence; + + if (pipe_reference((struct pipe_reference**)ptr, &f->reference)) { + if (old->bo) + drm_intel_bo_unreference(old->bo); + FREE(old); + } +} + +static int +intel_drm_fence_signalled(struct intel_winsys *iws, + struct pipe_fence_handle *fence) +{ + assert(0); + + return 0; +} + +static int +intel_drm_fence_finish(struct intel_winsys *iws, + struct pipe_fence_handle *fence) +{ + struct intel_drm_fence *f = (struct intel_drm_fence *)fence; + + /* fence already expired */ + if (!f->bo) + return 0; + + drm_intel_bo_wait_rendering(f->bo); + drm_intel_bo_unreference(f->bo); + f->bo = NULL; + + return 0; +} + +void +intel_drm_winsys_init_fence_functions(struct intel_drm_winsys *idws) +{ + idws->base.fence_reference = intel_drm_fence_reference; + idws->base.fence_signalled = intel_drm_fence_signalled; + idws->base.fence_finish = intel_drm_fence_finish; +} Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_winsys.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_winsys.h 2009-09-12 11:16:34 UTC (rev 33089) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/intel_drm_winsys.h 2009-09-12 11:42:43 UTC (rev 33090) @@ -0,0 +1,78 @@ + +#ifndef INTEL_DRM_WINSYS_H +#define INTEL_DRM_WINSYS_H + +#include "intel_batchbuffer.h" + +#include "drm.h" +#include "intel_bufmgr.h" + + +/* + * Winsys + */ + + +struct intel_drm_winsys +{ + struct intel_winsys base; + + boolean softpipe; + boolean dump_cmd; + + int fd; /**< Drm file discriptor */ + + unsigned id; + + size_t max_batch_size; + + struct { + drm_intel_bufmgr *gem; + } pools; +}; + +static INLINE struct intel_drm_winsys * +intel_drm_winsys(struct intel_winsys *iws) +{ + return (struct intel_drm_winsys *)iws; +} + +struct intel_drm_winsys * intel_drm_winsys_create(int fd, unsigned pci_id); +struct pipe_fence_handle * intel_drm_fence_create(drm_intel_bo *bo); + +void intel_drm_winsys_init_batchbuffer_functions(struct intel_drm_winsys *idws); +void intel_drm_winsys_init_buffer_functions(struct intel_drm_winsys *idws); +void intel_drm_winsys_init_fence_functions(struct intel_drm_winsys *idws); + + +/* + * Buffer + */ + + +struct intel_drm_buffer { + unsigned magic; + + drm_intel_bo *bo; + + void *ptr; + unsigned map_count; + boolean map_gtt; + + boolean flinked; + unsigned flink; +}; + +static INLINE struct intel_drm_buffer * +intel_drm_buffer(struct intel_buffer *buffer) +{ + return (struct intel_drm_buffer *)buffer; +} + +static INLINE drm_intel_bo * +intel_bo(struct intel_buffer *buffer) +{ + return intel_drm_buffer(buffer)->bo; +} + +#endif From threedeyes at mail.berlios.de Sat Sep 12 13:44:18 2009 From: threedeyes at mail.berlios.de (threedeyes at mail.berlios.de) Date: Sat, 12 Sep 2009 13:44:18 +0200 Subject: [Haiku-commits] r33091 - haiku/trunk/src/add-ons/kernel/file_systems/ntfs Message-ID: <200909121144.n8CBiIll010769@sheep.berlios.de> Author: threedeyes Date: 2009-09-12 13:43:55 +0200 (Sat, 12 Sep 2009) New Revision: 33091 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33091&view=rev Modified: haiku/trunk/src/add-ons/kernel/file_systems/ntfs/fs_func.c Log: Fixed a bug from ticket 4462. (fs_rstat returns an incorrect value). Modified: haiku/trunk/src/add-ons/kernel/file_systems/ntfs/fs_func.c =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/ntfs/fs_func.c 2009-09-12 11:42:43 UTC (rev 33090) +++ haiku/trunk/src/add-ons/kernel/file_systems/ntfs/fs_func.c 2009-09-12 11:43:55 UTC (rev 33091) @@ -53,45 +53,44 @@ { ntfs_attr* na; - // get the node type if (ni->mrec->flags & MFT_RECORD_IS_DIRECTORY) { + // Directory *_type = S_IFDIR; return B_OK; - } + } else { + // Regular or Interix (INTX) file + *_type = S_IFREG; + + if (ni->flags & FILE_ATTR_SYSTEM) { + na = ntfs_attr_open(ni, AT_DATA, NULL,0); + if (!na) { + return ENOENT; + } + // Check whether it's Interix symbolic link + if (na->data_size <= sizeof(INTX_FILE_TYPES) + + sizeof(ntfschar) * PATH_MAX && + na->data_size > sizeof(INTX_FILE_TYPES)) { + INTX_FILE *intx_file; - // Regular or Interix (INTX) file. - *_type = S_IFREG; - - na = ntfs_attr_open(ni, AT_DATA, NULL, 0); - if (!na) - return ENOENT; - - if (!(ni->flags & FILE_ATTR_HIDDEN)) { - if (na->data_size == 0) - *_type = S_IFIFO; - } - - if (na->data_size <= sizeof(INTX_FILE_TYPES) + sizeof(ntfschar) * MAX_PATH - && na->data_size > sizeof(INTX_FILE_TYPES)) { - INTX_FILE* intx_file; - - intx_file = ntfs_malloc(na->data_size); - if (!intx_file) { + intx_file = ntfs_malloc(na->data_size); + if (!intx_file) { + ntfs_attr_close(na); + return EINVAL; + } + if (ntfs_attr_pread(na, 0, na->data_size, + intx_file) != na->data_size) { + free(intx_file); + ntfs_attr_close(na); + return EINVAL; + } + if (intx_file->magic == INTX_SYMBOLIC_LINK) + *_type = FS_SLNK_MODE; + free(intx_file); + } ntfs_attr_close(na); - return EINVAL; } - if (ntfs_attr_pread(na, 0, na->data_size, intx_file) != na->data_size) { - free(intx_file); - ntfs_attr_close(na); - return EINVAL; - } - if (intx_file->magic == INTX_SYMBOLIC_LINK) - *_type = S_IFLNK; - free(intx_file); } - - ntfs_attr_close(na); - + return B_OK; } @@ -591,75 +590,70 @@ result = ENOENT; goto exit; } - - stbuf->st_dev = ns->id; - stbuf->st_ino = MREF(ni->mft_no); - if (ni->mrec->flags & MFT_RECORD_IS_DIRECTORY) { + // Directory stbuf->st_mode = FS_DIR_MODE; na = ntfs_attr_open(ni, AT_INDEX_ALLOCATION, NTFS_INDEX_I30, 4); if (na) { stbuf->st_size = na->data_size; + stbuf->st_blocks = na->allocated_size >> 9; ntfs_attr_close(na); - } else { - stbuf->st_size = 0; } - stbuf->st_nlink = 1; // Needed for correct find work. + stbuf->st_nlink = 1; } else { - // Regular or Interix (INTX) file. + // Regular or Interix (INTX) file stbuf->st_mode = FS_FILE_MODE; stbuf->st_size = ni->data_size; + stbuf->st_blocks = (ni->allocated_size + 511) >> 9; stbuf->st_nlink = le16_to_cpu(ni->mrec->link_count); - - na = ntfs_attr_open(ni, AT_DATA, NULL,0); - if (!na) { - result = ENOENT; - goto exit; - } - - stbuf->st_size = na->data_size; - - if (!(ni->flags & FILE_ATTR_HIDDEN)) { - if (na->data_size == 0) - stbuf->st_mode = S_IFIFO; - } - - if (na->data_size <= sizeof(INTX_FILE_TYPES) - + sizeof(ntfschar) * MAX_PATH - && na->data_size >sizeof(INTX_FILE_TYPES)) { - INTX_FILE *intx_file; - - intx_file = ntfs_malloc(na->data_size); - if (!intx_file) { - result = EINVAL; - ntfs_attr_close(na); + + if (ni->flags & FILE_ATTR_SYSTEM) { + na = ntfs_attr_open(ni, AT_DATA, NULL,0); + if (!na) { + result = ENOENT; goto exit; } - if (ntfs_attr_pread(na, 0, na->data_size,intx_file) - != na->data_size) { - result = EINVAL; + stbuf->st_size = na->data_size; + stbuf->st_blocks = na->allocated_size >> 9; + // Check whether it's Interix symbolic link + if (na->data_size <= sizeof(INTX_FILE_TYPES) + + sizeof(ntfschar) * PATH_MAX && + na->data_size > sizeof(INTX_FILE_TYPES)) { + INTX_FILE *intx_file; + + intx_file = ntfs_malloc(na->data_size); + if (!intx_file) { + result = EINVAL; + ntfs_attr_close(na); + goto exit; + } + if (ntfs_attr_pread(na, 0, na->data_size, + intx_file) != na->data_size) { + result = EINVAL; + free(intx_file); + ntfs_attr_close(na); + goto exit; + } + if (intx_file->magic == INTX_SYMBOLIC_LINK) + stbuf->st_mode = FS_SLNK_MODE; free(intx_file); - ntfs_attr_close(na); - goto exit; } - if (intx_file->magic == INTX_SYMBOLIC_LINK) - stbuf->st_mode = FS_SLNK_MODE; - free(intx_file); + ntfs_attr_close(na); } - ntfs_attr_close(na); stbuf->st_mode |= 0666; } if (ns->flags & B_FS_IS_READONLY) { stbuf->st_mode &= ~(S_IWUSR | S_IWGRP | S_IWOTH); } - + stbuf->st_uid = 0; stbuf->st_gid = 0; + stbuf->st_ino = MREF(ni->mft_no); stbuf->st_atime = ni->last_access_time; stbuf->st_ctime = ni->last_mft_change_time; - stbuf->st_mtime = ni->last_data_change_time; - + stbuf->st_mtime = ni->last_data_change_time; + exit: if (ni) ntfs_inode_close(ni); @@ -797,10 +791,10 @@ ntfs_attr *na = NULL; status_t result = B_NO_ERROR; - LOCK_VOL(ns); - ERRPRINT("fs_open - ENTER\n"); + LOCK_VOL(ns); + if (node == NULL) { result = EINVAL; goto exit; From aljen at mail.berlios.de Sat Sep 12 13:52:56 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 13:52:56 +0200 Subject: [Haiku-commits] r33092 - haiku/branches/components/gallium3d/src/add-ons/opengl/i915 Message-ID: <200909121152.n8CBquXj011417@sheep.berlios.de> Author: aljen Date: 2009-09-12 13:52:54 +0200 (Sat, 12 Sep 2009) New Revision: 33092 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33092&view=rev Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915PipeRenderer.cpp haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915PipeRenderer.h Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile Log: Added renderer for i915 (not working yet) Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile 2009-09-12 11:43:55 UTC (rev 33091) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile 2009-09-12 11:52:54 UTC (rev 33092) @@ -41,6 +41,7 @@ intel_drm_fence.c # driver + i915PipeRenderer.cpp i915_blit.c i915_buffer.c i915_clear.c Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915PipeRenderer.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915PipeRenderer.cpp 2009-09-12 11:43:55 UTC (rev 33091) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915PipeRenderer.cpp 2009-09-12 11:52:54 UTC (rev 33092) @@ -0,0 +1,323 @@ +/* + * Copyright 2006-2009, Haiku. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * J?r?me Duval, korli at users.berlios.de + * Philippe Houdoin, philippe.houdoin at free.fr + * Artur Wyszynski, harakash at gmail.com + */ +/* + * Mesa 3-D graphics library + * Version: 7.5 + * + * Copyright (C) 1999-2004 Brian Paul All Rights Reserved. + */ + +#include "i915PipeRenderer.h" + +#include +#include +#include +#include +#include +#include +#include + +#define TRACE_I915PIPE +#ifdef TRACE_I915PIPE +# define TRACE(x...) fprintf(stderr, x); +# define CALLED() TRACE("CALLED: %s\n", __PRETTY_FUNCTION__); +#else +# define TRACE(x...) +# define CALLED() +#endif + +extern "C" { +//#include "hsp_public.h" +//#include "hsp_winsys.h" +//#include "haiku_softpipe_winsys.h" +} + +extern const char* color_space_name(color_space space); + +extern "C" _EXPORT BGLRenderer* +instantiate_gl_renderer(BGLView *view, ulong opts, BGLDispatcher *dispatcher) +{ + return new i915PipeRenderer(view, opts, dispatcher); +} + + +i915PipeRenderer::i915PipeRenderer(BGLView *view, ulong options, + BGLDispatcher* dispatcher) + : BGLRenderer(view, options, dispatcher), + fBitmap(NULL), + fDirectModeEnabled(false), + fInfo(NULL), + fInfoLocker("info locker"), + fOptions(options), + fColorSpace(B_NO_COLOR_SPACE) +{ + CALLED(); + time_t beg, end; + beg = time(NULL); +// hsp_init(options); + end = time(NULL); + TRACE("hsp_init time: %f.\n", difftime(end, beg)); + BRect b = view->Bounds(); + fColorSpace = BScreen(view->Window()).ColorSpace(); + TRACE("ColorSpace:\t%s\n", color_space_name(fColorSpace)); + + fWidth = fNewWidth = (GLint)b.IntegerWidth(); + fHeight = fNewHeight = (GLint)b.IntegerHeight(); + _AllocateBitmap(); + + beg = time(NULL); +// fContext = hsp_create_layer_context(fBitmap, 0); + TRACE("context:\t%d\n", (int)fContext); + end = time(NULL); + TRACE("hsp_create_layer_context time: %f.\n", difftime(end, beg)); + +// if (!hsp_get_current_context()) +// LockGL(); +} + +i915PipeRenderer::~i915PipeRenderer() +{ + CALLED(); +// if (fContext) +// hsp_delete_context(fContext); +// hsp_cleanup(); + delete fBitmap; +} + + +void +i915PipeRenderer::LockGL() +{ +// CALLED(); + BGLRenderer::LockGL(); + + color_space cs = BScreen(GLView()->Window()).ColorSpace(); + + BAutolock lock(fInfoLocker); + if (fDirectModeEnabled && fInfo != NULL) { + fNewWidth = fInfo->window_bounds.right - fInfo->window_bounds.left;// + 1; + fNewHeight = fInfo->window_bounds.bottom - fInfo->window_bounds.top;// + 1; + } + + if (fBitmap && cs == fColorSpace && fNewWidth == fWidth + && fNewHeight == fHeight) { +// hsp_make_current(fBitmap, fContext); + return; + } + + fColorSpace = cs; + fWidth = fNewWidth; + fHeight = fNewHeight; + + _AllocateBitmap(); +// hsp_make_current(fBitmap, fContext); +} + + +void +i915PipeRenderer::UnlockGL() +{ +// CALLED(); + if ((fOptions & BGL_DOUBLE) == 0) { + SwapBuffers(); + } +// hsp_make_current(NULL, fContext); + BGLRenderer::UnlockGL(); +} + + +void +i915PipeRenderer::SwapBuffers(bool vsync) +{ +// CALLED(); + if (!fBitmap) + return; + +// hsp_swap_buffers(fContext); + + if (!fDirectModeEnabled || fInfo == NULL) { + GLView()->LockLooper(); + GLView()->DrawBitmap(fBitmap, B_ORIGIN); + GLView()->UnlockLooper(); + return; + } + + BAutolock lock(fInfoLocker); + // check the bitmap size still matches the size + if (fInfo->window_bounds.bottom - fInfo->window_bounds.top + != fBitmap->Bounds().IntegerHeight() + 1 + || fInfo->window_bounds.right - fInfo->window_bounds.left + != fBitmap->Bounds().IntegerWidth() + 1) { + return; + } + uint8 bytesPerPixel = fInfo->bits_per_pixel / 8; + uint32 bytesPerRow = fBitmap->BytesPerRow(); + for (uint32 i = 0; i < fInfo->clip_list_count; i++) { + clipping_rect *clip = &fInfo->clip_list[i]; + int32 height = clip->bottom - clip->top + 1; + int32 bytesWidth + = (clip->right - clip->left + 1) * bytesPerPixel; + bytesWidth -= bytesPerPixel; + uint8 *p = (uint8 *)fInfo->bits + clip->top + * fInfo->bytes_per_row + clip->left * bytesPerPixel; + uint8 *b = (uint8 *)fBitmap->Bits() + + (clip->top - fInfo->window_bounds.top) * bytesPerRow + + (clip->left - fInfo->window_bounds.left) * bytesPerPixel; + + for (int y = 0; y < height - 1; y++) { + memcpy(p, b, bytesWidth); + p += fInfo->bytes_per_row; + b += bytesPerRow; + } + } +} + + +void +i915PipeRenderer::Draw(BRect updateRect) +{ +// CALLED(); + if (!fDirectModeEnabled || fInfo == NULL) + GLView()->DrawBitmap(fBitmap, updateRect, updateRect); +} + + +status_t +i915PipeRenderer::CopyPixelsOut(BPoint location, BBitmap *bitmap) +{ + CALLED(); + color_space scs = fBitmap->ColorSpace(); + color_space dcs = bitmap->ColorSpace(); + + if (scs != dcs && (scs != B_RGBA32 || dcs != B_RGB32)) { + fprintf(stderr, "%s::CopyPixelsOut(): incompatible color space: %s != %s\n", + __PRETTY_FUNCTION__, color_space_name(scs), color_space_name(dcs)); + return B_BAD_TYPE; + } + + BRect sr = fBitmap->Bounds(); + BRect dr = bitmap->Bounds(); + +// int32 w1 = sr.IntegerWidth(); +// int32 h1 = sr.IntegerHeight(); +// int32 w2 = dr.IntegerWidth(); +// int32 h2 = dr.IntegerHeight(); + + sr = sr & dr.OffsetBySelf(location); + dr = sr.OffsetByCopy(-location.x, -location.y); + + uint8 *ps = (uint8 *) fBitmap->Bits(); + uint8 *pd = (uint8 *) bitmap->Bits(); + uint32 *s, *d; + uint32 y; + for (y = (uint32) sr.top; y <= (uint32) sr.bottom; y++) { + s = (uint32 *)(ps + y * fBitmap->BytesPerRow()); + s += (uint32) sr.left; + + d = (uint32 *)(pd + (y + (uint32)(dr.top - sr.top)) + * bitmap->BytesPerRow()); + d += (uint32) dr.left; + memcpy(d, s, dr.IntegerWidth() * 4); + } + + return B_OK; +} + + +status_t +i915PipeRenderer::CopyPixelsIn(BBitmap *bitmap, BPoint location) +{ + CALLED(); + + color_space scs = bitmap->ColorSpace(); + color_space dcs = fBitmap->ColorSpace(); + + if (scs != dcs && (dcs != B_RGBA32 || scs != B_RGB32)) { + fprintf(stderr, "%s::CopyPixelsIn(): incompatible color space: %s != %s\n", + __PRETTY_FUNCTION__, color_space_name(scs), color_space_name(dcs)); + return B_BAD_TYPE; + } + + BRect sr = bitmap->Bounds(); + BRect dr = fBitmap->Bounds(); + + sr = sr & dr.OffsetBySelf(location); + dr = sr.OffsetByCopy(-location.x, -location.y); + + uint8 *ps = (uint8 *) bitmap->Bits(); + uint8 *pd = (uint8 *) fBitmap->Bits(); + uint32 *s, *d; + uint32 y; + + for (y = (uint32) sr.top; y <= (uint32) sr.bottom; y++) { + s = (uint32 *)(ps + y * bitmap->BytesPerRow()); + s += (uint32) sr.left; + + d = (uint32 *)(pd + (y + (uint32)(dr.top - sr.top)) + * fBitmap->BytesPerRow()); + d += (uint32) dr.left; + + memcpy(d, s, dr.IntegerWidth() * 4); + } + + return B_OK; +} + + +void +i915PipeRenderer::EnableDirectMode(bool enabled) +{ + fDirectModeEnabled = enabled; +} + + +void +i915PipeRenderer::DirectConnected(direct_buffer_info *info) +{ +// CALLED(); + BAutolock lock(fInfoLocker); + if (info) { + if (!fInfo) { + fInfo = (direct_buffer_info *)calloc(1, DIRECT_BUFFER_INFO_AREA_SIZE); + } + memcpy(fInfo, info, DIRECT_BUFFER_INFO_AREA_SIZE); + } else if (fInfo) { + free(fInfo); + fInfo = NULL; + } +} + + +void +i915PipeRenderer::FrameResized(float width, float height) +{ +// CALLED(); + BAutolock lock(fInfoLocker); + fNewWidth = (GLuint)width; + fNewHeight = (GLuint)height; +} + + +void +i915PipeRenderer::_AllocateBitmap() +{ +// CALLED(); + // allocate new size of back buffer bitmap + delete fBitmap; + fBitmap = NULL; + if (fWidth <= 1 || fHeight <= 1) + return; + BRect rect(0.0, 0.0, fWidth - 1, fHeight - 1); + fBitmap = new BBitmap(rect, fColorSpace); + // debug.. + void *data = fBitmap->Bits(); + memset(data, 0xcc, fBitmap->BitsLength()); +} + Added: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915PipeRenderer.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915PipeRenderer.h 2009-09-12 11:43:55 UTC (rev 33091) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915PipeRenderer.h 2009-09-12 11:52:54 UTC (rev 33092) @@ -0,0 +1,63 @@ +/* + * Copyright 2006-2008, Haiku. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * J?r?me Duval, korli at users.berlios.de + * Philippe Houdoin, philippe.houdoin at free.fr + * Artur Wyszynski, harakash at gmail.com + */ +/* + * Mesa 3-D graphics library + * Version: 7.5 + * + * Copyright (C) 1999-2004 Brian Paul All Rights Reserved. + */ + +#ifndef I915_PIPE_RENDERER_H +#define I915_PIPE_RENDERER_H + +#include "GLRenderer.h" + +extern "C" { +//#include "hsp_public.h" +} + +class i915PipeRenderer : public BGLRenderer { +public: + i915PipeRenderer(BGLView *view, ulong bgl_options, + BGLDispatcher *dispatcher); + virtual ~i915PipeRenderer(); + + virtual void LockGL(); + virtual void UnlockGL(); + + virtual void SwapBuffers(bool vsync = false); + virtual void Draw(BRect updateRect); + virtual status_t CopyPixelsOut(BPoint source, BBitmap *dest); + virtual status_t CopyPixelsIn(BBitmap *source, BPoint dest); + virtual void FrameResized(float width, float height); + + virtual void EnableDirectMode(bool enabled); + virtual void DirectConnected(direct_buffer_info *info); + +private: + void _AllocateBitmap(); + + BBitmap *fBitmap; + bool fDirectModeEnabled; + direct_buffer_info *fInfo; + BLocker fInfoLocker; + ulong fOptions; + + uint64 fContext; + + GLuint fWidth; + GLuint fHeight; + GLuint fNewWidth; + GLuint fNewHeight; + color_space fColorSpace; +}; + +#endif // I915_PIPE_RENDERER_H + From aljen at mail.berlios.de Sat Sep 12 14:04:05 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 14:04:05 +0200 Subject: [Haiku-commits] r33093 - haiku/branches/components/gallium3d/build/jam Message-ID: <200909121204.n8CC45Lm012046@sheep.berlios.de> Author: aljen Date: 2009-09-12 14:04:04 +0200 (Sat, 12 Sep 2009) New Revision: 33093 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33093&view=rev Modified: haiku/branches/components/gallium3d/build/jam/HaikuImage Log: Add libdrm* to image Modified: haiku/branches/components/gallium3d/build/jam/HaikuImage =================================================================== --- haiku/branches/components/gallium3d/build/jam/HaikuImage 2009-09-12 11:52:54 UTC (rev 33092) +++ haiku/branches/components/gallium3d/build/jam/HaikuImage 2009-09-12 12:04:04 UTC (rev 33093) @@ -78,7 +78,8 @@ GLTeapot Haiku3d Mandelbrot Pairs Playground Pulse Sudoku Gradients ; SYSTEM_LIBS = libalm.so libbe.so libbsd.so libbnetapi.so libdebug.so - libdevice.so libfluidsynth.so libfreetype.so libgame.so libGL.so libgnu.so + libdevice.so libdrm.so libdrm_intel.so libdrm_radeon.so libdrm_nouveau.so + libfluidsynth.so libfreetype.so libgame.so libGL.so libgnu.so libilmimf.so libjpeg.so liblinprog.so liblpsolve55.so libmail.so libmedia.so libmidi.so libmidi2.so libnetwork.so libpng.so libroot.so libscreensaver.so libtextencoding.so libtracker.so libtranslation.so @@ -753,3 +754,4 @@ # Execute post-image user config rules. UserBuildConfigRulePostImage ; + From aljen at mail.berlios.de Sat Sep 12 14:10:32 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 14:10:32 +0200 Subject: [Haiku-commits] r33094 - in haiku/branches/components/gallium3d/src/libs/drm: . intel Message-ID: <200909121210.n8CCAWHc012612@sheep.berlios.de> Author: aljen Date: 2009-09-12 14:10:31 +0200 (Sat, 12 Sep 2009) New Revision: 33094 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33094&view=rev Modified: haiku/branches/components/gallium3d/src/libs/drm/intel/intel_bufmgr_gem.c haiku/branches/components/gallium3d/src/libs/drm/xf86drm.c Log: Reverted r33087, thanks aldeck for noticing :) Modified: haiku/branches/components/gallium3d/src/libs/drm/intel/intel_bufmgr_gem.c =================================================================== --- haiku/branches/components/gallium3d/src/libs/drm/intel/intel_bufmgr_gem.c 2009-09-12 12:04:04 UTC (rev 33093) +++ haiku/branches/components/gallium3d/src/libs/drm/intel/intel_bufmgr_gem.c 2009-09-12 12:10:31 UTC (rev 33094) @@ -612,7 +612,7 @@ bo_gem->free_time = time.tv_sec; #else bigtime_t systemTime = system_time(); - bo_gem->free_time = systemTime * 1000000; + bo_gem->free_time = systemTime / 1000000; #endif bo_gem->name = NULL; Modified: haiku/branches/components/gallium3d/src/libs/drm/xf86drm.c =================================================================== --- haiku/branches/components/gallium3d/src/libs/drm/xf86drm.c 2009-09-12 12:04:04 UTC (rev 33093) +++ haiku/branches/components/gallium3d/src/libs/drm/xf86drm.c 2009-09-12 12:10:31 UTC (rev 33094) @@ -1943,7 +1943,7 @@ } #else bigtime_t systemTime = system_time(); - timeout.tv_sec = systemTime * 1000000; + timeout.tv_sec = systemTime / 1000000; timeout.tv_nsec = systemTime * 1000; #endif timeout.tv_sec++; @@ -1956,7 +1956,7 @@ clock_gettime(CLOCK_MONOTONIC, &cur); #else systemTime = system_time(); - cur.tv_sec = systemTime * 1000000; + cur.tv_sec = systemTime / 1000000; cur.tv_nsec = systemTime * 1000; #endif /* Timeout after 1s */ From aljen at mail.berlios.de Sat Sep 12 15:27:36 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 15:27:36 +0200 Subject: [Haiku-commits] r33095 - in haiku/branches/components/gallium3d/src/kits/opengl: . mesa Message-ID: <200909121327.n8CDRaXe019985@sheep.berlios.de> Author: aljen Date: 2009-09-12 15:27:33 +0200 (Sat, 12 Sep 2009) New Revision: 33095 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33095&view=rev Added: haiku/branches/components/gallium3d/src/kits/opengl/gallium/ Removed: haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium/ Modified: haiku/branches/components/gallium3d/src/kits/opengl/Jamfile haiku/branches/components/gallium3d/src/kits/opengl/mesa/Jamfile Log: Separating gallium from mesa Modified: haiku/branches/components/gallium3d/src/kits/opengl/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/Jamfile 2009-09-12 12:10:31 UTC (rev 33094) +++ haiku/branches/components/gallium3d/src/kits/opengl/Jamfile 2009-09-12 13:27:33 UTC (rev 33095) @@ -52,13 +52,19 @@ sgi-glu.o # GLUT API is included in libGL.so under Haiku, not a separate libglut.so library - glut.o + glut.o + + dricommon.o + drist.o libmesa.a # For GL API dispatching, mostly # External libs: be - game # BWindowScreen needed by BGLScreen stub class + game # BWindowScreen needed by BGLScreen stub class + libdrm.so + expat + bsd $(TARGET_LIBSTDC++) ; Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium (from rev 33094, haiku/branches/components/gallium3d/src/kits/opengl/mesa/gallium) Modified: haiku/branches/components/gallium3d/src/kits/opengl/mesa/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/mesa/Jamfile 2009-09-12 12:10:31 UTC (rev 33094) +++ haiku/branches/components/gallium3d/src/kits/opengl/mesa/Jamfile 2009-09-12 13:27:33 UTC (rev 33095) @@ -11,9 +11,7 @@ DEBUG = 0 ; UsePrivateHeaders opengl ; -UseLibraryHeaders drm expat ; -UseHeaders [ FDirName $(SUBDIR) drivers dri common ] ; UseHeaders [ FDirName $(SUBDIR) main ] ; UseHeaders [ FDirName $(SUBDIR) glapi ] ; UseHeaders [ FDirName $(SUBDIR) gallium auxiliary ] ; @@ -29,11 +27,8 @@ UseHeaders [ FDirName $(SUBDIR) swrast_setup ] ; UseHeaders [ FDirName $(SUBDIR) vbo ] ; UseHeaders [ FDirName $(SUBDIR) vf ] ; -UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ; -UseHeaders [ FDirName $(HAIKU_TOP) src libs drm ] : true ; SEARCH_SOURCE += [ FDirName $(SUBDIR) drivers common ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) drivers dri common ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) glapi ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) main ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) math ] ; @@ -56,7 +51,6 @@ SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium auxiliary tgsi ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium auxiliary translate ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium auxiliary util ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium state_trackers dri ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) $(TARGET_ARCH) ] ; UsePublicObjectHeaders gen_matypes : opengl ; @@ -79,7 +73,7 @@ } local defines ; -defines = BEOS_THREADS GNU_ASSEMBLER HAVE_POSIX_MEMALIGN IN_DRI_DRIVER ; +defines = BEOS_THREADS GNU_ASSEMBLER HAVE_POSIX_MEMALIGN ; if $(TARGET_ARCH) = x86 { defines += USE_X86_ASM USE_MMX_ASM USE_3DNOW_ASM USE_SSE_ASM ; @@ -161,18 +155,6 @@ StaticLibrary libmesa.a : - # drivers commons - - # drivers dri commons - dri_metaops.c - drirenderbuffer.c - dri_util.c - texmem.c - utils.c - vblank.c - xmlconfig.c - - # main api_arrayelt.c api_exec.c @@ -530,13 +512,6 @@ u_timed_winsys.c u_upload_mgr.c - # gallium/state_trackers/dri - dri_context.c - dri_drawable.c - dri_extensions.c - dri_screen.c - dri_util.c - # arch specific assembly optimization $(arch_sources) ; @@ -560,3 +535,5 @@ $(arch_sources) ; +SubInclude HAIKU_TOP src kits opengl mesa drivers dri common ; +SubInclude HAIKU_TOP src kits opengl mesa gallium state_trackers dri ; From aljen at mail.berlios.de Sat Sep 12 16:05:59 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 16:05:59 +0200 Subject: [Haiku-commits] r33096 - in haiku/branches/components/gallium3d/src: add-ons/opengl/i915 add-ons/opengl/softpipe kits/opengl/gallium kits/opengl/gallium/drivers kits/opengl/gallium/drivers/i915simple kits/opengl/gallium/drivers/softpipe Message-ID: <200909121405.n8CE5xGH024709@sheep.berlios.de> Author: aljen Date: 2009-09-12 16:03:47 +0200 (Sat, 12 Sep 2009) New Revision: 33096 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33096&view=rev Added: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/ haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/ haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/gem/ haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_batch.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_blit.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_blit.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_buffer.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_buffer.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_clear.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_context.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_context.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_debug.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_debug.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_debug_fp.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_flush.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_fpc.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_fpc_emit.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_fpc_translate.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_prim_emit.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_prim_vbuf.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_reg.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_screen.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_screen.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_state.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_state.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_state_derived.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_state_dynamic.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_state_emit.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_state_immediate.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_state_inlines.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_state_sampler.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_surface.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_texture.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_texture.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/intel_batchbuffer.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/intel_winsys.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/ haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_clear.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_clear.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_context.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_context.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_draw_arrays.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_flush.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_flush.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_fs.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_fs_exec.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_fs_llvm.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_fs_sse.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_prim_setup.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_prim_setup.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_prim_vbuf.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_prim_vbuf.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_alpha_test.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_blend.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_bufloop.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_colormask.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_coverage.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_depth_test.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_earlyz.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_fs.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_occlusion.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_output.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_pipe.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_pipe.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_stencil.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_stipple.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_query.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_query.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_screen.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_screen.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_setup.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_setup.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state_blend.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state_clip.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state_derived.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state_fs.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state_rasterizer.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state_sampler.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state_surface.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state_vertex.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_surface.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_surface.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_tex_sample.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_tex_sample.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_texture.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_texture.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_tile_cache.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_tile_cache.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_winsys.h Removed: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem/ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_batch.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_blit.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_blit.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_buffer.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_buffer.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_clear.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_context.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_context.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_debug.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_debug.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_debug_fp.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_flush.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_fpc.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_fpc_emit.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_fpc_translate.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_prim_emit.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_prim_vbuf.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_reg.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_screen.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_screen.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_derived.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_dynamic.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_emit.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_immediate.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_inlines.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_sampler.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_surface.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_texture.c haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_texture.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/intel_batchbuffer.h haiku/branches/components/gallium3d/src/add-ons/opengl/i915/intel_winsys.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_clear.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_clear.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_context.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_context.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_draw_arrays.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_flush.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_flush.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_fs.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_fs_exec.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_fs_llvm.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_fs_sse.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_prim_setup.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_prim_setup.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_prim_vbuf.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_prim_vbuf.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_alpha_test.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_blend.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_bufloop.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_colormask.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_coverage.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_depth_test.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_earlyz.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_fs.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_occlusion.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_output.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_pipe.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_pipe.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_stencil.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_stipple.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_query.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_query.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_screen.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_screen.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_setup.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_setup.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_blend.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_clip.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_derived.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_fs.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_rasterizer.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_sampler.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_surface.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_vertex.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_surface.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_surface.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_tex_sample.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_tex_sample.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_texture.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_texture.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_tile_cache.c haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_tile_cache.h haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_winsys.h Log: Moved all gallium related things into one place Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_batch.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_blit.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_blit.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_buffer.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_buffer.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_clear.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_context.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_context.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_debug.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_debug.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_debug_fp.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_flush.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_fpc.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_fpc_emit.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_fpc_translate.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_prim_emit.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_prim_vbuf.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_reg.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_screen.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_screen.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_derived.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_dynamic.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_emit.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_immediate.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_inlines.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_sampler.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_surface.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_texture.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_texture.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/intel_batchbuffer.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/intel_winsys.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_clear.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_clear.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_context.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_context.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_draw_arrays.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_flush.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_flush.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_fs.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_fs_exec.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_fs_llvm.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_fs_sse.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_prim_setup.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_prim_setup.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_prim_vbuf.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_prim_vbuf.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_alpha_test.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_blend.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_bufloop.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_colormask.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_coverage.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_depth_test.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_earlyz.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_fs.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_occlusion.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_output.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_pipe.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_pipe.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_stencil.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_stipple.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_query.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_query.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_screen.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_screen.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_setup.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_setup.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_blend.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_clip.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_derived.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_fs.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_rasterizer.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_sampler.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_surface.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_vertex.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_surface.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_surface.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_tex_sample.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_tex_sample.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_texture.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_texture.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_tile_cache.c Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_tile_cache.h Deleted: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_winsys.h Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/gem (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/gem) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_batch.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_batch.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_blit.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_blit.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_blit.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_blit.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_buffer.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_buffer.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_buffer.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_buffer.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_clear.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_clear.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_context.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_context.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_context.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_context.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_debug.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_debug.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_debug.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_debug.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_debug_fp.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_debug_fp.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_flush.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_flush.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_fpc.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_fpc.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_fpc_emit.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_fpc_emit.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_fpc_translate.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_fpc_translate.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_prim_emit.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_prim_emit.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_prim_vbuf.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_prim_vbuf.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_reg.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_reg.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_screen.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_screen.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_screen.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_screen.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_state.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_state.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_state_derived.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_derived.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_state_dynamic.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_dynamic.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_state_emit.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_emit.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_state_immediate.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_immediate.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_state_inlines.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_inlines.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_state_sampler.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_state_sampler.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_surface.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_surface.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_texture.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_texture.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/i915_texture.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/i915_texture.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/intel_batchbuffer.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/intel_batchbuffer.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/intel_winsys.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/i915/intel_winsys.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_clear.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_clear.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_clear.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_clear.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_context.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_context.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_context.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_context.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_draw_arrays.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_draw_arrays.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_flush.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_flush.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_flush.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_flush.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_fs.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_fs.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_fs_exec.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_fs_exec.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_fs_llvm.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_fs_llvm.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_fs_sse.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_fs_sse.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_prim_setup.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_prim_setup.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_prim_setup.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_prim_setup.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_prim_vbuf.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_prim_vbuf.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_prim_vbuf.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_prim_vbuf.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_alpha_test.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_alpha_test.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_blend.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_blend.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_bufloop.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_bufloop.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_colormask.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_colormask.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_coverage.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_coverage.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_depth_test.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_depth_test.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_earlyz.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_earlyz.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_fs.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_fs.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_occlusion.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_occlusion.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_output.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_output.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_pipe.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_pipe.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_pipe.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_pipe.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_stencil.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_stencil.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_quad_stipple.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_quad_stipple.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_query.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_query.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_query.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_query.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_screen.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_screen.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_screen.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_screen.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_setup.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_setup.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_setup.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_setup.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state_blend.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_blend.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state_clip.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_clip.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state_derived.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_derived.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state_fs.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_fs.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state_rasterizer.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_rasterizer.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state_sampler.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_sampler.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state_surface.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_surface.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_state_vertex.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_state_vertex.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_surface.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_surface.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_surface.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_surface.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_tex_sample.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_tex_sample.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_tex_sample.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_tex_sample.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_texture.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_texture.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_texture.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_texture.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_tile_cache.c (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_tile_cache.c) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_tile_cache.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_tile_cache.h) Copied: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/sp_winsys.h (from rev 33094, haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/sp_winsys.h) From mmlr at mail.berlios.de Sat Sep 12 16:36:40 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 12 Sep 2009 16:36:40 +0200 Subject: [Haiku-commits] r33097 - haiku/branches/releases/r1alpha1/src/apps/bootman Message-ID: <200909121436.n8CEaeZN028258@sheep.berlios.de> Author: mmlr Date: 2009-09-12 16:36:38 +0200 (Sat, 12 Sep 2009) New Revision: 33097 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33097&view=rev Modified: haiku/branches/releases/r1alpha1/src/apps/bootman/BootManagerController.cpp Log: Merge r33085 from trunk: Fixed typo. Modified: haiku/branches/releases/r1alpha1/src/apps/bootman/BootManagerController.cpp =================================================================== --- haiku/branches/releases/r1alpha1/src/apps/bootman/BootManagerController.cpp 2009-09-12 14:03:47 UTC (rev 33096) +++ haiku/branches/releases/r1alpha1/src/apps/bootman/BootManagerController.cpp 2009-09-12 14:36:38 UTC (rev 33097) @@ -297,7 +297,7 @@ "save the MBR into.\n\n" "If something goes wrong with the installation or if " "you later wish to remove the boot menu, simply run the " - "bootman program and choose to 'Uninstall' option."; + "bootman program and choose the 'Uninstall' option."; return new FileSelectionPage(&fSettings, frame, "saveMBR", description.String(), B_SAVE_PANEL); From mattmadia at gmail.com Sat Sep 12 16:39:44 2009 From: mattmadia at gmail.com (Matt Madia) Date: Sat, 12 Sep 2009 14:39:44 +0000 Subject: [Haiku-commits] BOM (trunk/) r33069~33076 ...failed Cc /storage/Build-o-Matic/haiku/haiku/generated.x86gcc4hybrid/objects/haiku/x86/release/bin/bash/builtins/builtins.o ... Message-ID: <1e42d8c50909120739g61e28287xd967eb574491803c@mail.gmail.com> This is a manual email -- BOM crashed while trying to report it. At this point, im not sure if this error was due to a hardware glitch or not. The last known good cycle was 33069 The next cycle of 33076 had this error only for x86gcc4 hybrid rev 33096 is building now --mmadia Host Machine : FreeBSD 7.2-RELEASE-p2 i386 Host Machine 32|64bit : 32bit use-xattr : True use-32bit : False Log Snippet AppendToContainerCopyFilesScript haiku.image-copy-files-dummy-system/servers Cc objects/haiku/x86/release/bin/bash/print_cmd.o haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:339: warning: no previous prototype for 'array_create' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:359: warning: no previous prototype for 'copy_string_array' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:386: warning: no previous prototype for 'array_add' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:406: warning: no previous prototype for 'array_free' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:455: warning: no previous prototype for 'find_directive' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:485: warning: no previous prototype for 'extract_info' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c: In function 'extract_info': haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:510: warning: comparison between signed and unsigned haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:532: warning: comparison between signed and unsigned haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:536: warning: comparison between signed and unsigned haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:546: warning: suggest parentheses around assignment used as truth value haiku/haiku/src/bin/bash/builtins/mkbuiltins.c: At top level: haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:649: warning: no previous prototype for 'free_defs' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c: In function 'free_defs': haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:662: warning: suggest parentheses around assignment used as truth value haiku/haiku/src/bin/bash/builtins/mkbuiltins.c: At top level: haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:682: warning: no previous prototype for 'strip_whitespace' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:694: warning: no previous prototype for 'remove_trailing_whitespace' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:712: warning: no previous prototype for 'get_arg' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:728: warning: no previous prototype for 'must_be_building' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:738: warning: no previous prototype for 'current_builtin' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:752: warning: no previous prototype for 'add_documentation' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:970: warning: no previous prototype for 'line_error' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:984: warning: no previous prototype for 'file_error' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:1000: warning: 'xmalloc' was used with no prototype before its definition haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:1011: warning: 'xrealloc' was used with no prototype before its definition haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:1029: warning: 'memory_error_and_abort' was used with no prototype before its definition haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:1044: warning: no previous prototype for 'copy_builtin' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:1066: warning: no previous prototype for 'save_builtin' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:1141: warning: no previous prototype for 'write_file_headers' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:1165: warning: no previous prototype for 'write_file_footers' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:1181: warning: no previous prototype for 'write_builtins' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:1266: warning: no previous prototype for 'write_longdocs' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:1311: warning: no previous prototype for 'write_ifdefs' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:1342: warning: no previous prototype for 'write_endifs' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:1367: warning: no previous prototype for 'write_documentation' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c: In function 'write_documentation': haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:1382: warning: suggest parentheses around assignment used as truth value haiku/haiku/src/bin/bash/builtins/mkbuiltins.c: At top level: haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:1445: warning: no previous prototype for 'write_helpfiles' haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:1499: warning: 'is_special_builtin' was used with no prototype before its definition haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:1506: warning: 'is_assignment_builtin' was used with no prototype before its definition haiku/haiku/src/bin/bash/builtins/mkbuiltins.c: In function 'array_add': haiku/haiku/src/bin/bash/builtins/mkbuiltins.c:390: warning: passing argument 1 of 'xrealloc' from incompatible pointer type Link objects/freebsd/x86/release/bin/bash/builtins/mkbuiltins Chmod1 objects/freebsd/x86/release/bin/bash/builtins/mkbuiltins BuildHaikuImageHostnameFile objects/common/hostname MkBuiltinsExt1 objects/haiku/x86/common/bin/bash/builtins/builtext.h objects/haiku/x86/common/bin/bash/builtins/builtins.c Cc objects/haiku/x86/release/bin/bash/builtins/builtins.o objects/haiku/x86/common/bin/bash/builtins/builtins.c:41: error: 'alias_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:41: error: 'alias_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:45: error: 'unalias_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:45: error: 'unalias_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:49: error: 'bind_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:49: error: 'bind_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:52: error: 'break_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:52: error: 'break_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:54: error: 'continue_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:54: error: 'continue_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:56: error: 'builtin_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:56: error: 'builtin_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:58: error: 'cd_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:58: error: 'cd_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:60: error: 'pwd_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:60: error: 'pwd_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:62: error: 'colon_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:62: error: 'colon_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:64: error: 'true_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:66: error: 'false_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:66: error: 'false_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:68: error: 'command_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:68: error: 'command_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:70: error: 'declare_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:70: error: 'declare_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:72: error: 'typeset_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:74: error: 'local_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:74: error: 'local_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:77: error: 'echo_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:77: error: 'echo_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:84: error: 'enable_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:84: error: 'enable_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:86: error: 'eval_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:86: error: 'eval_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:88: error: 'exec_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:88: error: 'exec_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:90: error: 'exit_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:90: error: 'exit_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:92: error: 'logout_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:92: error: 'logout_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:95: error: 'fc_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:95: error: 'fc_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:99: error: 'fg_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:99: error: 'fg_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:103: error: 'bg_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:103: error: 'bg_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:106: error: 'hash_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:106: error: 'hash_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:109: error: 'help_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:109: error: 'help_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:113: error: 'history_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:113: error: 'history_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:117: error: 'jobs_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:117: error: 'jobs_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:121: error: 'disown_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:121: error: 'disown_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:125: error: 'kill_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:125: error: 'kill_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:128: error: 'let_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:128: error: 'let_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:131: error: 'pushd_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:131: error: 'pushd_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:135: error: 'popd_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:135: error: 'popd_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:139: error: 'dirs_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:139: error: 'dirs_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:142: error: 'read_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:142: error: 'read_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:144: error: 'return_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:144: error: 'return_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:146: error: 'set_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:146: error: 'set_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:148: error: 'unset_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:148: error: 'unset_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:150: error: 'export_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:150: error: 'export_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:152: error: 'readonly_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:152: error: 'readonly_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:154: error: 'shift_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:154: error: 'shift_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:156: error: 'source_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:156: error: 'source_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:158: error: 'dot_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:161: error: 'suspend_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:161: error: 'suspend_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:164: error: 'test_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:164: error: 'test_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:166: error: 'test_bracket_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:168: error: 'times_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:168: error: 'times_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:170: error: 'trap_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:170: error: 'trap_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:172: error: 'type_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:172: error: 'type_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:175: error: 'ulimit_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:175: error: 'ulimit_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:178: error: 'umask_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:178: error: 'umask_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:181: error: 'wait_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:181: error: 'wait_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:188: error: 'getopts_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:188: error: 'getopts_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:190: error: 'shopt_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:190: error: 'shopt_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:192: error: 'printf_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:192: error: 'printf_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:195: error: 'complete_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:195: error: 'complete_doc' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:199: error: 'compgen_builtin' undeclared here (not in a function) objects/haiku/x86/common/bin/bash/builtins/builtins.c:199: error: 'compgen_doc' undeclared here (not in a function) Cc objects/haiku/x86/release/bin/bash/parse.o haiku/haiku/generated.x86gcc4/cross-tools/bin/i586-pc-haiku-gcc -O -Wno-trigraphs -Wpointer-arith -Wcast-align -Wno-multichar -pipe -fno-strict-aliasing -fno-tree-vrp -nostdinc -DHAIKU_INCLUDE_PATENTED_CODE=0 -DHAVE_CONFIG_H -DSHELL -c "objects/haiku/x86/common/bin/bash/builtins/builtins.c" -D__HAIKU__ -DHAIKU_DISTRO_COMPATIBILITY_DEFAULT -D__INTEL__ -DARCH_x86 -DBOOT_ARCHIVE_IMAGE_OFFSET=300 -DHAIKU_TARGET_PLATFORM_HAIKU -iquote haiku/haiku/build/user_config_headers -iquote haiku/haiku/build/config_headers -iquote haiku/haiku/src/bin/bash/builtins -iquote objects/common/bin/bash/builtins -iquote objects/freebsd/x86/common/bin/bash/builtins -iquote objects/haiku/x86/common/bin/bash/builtins -I haiku/haiku/src/bin/bash/builtins/.. -I haiku/haiku/src/bin/bash/builtins/../include -I haiku/haiku/src/bin/bash/builtins/../lib -I haiku/haiku/generated.x86gcc4/cross-tools/lib/gcc/i586-pc-haiku/4.3.3/../../../../i586-pc-haiku/include/c++/4.3.3 -I haiku/haiku/generated.x86gcc4/cross-tools/lib/gcc/i586-pc-haiku/4.3.3/../../../../i586-pc-haiku/include/c++/4.3.3/i586-pc-haiku -I haiku/haiku/generated.x86gcc4/cross-tools/lib/gcc/i586-pc-haiku/4.3.3/../../../../i586-pc-haiku/include/c++/4.3.3/backward -I haiku/haiku/generated.x86gcc4/cross-tools/lib/gcc/i586-pc-haiku/4.3.3/../../../../i586-pc-haiku/include/c++/4.3.3/ext -I haiku/haiku/generated.x86gcc4/cross-tools/lib/gcc/i586-pc-haiku/4.3.3/include -I haiku/haiku/generated.x86gcc4/cross-tools/lib/gcc/i586-pc-haiku/4.3.3/include-fixed -I haiku/haiku/headers -I haiku/haiku/headers/posix -I haiku/haiku/headers/glibc -I haiku/haiku/headers/os -I haiku/haiku/headers/os/add-ons -I haiku/haiku/headers/os/add-ons/file_system -I haiku/haiku/headers/os/add-ons/graphics -I haiku/haiku/headers/os/add-ons/input_server -I haiku/haiku/headers/os/add-ons/registrar -I haiku/haiku/headers/os/add-ons/screen_saver -I haiku/haiku/headers/os/add-ons/tracker -I haiku/haiku/headers/os/app -I haiku/haiku/headers/os/device -I haiku/haiku/headers/os/drivers -I haiku/haiku/headers/os/game -I haiku/haiku/headers/os/interface -I haiku/haiku/headers/os/kernel -I haiku/haiku/headers/os/media -I haiku/haiku/headers/os/mail -I haiku/haiku/headers/os/midi -I haiku/haiku/headers/os/midi2 -I haiku/haiku/headers/os/net -I haiku/haiku/headers/os/opengl -I haiku/haiku/headers/os/storage -I haiku/haiku/headers/os/support -I haiku/haiku/headers/os/translation -I haiku/haiku/headers/private/. -o "objects/haiku/x86/release/bin/bash/builtins/builtins.o" ; ...failed Cc objects/haiku/x86/release/bin/bash/builtins/builtins.o ... Cc objects/haiku/x86/release/bin/bash/execute_cmd.o Cc objects/haiku/x86/release/bin/bash/trap.o Cc objects/haiku/x86/release/bin/bash/jobs.o haiku/haiku/src/bin/bash/jobs.c: In function 'printable_job_status': haiku/haiku/src/bin/bash/jobs.c:1024: warning: assignment discards qualifiers from pointer target type haiku/haiku/src/bin/bash/jobs.c:1026: warning: assignment discards qualifiers from pointer target type Cc objects/haiku/x86/release/bin/bash/builtins/common.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/alias.c Cc objects/haiku/x86/release/bin/bash/builtins/alias.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/bind.c Cc objects/haiku/x86/release/bin/bash/builtins/bind.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/break.c Cc objects/haiku/x86/release/bin/bash/builtins/break.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/builtin.c Cc objects/haiku/x86/release/bin/bash/builtins/builtin.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/cd.c MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/colon.c Cc objects/haiku/x86/release/bin/bash/builtins/cd.o Cc objects/haiku/x86/release/bin/bash/builtins/colon.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/command.c Cc objects/haiku/x86/release/bin/bash/builtins/command.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/declare.c Cc objects/haiku/x86/release/bin/bash/builtins/declare.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/echo.c Cc objects/haiku/x86/release/bin/bash/builtins/echo.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/enable.c MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/eval.c Cc objects/haiku/x86/release/bin/bash/builtins/enable.o Cc objects/haiku/x86/release/bin/bash/builtins/eval.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/exec.c MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/exit.c Cc objects/haiku/x86/release/bin/bash/builtins/exec.o Cc objects/haiku/x86/release/bin/bash/builtins/exit.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/fc.c MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/fg_bg.c Cc objects/haiku/x86/release/bin/bash/builtins/fc.o Cc objects/haiku/x86/release/bin/bash/builtins/fg_bg.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/hash.c Cc objects/haiku/x86/release/bin/bash/builtins/hash.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/help.c Cc objects/haiku/x86/release/bin/bash/builtins/help.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/history.c Cc objects/haiku/x86/release/bin/bash/builtins/history.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/jobs.c Cc objects/haiku/x86/release/bin/bash/builtins/jobs.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/kill.c Cc objects/haiku/x86/release/bin/bash/builtins/kill.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/let.c Cc objects/haiku/x86/release/bin/bash/builtins/let.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/pushd.c Cc objects/haiku/x86/release/bin/bash/builtins/pushd.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/read.c ...on 200th target... Cc objects/haiku/x86/release/bin/bash/builtins/read.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/return.c Cc objects/haiku/x86/release/bin/bash/builtins/return.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/set.c Cc objects/haiku/x86/release/bin/bash/builtins/set.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/setattr.c Cc objects/haiku/x86/release/bin/bash/builtins/setattr.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/shift.c MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/source.c Cc objects/haiku/x86/release/bin/bash/builtins/shift.o Cc objects/haiku/x86/release/bin/bash/builtins/source.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/suspend.c MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/test.c Cc objects/haiku/x86/release/bin/bash/builtins/suspend.o Cc objects/haiku/x86/release/bin/bash/builtins/test.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/times.c Cc objects/haiku/x86/release/bin/bash/builtins/times.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/trap.c Cc objects/haiku/x86/release/bin/bash/builtins/trap.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/type.c Cc objects/haiku/x86/release/bin/bash/builtins/type.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/ulimit.c Cc objects/haiku/x86/release/bin/bash/builtins/ulimit.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/umask.c Cc objects/haiku/x86/release/bin/bash/builtins/umask.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/wait.c MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/getopts.c Cc objects/haiku/x86/release/bin/bash/builtins/wait.o Cc objects/haiku/x86/release/bin/bash/builtins/getopts.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/shopt.c Cc objects/haiku/x86/release/bin/bash/builtins/shopt.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/printf.c Cc objects/haiku/x86/release/bin/bash/builtins/printf.o MkBuiltinsComp1 objects/haiku/x86/common/bin/bash/builtins/complete.c Cc objects/haiku/x86/release/bin/bash/builtins/complete.o AppendToContainerCopyFilesScript haiku.image-copy-files-dummy-common/settings/network ...skipped libbuiltins.a for lack of libbuiltins.a(builtins.o)... ...skipped bash for lack of libbuiltins.a... ...skipped haiku.image-copy-files-dummy-system/bin for lack of bash... ...skipped system/bin/sh for lack of haiku.image-copy-files-dummy-system/bin... ...skipped system/bin/untrash for lack of system/bin/sh... ...skipped system/bin/bunzip2 for lack of system/bin/untrash... ...skipped system/bin/more for lack of system/bin/bunzip2... ...skipped system/bin/gunzip for lack of system/bin/more... ...skipped system/bin/zcat for lack of system/bin/gunzip... ...skipped system/bin/zcmp for lack of system/bin/zcat... ...skipped system/bin/zipinfo for lack of system/bin/zcmp... ...skipped system/bin/awk for lack of system/bin/zipinfo... ...skipped system/bin/egrep for lack of system/bin/awk... ...skipped system/bin/fgrep for lack of system/bin/egrep... ...skipped system/bin/vi for lack of system/bin/fgrep... ...skipped system/bin/view for lack of system/bin/vi... ...skipped haiku.image-copy-files-dummy-system/apps for lack of system/bin/view... ...skipped haiku.image-copy-files-dummy-system/preferences for lack of haiku.image-copy-files-dummy-system/apps... ...skipped haiku.image-copy-files-dummy-system/demos for lack of haiku.image-copy-files-dummy-system/preferences... ...skipped home/Desktop/Home for lack of haiku.image-copy-files-dummy-system/demos... ...skipped home/Desktop/BeBook for lack of home/Desktop/Home... ...skipped home/Desktop/Welcome for lack of home/Desktop/BeBook... ...skipped home/config/be/Applications/ActivityMonitor for lack of home/Desktop/Welcome... ...skipped home/config/be/Applications/CharacterMap for lack of home/config/be/Applications/ActivityMonitor... ...skipped home/config/be/Applications/CodyCam for lack of home/config/be/Applications/CharacterMap... ...skipped home/config/be/Applications/CDPlayer for lack of home/config/be/Applications/CodyCam... ...skipped home/config/be/Applications/DeskCalc for lack of home/config/be/Applications/CDPlayer... ...skipped home/config/be/Applications/DiskProbe for lack of home/config/be/Applications/DeskCalc... ...skipped home/config/be/Applications/DriveSetup for lack of home/config/be/Applications/DiskProbe... ...skipped home/config/be/Applications/DiskUsage for lack of home/config/be/Applications/DriveSetup... ...skipped home/config/be/Applications/Expander for lack of home/config/be/Applications/DiskUsage... ...skipped home/config/be/Applications/Icon-O-Matic for lack of home/config/be/Applications/Expander... ...skipped home/config/be/Applications/Installer for lack of home/config/be/Applications/Icon-O-Matic... ...skipped home/config/be/Applications/Magnify for lack of home/config/be/Applications/Installer... ...skipped home/config/be/Applications/Mail for lack of home/config/be/Applications/Magnify... ...skipped home/config/be/Applications/MediaConverter for lack of home/config/be/Applications/Mail... ...skipped home/config/be/Applications/MediaPlayer for lack of home/config/be/Applications/MediaConverter... ...skipped home/config/be/Applications/MidiPlayer for lack of home/config/be/Applications/MediaPlayer... ...skipped home/config/be/Applications/People for lack of home/config/be/Applications/MidiPlayer... ...skipped home/config/be/Applications/PoorMan for lack of home/config/be/Applications/People... ...skipped home/config/be/Applications/Screenshot for lack of home/config/be/Applications/PoorMan... ...skipped home/config/be/Applications/SoundRecorder for lack of home/config/be/Applications/Screenshot... ...skipped home/config/be/Applications/StyledEdit for lack of home/config/be/Applications/SoundRecorder... ...skipped home/config/be/Applications/Terminal for lack of home/config/be/Applications/StyledEdit... ...skipped home/config/be/Applications/TV for lack of home/config/be/Applications/Terminal... ...skipped home/config/be/Applications/BePDF for lack of home/config/be/Applications/TV... ...skipped home/config/be/Applications/Clockwerk for lack of home/config/be/Applications/BePDF... ...skipped home/config/be/Applications/BeZillaBrowser for lack of home/config/be/Applications/Clockwerk... ...skipped home/config/be/Applications/Pe for lack of home/config/be/Applications/BeZillaBrowser... ...skipped home/config/be/Applications/Vision for lack of home/config/be/Applications/Pe... ...skipped home/config/be/Applications/VLC media player for lack of home/config/be/Applications/Vision... ...skipped home/config/be/Applications/WonderBrush for lack of home/config/be/Applications/VLC media player... ...skipped home/config/be/Desktop Applets/LaunchBox for lack of home/config/be/Applications/WonderBrush... ...skipped home/config/be/Desktop Applets/NetworkStatus for lack of home/config/be/Desktop Applets/LaunchBox... ...skipped home/config/be/Desktop Applets/PowerStatus for lack of home/config/be/Desktop Applets/NetworkStatus... ...skipped home/config/be/Desktop Applets/ProcessController for lack of home/config/be/Desktop Applets/PowerStatus... ...skipped home/config/be/Desktop Applets/Workspaces for lack of home/config/be/Desktop Applets/ProcessController... ...skipped home/config/be/Preferences/Appearance for lack of home/config/be/Desktop Applets/Workspaces... ...skipped home/config/be/Preferences/Backgrounds for lack of home/config/be/Preferences/Appearance... ...skipped home/config/be/Preferences/CPUFrequency for lack of home/config/be/Preferences/Backgrounds... ...skipped home/config/be/Preferences/DataTranslations for lack of home/config/be/Preferences/CPUFrequency... ...skipped home/config/be/Preferences/E-mail for lack of home/config/be/Preferences/DataTranslations... ...skipped home/config/be/Preferences/FileTypes for lack of home/config/be/Preferences/E-mail... ...skipped home/config/be/Preferences/Fonts for lack of home/config/be/Preferences/FileTypes... ...skipped home/config/be/Preferences/Keyboard for lack of home/config/be/Preferences/Fonts... ...skipped home/config/be/Preferences/Keymap for lack of home/config/be/Preferences/Keyboard... ...skipped home/config/be/Preferences/Media for lack of home/config/be/Preferences/Keymap... ...skipped home/config/be/Preferences/Mouse for lack of home/config/be/Preferences/Media... ...skipped home/config/be/Preferences/Network for lack of home/config/be/Preferences/Mouse... ...skipped home/config/be/Preferences/OpenGL for lack of home/config/be/Preferences/Network... ...skipped home/config/be/Preferences/Printers for lack of home/config/be/Preferences/OpenGL... ...skipped home/config/be/Preferences/Screen for lack of home/config/be/Preferences/Printers... ...skipped home/config/be/Preferences/ScreenSaver for lack of home/config/be/Preferences/Screen... ...skipped home/config/be/Preferences/Sounds for lack of home/config/be/Preferences/ScreenSaver... ...skipped home/config/be/Preferences/Time for lack of home/config/be/Preferences/Sounds... ...skipped home/config/be/Preferences/Touchpad for lack of home/config/be/Preferences/Time... ...skipped home/config/be/Preferences/Tracker for lack of home/config/be/Preferences/Touchpad... ...skipped home/config/be/Preferences/VirtualMemory for lack of home/config/be/Preferences/Tracker... ...skipped home/config/be/Demos/BSnow for lack of home/config/be/Preferences/VirtualMemory... ...skipped home/config/be/Demos/Chart for lack of home/config/be/Demos/BSnow... ...skipped home/config/be/Demos/Clock for lack of home/config/be/Demos/Chart... ...skipped home/config/be/Demos/Cortex for lack of home/config/be/Demos/Clock... ...skipped home/config/be/Demos/FontDemo for lack of home/config/be/Demos/Cortex... ...skipped home/config/be/Demos/GLTeapot for lack of home/config/be/Demos/FontDemo... ...skipped home/config/be/Demos/Haiku3d for lack of home/config/be/Demos/GLTeapot... ...skipped home/config/be/Demos/Mandelbrot for lack of home/config/be/Demos/Haiku3d... ...skipped home/config/be/Demos/Pairs for lack of home/config/be/Demos/Mandelbrot... ...skipped home/config/be/Demos/Playground for lack of home/config/be/Demos/Pairs... ...skipped home/config/be/Demos/Pulse for lack of home/config/be/Demos/Playground... ...skipped home/config/be/Demos/Sudoku for lack of home/config/be/Demos/Pulse... ...skipped home/config/be/Demos/Gradients for lack of home/config/be/Demos/Sudoku... ...skipped haiku.image-copy-files-dummy-system/boot for lack of home/config/be/Demos/Gradients... ...skipped haiku.image-copy-files-dummy-home/config/boot for lack of haiku.image-copy-files-dummy-system/boot... ...skipped haiku.image-copy-files-dummy-system/data/artwork for lack of haiku.image-copy-files-dummy-home/config/boot... ...skipped haiku.image-copy-files-dummy-home/config/settings/Mail/ProviderInfo for lack of haiku.image-copy-files-dummy-system/data/artwork... ...skipped haiku.image-copy-files-dummy-system/etc/word_dictionary for lack of haiku.image-copy-files-dummy-home/config/settings/Mail/ProviderInfo... ...skipped haiku.image-copy-files-dummy-system/etc/bash_completion.d for lack of haiku.image-copy-files-dummy-system/etc/word_dictionary... ...skipped haiku.image-copy-files-dummy-system/etc/vim for lack of haiku.image-copy-files-dummy-system/etc/bash_completion.d... ...skipped haiku.image-copy-files-dummy-system/etc/fortunes for lack of haiku.image-copy-files-dummy-system/etc/vim... ...skipped haiku.image-copy-files-dummy-system/fonts/psfonts for lack of haiku.image-copy-files-dummy-system/etc/fortunes... ...skipped haiku.image-copy-files-dummy-system/fonts/ttfonts for lack of haiku.image-copy-files-dummy-system/fonts/psfonts... ...skipped haiku.image-copy-files-dummy-system/data/Canna/default for lack of haiku.image-copy-files-dummy-system/fonts/ttfonts... ...skipped haiku.image-copy-files-dummy-system/data/Canna/dic for lack of haiku.image-copy-files-dummy-system/data/Canna/default... ...skipped haiku.image-copy-files-dummy-system/data/Canna/dic/canna for lack of haiku.image-copy-files-dummy-system/data/Canna/dic... ...skipped haiku.image-copy-files-dummy-system/data/Keymaps for lack of haiku.image-copy-files-dummy-system/data/Canna/dic/canna... ...skipped system/data/Keymaps/Finnish for lack of haiku.image-copy-files-dummy-system/data/Keymaps... ...skipped system/data/Keymaps/Croatian for lack of system/data/Keymaps/Finnish... ...skipped system/data/Keymaps/Brazilian for lack of system/data/Keymaps/Croatian... ...skipped haiku.image-copy-files-dummy-system/data/KeyboardLayouts for lack of system/data/Keymaps/Brazilian... ...skipped haiku.image-copy-files-dummy-system/data/timezones/Africa for lack of haiku.image-copy-files-dummy-system/data/KeyboardLayouts... ...skipped haiku.image-copy-files-dummy-system/data/timezones/Atlantic for lack of haiku.image-copy-files-dummy-system/data/timezones/Africa... ...skipped haiku.image-copy-files-dummy-system/data/timezones/Indian for lack of haiku.image-copy-files-dummy-system/data/timezones/Atlantic... ...skipped haiku.image-copy-files-dummy-system/data/timezones/Antarctica for lack of haiku.image-copy-files-dummy-system/data/timezones/Indian... ...skipped haiku.image-copy-files-dummy-system/data/timezones/Asia for lack of haiku.image-copy-files-dummy-system/data/timezones/Antarctica... ...skipped haiku.image-copy-files-dummy-system/data/timezones/Europe for lack of haiku.image-copy-files-dummy-system/data/timezones/Asia... ...skipped haiku.image-copy-files-dummy-system/data/timezones/Australia for lack of haiku.image-copy-files-dummy-system/data/timezones/Europe... ...skipped haiku.image-copy-files-dummy-system/data/timezones/Pacific for lack of haiku.image-copy-files-dummy-system/data/timezones/Australia... ...skipped haiku.image-copy-files-dummy-system/data/timezones for lack of haiku.image-copy-files-dummy-system/data/timezones/Pacific... ...skipped haiku.image-copy-files-dummy-system/data/timezones/America for lack of haiku.image-copy-files-dummy-system/data/timezones... ...skipped haiku.image-copy-files-dummy-system/data/timezones/Arctic for lack of haiku.image-copy-files-dummy-system/data/timezones/America... ...skipped haiku.image-copy-files-dummy-system/data/timezones/America/North_Dakota for lack of haiku.image-copy-files-dummy-system/data/timezones/Arctic... ...skipped haiku.image-copy-files-dummy-system/data/timezones/America/Indiana for lack of haiku.image-copy-files-dummy-system/data/timezones/America/North_Dakota... ...skipped haiku.image-copy-files-dummy-system/data/timezones/America/Kentucky for lack of haiku.image-copy-files-dummy-system/data/timezones/America/Indiana... ...skipped haiku.image-copy-files-dummy-system/data/timezones/America/Argentina for lack of haiku.image-copy-files-dummy-system/data/timezones/America/Kentucky... ...skipped haiku.image-copy-files-dummy-system/data/timezones/US for lack of haiku.image-copy-files-dummy-system/data/timezones/America/Argentina... ...skipped haiku.image-copy-files-dummy-system/data/timezones/Etc for lack of haiku.image-copy-files-dummy-system/data/timezones/US... ...skipped haiku.image-copy-files-dummy-system/data/timezones/Brazil for lack of haiku.image-copy-files-dummy-system/data/timezones/Etc... ...skipped haiku.image-copy-files-dummy-system/data/timezones/Canada for lack of haiku.image-copy-files-dummy-system/data/timezones/Brazil... ...skipped haiku.image-copy-files-dummy-system/data/timezones/Chile for lack of haiku.image-copy-files-dummy-system/data/timezones/Canada... ...skipped haiku.image-copy-files-dummy-system/data/timezones/Mexico for lack of haiku.image-copy-files-dummy-system/data/timezones/Chile... ...skipped haiku.image-copy-files-dummy-home/config/settings/kernel/drivers for lack of haiku.image-copy-files-dummy-system/data/timezones/Mexico... ...skipped haiku-alpha.image for lack of haiku.image-copy-files... ...failed updating 1 target(s)... ...skipped 132 target(s)... ...updated 234 target(s)... command: jam -q -j2 @alpha-raw From leavengood at gmail.com Sat Sep 12 17:04:20 2009 From: leavengood at gmail.com (Ryan Leavengood) Date: Sat, 12 Sep 2009 11:04:20 -0400 Subject: [Haiku-commits] r33078 - haiku/trunk/src/preferences/mouse In-Reply-To: <200909120553.n8C5rDIx008470@sheep.berlios.de> References: <200909120553.n8C5rDIx008470@sheep.berlios.de> Message-ID: On Sat, Sep 12, 2009 at 1:53 AM, wrote: > > * Draw a pseudo mouse instead of using the bitmap. It's ugly and should be done > ?properly by someone with more of an artistic talent than me. But it should do > ?for now. I don't know if I have an artistic talent after doing a few icons (plus we are running out of time) but I can take a look at this. Though it is probably fine for the purposes of the alpha. > * Downright removed the little icons. The code is still there, but since the > ?icons aren't there anymore it will simply fail to load them and not use them. I could also look into replacing these with HVIF icons, though probably not in time for the alpha. But I'm also not sure if they really add much value. Same for the Keyboard preferences small icons. -- Regards, Ryan From aljen at mail.berlios.de Sat Sep 12 17:37:48 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 17:37:48 +0200 Subject: [Haiku-commits] r33098 - in haiku/branches/components/gallium3d/src: add-ons/opengl/i915 add-ons/opengl/softpipe kits/opengl kits/opengl/gallium kits/opengl/gallium/drivers/i915simple kits/opengl/gallium/drivers/softpipe kits/opengl/gallium/state_trackers/dri kits/opengl/glu kits/opengl/glut kits/opengl/mesa kits/opengl/mesa/drivers/dri/common Message-ID: <200909121537.n8CFbmOY002331@sheep.berlios.de> Author: aljen Date: 2009-09-12 17:37:38 +0200 (Sat, 12 Sep 2009) New Revision: 33098 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33098&view=rev Added: haiku/branches/components/gallium3d/src/kits/opengl/gallium/Jamfile haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/Jamfile haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/Jamfile haiku/branches/components/gallium3d/src/kits/opengl/gallium/state_trackers/dri/Jamfile haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/Jamfile Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/Jamfile haiku/branches/components/gallium3d/src/kits/opengl/Jamfile haiku/branches/components/gallium3d/src/kits/opengl/glu/Jamfile haiku/branches/components/gallium3d/src/kits/opengl/glut/Jamfile haiku/branches/components/gallium3d/src/kits/opengl/mesa/Jamfile Log: "The Jamfiles from Another World" aka separating & clearing part two Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile 2009-09-12 14:36:38 UTC (rev 33097) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile 2009-09-12 15:37:38 UTC (rev 33098) @@ -17,15 +17,8 @@ UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ; UseHeaders [ FDirName $(HAIKU_TOP) src add-ons opengl trace ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl hgl ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa main ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa gallium include ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa gallium auxiliary ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa glapi ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa tnl ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa x86 ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa ppc ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl gallium include ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl gallium auxiliary ] ; UseHeaders [ FDirName $(HAIKU_TOP) src libs drm intel ] : true ; UseHeaders [ FDirName $(HAIKU_TOP) src libs drm ] : true ; UseHeaders [ FDirName $(SUBDIR) gem ] : true ; @@ -34,34 +27,7 @@ SEARCH_SOURCE += [ FDirName $(SUBDIR) gem ] ; Addon i915 : - # intel gem - intel_drm_api.c - intel_drm_batchbuffer.c - intel_drm_buffer.c - intel_drm_fence.c - - # driver i915PipeRenderer.cpp - i915_blit.c - i915_buffer.c - i915_clear.c - i915_context.c - i915_debug.c - i915_debug_fp.c - i915_flush.c - i915_fpc_emit.c - i915_fpc_translate.c - i915_prim_emit.c - i915_prim_vbuf.c - i915_screen.c - i915_state.c - i915_state_derived.c - i915_state_dynamic.c - i915_state_emit.c - i915_state_immediate.c - i915_state_sampler.c - i915_surface.c - i915_texture.c - : libGL.so libmesa.a be libdrm_intel.so $(TARGET_LIBSUPC++) + : libGL.so libmesa.a libi915simple.a libdrm_intel.so be $(TARGET_LIBSUPC++) ; Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/Jamfile 2009-09-12 14:36:38 UTC (rev 33097) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/Jamfile 2009-09-12 15:37:38 UTC (rev 33098) @@ -2,39 +2,32 @@ SetSubDirSupportedPlatformsBeOSCompatible ; -if $(TARGET_PLATFORM) != haiku { - UseHeaders [ FDirName $(HAIKU_TOP) headers os opengl ] : true ; - # We need our public GL headers also when not compiling for Haiku. -} +local defines ; +defines = BEOS_THREADS GNU_ASSEMBLER ; - -{ - local defines ; - defines = BEOS_THREADS GNU_ASSEMBLER ; - - if $(TARGET_ARCH) = x86 { - 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 ; - } - - SubDirC++Flags [ FDefines $(defines) ] ; +if $(TARGET_ARCH) = x86 { + 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 ; } +SubDirC++Flags [ FDefines $(defines) ] ; + UsePrivateHeaders interface opengl ; -UseHeaders [ FDirName $(HAIKU_TOP) src add-ons opengl trace ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl hgl ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl gallium auxiliary ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl gallium drivers softpipe ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl gallium include ] ; UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa main ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa gallium include ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa gallium auxiliary ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa glapi ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa tnl ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa x86 ] ; -UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa ppc ] ; +#UseHeaders [ FDirName $(HAIKU_TOP) src add-ons opengl trace ] ; +#UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa main ] ; +#UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa glapi ] ; +#UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa tnl ] ; +#UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa x86 ] ; +#UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa ppc ] ; + Addon SoftPipe : SoftPipeRenderer.cpp hsp_bitmap_wrapper.cpp @@ -43,43 +36,5 @@ hsp_device.c hsp_framebuffer.c hsp_getprocaddress.c -# hsp_pixelformat.c - sp_clear.c - sp_context.c - sp_draw_arrays.c - sp_flush.c - sp_fs_exec.c - sp_fs_llvm.c - sp_fs_sse.c - sp_prim_setup.c - sp_prim_vbuf.c - sp_quad_alpha_test.c - sp_quad_blend.c -# sp_quad_bufloop.c - sp_quad_colormask.c - sp_quad_coverage.c - sp_quad_depth_test.c - sp_quad_earlyz.c - sp_quad_fs.c - sp_quad_occlusion.c - sp_quad_output.c - sp_quad_pipe.c - sp_quad_stencil.c - sp_quad_stipple.c - sp_query.c - sp_screen.c - sp_setup.c - sp_state_blend.c - sp_state_clip.c - sp_state_derived.c - sp_state_fs.c - sp_state_rasterizer.c - sp_state_sampler.c - sp_state_surface.c - sp_state_vertex.c - sp_surface.c - sp_tex_sample.c - sp_texture.c - sp_tile_cache.c - : libGL.so libmesa.a be translation $(TARGET_LIBSUPC++) + : libGL.so libmesa.a libsoftpipe.a libgallium.a be translation $(TARGET_LIBSUPC++) ; Modified: haiku/branches/components/gallium3d/src/kits/opengl/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/Jamfile 2009-09-12 14:36:38 UTC (rev 33097) +++ haiku/branches/components/gallium3d/src/kits/opengl/Jamfile 2009-09-12 15:37:38 UTC (rev 33098) @@ -46,25 +46,20 @@ : # Mesa GL API dispatching code - glapi-dispatching.o + glapi-dispatching.o # GLU API is included in libGL.so under BeOS R5, not a separate libglu.so library - sgi-glu.o + sgi-glu.o # GLUT API is included in libGL.so under Haiku, not a separate libglut.so library - glut.o - - dricommon.o - drist.o + glut.o - libmesa.a # For GL API dispatching, mostly +# gallium.o +# mesa.o # For GL API dispatching, mostly # External libs: be game # BWindowScreen needed by BGLScreen stub class - libdrm.so - expat - bsd $(TARGET_LIBSTDC++) ; @@ -72,6 +67,7 @@ libGL.so : boot beos system lib ; +SubInclude HAIKU_TOP src kits opengl gallium ; SubInclude HAIKU_TOP src kits opengl glu ; SubInclude HAIKU_TOP src kits opengl glut ; SubInclude HAIKU_TOP src kits opengl mesa ; Added: haiku/branches/components/gallium3d/src/kits/opengl/gallium/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/gallium/Jamfile 2009-09-12 14:36:38 UTC (rev 33097) +++ haiku/branches/components/gallium3d/src/kits/opengl/gallium/Jamfile 2009-09-12 15:37:38 UTC (rev 33098) @@ -0,0 +1,189 @@ +SubDir HAIKU_TOP src kits opengl gallium ; + +DEBUG = 0 ; + +UsePrivateHeaders opengl ; + +UseHeaders [ FDirName $(SUBDIR) auxiliary ] ; +UseHeaders [ FDirName $(SUBDIR) include ] ; +UseHeaders [ FDirName $(SUBDIR) state_trackers dri ] ; + +SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary cso_cache ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary draw ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary gallivm ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary indices ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary pipebuffer ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary rtasm ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary sct ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary tgsi ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary translate ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary util ] ; + +local defines ; +defines = BEOS_THREADS GNU_ASSEMBLER HAVE_POSIX_MEMALIGN ; + +if $(TARGET_ARCH) = x86 { + 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 ; +} else if $(TARGET_ARCH) = sparc { + defines += USE_SPARC_ASM ; +} + +defines = [ FDefines $(defines) ] ; +SubDirCcFlags $(defines) ; +SubDirC++Flags $(defines) ; +SubDirAsFlags $(defines) ; + + +StaticLibrary libgallium.a : + # auxiliary/cso_cache + cso_cache.c + cso_context.c + cso_hash.c + + # auxiliary/draw + draw_context.c + draw_pipe.c + draw_pipe_aaline.c + draw_pipe_aapoint.c + draw_pipe_clip.c + draw_pipe_cull.c + draw_pipe_flatshade.c + draw_pipe_offset.c + draw_pipe_pstipple.c + draw_pipe_stipple.c + draw_pipe_twoside.c + draw_pipe_unfilled.c + draw_pipe_util.c + draw_pipe_validate.c + draw_pipe_vbuf.c + draw_pipe_wide_line.c + draw_pipe_wide_point.c + draw_pt.c + draw_pt_elts.c + draw_pt_emit.c + draw_pt_fetch.c + draw_pt_fetch_emit.c + draw_pt_fetch_shade_emit.c + draw_pt_fetch_shade_pipeline.c + draw_pt_post_vs.c + draw_pt_util.c + draw_pt_varray.c + draw_pt_vcache.c + draw_vertex.c + draw_vs.c + draw_vs_aos.c + draw_vs_aos_io.c + draw_vs_aos_machine.c + draw_vs_exec.c + draw_vs_llvm.c + draw_vs_ppc.c + draw_vs_sse.c + draw_vs_varient.c + + # auxiliary/gallivm +# gallivm.cpp +# gallivm_builtins.cpp +# gallivm_cpu.cpp +# instructions.cpp +# instructionssoa.cpp +# llvm_builtins.c +# loweringpass.cpp +# soabuiltins.c +# storage.cpp +# storagesoa.cpp +# tgsitollvm.cpp + + # auxiliary/indices +# u_indices.c +# u_indices_gen.c +# u_unfilled_gen.c +# u_unfilled_indices.c + + # auxiliary/pipebuffer + pb_buffer_fenced.c + pb_buffer_malloc.c + pb_bufmgr_alt.c + pb_bufmgr_cache.c + pb_bufmgr_debug.c + pb_bufmgr_fenced.c + pb_bufmgr_mm.c + pb_bufmgr_ondemand.c + pb_bufmgr_pool.c + pb_bufmgr_slab.c + pb_validate.c + + # auxiliary/rtasm + rtasm_cpu.c + rtasm_execmem.c +# rtasm_ppc.c +# rtasm_ppc_spe.c + rtasm_x86sse.c + + # auxiliary/sct + sct.c + usage.c + + # auxiliary/tgsi + tgsi_build.c + tgsi_dump.c + tgsi_dump_c.c + tgsi_exec.c + tgsi_info.c + tgsi_iterate.c + tgsi_parse.c + tgsi_ppc.c + tgsi_sanity.c + tgsi_scan.c + tgsi_sse2.c + tgsi_text.c + tgsi_transform.c + tgsi_util.c + tgsi_ureg.c + + # auxiliary/translate + translate.c + translate_cache.c + translate_generic.c + translate_sse.c + + # auxiliary/util + u_bitmask.c + u_blit.c + u_cache.c + u_cpu_detect.c + u_debug.c + u_debug_dump.c + u_debug_memory.c + u_debug_profile.c + u_debug_stack.c + u_debug_symbol.c + u_draw_quad.c + u_format.c + u_gen_mipmap.c + u_handle_table.c + u_hash.c + u_hash_table.c + u_keymap.c + u_linear.c + u_math.c + u_mm.c + u_network.c + u_rect.c + u_simple_screen.c + u_simple_shaders.c + u_snprintf.c + u_stream_stdc.c + u_stream_wd.c + u_surface.c + u_tile.c + u_time.c + u_timed_winsys.c + u_upload_mgr.c +; + +SubInclude HAIKU_TOP src kits opengl gallium drivers i915simple ; +SubInclude HAIKU_TOP src kits opengl gallium drivers softpipe ; +SubInclude HAIKU_TOP src kits opengl gallium state_trackers dri ; Added: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/Jamfile 2009-09-12 14:36:38 UTC (rev 33097) +++ haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/Jamfile 2009-09-12 15:37:38 UTC (rev 33098) @@ -0,0 +1,57 @@ +SubDir HAIKU_TOP src kits opengl gallium drivers i915simple ; + +local defines ; +defines = BEOS_THREADS GNU_ASSEMBLER ; + +if $(TARGET_ARCH) = x86 { + 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 ; +} + +SubDirC++Flags [ FDefines $(defines) ] ; + +UsePrivateHeaders interface opengl ; +UseLibraryHeaders drm ; + +UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl gallium include ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl gallium auxiliary ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src libs drm intel ] : true ; +UseHeaders [ FDirName $(HAIKU_TOP) src libs drm ] : true ; +UseHeaders [ FDirName $(SUBDIR) gem ] : true ; +UseHeaders [ FDirName $(SUBDIR) ] : true ; + +SEARCH_SOURCE += [ FDirName $(SUBDIR) gem ] ; + +StaticLibrary libi915simple.a : + # intel gem + intel_drm_api.c + intel_drm_batchbuffer.c + intel_drm_buffer.c + intel_drm_fence.c + + # driver + i915_blit.c + i915_buffer.c + i915_clear.c + i915_context.c + i915_debug.c + i915_debug_fp.c + i915_flush.c + i915_fpc_emit.c + i915_fpc_translate.c + i915_prim_emit.c + i915_prim_vbuf.c + i915_screen.c + i915_state.c + i915_state_derived.c + i915_state_dynamic.c + i915_state_emit.c + i915_state_immediate.c + i915_state_sampler.c + i915_surface.c + i915_texture.c +; Added: haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/Jamfile 2009-09-12 14:36:38 UTC (rev 33097) +++ haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/Jamfile 2009-09-12 15:37:38 UTC (rev 33098) @@ -0,0 +1,56 @@ +SubDir HAIKU_TOP src kits opengl gallium drivers softpipe ; + +local defines ; +defines = BEOS_THREADS GNU_ASSEMBLER ; + +if $(TARGET_ARCH) = x86 { + 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 ; +} + +SubDirC++Flags [ FDefines $(defines) ] ; + +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl gallium include ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl gallium auxiliary ] ; + +StaticLibrary libsoftpipe.a : + sp_clear.c + sp_context.c + sp_draw_arrays.c + sp_flush.c + sp_fs_exec.c + sp_fs_llvm.c + sp_fs_sse.c + sp_prim_setup.c + sp_prim_vbuf.c + sp_quad_alpha_test.c + sp_quad_blend.c +# sp_quad_bufloop.c + sp_quad_colormask.c + sp_quad_coverage.c + sp_quad_depth_test.c + sp_quad_earlyz.c + sp_quad_fs.c + sp_quad_occlusion.c + sp_quad_output.c + sp_quad_pipe.c + sp_quad_stencil.c + sp_quad_stipple.c + sp_query.c + sp_screen.c + sp_setup.c + sp_state_blend.c + sp_state_clip.c + sp_state_derived.c + sp_state_fs.c + sp_state_rasterizer.c + sp_state_sampler.c + sp_state_surface.c + sp_state_vertex.c + sp_surface.c + sp_tex_sample.c + sp_texture.c + sp_tile_cache.c +; Added: haiku/branches/components/gallium3d/src/kits/opengl/gallium/state_trackers/dri/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/gallium/state_trackers/dri/Jamfile 2009-09-12 14:36:38 UTC (rev 33097) +++ haiku/branches/components/gallium3d/src/kits/opengl/gallium/state_trackers/dri/Jamfile 2009-09-12 15:37:38 UTC (rev 33098) @@ -0,0 +1,25 @@ +SubDir HAIKU_TOP src kits opengl gallium state_trackers dri ; + +UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl gallium auxiliary ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl gallium include ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl gallium state_trackers dri ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa drivers dri common ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src libs drm ] : true ; + +UsePrivateHeaders opengl ; +UseLibraryHeaders drm expat ; + +local defines; +defines = [ FDefines IN_DRI_DRIVER ] ; +SubDirCcFlags $(defines) ; +SubDirC++Flags $(defines) ; + +StaticLibrary libdrist.a : + dri_context.c + dri_drawable.c + dri_extensions.c + dri_screen.c + dri_util.c +; Modified: haiku/branches/components/gallium3d/src/kits/opengl/glu/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/glu/Jamfile 2009-09-12 14:36:38 UTC (rev 33097) +++ haiku/branches/components/gallium3d/src/kits/opengl/glu/Jamfile 2009-09-12 15:37:38 UTC (rev 33098) @@ -21,7 +21,7 @@ SEARCH_SOURCE += [ FDirName $(SUBDIR) libnurbs internals ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) libnurbs nurbtess ] ; -MergeObject sgi-glu.o : +MergeObject sgi-glu.o : # libutil error.c Modified: haiku/branches/components/gallium3d/src/kits/opengl/glut/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/glut/Jamfile 2009-09-12 14:36:38 UTC (rev 33097) +++ haiku/branches/components/gallium3d/src/kits/opengl/glut/Jamfile 2009-09-12 15:37:38 UTC (rev 33098) @@ -7,7 +7,7 @@ # We need our public GL headers also when not compiling for Haiku. } -MergeObject glut.o : +MergeObject glut.o : # C++ sources glutBlocker.cpp glutInit.cpp Modified: haiku/branches/components/gallium3d/src/kits/opengl/mesa/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/mesa/Jamfile 2009-09-12 14:36:38 UTC (rev 33097) +++ haiku/branches/components/gallium3d/src/kits/opengl/mesa/Jamfile 2009-09-12 15:37:38 UTC (rev 33098) @@ -1,22 +1,14 @@ SubDir HAIKU_TOP src kits opengl mesa ; -SetSubDirSupportedPlatformsBeOSCompatible ; - -if $(TARGET_PLATFORM) != haiku { - UseHeaders [ FDirName $(HAIKU_TOP) headers os opengl ] : true ; - # We need our not platform one, public GL headers also when not compiling for Haiku. -} - # Don't compile libmesa.a with debugging. DEBUG = 0 ; UsePrivateHeaders opengl ; +UseHeaders [ FDirName $(SUBDIR) $(DOTDOT) gallium auxiliary ] ; +UseHeaders [ FDirName $(SUBDIR) $(DOTDOT) gallium include ] ; UseHeaders [ FDirName $(SUBDIR) main ] ; UseHeaders [ FDirName $(SUBDIR) glapi ] ; -UseHeaders [ FDirName $(SUBDIR) gallium auxiliary ] ; -UseHeaders [ FDirName $(SUBDIR) gallium include ] ; -UseHeaders [ FDirName $(SUBDIR) gallium state_trackers dri ] ; UseHeaders [ FDirName $(SUBDIR) math ] ; UseHeaders [ FDirName $(SUBDIR) tnl ] ; UseHeaders [ FDirName $(SUBDIR) shader ] ; @@ -41,16 +33,6 @@ SEARCH_SOURCE += [ FDirName $(SUBDIR) tnl ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) vbo ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) vf ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium auxiliary cso_cache ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium auxiliary draw ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium auxiliary gallivm ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium auxiliary indices ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium auxiliary pipebuffer ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium auxiliary rtasm ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium auxiliary sct ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium auxiliary tgsi ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium auxiliary translate ] ; -SEARCH_SOURCE += [ FDirName $(SUBDIR) gallium auxiliary util ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) $(TARGET_ARCH) ] ; UsePublicObjectHeaders gen_matypes : opengl ; @@ -99,8 +81,6 @@ common_x86.c common_x86_asm.S - glapi_x86.S - x86_xform.c x86_xform2.S x86_xform3.S @@ -153,7 +133,7 @@ } -StaticLibrary libmesa.a : +StaticLibrary libmesa.a : # main api_arrayelt.c @@ -362,156 +342,6 @@ slang_vartable.c slang_utility.c - # glapi - glapi.c - glapi_getproc.c - glthread.c - - # gallium/auxiliary/cso_cache - cso_cache.c - cso_context.c - cso_hash.c - - # gallium/auxiliary/draw - draw_context.c - draw_pipe.c - draw_pipe_aaline.c - draw_pipe_aapoint.c - draw_pipe_clip.c - draw_pipe_cull.c - draw_pipe_flatshade.c - draw_pipe_offset.c - draw_pipe_pstipple.c - draw_pipe_stipple.c - draw_pipe_twoside.c - draw_pipe_unfilled.c - draw_pipe_util.c - draw_pipe_validate.c - draw_pipe_vbuf.c - draw_pipe_wide_line.c - draw_pipe_wide_point.c - draw_pt.c - draw_pt_elts.c - draw_pt_emit.c - draw_pt_fetch.c - draw_pt_fetch_emit.c - draw_pt_fetch_shade_emit.c - draw_pt_fetch_shade_pipeline.c - draw_pt_post_vs.c - draw_pt_util.c - draw_pt_varray.c - draw_pt_vcache.c - draw_vertex.c - draw_vs.c - draw_vs_aos.c - draw_vs_aos_io.c - draw_vs_aos_machine.c - draw_vs_exec.c - draw_vs_llvm.c - draw_vs_ppc.c - draw_vs_sse.c - draw_vs_varient.c - - # gallium/auxiliary/gallivm -# gallivm.cpp -# gallivm_builtins.cpp -# gallivm_cpu.cpp -# instructions.cpp -# instructionssoa.cpp -# llvm_builtins.c -# loweringpass.cpp -# soabuiltins.c -# storage.cpp -# storagesoa.cpp -# tgsitollvm.cpp - - # gallium/auxiliary/indices -# u_indices.c -# u_indices_gen.c -# u_unfilled_gen.c -# u_unfilled_indices.c - - # gallium/auxiliary/pipebuffer - pb_buffer_fenced.c - pb_buffer_malloc.c - pb_bufmgr_alt.c - pb_bufmgr_cache.c - pb_bufmgr_debug.c - pb_bufmgr_fenced.c - pb_bufmgr_mm.c - pb_bufmgr_ondemand.c - pb_bufmgr_pool.c - pb_bufmgr_slab.c - pb_validate.c - - # gallium/auxiliary/rtasm - rtasm_cpu.c - rtasm_execmem.c -# rtasm_ppc.c -# rtasm_ppc_spe.c - rtasm_x86sse.c - - # gallium/auxiliary/sct - sct.c - usage.c - - # gallium/auxiliary/tgsi - tgsi_build.c - tgsi_dump.c - tgsi_dump_c.c - tgsi_exec.c - tgsi_info.c - tgsi_iterate.c - tgsi_parse.c - tgsi_ppc.c - tgsi_sanity.c - tgsi_scan.c - tgsi_sse2.c - tgsi_text.c - tgsi_transform.c - tgsi_util.c - tgsi_ureg.c - - # gallium/auxiliary/translate - translate.c - translate_cache.c - translate_generic.c - translate_sse.c - - # gallium/auxiliary/util - u_bitmask.c - u_blit.c - u_cache.c - u_cpu_detect.c - u_debug.c - u_debug_dump.c - u_debug_memory.c - u_debug_profile.c - u_debug_stack.c - u_debug_symbol.c - u_draw_quad.c - u_format.c - u_gen_mipmap.c - u_handle_table.c - u_hash.c - u_hash_table.c - u_keymap.c - u_linear.c - u_math.c - u_mm.c - u_network.c - u_rect.c - u_simple_screen.c - u_simple_shaders.c - u_snprintf.c - u_stream_stdc.c - u_stream_wd.c - u_surface.c - u_tile.c - u_time.c - u_timed_winsys.c - u_upload_mgr.c - # arch specific assembly optimization $(arch_sources) ; @@ -527,13 +357,13 @@ arch_sources = ; } -MergeObject glapi-dispatching.o : +MergeObject glapi-dispatching.o : glapi.c + glapi_getproc.c glthread.c $(arch_sources) ; SubInclude HAIKU_TOP src kits opengl mesa drivers dri common ; -SubInclude HAIKU_TOP src kits opengl mesa gallium state_trackers dri ; Added: haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/Jamfile 2009-09-12 14:36:38 UTC (rev 33097) +++ haiku/branches/components/gallium3d/src/kits/opengl/mesa/drivers/dri/common/Jamfile 2009-09-12 15:37:38 UTC (rev 33098) @@ -0,0 +1,23 @@ +SubDir HAIKU_TOP src kits opengl mesa drivers dri common ; + +UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ; +UseHeaders [ FDirName $(HAIKU_TOP) src kits opengl mesa ] ; +UseHeaders [ FDirName $(HAIKU_TOP) src libs drm ] : true ; + +UsePrivateHeaders opengl ; +UseLibraryHeaders drm expat ; + +local defines; +defines = [ FDefines IN_DRI_DRIVER ] ; +SubDirCcFlags $(defines) ; +SubDirC++Flags $(defines) ; + +StaticLibrary libdricommon.a : +# dri_metaops.c +# drirenderbuffer.c +# dri_util.c +# texmem.c + utils.c +# vblank.c + xmlconfig.c +; From aljen at mail.berlios.de Sat Sep 12 17:46:42 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 17:46:42 +0200 Subject: [Haiku-commits] r33099 - in haiku/branches/components/gallium3d: headers/private headers/private/drm src/add-ons/kernel src/add-ons/kernel/drivers src/add-ons/kernel/drivers/drm src/add-ons/kernel/drivers/drm/test src/add-ons/kernel/drm Message-ID: <200909121546.n8CFkg0K003764@sheep.berlios.de> Author: aljen Date: 2009-09-12 17:46:37 +0200 (Sat, 12 Sep 2009) New Revision: 33099 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33099&view=rev Added: haiku/branches/components/gallium3d/headers/private/drm/ haiku/branches/components/gallium3d/headers/private/drm/drm_module.h haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/ haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/Jamfile haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/ haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/Jamfile haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/drm_test.c haiku/branches/components/gallium3d/src/add-ons/kernel/drm/ haiku/branches/components/gallium3d/src/add-ons/kernel/drm/Jamfile haiku/branches/components/gallium3d/src/add-ons/kernel/drm/drm_module.c Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/Jamfile haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/Jamfile Log: Added empty kernel drm code Added: haiku/branches/components/gallium3d/headers/private/drm/drm_module.h =================================================================== --- haiku/branches/components/gallium3d/headers/private/drm/drm_module.h 2009-09-12 15:37:38 UTC (rev 33098) +++ haiku/branches/components/gallium3d/headers/private/drm/drm_module.h 2009-09-12 15:46:37 UTC (rev 33099) @@ -0,0 +1,12 @@ +#ifndef __DRM_MODULE_H__ +#define __DRM_MODULE_H__ + +#include + +#define DRM_MODULE_NAME "drm/drm" + +typedef struct { + module_info info; +} drm_module_info; + +#endif // __DRM_MODULE_H__ Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/Jamfile 2009-09-12 15:37:38 UTC (rev 33098) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/Jamfile 2009-09-12 15:46:37 UTC (rev 33099) @@ -5,6 +5,7 @@ SubInclude HAIKU_TOP src add-ons kernel console ; SubInclude HAIKU_TOP src add-ons kernel cpu ; SubInclude HAIKU_TOP src add-ons kernel debugger ; +SubInclude HAIKU_TOP src add-ons kernel drm ; SubInclude HAIKU_TOP src add-ons kernel drivers ; SubInclude HAIKU_TOP src add-ons kernel file_cache ; SubInclude HAIKU_TOP src add-ons kernel file_systems ; Modified: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/Jamfile 2009-09-12 15:37:38 UTC (rev 33098) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/Jamfile 2009-09-12 15:46:37 UTC (rev 33099) @@ -5,6 +5,7 @@ SubInclude HAIKU_TOP src add-ons kernel drivers bus ; SubInclude HAIKU_TOP src add-ons kernel drivers audio ; SubInclude HAIKU_TOP src add-ons kernel drivers common ; +SubInclude HAIKU_TOP src add-ons kernel drivers drm ; SubInclude HAIKU_TOP src add-ons kernel drivers disk ; SubInclude HAIKU_TOP src add-ons kernel drivers dvb ; SubInclude HAIKU_TOP src add-ons kernel drivers input ; Added: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/Jamfile 2009-09-12 15:37:38 UTC (rev 33098) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/Jamfile 2009-09-12 15:46:37 UTC (rev 33099) @@ -0,0 +1,3 @@ +SubDir HAIKU_TOP src add-ons kernel drivers drm ; + +SubInclude HAIKU_TOP src add-ons kernel drivers drm test ; Added: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/Jamfile 2009-09-12 15:37:38 UTC (rev 33098) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/Jamfile 2009-09-12 15:46:37 UTC (rev 33099) @@ -0,0 +1,7 @@ +SubDir HAIKU_TOP src add-ons kernel drivers drm test ; + +UsePrivateHeaders kernel drm ; + +KernelAddon drm_test : + drm_test.c + ; Added: haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/drm_test.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/drm_test.c 2009-09-12 15:37:38 UTC (rev 33098) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/drivers/drm/test/drm_test.c 2009-09-12 15:46:37 UTC (rev 33099) @@ -0,0 +1,134 @@ +#include +#include + +#include +#include + +#include +#include + +#define DEVICE_NAME "drm/0" + +int32 api_version = B_CUR_DRIVER_API_VERSION; +static mutex gLock; +drm_module_info* gDrmModule; + +static status_t +drm_test_open(const char* name, uint32 flags, void** cookie) +{ + dprintf("drm_test: drm_test_open\n"); + *cookie = NULL; + return B_OK; +} + + +static status_t +drm_test_close(void* cookie) +{ + dprintf("drm_test: drm_test_close\n"); + return B_OK; +} + + +static status_t +drm_test_freecookie(void* cookie) +{ + dprintf("drm_test: drm_test_freecookie\n"); + return B_OK; +} + + +static status_t +drm_test_ioctl(void* cookie, uint32 op, void* buffer, size_t length) +{ + dprintf("drm_test: drm_test_ioctl op: %ld buf: %p, len: %ld\n", op, + buffer, length); + return EPERM; +} + + +static status_t +drm_test_read(void* cookie, off_t pos, void* buffer, size_t* length) +{ + dprintf("drm_test: drm_test_read gDrmModule: %p len: %ld\n", + gDrmModule, *length); + *length = 0; + return B_NOT_ALLOWED; +} + + +static status_t +drm_test_write(void* cookie, off_t pos, const void* buffer, size_t *length) +{ + dprintf("drm_test: drm_test_write\n"); + *length = 0; + return B_NOT_ALLOWED; +} + + +status_t +init_hardware() +{ + dprintf("drm_test: init_hardware\n"); + return B_OK; +} + + +const char** +publish_devices(void) +{ + dprintf("drm_test: publish_devices\n"); + static const char* devices[] = { + DEVICE_NAME, + NULL + }; + return devices; +} + + +device_hooks* +find_device(const char* name) +{ + dprintf("drm_test: find_device name: %s\n", name); + static device_hooks hooks = { + &drm_test_open, + &drm_test_close, + &drm_test_freecookie, + &drm_test_ioctl, + &drm_test_read, + &drm_test_write, + NULL, + NULL, + NULL, + NULL + }; + + if (!strcmp(name, DEVICE_NAME)) + return &hooks; + + return NULL; +} + + +status_t +init_driver(void) +{ + dprintf("drm_test: init_driver\n"); + if (get_module(DRM_MODULE_NAME, (module_info**)&gDrmModule) < B_OK) { + dprintf("drm_test: cannot get module \"%s\"\n", DRM_MODULE_NAME); + return B_ERROR; + } + + dprintf("drm_test: \"%s\" module at %p\n", DRM_MODULE_NAME, + gDrmModule); + + return B_OK; +} + + +void +uninit_driver(void) +{ + dprintf("drm_test: uninit_driver\n"); + put_module(DRM_MODULE_NAME); +} Added: haiku/branches/components/gallium3d/src/add-ons/kernel/drm/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/drm/Jamfile 2009-09-12 15:37:38 UTC (rev 33098) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/drm/Jamfile 2009-09-12 15:46:37 UTC (rev 33099) @@ -0,0 +1,8 @@ +SubDir HAIKU_TOP src add-ons kernel drm ; + +UsePrivateKernelHeaders ; +UsePrivateHeaders kernel drm ; + +KernelAddon drm : + drm_module.c + ; Added: haiku/branches/components/gallium3d/src/add-ons/kernel/drm/drm_module.c =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/kernel/drm/drm_module.c 2009-09-12 15:37:38 UTC (rev 33098) +++ haiku/branches/components/gallium3d/src/add-ons/kernel/drm/drm_module.c 2009-09-12 15:46:37 UTC (rev 33099) @@ -0,0 +1,63 @@ +#include +#include + +#include + +#include +#include + + +#define TRACE_DRM_MODULE +#ifdef TRACE_DRM_MODULE +# define TRACE(x...) dprintf(x) +#else +# define TRACE(x...) +#endif + + +static status_t +drm_module_init() +{ + TRACE("drm: drm_module_init\n"); + return B_OK; +} + + +static status_t +drm_module_uninit() +{ + TRACE("drm: drm_module_uninit\n"); + return B_OK; +} + + +static status_t +drm_std_ops(int32 op, ...) +{ + TRACE("drm: drm_std_ops(0x%lx)\n", op); + switch (op) { + case B_MODULE_INIT: + return drm_module_init(); + case B_MODULE_UNINIT: + return drm_module_uninit(); + default: + return B_ERROR; + } + return B_OK; +} + + +static drm_module_info sDrmModule = { + // module info + { + DRM_MODULE_NAME, + 0, + drm_std_ops + } +}; + + +module_info *modules[] = { + (module_info *)&sDrmModule, + NULL +}; From aljen at mail.berlios.de Sat Sep 12 18:47:39 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 18:47:39 +0200 Subject: [Haiku-commits] r33100 - in haiku/branches/components/gallium3d/src/kits/opengl/gallium: . auxiliary auxiliary/rbug drivers drivers/failover drivers/i915simple drivers/softpipe drivers/trace Message-ID: <200909121647.n8CGld8p031326@sheep.berlios.de> Author: aljen Date: 2009-09-12 18:47:18 +0200 (Sat, 12 Sep 2009) New Revision: 33100 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33100&view=rev Added: haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/ haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/README haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_connection.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_connection.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_context.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_context.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_core.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_core.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_demarshal.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_internal.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_proto.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_shader.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_shader.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_texture.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_texture.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/Jamfile haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/failover/ haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/failover/Jamfile haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/failover/fo_context.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/failover/fo_context.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/failover/fo_state.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/failover/fo_state_emit.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/failover/fo_winsys.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/ haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/Jamfile haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/README haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_buffer.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_buffer.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_context.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_context.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_drm.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_drm.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_dump.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_dump.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_dump_state.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_dump_state.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_rbug.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_screen.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_screen.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_state.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_state.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_texture.c haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/tr_texture.h haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/trace/trace.xsl Modified: haiku/branches/components/gallium3d/src/kits/opengl/gallium/Jamfile haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/i915simple/Jamfile haiku/branches/components/gallium3d/src/kits/opengl/gallium/drivers/softpipe/Jamfile Log: added failover, trace drivers and rbug from gallium Modified: haiku/branches/components/gallium3d/src/kits/opengl/gallium/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/gallium/Jamfile 2009-09-12 15:46:37 UTC (rev 33099) +++ haiku/branches/components/gallium3d/src/kits/opengl/gallium/Jamfile 2009-09-12 16:47:18 UTC (rev 33100) @@ -13,6 +13,7 @@ SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary gallivm ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary indices ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary pipebuffer ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary rbug ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary rtasm ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary sct ] ; SEARCH_SOURCE += [ FDirName $(SUBDIR) auxiliary tgsi ] ; @@ -115,6 +116,14 @@ pb_bufmgr_slab.c pb_validate.c + # auxiliary/rbug + rbug_connection.c + rbug_context.c + rbug_core.c + rbug_demarshal.c + rbug_shader.c + rbug_texture.c + # auxiliary/rtasm rtasm_cpu.c rtasm_execmem.c @@ -184,6 +193,5 @@ u_upload_mgr.c ; -SubInclude HAIKU_TOP src kits opengl gallium drivers i915simple ; -SubInclude HAIKU_TOP src kits opengl gallium drivers softpipe ; +SubInclude HAIKU_TOP src kits opengl gallium drivers ; SubInclude HAIKU_TOP src kits opengl gallium state_trackers dri ; Added: haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/README =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/README 2009-09-12 15:46:37 UTC (rev 33099) +++ haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/README 2009-09-12 16:47:18 UTC (rev 33100) @@ -0,0 +1,21 @@ + GALLIUM REMOTE DEBUGGING COMMON CODE + += About = + +This directory contains the common code for the Gallium 3D remote debugging +driver and clients. The code is two parts the connection managment code and +the (de)marsheller. + +The code currently uses tcp and ip4v for connections. + +Information about driver integration can be found in: + +src/gallium/drivers/trace/README + +for information about applications look in: + +progs/rbug/README + + +-- +Jakob Bornecrantz Added: haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug.h =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug.h 2009-09-12 15:46:37 UTC (rev 33099) +++ haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug.h 2009-09-12 16:47:18 UTC (rev 33100) @@ -0,0 +1,33 @@ +/* + * Copyright 2009 VMware, Inc. + * All Rights Reserved. + * + * 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 + * on the rights to use, copy, modify, merge, publish, distribute, sub + * license, 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 (including the next + * paragraph) 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 NON-INFRINGEMENT. IN NO EVENT SHALL + * VMWARE AND/OR THEIR SUPPLIERS 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. + */ + +/* + * Include all for users the remote debugger protocol code. + */ + +#include "rbug/rbug_core.h" +#include "rbug/rbug_shader.h" +#include "rbug/rbug_context.h" +#include "rbug/rbug_texture.h" +#include "rbug/rbug_connection.h" Added: haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_connection.c =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_connection.c 2009-09-12 15:46:37 UTC (rev 33099) +++ haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_connection.c 2009-09-12 16:47:18 UTC (rev 33100) @@ -0,0 +1,167 @@ +/* + * Copyright 2009 VMware, Inc. + * All Rights Reserved. + * + * 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 + * on the rights to use, copy, modify, merge, publish, distribute, sub + * license, 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 (including the next + * paragraph) 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 NON-INFRINGEMENT. IN NO EVENT SHALL + * VMWARE AND/OR THEIR SUPPLIERS 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. + */ + +#include "rbug/rbug.h" +#include "rbug/rbug_internal.h" + +#include "util/u_network.h" + +struct rbug_connection +{ + int socket; + uint32_t send_serial; + uint32_t recv_serial; + enum rbug_opcode opcode; +}; + +/** + * Create a rbug connection from a socket created with u_socket. + * + * Result: + * A new allocated connection using socket as communication path + */ +struct rbug_connection * +rbug_from_socket(int socket) +{ + struct rbug_connection *c = CALLOC_STRUCT(rbug_connection); + c->socket = socket; + return c; +} + +/** + * Free a connection, also closes socket. + */ +void +rbug_disconnect(struct rbug_connection *c) +{ + u_socket_close(c->socket); + FREE(c); +} + +/** + * Waits for a message to be fully received. + * Also returns the serial for the message, serial is not touched for replys. + * + * Result: + * demarshaled message on success, NULL on connection error + */ +struct rbug_header * +rbug_get_message(struct rbug_connection *c, uint32_t *serial) +{ + struct rbug_proto_header header; + struct rbug_header *out; + struct rbug_proto_header *data; + size_t length = 0; + size_t read = 0; + int ret; + + + ret = u_socket_peek(c->socket, &header, sizeof(header)); + if (ret <= 0) { + return NULL; + } + + length = (size_t)header.length * 4; + data = MALLOC(length); + if (!data) { + return NULL; + } + + do { + uint8_t *ptr = ((uint8_t*)data) + read; + ret = u_socket_recv(c->socket, ptr, length - read); + + if (ret <= 0) { + FREE(data); + return NULL; + } + + read += ret; + } while(read < length); + + out = rbug_demarshal(data); + if (!out) + FREE(data); + else if (serial) + *serial = c->recv_serial++; + else + c->recv_serial++; + + return out; +} + +/** + * Frees a message and associated data. + */ +void +rbug_free_header(struct rbug_header *header) +{ + if (!header) + return; + + FREE(header->__message); + FREE(header); +} + +/** + * Internal function used by rbug_send_* functions. + * + * Start sending a message. + */ +int +rbug_connection_send_start(struct rbug_connection *c, enum rbug_opcode opcode, uint32_t length) +{ + c->opcode = opcode; + return 0; +} + +/** + * Internal function used by rbug_send_* functions. + * + * Write data to the socket. + */ +int +rbug_connection_write(struct rbug_connection *c, void *to, uint32_t size) +{ + int ret = u_socket_send(c->socket, to, size); + return ret; +} + +/** + * Internal function used by rbug_send_* functions. + * + * Finish writeing data to the socket. + * Ups the send_serial and sets the serial argument if supplied. + */ +int rbug_connection_send_finish(struct rbug_connection *c, uint32_t *serial) +{ + if (c->opcode < 0) + return 0; + else if (serial) + *serial = c->send_serial++; + else + c->send_serial++; + + return 0; +} Added: haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_connection.h =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_connection.h 2009-09-12 15:46:37 UTC (rev 33099) +++ haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_connection.h 2009-09-12 16:47:18 UTC (rev 33100) @@ -0,0 +1,45 @@ +/* + * Copyright 2009 VMware, Inc. + * All Rights Reserved. + * + * 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 + * on the rights to use, copy, modify, merge, publish, distribute, sub + * license, 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 (including the next + * paragraph) 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 NON-INFRINGEMENT. IN NO EVENT SHALL + * VMWARE AND/OR THEIR SUPPLIERS 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. + */ + +/* + * This file contains the function defentions for connection see c file for + * more comments covering function use. + */ + +#ifndef _RBUG_CONNECTION_H_ +#define _RBUG_CONNECTION_H_ + +#include "rbug/rbug_proto.h" + +struct rbug_connection * rbug_from_socket(int socket); + +void rbug_disconnect(struct rbug_connection *c); + +struct rbug_header * rbug_get_message(struct rbug_connection *c, uint32_t *serial); + +void rbug_free_header(struct rbug_header *header); + +struct rbug_header * rbug_demarshal(struct rbug_proto_header *header); + +#endif Added: haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_context.c =================================================================== --- haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_context.c 2009-09-12 15:46:37 UTC (rev 33099) +++ haiku/branches/components/gallium3d/src/kits/opengl/gallium/auxiliary/rbug/rbug_context.c 2009-09-12 16:47:18 UTC (rev 33100) @@ -0,0 +1,759 @@ +/* + * Copyright 2009 VMware, Inc. + * All Rights Reserved. + * + * 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 + * on the rights to use, copy, modify, merge, publish, distribute, sub + * license, 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 (including the next + * paragraph) 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 NON-INFRINGEMENT. IN NO EVENT SHALL + * VMWARE AND/OR THEIR SUPPLIERS 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. + */ + +/* + * This file holds the function implementation for one of the rbug extensions. + * Prototypes and declerations of functions and structs is in the same folder + * in the header file matching this file's name. + * + * The functions starting rbug_send_* encodes a call to the write format and + * sends that to the supplied connection, while functions starting with + * rbug_demarshal_* demarshal data in the wire protocol. + * + * Functions ending with _reply are replies to requests. + */ + +#include "rbug_internal.h" +#include "rbug/rbug_context.h" + +int rbug_send_context_list(struct rbug_connection *__con, + uint32_t *__serial) +{ + uint32_t __len = 0; + uint32_t __pos = 0; + uint8_t *__data = NULL; + int __ret = 0; + + LEN(8); /* header */ + + /* align */ + PAD(__len, 8); + + __data = (uint8_t*)MALLOC(__len); + if (!__data) + return -ENOMEM; + + WRITE(4, int32_t, ((int32_t)RBUG_OP_CONTEXT_LIST)); + WRITE(4, uint32_t, ((uint32_t)(__len / 4))); + + /* final pad */ + PAD(__pos, 8); + + if (__pos != __len) { + __ret = -EINVAL; + } else { + rbug_connection_send_start(__con, RBUG_OP_CONTEXT_LIST, __len); + rbug_connection_write(__con, __data, __len); + __ret = rbug_connection_send_finish(__con, __serial); + } + + FREE(__data); + return __ret; +} + +int rbug_send_context_info(struct rbug_connection *__con, + rbug_context_t context, + uint32_t *__serial) +{ + uint32_t __len = 0; + uint32_t __pos = 0; + uint8_t *__data = NULL; + int __ret = 0; + + LEN(8); /* header */ + LEN(8); /* context */ + + /* align */ + PAD(__len, 8); + + __data = (uint8_t*)MALLOC(__len); + if (!__data) + return -ENOMEM; + + WRITE(4, int32_t, ((int32_t)RBUG_OP_CONTEXT_INFO)); + WRITE(4, uint32_t, ((uint32_t)(__len / 4))); + WRITE(8, rbug_context_t, context); /* context */ + + /* final pad */ + PAD(__pos, 8); + + if (__pos != __len) { + __ret = -EINVAL; + } else { + rbug_connection_send_start(__con, RBUG_OP_CONTEXT_INFO, __len); + rbug_connection_write(__con, __data, __len); + __ret = rbug_connection_send_finish(__con, __serial); + } + + FREE(__data); + return __ret; +} + +int rbug_send_context_draw_block(struct rbug_connection *__con, + rbug_context_t context, + rbug_block_t block, + uint32_t *__serial) +{ + uint32_t __len = 0; + uint32_t __pos = 0; + uint8_t *__data = NULL; + int __ret = 0; + + LEN(8); /* header */ + LEN(8); /* context */ + LEN(4); /* block */ + + /* align */ + PAD(__len, 8); + + __data = (uint8_t*)MALLOC(__len); + if (!__data) + return -ENOMEM; + + WRITE(4, int32_t, ((int32_t)RBUG_OP_CONTEXT_DRAW_BLOCK)); + WRITE(4, uint32_t, ((uint32_t)(__len / 4))); + WRITE(8, rbug_context_t, context); /* context */ + WRITE(4, rbug_block_t, block); /* block */ + + /* final pad */ + PAD(__pos, 8); + + if (__pos != __len) { + __ret = -EINVAL; + } else { + rbug_connection_send_start(__con, RBUG_OP_CONTEXT_DRAW_BLOCK, __len); + rbug_connection_write(__con, __data, __len); + __ret = rbug_connection_send_finish(__con, __serial); + } + + FREE(__data); + return __ret; +} + +int rbug_send_context_draw_step(struct rbug_connection *__con, + rbug_context_t context, + rbug_block_t step, + uint32_t *__serial) +{ + uint32_t __len = 0; + uint32_t __pos = 0; + uint8_t *__data = NULL; + int __ret = 0; + + LEN(8); /* header */ + LEN(8); /* context */ + LEN(4); /* step */ + + /* align */ + PAD(__len, 8); + + __data = (uint8_t*)MALLOC(__len); + if (!__data) + return -ENOMEM; + + WRITE(4, int32_t, ((int32_t)RBUG_OP_CONTEXT_DRAW_STEP)); + WRITE(4, uint32_t, ((uint32_t)(__len / 4))); + WRITE(8, rbug_context_t, context); /* context */ + WRITE(4, rbug_block_t, step); /* step */ + + /* final pad */ + PAD(__pos, 8); + + if (__pos != __len) { + __ret = -EINVAL; + } else { + rbug_connection_send_start(__con, RBUG_OP_CONTEXT_DRAW_STEP, __len); + rbug_connection_write(__con, __data, __len); + __ret = rbug_connection_send_finish(__con, __serial); + } + + FREE(__data); + return __ret; +} + +int rbug_send_context_draw_unblock(struct rbug_connection *__con, + rbug_context_t context, + rbug_block_t unblock, + uint32_t *__serial) +{ + uint32_t __len = 0; + uint32_t __pos = 0; + uint8_t *__data = NULL; + int __ret = 0; + + LEN(8); /* header */ + LEN(8); /* context */ + LEN(4); /* unblock */ + + /* align */ + PAD(__len, 8); + + __data = (uint8_t*)MALLOC(__len); + if (!__data) + return -ENOMEM; + + WRITE(4, int32_t, ((int32_t)RBUG_OP_CONTEXT_DRAW_UNBLOCK)); + WRITE(4, uint32_t, ((uint32_t)(__len / 4))); + WRITE(8, rbug_context_t, context); /* context */ + WRITE(4, rbug_block_t, unblock); /* unblock */ + + /* final pad */ + PAD(__pos, 8); + + if (__pos != __len) { + __ret = -EINVAL; + } else { + rbug_connection_send_start(__con, RBUG_OP_CONTEXT_DRAW_UNBLOCK, __len); + rbug_connection_write(__con, __data, __len); + __ret = rbug_connection_send_finish(__con, __serial); + } + + FREE(__data); + return __ret; +} + +int rbug_send_context_draw_rule(struct rbug_connection *__con, + rbug_context_t context, + rbug_shader_t vertex, + rbug_shader_t fragment, + rbug_texture_t texture, + rbug_texture_t surface, + rbug_block_t block, + uint32_t *__serial) +{ + uint32_t __len = 0; + uint32_t __pos = 0; + uint8_t *__data = NULL; + int __ret = 0; + + LEN(8); /* header */ + LEN(8); /* context */ + LEN(8); /* vertex */ + LEN(8); /* fragment */ + LEN(8); /* texture */ + LEN(8); /* surface */ + LEN(4); /* block */ + + /* align */ + PAD(__len, 8); + + __data = (uint8_t*)MALLOC(__len); + if (!__data) + return -ENOMEM; + + WRITE(4, int32_t, ((int32_t)RBUG_OP_CONTEXT_DRAW_RULE)); + WRITE(4, uint32_t, ((uint32_t)(__len / 4))); + WRITE(8, rbug_context_t, context); /* context */ + WRITE(8, rbug_shader_t, vertex); /* vertex */ + WRITE(8, rbug_shader_t, fragment); /* fragment */ + WRITE(8, rbug_texture_t, texture); /* texture */ + WRITE(8, rbug_texture_t, surface); /* surface */ + WRITE(4, rbug_block_t, block); /* block */ + + /* final pad */ + PAD(__pos, 8); + + if (__pos != __len) { + __ret = -EINVAL; + } else { + rbug_connection_send_start(__con, RBUG_OP_CONTEXT_DRAW_RULE, __len); + rbug_connection_write(__con, __data, __len); + __ret = rbug_connection_send_finish(__con, __serial); + } + + FREE(__data); + return __ret; +} + +int rbug_send_context_flush(struct rbug_connection *__con, + rbug_context_t context, + int32_t flags, + uint32_t *__serial) +{ + uint32_t __len = 0; + uint32_t __pos = 0; + uint8_t *__data = NULL; + int __ret = 0; + + LEN(8); /* header */ + LEN(8); /* context */ + LEN(4); /* flags */ + + /* align */ + PAD(__len, 8); + + __data = (uint8_t*)MALLOC(__len); + if (!__data) + return -ENOMEM; + + WRITE(4, int32_t, ((int32_t)RBUG_OP_CONTEXT_FLUSH)); + WRITE(4, uint32_t, ((uint32_t)(__len / 4))); + WRITE(8, rbug_context_t, context); /* context */ + WRITE(4, int32_t, flags); /* flags */ + + /* final pad */ + PAD(__pos, 8); + + if (__pos != __len) { + __ret = -EINVAL; + } else { + rbug_connection_send_start(__con, RBUG_OP_CONTEXT_FLUSH, __len); + rbug_connection_write(__con, __data, __len); + __ret = rbug_connection_send_finish(__con, __serial); + } + + FREE(__data); + return __ret; +} + +int rbug_send_context_list_reply(struct rbug_connection *__con, + uint32_t serial, + rbug_context_t *contexts, + uint32_t contexts_len, + uint32_t *__serial) +{ + uint32_t __len = 0; + uint32_t __pos = 0; + uint8_t *__data = NULL; + int __ret = 0; + + LEN(8); /* header */ + LEN(4); /* serial */ + LEN_ARRAY(8, contexts); /* contexts */ + + /* align */ + PAD(__len, 8); + + __data = (uint8_t*)MALLOC(__len); + if (!__data) + return -ENOMEM; + + WRITE(4, int32_t, ((int32_t)RBUG_OP_CONTEXT_LIST_REPLY)); + WRITE(4, uint32_t, ((uint32_t)(__len / 4))); + WRITE(4, uint32_t, serial); /* serial */ + WRITE_ARRAY(8, rbug_context_t, contexts); /* contexts */ + + /* final pad */ + PAD(__pos, 8); + + if (__pos != __len) { + __ret = -EINVAL; + } else { + rbug_connection_send_start(__con, RBUG_OP_CONTEXT_LIST_REPLY, __len); + rbug_connection_write(__con, __data, __len); + __ret = rbug_connection_send_finish(__con, __serial); + } + + FREE(__data); + return __ret; +} + +int rbug_send_context_info_reply(struct rbug_connection *__con, + uint32_t serial, + rbug_shader_t vertex, + rbug_shader_t fragment, + rbug_texture_t *texs, + uint32_t texs_len, + rbug_texture_t *cbufs, + uint32_t cbufs_len, + rbug_texture_t zsbuf, + rbug_block_t blocker, + rbug_block_t blocked, + uint32_t *__serial) +{ + uint32_t __len = 0; + uint32_t __pos = 0; + uint8_t *__data = NULL; + int __ret = 0; + + LEN(8); /* header */ + LEN(4); /* serial */ + LEN(8); /* vertex */ + LEN(8); /* fragment */ + LEN_ARRAY(8, texs); /* texs */ + LEN_ARRAY(8, cbufs); /* cbufs */ + LEN(8); /* zsbuf */ + LEN(4); /* blocker */ + LEN(4); /* blocked */ + + /* align */ + PAD(__len, 8); + + __data = (uint8_t*)MALLOC(__len); + if (!__data) + return -ENOMEM; + + WRITE(4, int32_t, ((int32_t)RBUG_OP_CONTEXT_INFO_REPLY)); + WRITE(4, uint32_t, ((uint32_t)(__len / 4))); + WRITE(4, uint32_t, serial); /* serial */ + WRITE(8, rbug_shader_t, vertex); /* vertex */ + WRITE(8, rbug_shader_t, fragment); /* fragment */ + WRITE_ARRAY(8, rbug_texture_t, texs); /* texs */ + WRITE_ARRAY(8, rbug_texture_t, cbufs); /* cbufs */ + WRITE(8, rbug_texture_t, zsbuf); /* zsbuf */ + WRITE(4, rbug_block_t, blocker); /* blocker */ + WRITE(4, rbug_block_t, blocked); /* blocked */ + + /* final pad */ + PAD(__pos, 8); + + if (__pos != __len) { + __ret = -EINVAL; + } else { + rbug_connection_send_start(__con, RBUG_OP_CONTEXT_INFO_REPLY, __len); + rbug_connection_write(__con, __data, __len); + __ret = rbug_connection_send_finish(__con, __serial); + } + + FREE(__data); + return __ret; +} + +int rbug_send_context_draw_blocked(struct rbug_connection *__con, + rbug_context_t context, + rbug_block_t block, + uint32_t *__serial) +{ + uint32_t __len = 0; + uint32_t __pos = 0; + uint8_t *__data = NULL; + int __ret = 0; + + LEN(8); /* header */ + LEN(8); /* context */ + LEN(4); /* block */ + + /* align */ + PAD(__len, 8); + + __data = (uint8_t*)MALLOC(__len); + if (!__data) + return -ENOMEM; + + WRITE(4, int32_t, ((int32_t)RBUG_OP_CONTEXT_DRAW_BLOCKED)); + WRITE(4, uint32_t, ((uint32_t)(__len / 4))); + WRITE(8, rbug_context_t, context); /* context */ + WRITE(4, rbug_block_t, block); /* block */ + + /* final pad */ + PAD(__pos, 8); + + if (__pos != __len) { + __ret = -EINVAL; + } else { + rbug_connection_send_start(__con, RBUG_OP_CONTEXT_DRAW_BLOCKED, __len); + rbug_connection_write(__con, __data, __len); + __ret = rbug_connection_send_finish(__con, __serial); + } + + FREE(__data); + return __ret; +} + +struct rbug_proto_context_list * rbug_demarshal_context_list(struct rbug_proto_header *header) +{ + uint32_t len = 0; + uint32_t pos = 0; + uint8_t *data = NULL; + struct rbug_proto_context_list *ret; + + if (!header) + return NULL; + if (header->opcode != (int16_t)RBUG_OP_CONTEXT_LIST) + return NULL; + + pos = 0; + len = header->length * 4; + data = (uint8_t*)&header[1]; + ret = MALLOC(sizeof(*ret)); + if (!ret) + return NULL; + + ret->header.__message = header; + ret->header.opcode = header->opcode; + + + return ret; +} + +struct rbug_proto_context_info * rbug_demarshal_context_info(struct rbug_proto_header *header) +{ + uint32_t len = 0; + uint32_t pos = 0; + uint8_t *data = NULL; + struct rbug_proto_context_info *ret; + + if (!header) + return NULL; + if (header->opcode != (int16_t)RBUG_OP_CONTEXT_INFO) + return NULL; + + pos = 0; + len = header->length * 4; + data = (uint8_t*)&header[1]; + ret = MALLOC(sizeof(*ret)); + if (!ret) + return NULL; + + ret->header.__message = header; + ret->header.opcode = header->opcode; + + READ(8, rbug_context_t, context); /* context */ + + return ret; +} + +struct rbug_proto_context_draw_block * rbug_demarshal_context_draw_block(struct rbug_proto_header *header) +{ + uint32_t len = 0; + uint32_t pos = 0; + uint8_t *data = NULL; + struct rbug_proto_context_draw_block *ret; + + if (!header) + return NULL; + if (header->opcode != (int16_t)RBUG_OP_CONTEXT_DRAW_BLOCK) + return NULL; + + pos = 0; + len = header->length * 4; + data = (uint8_t*)&header[1]; + ret = MALLOC(sizeof(*ret)); + if (!ret) + return NULL; + + ret->header.__message = header; + ret->header.opcode = header->opcode; + + READ(8, rbug_context_t, context); /* context */ + READ(4, rbug_block_t, block); /* block */ + + return ret; +} + +struct rbug_proto_context_draw_step * rbug_demarshal_context_draw_step(struct rbug_proto_header *header) +{ + uint32_t len = 0; + uint32_t pos = 0; + uint8_t *data = NULL; + struct rbug_proto_context_draw_step *ret; + + if (!header) + return NULL; + if (header->opcode != (int16_t)RBUG_OP_CONTEXT_DRAW_STEP) + return NULL; + + pos = 0; + len = header->length * 4; + data = (uint8_t*)&header[1]; + ret = MALLOC(sizeof(*ret)); + if (!ret) + return NULL; + + ret->header.__message = header; + ret->header.opcode = header->opcode; + + READ(8, rbug_context_t, context); /* context */ + READ(4, rbug_block_t, step); /* step */ + + return ret; +} + +struct rbug_proto_context_draw_unblock * rbug_demarshal_context_draw_unblock(struct rbug_proto_header *header) +{ + uint32_t len = 0; + uint32_t pos = 0; + uint8_t *data = NULL; + struct rbug_proto_context_draw_unblock *ret; + + if (!header) + return NULL; + if (header->opcode != (int16_t)RBUG_OP_CONTEXT_DRAW_UNBLOCK) + return NULL; + + pos = 0; + len = header->length * 4; + data = (uint8_t*)&header[1]; + ret = MALLOC(sizeof(*ret)); + if (!ret) + return NULL; + + ret->header.__message = header; + ret->header.opcode = header->opcode; + + READ(8, rbug_context_t, context); /* context */ + READ(4, rbug_block_t, unblock); /* unblock */ + + return ret; +} + +struct rbug_proto_context_draw_rule * rbug_demarshal_context_draw_rule(struct rbug_proto_header *header) +{ + uint32_t len = 0; + uint32_t pos = 0; + uint8_t *data = NULL; + struct rbug_proto_context_draw_rule *ret; + + if (!header) + return NULL; + if (header->opcode != (int16_t)RBUG_OP_CONTEXT_DRAW_RULE) + return NULL; + + pos = 0; + len = header->length * 4; + data = (uint8_t*)&header[1]; + ret = MALLOC(sizeof(*ret)); + if (!ret) + return NULL; + + ret->header.__message = header; + ret->header.opcode = header->opcode; + + READ(8, rbug_context_t, context); /* context */ + READ(8, rbug_shader_t, vertex); /* vertex */ + READ(8, rbug_shader_t, fragment); /* fragment */ + READ(8, rbug_texture_t, texture); /* texture */ + READ(8, rbug_texture_t, surface); /* surface */ + READ(4, rbug_block_t, block); /* block */ + + return ret; +} + +struct rbug_proto_context_flush * rbug_demarshal_context_flush(struct rbug_proto_header *header) +{ + uint32_t len = 0; + uint32_t pos = 0; + uint8_t *data = NULL; + struct rbug_proto_context_flush *ret; + + if (!header) + return NULL; + if (header->opcode != (int16_t)RBUG_OP_CONTEXT_FLUSH) + return NULL; + + pos = 0; + len = header->length * 4; + data = (uint8_t*)&header[1]; + ret = MALLOC(sizeof(*ret)); + if (!ret) + return NULL; + + ret->header.__message = header; + ret->header.opcode = header->opcode; + + READ(8, rbug_context_t, context); /* context */ + READ(4, int32_t, flags); /* flags */ + + return ret; +} [... truncated: 9590 lines follow ...] From jackburton at mail.berlios.de Sat Sep 12 19:21:59 2009 From: jackburton at mail.berlios.de (jackburton at mail.berlios.de) Date: Sat, 12 Sep 2009 19:21:59 +0200 Subject: [Haiku-commits] r33101 - haiku/trunk/headers/os/device Message-ID: <200909121721.n8CHLxgw014918@sheep.berlios.de> Author: jackburton Date: 2009-09-12 19:21:56 +0200 (Sat, 12 Sep 2009) New Revision: 33101 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33101&view=rev Modified: haiku/trunk/headers/os/device/scsi.h Log: Rewrote scsi.h. This should be the last missing header. +alphabranch, if possible Modified: haiku/trunk/headers/os/device/scsi.h =================================================================== --- haiku/trunk/headers/os/device/scsi.h 2009-09-12 16:47:18 UTC (rev 33100) +++ haiku/trunk/headers/os/device/scsi.h 2009-09-12 17:21:56 UTC (rev 33101) @@ -1,24 +1,17 @@ -/****************************************************************************** -/ -/ File: scsi.h -/ -/ Description: Data structures and control calls for using the scsi driver. -/ -/ Copyright 1992-98, Be Incorporated -/ -*******************************************************************************/ - - +/* + * Copyright 2009, Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + */ #ifndef _SCSI_H #define _SCSI_H -#include -#include + #include +#include +#include -/* scsi device types */ -/*------------------------*/ +/* SCSI device types */ #define B_SCSI_DISK 0x00 #define B_SCSI_TAPE 0x01 #define B_SCSI_PRINTER 0x02 @@ -31,9 +24,8 @@ #define B_SCSI_NETWORK 0x09 -/* scsi device masks */ -/*----------------------------------*/ -#define B_SCSI_ALL_DEVICES_MASK 0xffffffff +/* SCSI device masks */ +#define B_SCSI_ALL_DEVICES_MASK 0xffffffff #define B_SCSI_DISK_MASK (1 << (B_SCSI_DISK)) #define B_SCSI_TAPE_MASK (1 << (B_SCSI_TAPE)) #define B_SCSI_PRINTER_MASK (1 << (B_SCSI_PRINTER)) @@ -45,16 +37,13 @@ #define B_SCSI_JUKEBOX_MASK (1 << (B_SCSI_JUKEBOX)) #define B_SCSI_NETWORK_MASK (1 << (B_SCSI_NETWORK)) -/* control call codes for rescan scsi driver (/dev/scsi/rescan) */ -/*-----------------------------------------------------*/ + enum { B_SCSI_SCAN_FOR_DEVICES = B_DEVICE_OP_CODES_END + 1, B_SCSI_ENABLE_PROFILING }; -/* control calls for all individual scsi device drivers */ -/*------------------------------------------------------*/ enum { B_SCSI_INQUIRY = B_DEVICE_OP_CODES_END + 100, B_SCSI_EJECT, @@ -62,13 +51,12 @@ B_RAW_DEVICE_COMMAND }; + typedef struct { - uchar inquiry_data[36]; /* inquiry data (see SCSI standard) */ + uchar inquiry_data[36]; } scsi_inquiry; -/* control calls for scsi cd-rom driver */ -/*--------------------------------------*/ enum { B_SCSI_GET_TOC = B_DEVICE_OP_CODES_END + 200, B_SCSI_PLAY_TRACK, @@ -84,34 +72,37 @@ B_SCSI_DATA_MODE }; + typedef struct { - uchar toc_data[804]; /* table of contents data (see SCSI standard) */ + uchar toc_data[804]; } scsi_toc; + typedef struct { - uchar start_track; /* starting track */ - uchar start_index; /* starting index */ - uchar end_track; /* ending track */ - uchar end_index; /* ending index */ + uchar start_track; + uchar start_index; + uchar end_track; + uchar end_index; } scsi_play_track; + typedef struct { - uchar start_m; /* starting minute */ - uchar start_s; /* starting second */ - uchar start_f; /* starting frame */ - uchar end_m; /* ending minute */ - uchar end_s; /* ending second */ - uchar end_f; /* ending frame */ + uchar start_m; + uchar start_s; + uchar start_f; + uchar end_m; + uchar end_s; + uchar end_f; } scsi_play_position; + typedef struct { - uchar position[16]; /* position data (see SCSI standard) */ + uchar position[16]; } scsi_position; + typedef struct { - uchar flags; /* A 1 in any position means change that field */ - /* with port0_channel as bit 0 and port3_volume */ - /* as bit 7. */ + uchar flags; uchar port0_channel; uchar port0_volume; uchar port1_channel; @@ -122,6 +113,7 @@ uchar port3_volume; } scsi_volume; + #define B_SCSI_PORT0_CHANNEL 0x01 #define B_SCSI_PORT0_VOLUME 0x02 #define B_SCSI_PORT1_CHANNEL 0x04 @@ -131,48 +123,50 @@ #define B_SCSI_PORT3_CHANNEL 0x40 #define B_SCSI_PORT3_VOLUME 0x80 + typedef struct { - uchar start_m; /* starting minute */ - uchar start_s; /* starting second */ - uchar start_f; /* starting frame */ - uchar length_m; /* transfer length minute */ - uchar length_s; /* transfer length second */ - uchar length_f; /* transfer length frame */ - long buffer_length; /* size of read buffer */ - char* buffer; /* buffer to hold requested data */ - bool play; /* FALSE = don't play, TRUE = play */ + uchar start_m; + uchar start_s; + uchar start_f; + uchar length_m; + uchar length_s; + uchar length_f; + long buffer_length; + char* buffer; + bool play; } scsi_read_cd; + typedef struct { - char speed; /* 0 = slow - 5x, 1 = fast - 12x */ - char direction; /* 1 = forward, 0 = stop scan, -1 = backward */ + char speed; + char direction; } scsi_scan; + typedef struct { off_t block; int32 mode; } scsi_data_mode; -/* raw device commands */ typedef struct { uint8 command[16]; uint8 command_length; uint8 flags; - uint8 scsi_status; /* SCSI Status Byte */ - /* (0 = success, 2 = check cond, ... */ - uint8 cam_status; /* CAM_* status conditions from CAM.h */ - void *data; + uint8 scsi_status; + uint8 cam_status; + void* data; size_t data_length; - void *sense_data; /* buffer to return mode sense data in */ - size_t sense_data_length; /* size of optional buffer for mode sense */ + void* sense_data; + size_t sense_data_length; bigtime_t timeout; } raw_device_command; + enum { - B_RAW_DEVICE_DATA_IN = 0x01, - B_RAW_DEVICE_REPORT_RESIDUAL = 0x02, - B_RAW_DEVICE_SHORT_READ_VALID = 0x04 + B_RAW_DEVICE_DATA_IN = 0x01, + B_RAW_DEVICE_REPORT_RESIDUAL = 0x02, + B_RAW_DEVICE_SHORT_READ_VALID = 0x04 }; -#endif +#endif /* _SCSI_H */ From mmlr at mail.berlios.de Sat Sep 12 20:09:09 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 12 Sep 2009 20:09:09 +0200 Subject: [Haiku-commits] r33102 - haiku/branches/releases/r1alpha1/headers/os/device Message-ID: <200909121809.n8CI99IT022238@sheep.berlios.de> Author: mmlr Date: 2009-09-12 20:09:08 +0200 (Sat, 12 Sep 2009) New Revision: 33102 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33102&view=rev Modified: haiku/branches/releases/r1alpha1/headers/os/device/scsi.h Log: Merging r33101 from trunk: Rewrote scsi.h. This should be the last missing header. Modified: haiku/branches/releases/r1alpha1/headers/os/device/scsi.h =================================================================== --- haiku/branches/releases/r1alpha1/headers/os/device/scsi.h 2009-09-12 17:21:56 UTC (rev 33101) +++ haiku/branches/releases/r1alpha1/headers/os/device/scsi.h 2009-09-12 18:09:08 UTC (rev 33102) @@ -1,24 +1,17 @@ -/****************************************************************************** -/ -/ File: scsi.h -/ -/ Description: Data structures and control calls for using the scsi driver. -/ -/ Copyright 1992-98, Be Incorporated -/ -*******************************************************************************/ - - +/* + * Copyright 2009, Haiku Inc. All rights reserved. + * Distributed under the terms of the MIT License. + */ #ifndef _SCSI_H #define _SCSI_H -#include -#include + #include +#include +#include -/* scsi device types */ -/*------------------------*/ +/* SCSI device types */ #define B_SCSI_DISK 0x00 #define B_SCSI_TAPE 0x01 #define B_SCSI_PRINTER 0x02 @@ -31,9 +24,8 @@ #define B_SCSI_NETWORK 0x09 -/* scsi device masks */ -/*----------------------------------*/ -#define B_SCSI_ALL_DEVICES_MASK 0xffffffff +/* SCSI device masks */ +#define B_SCSI_ALL_DEVICES_MASK 0xffffffff #define B_SCSI_DISK_MASK (1 << (B_SCSI_DISK)) #define B_SCSI_TAPE_MASK (1 << (B_SCSI_TAPE)) #define B_SCSI_PRINTER_MASK (1 << (B_SCSI_PRINTER)) @@ -45,16 +37,13 @@ #define B_SCSI_JUKEBOX_MASK (1 << (B_SCSI_JUKEBOX)) #define B_SCSI_NETWORK_MASK (1 << (B_SCSI_NETWORK)) -/* control call codes for rescan scsi driver (/dev/scsi/rescan) */ -/*-----------------------------------------------------*/ + enum { B_SCSI_SCAN_FOR_DEVICES = B_DEVICE_OP_CODES_END + 1, B_SCSI_ENABLE_PROFILING }; -/* control calls for all individual scsi device drivers */ -/*------------------------------------------------------*/ enum { B_SCSI_INQUIRY = B_DEVICE_OP_CODES_END + 100, B_SCSI_EJECT, @@ -62,13 +51,12 @@ B_RAW_DEVICE_COMMAND }; + typedef struct { - uchar inquiry_data[36]; /* inquiry data (see SCSI standard) */ + uchar inquiry_data[36]; } scsi_inquiry; -/* control calls for scsi cd-rom driver */ -/*--------------------------------------*/ enum { B_SCSI_GET_TOC = B_DEVICE_OP_CODES_END + 200, B_SCSI_PLAY_TRACK, @@ -84,34 +72,37 @@ B_SCSI_DATA_MODE }; + typedef struct { - uchar toc_data[804]; /* table of contents data (see SCSI standard) */ + uchar toc_data[804]; } scsi_toc; + typedef struct { - uchar start_track; /* starting track */ - uchar start_index; /* starting index */ - uchar end_track; /* ending track */ - uchar end_index; /* ending index */ + uchar start_track; + uchar start_index; + uchar end_track; + uchar end_index; } scsi_play_track; + typedef struct { - uchar start_m; /* starting minute */ - uchar start_s; /* starting second */ - uchar start_f; /* starting frame */ - uchar end_m; /* ending minute */ - uchar end_s; /* ending second */ - uchar end_f; /* ending frame */ + uchar start_m; + uchar start_s; + uchar start_f; + uchar end_m; + uchar end_s; + uchar end_f; } scsi_play_position; + typedef struct { - uchar position[16]; /* position data (see SCSI standard) */ + uchar position[16]; } scsi_position; + typedef struct { - uchar flags; /* A 1 in any position means change that field */ - /* with port0_channel as bit 0 and port3_volume */ - /* as bit 7. */ + uchar flags; uchar port0_channel; uchar port0_volume; uchar port1_channel; @@ -122,6 +113,7 @@ uchar port3_volume; } scsi_volume; + #define B_SCSI_PORT0_CHANNEL 0x01 #define B_SCSI_PORT0_VOLUME 0x02 #define B_SCSI_PORT1_CHANNEL 0x04 @@ -131,48 +123,50 @@ #define B_SCSI_PORT3_CHANNEL 0x40 #define B_SCSI_PORT3_VOLUME 0x80 + typedef struct { - uchar start_m; /* starting minute */ - uchar start_s; /* starting second */ - uchar start_f; /* starting frame */ - uchar length_m; /* transfer length minute */ - uchar length_s; /* transfer length second */ - uchar length_f; /* transfer length frame */ - long buffer_length; /* size of read buffer */ - char* buffer; /* buffer to hold requested data */ - bool play; /* FALSE = don't play, TRUE = play */ + uchar start_m; + uchar start_s; + uchar start_f; + uchar length_m; + uchar length_s; + uchar length_f; + long buffer_length; + char* buffer; + bool play; } scsi_read_cd; + typedef struct { - char speed; /* 0 = slow - 5x, 1 = fast - 12x */ - char direction; /* 1 = forward, 0 = stop scan, -1 = backward */ + char speed; + char direction; } scsi_scan; + typedef struct { off_t block; int32 mode; } scsi_data_mode; -/* raw device commands */ typedef struct { uint8 command[16]; uint8 command_length; uint8 flags; - uint8 scsi_status; /* SCSI Status Byte */ - /* (0 = success, 2 = check cond, ... */ - uint8 cam_status; /* CAM_* status conditions from CAM.h */ - void *data; + uint8 scsi_status; + uint8 cam_status; + void* data; size_t data_length; - void *sense_data; /* buffer to return mode sense data in */ - size_t sense_data_length; /* size of optional buffer for mode sense */ + void* sense_data; + size_t sense_data_length; bigtime_t timeout; } raw_device_command; + enum { - B_RAW_DEVICE_DATA_IN = 0x01, - B_RAW_DEVICE_REPORT_RESIDUAL = 0x02, - B_RAW_DEVICE_SHORT_READ_VALID = 0x04 + B_RAW_DEVICE_DATA_IN = 0x01, + B_RAW_DEVICE_REPORT_RESIDUAL = 0x02, + B_RAW_DEVICE_SHORT_READ_VALID = 0x04 }; -#endif +#endif /* _SCSI_H */ From aljen at mail.berlios.de Sat Sep 12 21:18:51 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 21:18:51 +0200 Subject: [Haiku-commits] r33103 - in haiku/branches/components/gallium3d/src/tests/add-ons/kernel: . drm Message-ID: <200909121918.n8CJIpBb031181@sheep.berlios.de> Author: aljen Date: 2009-09-12 21:18:40 +0200 (Sat, 12 Sep 2009) New Revision: 33103 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33103&view=rev Added: haiku/branches/components/gallium3d/src/tests/add-ons/kernel/drm/ haiku/branches/components/gallium3d/src/tests/add-ons/kernel/drm/Jamfile haiku/branches/components/gallium3d/src/tests/add-ons/kernel/drm/drm_version.c Modified: haiku/branches/components/gallium3d/src/tests/add-ons/kernel/Jamfile Log: Added drm test: drmGetVersion Modified: haiku/branches/components/gallium3d/src/tests/add-ons/kernel/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/tests/add-ons/kernel/Jamfile 2009-09-12 18:09:08 UTC (rev 33102) +++ haiku/branches/components/gallium3d/src/tests/add-ons/kernel/Jamfile 2009-09-12 19:18:40 UTC (rev 33103) @@ -4,6 +4,7 @@ SubInclude HAIKU_TOP src tests add-ons kernel busses ; SubInclude HAIKU_TOP src tests add-ons kernel debugger ; SubInclude HAIKU_TOP src tests add-ons kernel drivers ; +SubInclude HAIKU_TOP src tests add-ons kernel drm ; SubInclude HAIKU_TOP src tests add-ons kernel file_systems ; SubInclude HAIKU_TOP src tests add-ons kernel kernelland_emu ; SubInclude HAIKU_TOP src tests add-ons kernel network ; Added: haiku/branches/components/gallium3d/src/tests/add-ons/kernel/drm/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/tests/add-ons/kernel/drm/Jamfile 2009-09-12 18:09:08 UTC (rev 33102) +++ haiku/branches/components/gallium3d/src/tests/add-ons/kernel/drm/Jamfile 2009-09-12 19:18:40 UTC (rev 33103) @@ -0,0 +1,13 @@ +SubDir HAIKU_TOP src tests add-ons kernel drm ; + +UsePrivateKernelHeaders ; +UsePrivateHeaders shared ; +UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ; +UseHeaders [ FDirName $(HAIKU_TOP) src libs drm ] : true ; +UseLibraryHeaders drm ; + +SimpleTest drm_version : + drm_version.c + : libdrm.so +; + Added: haiku/branches/components/gallium3d/src/tests/add-ons/kernel/drm/drm_version.c =================================================================== --- haiku/branches/components/gallium3d/src/tests/add-ons/kernel/drm/drm_version.c 2009-09-12 18:09:08 UTC (rev 33102) +++ haiku/branches/components/gallium3d/src/tests/add-ons/kernel/drm/drm_version.c 2009-09-12 19:18:40 UTC (rev 33103) @@ -0,0 +1,25 @@ +#include +#include +#include +#include +#include +#include + +#include "xf86drm.h" + + +int main(int argc, const char** argv) +{ + drmVersionPtr v; + fprintf(stderr, "opening /dev/dri/card0\n"); + int fd = open("/dev/dri/card0", O_RDWR); + v = drmGetVersion(fd); + fprintf(stderr, "driver name : %s\n", v->name); + fprintf(stderr, "driver date : %s\n", v->date); + fprintf(stderr, "driver description: %s\n", v->desc); + fprintf(stderr, "driver version : %d.%d.%d\n", + v->version_major, v->version_minor, v->version_patchlevel); + drmFree(v); + close(fd); + return 0; +} From mmlr at mail.berlios.de Sat Sep 12 21:36:32 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 12 Sep 2009 21:36:32 +0200 Subject: [Haiku-commits] r33104 - haiku/branches/releases/r1alpha1/data/common/boot/post_install Message-ID: <200909121936.n8CJaWgn032575@sheep.berlios.de> Author: mmlr Date: 2009-09-12 21:36:31 +0200 (Sat, 12 Sep 2009) New Revision: 33104 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33104&view=rev Modified: haiku/branches/releases/r1alpha1/data/common/boot/post_install/mime_update.sh Log: Add the Tracker add-ons directory to the mimeset list to enable Zip-O-Matic out of the box. This shouldn't be required on trunk as it has been updated there to work differently. Modified: haiku/branches/releases/r1alpha1/data/common/boot/post_install/mime_update.sh =================================================================== --- haiku/branches/releases/r1alpha1/data/common/boot/post_install/mime_update.sh 2009-09-12 19:18:40 UTC (rev 33103) +++ haiku/branches/releases/r1alpha1/data/common/boot/post_install/mime_update.sh 2009-09-12 19:36:31 UTC (rev 33104) @@ -17,5 +17,6 @@ mimeset -f "$SYSTEM/documentation" mimeset -apps -f "$SYSTEM/preferences" mimeset -apps -f "$SYSTEM/servers" +mimeset -apps -f "$SYSTEM/add-ons/Tracker" mimeset -apps -f "/boot/apps" From aljen at mail.berlios.de Sat Sep 12 21:42:51 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sat, 12 Sep 2009 21:42:51 +0200 Subject: [Haiku-commits] r33105 - in haiku/branches/components/gallium3d/src/add-ons/opengl: i915 softpipe Message-ID: <200909121942.n8CJgpNh000581@sheep.berlios.de> Author: aljen Date: 2009-09-12 21:42:48 +0200 (Sat, 12 Sep 2009) New Revision: 33105 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33105&view=rev Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/Jamfile Log: Forgot about drivers libs names change Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile 2009-09-12 19:36:31 UTC (rev 33104) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/i915/Jamfile 2009-09-12 19:42:48 UTC (rev 33105) @@ -28,6 +28,6 @@ Addon i915 : i915PipeRenderer.cpp - : libGL.so libmesa.a libi915simple.a libdrm_intel.so be $(TARGET_LIBSUPC++) + : libGL.so libmesa.a libdrv_i915simple.a libdrm_intel.so be $(TARGET_LIBSUPC++) ; Modified: haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/Jamfile 2009-09-12 19:36:31 UTC (rev 33104) +++ haiku/branches/components/gallium3d/src/add-ons/opengl/softpipe/Jamfile 2009-09-12 19:42:48 UTC (rev 33105) @@ -36,5 +36,5 @@ hsp_device.c hsp_framebuffer.c hsp_getprocaddress.c - : libGL.so libmesa.a libsoftpipe.a libgallium.a be translation $(TARGET_LIBSUPC++) + : libGL.so libmesa.a libdrv_softpipe.a libgallium.a be translation $(TARGET_LIBSUPC++) ; From mmlr at mail.berlios.de Sat Sep 12 22:14:46 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 12 Sep 2009 22:14:46 +0200 Subject: [Haiku-commits] r33106 - buildtools/tags Message-ID: <200909122014.n8CKEkN3002827@sheep.berlios.de> Author: mmlr Date: 2009-09-12 22:14:42 +0200 (Sat, 12 Sep 2009) New Revision: 33106 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33106&view=rev Added: buildtools/tags/releases/ Log: Creating a release tag directory for the buildtools. From mmlr at mail.berlios.de Sat Sep 12 22:16:34 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 12 Sep 2009 22:16:34 +0200 Subject: [Haiku-commits] r33107 - buildtools/tags/releases Message-ID: <200909122016.n8CKGXjB003009@sheep.berlios.de> Author: mmlr Date: 2009-09-12 22:16:29 +0200 (Sat, 12 Sep 2009) New Revision: 33107 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33107&view=rev Added: buildtools/tags/releases/r1alpha1/ Log: Tagging the buildtools state at the r1alpha1 release. Copied: buildtools/tags/releases/r1alpha1 (from rev 33106, buildtools/trunk) From mmlr at mail.berlios.de Sat Sep 12 22:19:45 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 12 Sep 2009 22:19:45 +0200 Subject: [Haiku-commits] r33108 - haiku/tags Message-ID: <200909122019.n8CKJjOR003212@sheep.berlios.de> Author: mmlr Date: 2009-09-12 22:19:44 +0200 (Sat, 12 Sep 2009) New Revision: 33108 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33108&view=rev Added: haiku/tags/releases/ Log: Creating directory for release tags. From mmlr at mail.berlios.de Sat Sep 12 22:21:50 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Sat, 12 Sep 2009 22:21:50 +0200 Subject: [Haiku-commits] r33109 - haiku/tags/releases Message-ID: <200909122021.n8CKLod2003378@sheep.berlios.de> Author: mmlr Date: 2009-09-12 22:21:46 +0200 (Sat, 12 Sep 2009) New Revision: 33109 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33109&view=rev Added: haiku/tags/releases/r1alpha1/ Log: Tagging the R1/Alpha1 release from the r1alpha1 branch at r33108. Copied: haiku/tags/releases/r1alpha1 (from rev 33108, haiku/branches/releases/r1alpha1) From anevilyak at mail.berlios.de Sun Sep 13 03:30:39 2009 From: anevilyak at mail.berlios.de (anevilyak at BerliOS) Date: Sun, 13 Sep 2009 03:30:39 +0200 Subject: [Haiku-commits] r33110 - in haiku/trunk: headers/os/device headers/private/device src/kits/device Message-ID: <200909130130.n8D1Ud32013706@sheep.berlios.de> Author: anevilyak Date: 2009-09-13 03:30:38 +0200 (Sun, 13 Sep 2009) New Revision: 33110 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33110&view=rev Modified: haiku/trunk/headers/os/device/Joystick.h haiku/trunk/headers/private/device/JoystickTweaker.h haiku/trunk/src/kits/device/JoystickTweaker.cpp Log: Fix Device Kit build in debug mode. Modified: haiku/trunk/headers/os/device/Joystick.h =================================================================== --- haiku/trunk/headers/os/device/Joystick.h 2009-09-12 20:21:46 UTC (rev 33109) +++ haiku/trunk/headers/os/device/Joystick.h 2009-09-13 01:30:38 UTC (rev 33110) @@ -9,6 +9,10 @@ #include #include +#if DEBUG +#include +#endif + class BList; class BString; class _BJoystickTweaker; Modified: haiku/trunk/headers/private/device/JoystickTweaker.h =================================================================== --- haiku/trunk/headers/private/device/JoystickTweaker.h 2009-09-12 20:21:46 UTC (rev 33109) +++ haiku/trunk/headers/private/device/JoystickTweaker.h 2009-09-13 01:30:38 UTC (rev 33110) @@ -11,6 +11,10 @@ #include #include +#if DEBUG +#include +#endif + #define DEVICEPATH "/dev/joystick/" #define JOYSTICKPATH "/boot/home/config/settings/joysticks/" Modified: haiku/trunk/src/kits/device/JoystickTweaker.cpp =================================================================== --- haiku/trunk/src/kits/device/JoystickTweaker.cpp 2009-09-12 20:21:46 UTC (rev 33109) +++ haiku/trunk/src/kits/device/JoystickTweaker.cpp 2009-09-13 01:30:38 UTC (rev 33110) @@ -31,10 +31,10 @@ va_start(ap, fmt); vsprintf(buf, fmt, ap); va_end(ap); - fputs(buf, BJoystick::sLogFile); fflush(BJoystick::sLogFile); + fputs(buf, _BJoystickTweaker::sLogFile); fflush(_BJoystickTweaker::sLogFile); } # define LOG_ERR(text...) LOG(text) -FILE *BJoystick::sLogFile = NULL; +FILE *_BJoystickTweaker::sLogFile = NULL; #else # define LOG(text...) # define LOG_ERR(text...) fprintf(stderr, text) @@ -184,7 +184,7 @@ str.RemoveFirst("num_sticks = "); info->num_sticks = atoi(str.String()); } else { - LOG("Path = %s\n", str->String()); + LOG("Path = %s\n", str.String()); } } From threedeyes at mail.berlios.de Sun Sep 13 06:42:14 2009 From: threedeyes at mail.berlios.de (threedeyes at mail.berlios.de) Date: Sun, 13 Sep 2009 06:42:14 +0200 Subject: [Haiku-commits] r33111 - haiku/trunk/src/add-ons/kernel/file_systems/ntfs Message-ID: <200909130442.n8D4gEv4015991@sheep.berlios.de> Author: threedeyes Date: 2009-09-13 06:41:59 +0200 (Sun, 13 Sep 2009) New Revision: 33111 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33111&view=rev Modified: haiku/trunk/src/add-ons/kernel/file_systems/ntfs/fs_func.c haiku/trunk/src/add-ons/kernel/file_systems/ntfs/fs_func.h haiku/trunk/src/add-ons/kernel/file_systems/ntfs/ntfsdir.c haiku/trunk/src/add-ons/kernel/file_systems/ntfs/ntfsdir.h haiku/trunk/src/add-ons/kernel/file_systems/ntfs/utils.c Log: Added support for updating the access and change time to the file/directory. +alphabranch (forgot to add to the previous commit) Modified: haiku/trunk/src/add-ons/kernel/file_systems/ntfs/fs_func.c =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/ntfs/fs_func.c 2009-09-13 01:30:38 UTC (rev 33110) +++ haiku/trunk/src/add-ons/kernel/file_systems/ntfs/fs_func.c 2009-09-13 04:41:59 UTC (rev 33111) @@ -94,6 +94,16 @@ return B_OK; } +void +fs_ntfs_update_times(fs_volume *vol, ntfs_inode *ni, ntfs_time_update_flags mask) +{ + nspace *ns = (nspace*)vol->private_volume; + + if (ns->noatime) + mask &= ~NTFS_UPDATE_ATIME; + + ntfs_inode_update_times(ni, mask); +} float fs_identify_partition(int fd, partition_data *partition, void **_cookie) @@ -213,8 +223,6 @@ mountFlags |= MS_RDONLY; ns->flags |= B_FS_IS_READONLY; } -// if (ns->noatime) -// mnt_flags |= MS_NOATIME; // TODO: this does not take read-only volumes into account! ns->ntvol = utils_mount_volume(device, mountFlags, true); @@ -931,8 +939,10 @@ S_IFREG, 0); ntfs_mark_free_space_outdated(ns); + fs_ntfs_update_times(_vol, ni, NTFS_UPDATE_MCTIME); notify_entry_created(ns->id, MREF(bi->mft_no), name, *_vnid); + } else result = errno; } @@ -1022,7 +1032,8 @@ } *len = total; - + fs_ntfs_update_times(_vol, ni, NTFS_UPDATE_ATIME); + exit: if (na) ntfs_attr_close(na); @@ -1117,6 +1128,9 @@ } *len = total; + if (total > 0) + fs_ntfs_update_times(_vol, ni, NTFS_UPDATE_MCTIME); + ERRPRINT(("fs_write - OK\n")); exit: @@ -1339,7 +1353,9 @@ } put_vnode(_vol, MREF(sym->mft_no)); - + fs_ntfs_update_times(_vol, sym, NTFS_UPDATE_CTIME); + fs_ntfs_update_times(_vol, bi, NTFS_UPDATE_MCTIME); + notify_entry_created(ns->id, MREF( bi->mft_no ), name, MREF(sym->mft_no)); exit: @@ -1420,6 +1436,7 @@ put_vnode(_vol, MREF(ni->mft_no)); ntfs_mark_free_space_outdated(ns); + fs_ntfs_update_times(_vol, ni, NTFS_UPDATE_MCTIME); notify_entry_created(ns->id, MREF(bi->mft_no), name, vnid); } else Modified: haiku/trunk/src/add-ons/kernel/file_systems/ntfs/fs_func.h =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/ntfs/fs_func.h 2009-09-13 01:30:38 UTC (rev 33110) +++ haiku/trunk/src/add-ons/kernel/file_systems/ntfs/fs_func.h 2009-09-13 04:41:59 UTC (rev 33111) @@ -52,6 +52,7 @@ extern fs_vnode_ops gNTFSVnodeOps; extern fs_volume_ops gNTFSVolumeOps; +void fs_ntfs_update_times(fs_volume *vol, ntfs_inode *ni, ntfs_time_update_flags mask); float fs_identify_partition(int fd, partition_data *partition, void **_cookie); Modified: haiku/trunk/src/add-ons/kernel/file_systems/ntfs/ntfsdir.c =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/ntfs/ntfsdir.c 2009-09-13 01:30:38 UTC (rev 33110) +++ haiku/trunk/src/add-ons/kernel/file_systems/ntfs/ntfsdir.c 2009-09-13 04:41:59 UTC (rev 33111) @@ -136,16 +136,31 @@ fs_closedir( fs_volume *_vol, fs_vnode *_node, void *cookie ) { nspace *ns = (nspace*)_vol->private_volume; - + vnode *node = (vnode*)_node->private_node; + int result = B_NO_ERROR; + ntfs_inode *ni=NULL; + LOCK_VOL(ns); ERRPRINT("fs_closedir - ENTER\n"); + + ni = ntfs_inode_open(ns->ntvol, node->vnid); + if(ni==NULL) { + result = ENOENT; + goto exit; + } + fs_ntfs_update_times(_vol, ni, NTFS_UPDATE_ATIME); + +exit: + if(ni) + ntfs_inode_close(ni); + ERRPRINT("fs_closedir - EXIT\n"); UNLOCK_VOL(ns); - return B_NO_ERROR; + return result; } status_t Modified: haiku/trunk/src/add-ons/kernel/file_systems/ntfs/ntfsdir.h =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/ntfs/ntfsdir.h 2009-09-13 01:30:38 UTC (rev 33110) +++ haiku/trunk/src/add-ons/kernel/file_systems/ntfs/ntfsdir.h 2009-09-13 04:41:59 UTC (rev 33111) @@ -38,4 +38,6 @@ status_t fs_readdir(fs_volume *volume, fs_vnode *vnode, void *_cookie, struct dirent *buf, size_t bufsize, uint32 *num ); status_t fs_rewinddir(fs_volume *volume, fs_vnode *vnode, void *cookie); +extern void fs_ntfs_update_times(fs_volume *vol, ntfs_inode *ni, ntfs_time_update_flags mask); + #endif Modified: haiku/trunk/src/add-ons/kernel/file_systems/ntfs/utils.c =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/ntfs/utils.c 2009-09-13 01:30:38 UTC (rev 33110) +++ haiku/trunk/src/add-ons/kernel/file_systems/ntfs/utils.c 2009-09-13 04:41:59 UTC (rev 33111) @@ -1107,4 +1107,3 @@ errno = eo; return ERR_MREF(-1); } - From phoudoin at mail.berlios.de Sun Sep 13 12:03:14 2009 From: phoudoin at mail.berlios.de (phoudoin at mail.berlios.de) Date: Sun, 13 Sep 2009 12:03:14 +0200 Subject: [Haiku-commits] r33112 - haiku/trunk/src/preferences/opengl Message-ID: <200909131003.n8DA3E99015501@sheep.berlios.de> Author: phoudoin Date: 2009-09-13 12:03:12 +0200 (Sun, 13 Sep 2009) New Revision: 33112 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33112&view=rev Modified: haiku/trunk/src/preferences/opengl/ExtensionsView.cpp haiku/trunk/src/preferences/opengl/ExtensionsView.h haiku/trunk/src/preferences/opengl/OpenGLView.cpp Log: Add GLU extentions too. Fix a gcc4 warning in BGLView construction. Modified: haiku/trunk/src/preferences/opengl/ExtensionsView.cpp =================================================================== --- haiku/trunk/src/preferences/opengl/ExtensionsView.cpp 2009-09-13 04:41:59 UTC (rev 33111) +++ haiku/trunk/src/preferences/opengl/ExtensionsView.cpp 2009-09-13 10:03:12 UTC (rev 33112) @@ -5,8 +5,8 @@ * Author: * Artur Wyszynski */ - #include "ExtensionsView.h" +#include "ExtensionsList.h" #include #include @@ -14,7 +14,7 @@ #include #include #include -#include "ExtensionsList.h" +#include ExtensionsView::ExtensionsView() @@ -27,19 +27,8 @@ ExtensionsList *extList = new ExtensionsList(); - char *list = (char*)glGetString(GL_EXTENSIONS); - if (list) { - while (*list) { - char extName[255]; - int n = strcspn(list, " "); - strncpy(extName, list, n); - extName[n] = 0; - extList->AddRow(new ExtensionRow(extName)); - if (!list[n]) - break; - list += (n + 1); // next ! - } - } + _AddExtensionsList(extList, (char*) glGetString(GL_EXTENSIONS)); + _AddExtensionsList(extList, (char*) gluGetString(GLU_EXTENSIONS)); AddChild(BGroupLayoutBuilder(B_VERTICAL) .Add(extList) @@ -76,3 +65,25 @@ { } + +// #pragma mark + +void +ExtensionsView::_AddExtensionsList(ExtensionsList *extList, char* stringList) +{ + if (!stringList) + // empty extentions string + return; + + while (*stringList) { + char extName[255]; + int n = strcspn(stringList, " "); + strncpy(extName, stringList, n); + extName[n] = 0; + extList->AddRow(new ExtensionRow(extName)); + if (!stringList[n]) + break; + stringList += (n + 1); // next ! + } +} + Modified: haiku/trunk/src/preferences/opengl/ExtensionsView.h =================================================================== --- haiku/trunk/src/preferences/opengl/ExtensionsView.h 2009-09-13 04:41:59 UTC (rev 33111) +++ haiku/trunk/src/preferences/opengl/ExtensionsView.h 2009-09-13 10:03:12 UTC (rev 33112) @@ -9,9 +9,10 @@ #ifndef EXTENSIONS_VIEW_H #define EXTENSIONS_VIEW_H - #include +class ExtensionsList; + class ExtensionsView : public BView { public: ExtensionsView(); @@ -20,6 +21,10 @@ virtual void MessageReceived(BMessage* message); virtual void AttachedToWindow(); virtual void DetachedFromWindow(); + +private: + void _AddExtensionsList(ExtensionsList *extList, char* stringList); + }; Modified: haiku/trunk/src/preferences/opengl/OpenGLView.cpp =================================================================== --- haiku/trunk/src/preferences/opengl/OpenGLView.cpp 2009-09-13 04:41:59 UTC (rev 33111) +++ haiku/trunk/src/preferences/opengl/OpenGLView.cpp 2009-09-13 10:03:12 UTC (rev 33112) @@ -29,7 +29,7 @@ const float kInset = 10; BRect dummy(0, 0, 2, 2); - fGLView = new BGLView(dummy, "gl info", B_FOLLOW_NONE, 0, + fGLView = new BGLView(dummy, (char*) "gl info", B_FOLLOW_NONE, 0, BGL_RGB | BGL_DOUBLE); fGLView->Hide(); AddChild(fGLView); From phoudoin at mail.berlios.de Sun Sep 13 12:05:19 2009 From: phoudoin at mail.berlios.de (phoudoin at mail.berlios.de) Date: Sun, 13 Sep 2009 12:05:19 +0200 Subject: [Haiku-commits] r33113 - haiku/trunk/src/tests/kits/opengl Message-ID: <200909131005.n8DA5JW0015779@sheep.berlios.de> Author: phoudoin Date: 2009-09-13 12:05:18 +0200 (Sun, 13 Sep 2009) New Revision: 33113 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33113&view=rev Removed: haiku/trunk/src/tests/kits/opengl/glinfo/ Log: Remove obsolete GLInfo, since Artur "aljen" Wyszynski add a far better looking one in src/preferences/opengl. From korli at mail.berlios.de Sun Sep 13 12:27:00 2009 From: korli at mail.berlios.de (korli at BerliOS) Date: Sun, 13 Sep 2009 12:27:00 +0200 Subject: [Haiku-commits] r33114 - haiku/trunk/data/etc/fonts/ttfonts Message-ID: <200909131027.n8DAR0dZ017547@sheep.berlios.de> Author: korli Date: 2009-09-13 12:26:34 +0200 (Sun, 13 Sep 2009) New Revision: 33114 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33114&view=rev Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSans-Bold.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSans-BoldOblique.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSans-ExtraLight.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSans-Oblique.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSans.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSansCondensed-Bold.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSansCondensed-BoldOblique.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSansCondensed-Oblique.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSansCondensed.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSansMono-Bold.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSansMono-BoldOblique.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSansMono-Oblique.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSansMono.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSerif-Bold.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSerif-BoldItalic.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSerif-Italic.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSerif.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSerifCondensed-Bold.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSerifCondensed-BoldItalic.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSerifCondensed-Italic.ttf haiku/trunk/data/etc/fonts/ttfonts/DejaVuSerifCondensed.ttf Log: updated DejaVu fonts to to 2.30 Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSans-Bold.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSans-BoldOblique.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSans-ExtraLight.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSans-Oblique.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSans.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSansCondensed-Bold.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSansCondensed-BoldOblique.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSansCondensed-Oblique.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSansCondensed.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSansMono-Bold.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSansMono-BoldOblique.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSansMono-Oblique.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSansMono.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSerif-Bold.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSerif-BoldItalic.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSerif-Italic.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSerif.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSerifCondensed-Bold.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSerifCondensed-BoldItalic.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSerifCondensed-Italic.ttf =================================================================== (Binary files differ) Modified: haiku/trunk/data/etc/fonts/ttfonts/DejaVuSerifCondensed.ttf =================================================================== (Binary files differ) From jackburton at mail.berlios.de Sun Sep 13 12:39:20 2009 From: jackburton at mail.berlios.de (jackburton at mail.berlios.de) Date: Sun, 13 Sep 2009 12:39:20 +0200 Subject: [Haiku-commits] r33115 - haiku/trunk/src/tests/kits/opengl Message-ID: <200909131039.n8DAdKXL025375@sheep.berlios.de> Author: jackburton Date: 2009-09-13 12:39:10 +0200 (Sun, 13 Sep 2009) New Revision: 33115 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33115&view=rev Modified: haiku/trunk/src/tests/kits/opengl/Jamfile Log: Removed glinfo test from the Jamfile Modified: haiku/trunk/src/tests/kits/opengl/Jamfile =================================================================== --- haiku/trunk/src/tests/kits/opengl/Jamfile 2009-09-13 10:26:34 UTC (rev 33114) +++ haiku/trunk/src/tests/kits/opengl/Jamfile 2009-09-13 10:39:10 UTC (rev 33115) @@ -1,4 +1,3 @@ SubDir HAIKU_TOP src tests kits opengl ; -SubInclude HAIKU_TOP src tests kits opengl glinfo ; SubInclude HAIKU_TOP src tests kits opengl direct_mode ; From aljen at mail.berlios.de Sun Sep 13 15:16:17 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Sun, 13 Sep 2009 15:16:17 +0200 Subject: [Haiku-commits] r33116 - haiku/branches/components/gallium3d/headers/libs/drm Message-ID: <200909131316.n8DDGHEn015343@sheep.berlios.de> Author: aljen Date: 2009-09-13 15:16:15 +0200 (Sun, 13 Sep 2009) New Revision: 33116 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33116&view=rev Modified: haiku/branches/components/gallium3d/headers/libs/drm/drm.h Log: Include stdint.h Modified: haiku/branches/components/gallium3d/headers/libs/drm/drm.h =================================================================== --- haiku/branches/components/gallium3d/headers/libs/drm/drm.h 2009-09-13 10:39:10 UTC (rev 33115) +++ haiku/branches/components/gallium3d/headers/libs/drm/drm.h 2009-09-13 13:16:15 UTC (rev 33116) @@ -77,6 +77,10 @@ # endif #endif +#if defined(__HAIKU__) +# include +#endif + #if defined(__linux__) #include /* For _IO* macros */ #define DRM_IOCTL_NR(n) _IOC_NR(n) From humdingerb at mail.berlios.de Sun Sep 13 15:31:35 2009 From: humdingerb at mail.berlios.de (humdingerb at mail.berlios.de) Date: Sun, 13 Sep 2009 15:31:35 +0200 Subject: [Haiku-commits] r33117 - in haiku/trunk/docs/userguide/en: . applications Message-ID: <200909131331.n8DDVZWc016976@sheep.berlios.de> Author: humdingerb Date: 2009-09-13 15:31:33 +0200 (Sun, 13 Sep 2009) New Revision: 33117 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33117&view=rev Modified: haiku/trunk/docs/userguide/en/applications/installer.html haiku/trunk/docs/userguide/en/gui.html Log: * Clarified that the shortcuts and Favorites menu actually refer to the "Open and save panels" subchapter in gui.html * Corrected link to DriveSetup in installer.html Modified: haiku/trunk/docs/userguide/en/applications/installer.html =================================================================== --- haiku/trunk/docs/userguide/en/applications/installer.html 2009-09-13 13:16:15 UTC (rev 33116) +++ haiku/trunk/docs/userguide/en/applications/installer.html 2009-09-13 13:31:33 UTC (rev 33117) @@ -61,7 +61,7 @@

                In the first drop-down menu you choose the source for the installation. It can be a currently installed Haiku or can come from an install CD or USB drive, etc.
                The second drop-down menu specifies the target for the installation. This target partition/volume will be completely overwritten and has to be set aside beforehand by a partitioning tool like GParted.

                Clicking the little expander widget will Show Optional Packages, if available, that you can choose to install in addition to the basic Haiku.

                -

                You should do a last check if you really picked the right target before starting the installation process. Click on Setup partitions... to open DriveSetup and have a look at the naming and layout of the available volumes and partitions.

                +

                You should do a last check if you really picked the right target before starting the installation process. Click on Setup partitions... to open DriveSetup and have a look at the naming and layout of the available volumes and partitions.

                Begin starts the installation procedure, which basically copies everything but the home/ and common/ folder onto the target volume and makes it bootable.

                It can happen that some other operating system or partitioning tool (accidentally) overwrites the boot sector of your Haiku volume. The button Write Boot Sector makes it bootable again.

                Modified: haiku/trunk/docs/userguide/en/gui.html =================================================================== --- haiku/trunk/docs/userguide/en/gui.html 2009-09-13 13:16:15 UTC (rev 33116) +++ haiku/trunk/docs/userguide/en/gui.html 2009-09-13 13:31:33 UTC (rev 33117) @@ -66,7 +66,7 @@

                index Keyboard shortcuts

                -

                You can use many of the shortcuts also used in Tracker. Besides the commands that are also available through the File menu, there are a few not that obvious:

                +

                Many shortcuts in open and save panels are the same used in Tracker. Besides the commands that are also available through the File menu, there are a few not that obvious:

              @@ -79,7 +79,7 @@

              index Favorites and recent folders

              -

              The menu Favorites provides recently visited folders and favorite locations that you can set up yourself. As indicated by the little arrow, you can also use these locations to navigate further down the hierarchy via submenus.

              +

              The Favorites menu in open and save panels provides recently visited folders and favorite locations that you can set up yourself. As indicated by the little arrow, you can also use these locations to navigate further down the hierarchy via submenus.

              favorites.png

              To add a Favorite, you simply navigate to your destination and choose Favorites | Add Current Folder. From now on it will appear in every open/save panel. To remove a Favorite, choose Favorites | Configure Favorites... and delete its entry.
              All Favorites are kept in /boot/home/config/settings/Tracker/Go/. So you might as well add and remove links to files and folders there directly.

              From phoudoin at mail.berlios.de Sun Sep 13 17:36:36 2009 From: phoudoin at mail.berlios.de (phoudoin at mail.berlios.de) Date: Sun, 13 Sep 2009 17:36:36 +0200 Subject: [Haiku-commits] r33118 - haiku/trunk/src/servers/midi Message-ID: <200909131536.n8DFaabM032565@sheep.berlios.de> Author: phoudoin Date: 2009-09-13 17:36:33 +0200 (Sun, 13 Sep 2009) New Revision: 33118 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33118&view=rev Modified: haiku/trunk/src/servers/midi/DeviceWatcher.cpp haiku/trunk/src/servers/midi/DeviceWatcher.h haiku/trunk/src/servers/midi/Jamfile haiku/trunk/src/servers/midi/MidiServerApp.cpp haiku/trunk/src/servers/midi/MidiServerApp.h Log: Rework midi_server device watching to support dynamic detection, not just at startup. WIP, as the removing case is not yet handled. Plus vector icon support should be added to Midi kit. Modified: haiku/trunk/src/servers/midi/DeviceWatcher.cpp =================================================================== --- haiku/trunk/src/servers/midi/DeviceWatcher.cpp 2009-09-13 13:31:33 UTC (rev 33117) +++ haiku/trunk/src/servers/midi/DeviceWatcher.cpp 2009-09-13 15:36:33 UTC (rev 33118) @@ -1,26 +1,17 @@ /* - * Copyright (c) 2003 Matthijs Hollemans - * Copyright (c) 2003 Jerome Leveque + * Copyright 2004-2009, Haiku, Inc. All rights reserved. + * Distributed under the terms of the MIT License. * - * 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. + * Authors: + * Matthijs Hollemans + * Jerome Leveque + * Philippe Houdoin */ +#include "DeviceWatcher.h" +#include "PortDrivers.h" +#include "debug.h" + #include #include #include @@ -30,114 +21,164 @@ #include #include -#include "DeviceWatcher.h" -#include "PortDrivers.h" -#include "debug.h" +#include -//------------------------------------------------------------------------------ +using namespace BPrivate; +const char *kDevicesRoot = "/dev/midi"; + DeviceWatcher::DeviceWatcher() + : BLooper("MIDI devices watcher") { - largeIcon = new BBitmap(BRect(0, 0, 31, 31), B_CMAP8); - miniIcon = new BBitmap(BRect(0, 0, 15, 15), B_CMAP8); + // TODO: add support for vector icons + + fLargeIcon = new BBitmap(BRect(0, 0, 31, 31), B_CMAP8); + fMiniIcon = new BBitmap(BRect(0, 0, 15, 15), B_CMAP8); app_info info; be_app->GetAppInfo(&info); BFile file(&info.ref, B_READ_ONLY); BResources res; - if (res.SetTo(&file) == B_OK) - { + if (res.SetTo(&file) == B_OK) { size_t size; const void* bits; bits = res.LoadResource(B_LARGE_ICON_TYPE, 10, &size); - largeIcon->SetBits(bits, size, 0, B_CMAP8); + fLargeIcon->SetBits(bits, size, 0, B_CMAP8); bits = res.LoadResource(B_MINI_ICON_TYPE, 11, &size); - miniIcon->SetBits(bits, size, 0, B_CMAP8); + fMiniIcon->SetBits(bits, size, 0, B_CMAP8); } + + Start(); } -//------------------------------------------------------------------------------ DeviceWatcher::~DeviceWatcher() { - delete largeIcon; - delete miniIcon; + Stop(); + + delete fLargeIcon; + delete fMiniIcon; } -//------------------------------------------------------------------------------ -void DeviceWatcher::Start() +status_t +DeviceWatcher::Start() { - // We need to do this from a separate thread, otherwise we will deadlock. - // The reason is that we instantiate a BMidiRoster object, which sends a - // message to the midi_server to register itself, and blocks until it gets - // a response. But since we _are_ the midi_server we will never be able to - // send that response if our main thread is already blocking. + // Do an initial scan + _ScanDevices(kDevicesRoot); - resume_thread(spawn_thread( - SpawnThread, "DeviceWatcher", B_NORMAL_PRIORITY, this)); + // Okay, now just watch for any change + return BPathMonitor::StartWatching(kDevicesRoot, B_ENTRY_CREATED + | B_ENTRY_REMOVED | B_ENTRY_MOVED | B_WATCH_FILES_ONLY + | B_WATCH_RECURSIVELY, this); } -//------------------------------------------------------------------------------ -int32 DeviceWatcher::SpawnThread(void* data) +status_t +DeviceWatcher::Stop() { - ((DeviceWatcher*) data)->ScanDevices("/dev/midi"); - return 0; + return BPathMonitor::StopWatching(kDevicesRoot, this); } -//------------------------------------------------------------------------------ -void DeviceWatcher::ScanDevices(const char* path) +void +DeviceWatcher::MessageReceived(BMessage* message) { - BDirectory dir(path); - if (dir.InitCheck() == B_OK) - { - BEntry entry; - while (dir.GetNextEntry(&entry) == B_OK) - { - BPath name; - entry.GetPath(&name); - if (entry.IsDirectory()) - { - ScanDevices(name.Path()); - } - else - { - int fd = open(name.Path(), O_RDWR | O_EXCL); - if (fd >= 0) - { - BMidiEndpoint* endp; + if (message->what != B_PATH_MONITOR) + return; + + int32 opcode; + if (message->FindInt32("opcode", &opcode) != B_OK) + return; + + // message->PrintToStream(); - endp = new MidiPortConsumer(fd, name.Path()); - SetIcons(endp); - endp->Register(); + const char* path; + if (message->FindString("path", &path) != B_OK) + return; - endp = new MidiPortProducer(fd, name.Path()); - SetIcons(endp); - endp->Register(); - } - } + switch (opcode) { + case B_ENTRY_CREATED: { + _AddDevice(path); + break; } + case B_ENTRY_REMOVED: { + _RemoveDevice(path); + break; + } } } -//------------------------------------------------------------------------------ -void DeviceWatcher::SetIcons(BMidiEndpoint* endp) +// #pragma mark - + + +void +DeviceWatcher::_ScanDevices(const char* path) { + BDirectory dir(path); + if (dir.InitCheck() != B_OK) + return; + + BEntry entry; + while (dir.GetNextEntry(&entry) == B_OK) { + BPath name; + entry.GetPath(&name); + if (entry.IsDirectory()) + _ScanDevices(name.Path()); + else + _AddDevice(name.Path()); + } +} + + +void +DeviceWatcher::_AddDevice(const char* path) +{ + int fd = open(path, O_RDWR | O_EXCL); + if (fd < 0) + return; + + // printf("DeviceWatcher::_AddDevice(\"%s\");\n", path); + + BMidiEndpoint* endpoint; + + endpoint = new MidiPortConsumer(fd, path); + _SetIcons(endpoint); + printf("Register %s MidiPortConsumer\n", endpoint->Name()); + endpoint->Register(); + + endpoint = new MidiPortProducer(fd, path); + _SetIcons(endpoint); + printf("Register %s MidiPortProducer\n", endpoint->Name()); + endpoint->Register(); +} + + +void +DeviceWatcher::_RemoveDevice(const char* path) +{ + // printf("DeviceWatcher::_RemoveDevice(\"%s\");\n", path); + + // TODO: handle device removing +} + + +void +DeviceWatcher::_SetIcons(BMidiEndpoint* endpoint) +{ BMessage msg; - msg.AddData( - "be:large_icon", B_LARGE_ICON_TYPE, largeIcon->Bits(), largeIcon->BitsLength()); + // TODO: handle Haiku vector icon type + + msg.AddData("be:large_icon", B_LARGE_ICON_TYPE, fLargeIcon->Bits(), + fLargeIcon->BitsLength()); - msg.AddData( - "be:mini_icon", B_MINI_ICON_TYPE, miniIcon->Bits(), miniIcon->BitsLength()); + msg.AddData("be:mini_icon", B_MINI_ICON_TYPE, fMiniIcon->Bits(), + fMiniIcon->BitsLength()); - endp->SetProperties(&msg); + endpoint->SetProperties(&msg); } - -//------------------------------------------------------------------------------ Modified: haiku/trunk/src/servers/midi/DeviceWatcher.h =================================================================== --- haiku/trunk/src/servers/midi/DeviceWatcher.h 2009-09-13 13:31:33 UTC (rev 33117) +++ haiku/trunk/src/servers/midi/DeviceWatcher.h 2009-09-13 15:36:33 UTC (rev 33118) @@ -1,47 +1,39 @@ /* - * Copyright (c) 2003 Matthijs Hollemans - * Copyright (c) 2003 Jerome Leveque + * Copyright 2004-2009, Haiku, Inc. All rights reserved. + * Distributed under the terms of the MIT License. * - * 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. + * Authors: + * Matthijs Hollemans + * Jerome Leveque + * Philippe Houdoin */ - #ifndef DEVICE_WATCHER_H #define DEVICE_WATCHER_H +#include + + class BBitmap; class BMidiEndpoint; -class DeviceWatcher -{ +class DeviceWatcher : public BLooper { public: - DeviceWatcher(); - ~DeviceWatcher(); + DeviceWatcher(); + ~DeviceWatcher(); + + void MessageReceived(BMessage* message); - void Start(); + status_t Start(); + status_t Stop(); private: - static int32 SpawnThread(void* data); - void ScanDevices(const char* path); - void SetIcons(BMidiEndpoint* endp); + void _ScanDevices(const char* path); + void _AddDevice(const char* path); + void _RemoveDevice(const char* path); + void _SetIcons(BMidiEndpoint* endp); - BBitmap* largeIcon; - BBitmap* miniIcon; + BBitmap* fLargeIcon; + BBitmap* fMiniIcon; }; #endif // DEVICE_WATCHER_H Modified: haiku/trunk/src/servers/midi/Jamfile =================================================================== --- haiku/trunk/src/servers/midi/Jamfile 2009-09-13 13:31:33 UTC (rev 33117) +++ haiku/trunk/src/servers/midi/Jamfile 2009-09-13 15:36:33 UTC (rev 33118) @@ -2,13 +2,19 @@ SetSubDirSupportedPlatformsBeOSCompatible ; -UsePrivateHeaders midi ; +UsePrivateHeaders midi storage ; Server midi_server : MidiServerApp.cpp DeviceWatcher.cpp PortDrivers.cpp - : be midi2 $(TARGET_LIBSUPC++) + + # storage + NodeMonitorHandler.cpp + + : be midi2 $(TARGET_LIBSTDC++) : midi_server.rdef ; +SEARCH on [ FGristFiles NodeMonitorHandler.cpp ] + += [ FDirName $(SUBDIR) $(DOTDOT) $(DOTDOT) kits storage ] ; Modified: haiku/trunk/src/servers/midi/MidiServerApp.cpp =================================================================== --- haiku/trunk/src/servers/midi/MidiServerApp.cpp 2009-09-13 13:31:33 UTC (rev 33117) +++ haiku/trunk/src/servers/midi/MidiServerApp.cpp 2009-09-13 15:36:33 UTC (rev 33118) @@ -20,27 +20,35 @@ * DEALINGS IN THE SOFTWARE. */ -#include - #include "debug.h" #include "MidiServerApp.h" #include "PortDrivers.h" #include "ServerDefs.h" #include "protocol.h" +#include +#include + +using std::nothrow; + MidiServerApp::MidiServerApp() : BApplication(MIDI_SERVER_SIGNATURE) { TRACE(("Running Haiku MIDI server")) nextId = 1; - devWatcher.Start(); + fDeviceWatcher = new(std::nothrow) DeviceWatcher(); + if (fDeviceWatcher != NULL) + fDeviceWatcher->Run(); } MidiServerApp::~MidiServerApp() { + if (fDeviceWatcher && fDeviceWatcher->Lock()) + fDeviceWatcher->Quit(); + for (int32 t = 0; t < CountApps(); ++t) { delete AppAt(t); } Modified: haiku/trunk/src/servers/midi/MidiServerApp.h =================================================================== --- haiku/trunk/src/servers/midi/MidiServerApp.h 2009-09-13 13:31:33 UTC (rev 33117) +++ haiku/trunk/src/servers/midi/MidiServerApp.h 2009-09-13 15:36:33 UTC (rev 33118) @@ -1,25 +1,10 @@ /* - * Copyright (c) 2002-2003 Matthijs Hollemans - * - * 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. + * Copyright 2002-2009, Haiku, Inc. All rights reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Matthijs Hollemans */ - #ifndef MIDI_SERVER_APP_H #define MIDI_SERVER_APP_H @@ -139,8 +124,8 @@ // The ID we will assign to the next new endpoint. int32 nextId; - // Creates endpoints for /dev/midi drivers. - DeviceWatcher devWatcher; + // Watch endpoints from /dev/midi drivers. + DeviceWatcher* fDeviceWatcher; #ifdef DEBUG void DumpApps(); From stpere at mail.berlios.de Sun Sep 13 19:29:28 2009 From: stpere at mail.berlios.de (stpere at BerliOS) Date: Sun, 13 Sep 2009 19:29:28 +0200 Subject: [Haiku-commits] r33119 - haiku/trunk/src/preferences/network Message-ID: <200909131729.n8DHTS6n002449@sheep.berlios.de> Author: stpere Date: 2009-09-13 19:29:19 +0200 (Sun, 13 Sep 2009) New Revision: 33119 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33119&view=rev Modified: haiku/trunk/src/preferences/network/EthernetSettingsView.cpp Log: Network preflet : Wrongly forces to input a gateway and a DNS server * While adding IPv4 basic validation, I overseen the possibility to leave those fields blank. Now, those fields can be left blank if you wish. Fixing ticket #4487. Modified: haiku/trunk/src/preferences/network/EthernetSettingsView.cpp =================================================================== --- haiku/trunk/src/preferences/network/EthernetSettingsView.cpp 2009-09-13 15:36:33 UTC (rev 33118) +++ haiku/trunk/src/preferences/network/EthernetSettingsView.cpp 2009-09-13 17:29:19 UTC (rev 33119) @@ -558,8 +558,10 @@ case kMsgApply: if (_ValidateControl(fIPTextControl) && _ValidateControl(fNetMaskTextControl) - && _ValidateControl(fGatewayTextControl) - && _ValidateControl(fPrimaryDNSTextControl) + && (strlen(fGatewayTextControl->Text()) == 0 + || _ValidateControl(fGatewayTextControl)) + && (strlen(fPrimaryDNSTextControl->Text()) == 0 + || _ValidateControl(fPrimaryDNSTextControl)) && (strlen(fSecondaryDNSTextControl->Text()) == 0 || _ValidateControl(fSecondaryDNSTextControl))) _SaveConfiguration(); From korli at mail.berlios.de Sun Sep 13 23:58:26 2009 From: korli at mail.berlios.de (korli at mail.berlios.de) Date: Sun, 13 Sep 2009 23:58:26 +0200 Subject: [Haiku-commits] r33120 - haiku/trunk/src/add-ons/kernel/drivers/audio/hda Message-ID: <200909132158.n8DLwQcT020440@sheep.berlios.de> Author: korli Date: 2009-09-13 23:58:22 +0200 (Sun, 13 Sep 2009) New Revision: 33120 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33120&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_multi_audio.cpp Log: * added input selector controls * increased responses count * only unmute active inputs on mixer widgets Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/driver.h =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/audio/hda/driver.h 2009-09-13 17:29:19 UTC (rev 33119) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/driver.h 2009-09-13 21:58:22 UTC (rev 33120) @@ -37,7 +37,7 @@ #define HDA_MAX_AUDIO_GROUPS 15 #define HDA_MAX_CODECS 15 #define HDA_MAX_STREAMS 16 -#define MAX_CODEC_RESPONSES 10 +#define MAX_CODEC_RESPONSES 16 #define MAX_INPUTS 32 #define MAX_IO_WIDGETS 8 #define MAX_ASSOCIATIONS 16 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-09-13 17:29:19 UTC (rev 33119) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_codec.cpp 2009-09-13 21:58:22 UTC (rev 33120) @@ -154,7 +154,7 @@ static void dump_widget_stream_support(hda_widget& widget) { - dprintf("\tSupported formats: %s%s%s%s%s%s%s%s\n", + dprintf("\tSupported formats: %s%s%s%s%s%s%s%s%s\n", widget.d.io.formats & B_FMT_8BIT_S ? "8bits " : "", widget.d.io.formats & B_FMT_16BIT ? "16bits " : "", widget.d.io.formats & B_FMT_20BIT ? "20bits " : "", @@ -162,7 +162,8 @@ widget.d.io.formats & B_FMT_32BIT ? "32bits " : "", widget.d.io.formats & B_FMT_FLOAT ? "float " : "", widget.d.io.formats & B_FMT_DOUBLE ? "double " : "", - widget.d.io.formats & B_FMT_EXTENDED ? "extended " : ""); + widget.d.io.formats & B_FMT_EXTENDED ? "extended " : "", + widget.d.io.formats & B_FMT_BITSTREAM ? "bitstream " : ""); dprintf("\tSupported rates: %s%s%s%s%s%s%s%s%s%s%s%s\n", widget.d.io.rates & B_SR_8000 ? "8khz " : "", widget.d.io.rates & B_SR_11025 ? "11khz " : "", @@ -885,13 +886,17 @@ widget.active_input = 0; if (widget.num_inputs < 2) continue; + + if (widget.type != WT_AUDIO_INPUT + && widget.type != WT_AUDIO_SELECTOR + && widget.type != WT_PIN_COMPLEX) + continue; corb_t verb = MAKE_VERB(audioGroup->codec->addr, widget.node_id, VID_SET_CONNECTION_SELECT, widget.active_input); - if (hda_send_verbs(audioGroup->codec, &verb, NULL, 1) != B_OK) { + if (hda_send_verbs(audioGroup->codec, &verb, NULL, 1) != B_OK) dprintf("hda: Setting output selector %ld failed on widget %ld!\n", widget.active_input, widget.node_id); - } } dump_audiogroup_widgets(audioGroup); @@ -1039,6 +1044,7 @@ AMP_SET_INPUT | AMP_SET_LEFT_CHANNEL | AMP_SET_RIGHT_CHANNEL | AMP_SET_INPUT_INDEX(i) + | ((widget.active_input == (int32)i) ? 0 : AMP_MUTE) | AMP_CAP_OFFSET(widget.capabilities.input_amplifier)); hda_send_verbs(audioGroup->codec, &verb, NULL, 1); } 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-09-13 17:29:19 UTC (rev 33119) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_multi_audio.cpp 2009-09-13 21:58:22 UTC (rev 33120) @@ -25,7 +25,9 @@ typedef enum { B_MIX_GAIN = 1 << 0, - B_MIX_MUTE = 1 << 1 + B_MIX_MUTE = 1 << 1, + B_MIX_MUX_MIXER = 1 << 2, + B_MIX_MUX_SELECTOR = 1 << 3 } mixer_type; @@ -191,6 +193,73 @@ } +static enum strind_id +hda_find_multi_string(hda_widget& widget) +{ + switch (CONF_DEFAULT_DEVICE(widget.d.pin.config)) { + case PIN_DEV_CD: + return S_CD; + case PIN_DEV_LINE_IN: + case PIN_DEV_LINE_OUT: + return S_LINE; + case PIN_DEV_MIC_IN: + return S_MIC; + case PIN_DEV_AUX: + return S_AUX; + case PIN_DEV_SPDIF_IN: + case PIN_DEV_SPDIF_OUT: + return S_SPDIF; + case PIN_DEV_HEAD_PHONE_OUT: + return S_HEADPHONE; + } + TRACE("couln't find a string for widget %ld in hda_find_multi_string()\n", widget.node_id); + return S_null; +} + + +static const char * +hda_find_multi_custom_string(hda_widget& widget) +{ + switch (CONF_DEFAULT_DEVICE(widget.d.pin.config)) { + case PIN_DEV_LINE_IN: + case PIN_DEV_LINE_OUT: + case PIN_DEV_MIC_IN: + switch (CONF_DEFAULT_COLOR(widget.d.pin.config)) { + case 1: + return "Rear"; + case 2: + return "Side"; + case 3: + return "Line In"; + case 4: + return "Front"; + case 6: + return "Center/Sub"; + 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"; + case PIN_DEV_SPDIF_OUT: + return "SPDIF Out"; + case PIN_DEV_CD: + return "CD"; + case PIN_DEV_HEAD_PHONE_OUT: + return "Headphones"; + case PIN_DEV_SPEAKER: + return "Speaker"; + } + TRACE("couldn't find a string for widget %ld in hda_find_multi_custom_string()\n", widget.node_id); + return NULL; +} + + static int32 hda_create_group_control(hda_multi *multi, uint32 *index, int32 parent, enum strind_id string, const char* name) { @@ -261,72 +330,46 @@ } -static enum strind_id -hda_find_multi_string(hda_widget& widget) -{ - switch (CONF_DEFAULT_DEVICE(widget.d.pin.config)) { - case PIN_DEV_CD: - return S_CD; - case PIN_DEV_LINE_IN: - case PIN_DEV_LINE_OUT: - return S_LINE; - case PIN_DEV_MIC_IN: - return S_MIC; - case PIN_DEV_AUX: - return S_AUX; - case PIN_DEV_SPDIF_IN: - case PIN_DEV_SPDIF_OUT: - return S_SPDIF; - case PIN_DEV_HEAD_PHONE_OUT: - return S_HEADPHONE; +static void +hda_create_mux_control(hda_multi *multi, uint32 *index, int32 parent, hda_widget& widget) { + uint32 i = *index, parent2; + hda_multi_mixer_control control; + hda_audio_group *audioGroup = multi->group; + + control.nid = widget.node_id; + control.input = true; + control.mute = 0; + control.gain = 0; + control.mix_control.master = MULTI_CONTROL_MASTERID; + control.mix_control.parent = parent; + control.mix_control.id = MULTI_CONTROL_FIRSTID + i; + control.mix_control.flags = B_MULTI_MIX_MUX; + control.mix_control.string = S_null; + control.type = (widget.type == WT_AUDIO_MIXER) ? B_MIX_MUX_MIXER : B_MIX_MUX_SELECTOR; + multi->controls[i] = control; + strcpy(multi->controls[i].mix_control.name, ""); + i++; + parent2 = control.mix_control.id; + + for (uint32 j = 0; j < widget.num_inputs; j++) { + hda_widget *input = hda_audio_group_get_widget(audioGroup, widget.inputs[j]); + if (input->type != WT_PIN_COMPLEX) + continue; + control.nid = widget.node_id; + control.input = true; + control.mix_control.id = MULTI_CONTROL_FIRSTID + i; + control.mix_control.flags = B_MULTI_MIX_MUX_VALUE; + control.mix_control.parent = parent2; + control.mix_control.string = S_null; + multi->controls[i] = control; + strcpy(multi->controls[i].mix_control.name, hda_find_multi_custom_string(*input)); + i++; } - TRACE("couln't find a string for widget %ld in hda_find_multi_string()\n", widget.node_id); - return S_null; + + *index = i; } -static const char * -hda_find_multi_custom_string(hda_widget& widget) -{ - switch (CONF_DEFAULT_DEVICE(widget.d.pin.config)) { - case PIN_DEV_LINE_IN: - case PIN_DEV_LINE_OUT: - case PIN_DEV_MIC_IN: - switch (CONF_DEFAULT_COLOR(widget.d.pin.config)) { - case 1: - return "Rear"; - case 2: - return "Side"; - case 3: - return "Line In"; - case 4: - return "Front"; - case 6: - return "Center/Sub"; - 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"; - case PIN_DEV_SPDIF_OUT: - return "SPDIF Out"; - case PIN_DEV_CD: - return "CD"; - case PIN_DEV_HEAD_PHONE_OUT: - return "Headphones"; - case PIN_DEV_SPEAKER: - return "Speaker"; - } - TRACE("couldn't find a string for widget %ld in hda_find_multi_custom_string()\n", widget.node_id); - return NULL; -} - static void hda_create_control_for_complex(hda_multi *multi, uint32 *index, uint32 parent, hda_widget& widget, bool& gain, bool& mute) @@ -450,6 +493,12 @@ bool gain = true, mute = true; hda_create_channel_control(multi, &index, parent2, 0, widget, true, capabilities, 0, gain, mute); + + hda_widget *mixer = hda_audio_group_get_widget(audioGroup, widget.inputs[0]); + if (mixer->type != WT_AUDIO_MIXER && mixer->type != WT_AUDIO_SELECTOR) + continue; + TRACE(" create mixer nid %lu\n", mixer->node_id); + hda_create_mux_control(multi, &index, parent2, *mixer); } multi->control_count = index; @@ -539,15 +588,35 @@ * AMP_CAP_STEP_SIZE(control->capabilities); TRACE("get_mix: %ld gain: %f (%ld)\n", control->nid, mmvi->values[i].gain, value); } - + } else if (control->mix_control.flags & B_MIX_MUX_MIXER) { + hda_widget *mixer = hda_audio_group_get_widget(audioGroup, control->nid); + mmvi->values[i].mux = 0; + for (uint32 j = 0; j < mixer->num_inputs; j++) { + uint32 verb = MAKE_VERB(audioGroup->codec->addr, + control->nid, VID_GET_AMPLIFIER_GAIN_MUTE, AMP_GET_INPUT + | AMP_GET_LEFT_CHANNEL | AMP_GET_INPUT_INDEX(j)); + uint32 resp; + if (hda_send_verbs(audioGroup->codec, &verb, &resp, 1) == B_OK) { + TRACE("get_mix: %ld mixer %ld is %smute\n", control->nid, + j, (resp & AMP_MUTE) ? "" : "un"); + if ((resp & AMP_MUTE) == 0) { + mmvi->values[i].mux = j; +#ifndef TRACE_MULTI_AUDIO + break; +#endif + } + } + } + TRACE("get_mix: %ld mixer: %ld\n", control->nid, mmvi->values[i].mux); + } else if (control->mix_control.flags & B_MIX_MUX_SELECTOR) { + uint32 verb = MAKE_VERB(audioGroup->codec->addr, control->nid, + VID_GET_CONNECTION_SELECT, 0); + uint32 resp; + if (hda_send_verbs(audioGroup->codec, &verb, &resp, 1) == B_OK) + mmvi->values[i].mux = resp & 0xff; + TRACE("get_mix: %ld selector: %ld\n", control->nid, mmvi->values[i].mux); } - - /*if (control->mix_control.flags & B_MULTI_MIX_MUX && control->get) { - float values[1]; - control->get(audioGroup, control, values); - mmvi->values[i].mux = (int32)values[0]; - }*/ } return B_OK; } @@ -659,14 +728,29 @@ if (control2) i++; + } else if (control->mix_control.flags & B_MIX_MUX_MIXER) { + TRACE("set_mix: %ld mixer: %ld\n", control->nid, mmvi->values[i].mux); + hda_widget *mixer = hda_audio_group_get_widget(audioGroup, control->nid); + uint32 verb[mixer->num_inputs]; + for (uint32 j = 0; j < mixer->num_inputs; j++) { + verb[j] = MAKE_VERB(audioGroup->codec->addr, + control->nid, VID_SET_AMPLIFIER_GAIN_MUTE, AMP_SET_INPUT + | AMP_SET_LEFT_CHANNEL | AMP_SET_RIGHT_CHANNEL | AMP_SET_INPUT_INDEX(j) + | ((mmvi->values[i].mux == j) ? 0 : AMP_MUTE)); + TRACE("set_mix: %ld mixer %smuting %ld (%lx)\n", control->nid, + (mmvi->values[i].mux == j) ? "un" : "", j, verb[j]); + } + if (hda_send_verbs(audioGroup->codec, verb, NULL, mixer->num_inputs) != B_OK) + dprintf("hda: Setting mixer %ld failed on widget %ld!\n", + mmvi->values[i].mux, control->nid); + } else if (control->mix_control.flags & B_MIX_MUX_SELECTOR) { + uint32 verb = MAKE_VERB(audioGroup->codec->addr, control->nid, + VID_SET_CONNECTION_SELECT, mmvi->values[i].mux); + if (hda_send_verbs(audioGroup->codec, &verb, NULL, 1) != B_OK) + dprintf("hda: Setting output selector %ld failed on widget %ld!\n", + mmvi->values[i].mux, control->nid); + TRACE("set_mix: %ld selector: %ld\n", control->nid, mmvi->values[i].mux); } - - /*if (control->mix_control.flags & B_MULTI_MIX_MUX && control->set) { - float values[1]; - - values[0] = (float)mmvi->values[i].mux; - control->set(card, control->channel, control->type, values); - }*/ } return B_OK; } From korli at mail.berlios.de Mon Sep 14 00:07:51 2009 From: korli at mail.berlios.de (korli at mail.berlios.de) Date: Mon, 14 Sep 2009 00:07:51 +0200 Subject: [Haiku-commits] r33121 - haiku/trunk/src/add-ons/kernel/drivers/audio/hda Message-ID: <200909132207.n8DM7pc3021210@sheep.berlios.de> Author: korli Date: 2009-09-14 00:07:48 +0200 (Mon, 14 Sep 2009) New Revision: 33121 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33121&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp Log: * prints the stream fifo size 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-09-13 21:58:22 UTC (rev 33120) +++ haiku/trunk/src/add-ons/kernel/drivers/audio/hda/hda_controller.cpp 2009-09-13 22:07:48 UTC (rev 33121) @@ -644,7 +644,8 @@ } /* Setup buffer descriptor list (BDL) entries */ - for (uint32 index = 0; index < stream->num_buffers; index++, bufferDescriptors++) { + for (uint32 index = 0; index < stream->num_buffers; index++, + bufferDescriptors++) { bufferDescriptors->lower = stream->physical_buffers[index] + offset; bufferDescriptors->upper = 0; fragments++; @@ -673,7 +674,8 @@ stream->controller->Read32(HDAC_DMA_POSITION_BASE_LOWER) | DMA_POSITION_ENABLED); - dprintf("hda: stream: %ld num_io_widgets: %ld\n", stream->id, stream->num_io_widgets); + dprintf("hda: stream: %ld fifo size: %d num_io_widgets: %ld\n", stream->id, + stream->Read16(HDAC_STREAM_FIFO_SIZE), stream->num_io_widgets); dprintf("hda: widgets: "); hda_codec* codec = audioGroup->codec; @@ -693,7 +695,7 @@ dprintf("%ld ", stream->io_widgets[i]); } dprintf("\n"); - + snooze(1000); return B_OK; } From mmlr at mail.berlios.de Mon Sep 14 03:22:59 2009 From: mmlr at mail.berlios.de (mmlr at mail.berlios.de) Date: Mon, 14 Sep 2009 03:22:59 +0200 Subject: [Haiku-commits] r33122 - haiku/trunk/src/add-ons/kernel/bus_managers/usb Message-ID: <200909140122.n8E1MxZ2024238@sheep.berlios.de> Author: mmlr Date: 2009-09-14 03:22:58 +0200 (Mon, 14 Sep 2009) New Revision: 33122 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33122&view=rev Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/Device.cpp Log: No need to crash if we are deleted after not getting far enough to allocate the configuration buffers. Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/Device.cpp =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/usb/Device.cpp 2009-09-13 22:07:48 UTC (rev 33121) +++ haiku/trunk/src/add-ons/kernel/bus_managers/usb/Device.cpp 2009-09-14 01:22:58 UTC (rev 33122) @@ -271,6 +271,13 @@ Device::~Device() { + delete fDefaultPipe; + + if (fConfigurations == NULL) { + // we didn't get far in device setup, so everything below is unneeded + return; + } + // Destroy open endpoints. Do not send a device request to unconfigure // though, since we may be deleted because the device was unplugged // already. @@ -305,7 +312,6 @@ } free(fConfigurations); - delete fDefaultPipe; } From aljen at mail.berlios.de Mon Sep 14 05:35:50 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Mon, 14 Sep 2009 05:35:50 +0200 Subject: [Haiku-commits] r33123 - haiku/branches/components/gallium3d/headers/os/add-ons/graphics Message-ID: <200909140335.n8E3Zo19003802@sheep.berlios.de> Author: aljen Date: 2009-09-14 05:35:46 +0200 (Mon, 14 Sep 2009) New Revision: 33123 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33123&view=rev Modified: haiku/branches/components/gallium3d/headers/os/add-ons/graphics/Accelerant.h Log: WIP: Added first drm types into accelerant definition (for B_3D_ACCELERATION usage) Modified: haiku/branches/components/gallium3d/headers/os/add-ons/graphics/Accelerant.h =================================================================== --- haiku/branches/components/gallium3d/headers/os/add-ons/graphics/Accelerant.h 2009-09-14 01:22:58 UTC (rev 33122) +++ haiku/branches/components/gallium3d/headers/os/add-ons/graphics/Accelerant.h 2009-09-14 03:35:46 UTC (rev 33123) @@ -38,7 +38,7 @@ B_ACCELERANT_MODE_COUNT = 0x100, /* required */ B_GET_MODE_LIST, /* required */ B_PROPOSE_DISPLAY_MODE, /* optional */ - B_SET_DISPLAY_MODE, /* required */ + B_SET_DISPLAY_MODE, /* required */ B_GET_DISPLAY_MODE, /* required */ B_GET_FRAME_BUFFER_CONFIG, /* required */ B_GET_PIXEL_CLOCK_LIMITS, /* required */ @@ -72,11 +72,14 @@ B_INVERT_RECTANGLE, /* optional */ B_FILL_SPAN, /* optional */ B_SCREEN_TO_SCREEN_TRANSPARENT_BLIT, /* optional */ - B_SCREEN_TO_SCREEN_SCALED_FILTERED_BLIT, /* optional. + B_SCREEN_TO_SCREEN_SCALED_FILTERED_BLIT, /* optional. NOTE: source and dest may NOT overlap */ - + /* 3D acceleration */ - B_ACCELERANT_PRIVATE_START = (int)0x80000000 + B_ACCELERANT_PRIVATE_START = (int)0x80000000, + B_DRM_GET_VERSION, + B_DRM_DEBUG_PRINT, + B_DRM_IOCTL }; @@ -339,9 +342,14 @@ where N is in the range 0 to count-1. */ +// WARNING: This is experimental new Haiku DRM API for 3D +typedef void (*drm_get_version)(struct drm_version* version); +typedef void (*drm_debug_printf)(const char *format, va_list ap); +typedef int (*drm_ioctl)(engine_token* et, uint32 request, void* arg); #if defined(__cplusplus) } #endif #endif + From aljen at mail.berlios.de Mon Sep 14 05:41:16 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Mon, 14 Sep 2009 05:41:16 +0200 Subject: [Haiku-commits] r33124 - haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa Message-ID: <200909140341.n8E3fGbr003964@sheep.berlios.de> Author: aljen Date: 2009-09-14 05:40:42 +0200 (Mon, 14 Sep 2009) New Revision: 33124 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33124&view=rev Added: haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/drm.cpp Modified: haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/Jamfile haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/accelerant.cpp haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/accelerant.h haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/accelerant_protos.h haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/engine.cpp haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/hooks.cpp Log: Made vesa.accelerant a guinea pig for testing drm code in accelerants Modified: haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/Jamfile 2009-09-14 03:35:46 UTC (rev 33123) +++ haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/Jamfile 2009-09-14 03:40:42 UTC (rev 33124) @@ -3,14 +3,18 @@ UsePrivateHeaders graphics ; UsePrivateHeaders [ FDirName graphics vesa ] ; UsePrivateHeaders [ FDirName graphics common ] ; +UseLibraryHeaders drm ; +UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ; #AddResources vesa.accelerant : vesa.accelerant.rdef ; Addon vesa.accelerant : accelerant.cpp dpms.cpp + drm.cpp engine.cpp hooks.cpp mode.cpp : libaccelerantscommon.a ; + Modified: haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/accelerant.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/accelerant.cpp 2009-09-14 03:35:46 UTC (rev 33123) +++ haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/accelerant.cpp 2009-09-14 03:40:42 UTC (rev 33124) @@ -230,8 +230,8 @@ vesa_get_accelerant_device_info(accelerant_device_info *info) { info->version = B_ACCELERANT_VERSION; - strcpy(info->name, "VESA Driver"); - strcpy(info->chipset, "VESA"); + strcpy(info->name, ACCELERANT_NAME); + strcpy(info->chipset, ACCELERANT_CHIPSET); // ToDo: provide some more insight here... strcpy(info->serial_no, "None"); Modified: haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/accelerant.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/accelerant.h 2009-09-14 03:35:46 UTC (rev 33123) +++ haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/accelerant.h 2009-09-14 03:40:42 UTC (rev 33124) @@ -9,6 +9,9 @@ #include "vesa_info.h" +#define ACCELERANT_NAME "VESA Driver" +#define ACCELERANT_CHIPSET "VESA" + typedef struct accelerant_info { int device; bool is_clone; Modified: haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/accelerant_protos.h =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/accelerant_protos.h 2009-09-14 03:35:46 UTC (rev 33123) +++ haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/accelerant_protos.h 2009-09-14 03:40:42 UTC (rev 33124) @@ -14,6 +14,8 @@ extern "C" { #endif +struct drm_version; + // general status_t vesa_init_accelerant(int fd); ssize_t vesa_accelerant_clone_info_size(void); @@ -82,6 +84,9 @@ status_t vesa_configure_overlay(overlay_token ot, const overlay_buffer *ob, const overlay_window *ow, const overlay_view *ov); +// drm +void vesa_drm_get_version(struct drm_version* version); + #ifdef __cplusplus } #endif Added: haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/drm.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/drm.cpp 2009-09-14 03:35:46 UTC (rev 33123) +++ haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/drm.cpp 2009-09-14 03:40:42 UTC (rev 33124) @@ -0,0 +1,29 @@ +#include +#include "accelerant_protos.h" +#include "accelerant.h" +#include "drm.h" + + +void +vesa_drm_get_version(struct drm_version* version) +{ +#define ACCELERANT_DATE "20090914" +#define ACCELERANT_DESC "Hello from accelerants world! :)" + + version->version_major = 1; + version->version_minor = 0; + version->version_patchlevel = 0; + if (!version->name) + version->name_len = strlen(ACCELERANT_NAME); + else + version->name = strdup(ACCELERANT_NAME); + if (!version->date) + version->date_len = strlen(ACCELERANT_DATE); + else + version->date = strdup(ACCELERANT_DATE); + if (!version->desc) + version->desc_len = strlen(ACCELERANT_DESC); + else + version->desc = strdup(ACCELERANT_DESC); +} + Modified: haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/engine.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/engine.cpp 2009-09-14 03:35:46 UTC (rev 33123) +++ haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/engine.cpp 2009-09-14 03:40:42 UTC (rev 33124) @@ -8,7 +8,7 @@ #include "vesa_info.h" -static engine_token sEngineToken = {1, 0 /*B_2D_ACCELERATION*/, NULL}; +static engine_token sEngineToken = {1, B_2D_ACCELERATION | B_3D_ACCELERATION, NULL}; uint32 @@ -17,14 +17,36 @@ return 1; } +extern "C" void _sPrintf(const char *format, ...); +char* caps2name(uint32 caps) +{ + uint32 accel_2d = B_2D_ACCELERATION; + uint32 accel_3d = B_3D_ACCELERATION; + uint32 accel_mx = B_2D_ACCELERATION | B_3D_ACCELERATION; + if ((caps & accel_mx) == accel_mx) + return "B_2D_ACCELERATION | B_3D_ACCELERATION"; + else if ((caps & accel_2d) == accel_2d) + return "B_2D_ACCELERATION"; + else if ((caps & accel_3d) == accel_3d) + return "B_3D_ACCELERATION"; + return "UNKNOW"; +} + + status_t vesa_acquire_engine(uint32 capabilities, uint32 max_wait, sync_token *syncToken, engine_token **_engineToken) { *_engineToken = &sEngineToken; - return B_OK; + _sPrintf("accel caps: %s\n", caps2name(sEngineToken.capability_mask)); + _sPrintf("requested : %s\n", caps2name(capabilities)); + + if ((sEngineToken.capability_mask & capabilities) == capabilities) + return B_OK; + + return B_ERROR; } Modified: haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/hooks.cpp =================================================================== --- haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/hooks.cpp 2009-09-14 03:35:46 UTC (rev 33123) +++ haiku/branches/components/gallium3d/src/add-ons/accelerants/vesa/hooks.cpp 2009-09-14 03:40:42 UTC (rev 33124) @@ -276,6 +276,10 @@ case B_CONFIGURE_OVERLAY: return (void*)vesa_configure_overlay; #endif // FAKE_OVERLAY_SUPPORT + + // 3D DRM API + case B_DRM_GET_VERSION: + return (void*)vesa_drm_get_version; } return NULL; From aljen at mail.berlios.de Mon Sep 14 05:43:24 2009 From: aljen at mail.berlios.de (aljen at mail.berlios.de) Date: Mon, 14 Sep 2009 05:43:24 +0200 Subject: [Haiku-commits] r33125 - haiku/branches/components/gallium3d/src/libs/drm Message-ID: <200909140343.n8E3hOAm004050@sheep.berlios.de> Author: aljen Date: 2009-09-14 05:43:19 +0200 (Mon, 14 Sep 2009) New Revision: 33125 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33125&view=rev Added: haiku/branches/components/gallium3d/src/libs/drm/xf86drm_haiku.c haiku/branches/components/gallium3d/src/libs/drm/xf86drm_haiku.h Modified: haiku/branches/components/gallium3d/src/libs/drm/Jamfile Log: WIP: Trying to implement libdrm API in accelerant way :) Modified: haiku/branches/components/gallium3d/src/libs/drm/Jamfile =================================================================== --- haiku/branches/components/gallium3d/src/libs/drm/Jamfile 2009-09-14 03:40:42 UTC (rev 33124) +++ haiku/branches/components/gallium3d/src/libs/drm/Jamfile 2009-09-14 03:43:19 UTC (rev 33125) @@ -11,11 +11,12 @@ SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src libs drm radeon ] ; SharedLibrary libdrm.so : - xf86drm.c - xf86drmHash.c - xf86drmMode.c - xf86drmRandom.c - xf86drmSL.c + xf86drm_haiku.c +# xf86drm.c +# xf86drmHash.c +# xf86drmMode.c +# xf86drmRandom.c +# xf86drmSL.c ; SharedLibrary libdrm_intel.so : @@ -44,3 +45,4 @@ nouveau_resource.c : libdrm.so ; + Added: haiku/branches/components/gallium3d/src/libs/drm/xf86drm_haiku.c =================================================================== --- haiku/branches/components/gallium3d/src/libs/drm/xf86drm_haiku.c 2009-09-14 03:40:42 UTC (rev 33124) +++ haiku/branches/components/gallium3d/src/libs/drm/xf86drm_haiku.c 2009-09-14 03:43:19 UTC (rev 33125) @@ -0,0 +1,2554 @@ +/** + * \file xf86drm.c + * User-level interface to DRM device + * + * \author Rickard E. (Rik) Faith + * \author Kevin E. Martin + */ + +/* + * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas. + * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. + * All Rights Reserved. + * + * 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 (including the next + * paragraph) 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 + * PRECISION INSIGHT AND/OR ITS SUPPLIERS 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. + */ + +#ifdef HAVE_CONFIG_H +# include +#endif +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define stat_t struct stat +#include +#include +#include +#include + +#include + +/* Not all systems have MAP_FAILED defined */ +#ifndef MAP_FAILED +#define MAP_FAILED ((void *)-1) +#endif + +#include "xf86drm.h" + +#define DRM_MAJOR 145 +#ifndef DRM_MAX_MINOR +#define DRM_MAX_MINOR 16 +#endif + +#define DRM_MSG_VERBOSITY 3 + +#define DRM_NODE_CONTROL 0 +#define DRM_NODE_RENDER 1 + + +static drmAccelerantInfoPtr drm_accelerant_info; + + +void +drmSetAccelerantInfoPtr(drmAccelerantInfoPtr info) +{ + drm_accelerant_info = info; +} + + +/** + * Output a message to stderr. + * + * \param format printf() like format string. + * + * \internal + * This function is a wrapper around vfprintf(). + */ + +static int +drmDebugPrint(const char* format, va_list ap) +{ + return vfprintf(stderr, format, ap); +} + + +static int (*drm_debug_print)(const char* format, va_list ap) = drmDebugPrint; + + +void +drmMsg(const char* format, ...) +{ + va_list ap; + const char *env; + if (((env = getenv("LIBGL_DEBUG")) && strstr(env, "verbose")) + || drm_accelerant_info) { + va_start(ap, format); + if (drm_accelerant_info) { + drm_accelerant_info->DebugPrint(format,ap); + } else { + drm_debug_print(format, ap); + } + va_end(ap); + } +} + + +void +drmSetDebugMsgFunction(int (*debug_msg_ptr)(const char* format, va_list ap)) +{ + drm_debug_print = debug_msg_ptr; +} + + +static void *drmHashTable = NULL; /* Context switch callbacks */ + + +void* +drmGetHashTable(void) +{ + return drmHashTable; +} + + +void* +drmMalloc(int size) +{ + void *pt; + if ((pt = malloc(size))) + memset(pt, 0, size); + return pt; +} + +void +drmFree(void* pt) +{ + if (pt) + free(pt); +} + + +/* drmStrdup can't use strdup(3), since it doesn't call _DRM_MALLOC... */ +static char* +drmStrdup(const char* s) +{ + char *retval; + + if (!s) + return NULL; + + retval = malloc(strlen(s) + 1); + if (!retval) + return NULL; + + strcpy(retval, s); + + return retval; +} + + +/** + * Call ioctl, restarting if it is interupted + */ +int +drmIoctl(drmAccelerantInfoPtr info, unsigned long request, void* arg) +{ + int ret = -1; + if (!info || !info->Ioctl) + return -1; + + do { + ret = info->Ioctl(info->engineToken, request, arg); + } while (ret == -1 && (errno == EINTR || errno == EAGAIN)); + return ret; +} + + +static unsigned long +drmGetKeyFromFd(drmAccelerantInfoPtr info) +{ +// IMPLEMENT +#if 0 + stat_t st; + + st.st_rdev = 0; + fstat(fd, &st); + return st.st_rdev; +#endif + return 0; +} + + +drmHashEntry* +drmGetEntry(drmAccelerantInfoPtr info) +{ +// IMPLEMENT +#if 0 + unsigned long key = drmGetKeyFromFd(fd); + void *value; + drmHashEntry *entry; + + if (!drmHashTable) + drmHashTable = drmHashCreate(); + + if (drmHashLookup(drmHashTable, key, &value)) { + entry = drmMalloc(sizeof(*entry)); + entry->fd = fd; + entry->f = NULL; + entry->tagTable = drmHashCreate(); + drmHashInsert(drmHashTable, key, entry); + } else { + entry = value; + } + return entry; +#endif + return NULL; +} + + +/** + * Compare two busid strings + * + * \param first + * \param second + * + * \return 1 if matched. + * + * \internal + * This function compares two bus ID strings. It understands the older + * PCI:b:d:f format and the newer pci:oooo:bb:dd.f format. In the format, o is + * domain, b is bus, d is device, f is function. + */ +static int +drmMatchBusID(const char* id1, const char* id2) +{ + /* First, check if the IDs are exactly the same */ + if (strcasecmp(id1, id2) == 0) + return 1; + + /* Try to match old/new-style PCI bus IDs. */ + if (strncasecmp(id1, "pci", 3) == 0) { + unsigned int o1, b1, d1, f1; + unsigned int o2, b2, d2, f2; + int ret; + + ret = sscanf(id1, "pci:%04x:%02x:%02x.%u", &o1, &b1, &d1, &f1); + if (ret != 4) { + o1 = 0; + ret = sscanf(id1, "PCI:%u:%u:%u", &b1, &d1, &f1); + if (ret != 3) + return 0; + } + + ret = sscanf(id2, "pci:%04x:%02x:%02x.%u", &o2, &b2, &d2, &f2); + if (ret != 4) { + o2 = 0; + ret = sscanf(id2, "PCI:%u:%u:%u", &b2, &d2, &f2); + if (ret != 3) + return 0; + } + + if ((o1 != o2) || (b1 != b2) || (d1 != d2) || (f1 != f2)) + return 0; + else + return 1; + } + return 0; +} + + +/** + * Handles error checking for chown call. + * + * \param path to file. + * \param id of the new owner. + * \param id of the new group. + * + * \return zero if success or -1 if failure. + * + * \internal + * Checks for failure. If failure was caused by signal call chown again. + * If any other failure happened then it will output error mesage using + * drmMsg() call. + */ +static int +chown_check_return(const char* path, uid_t owner, gid_t group) +{ + int rv; + + do { + rv = chown(path, owner, group); + } while (rv != 0 && errno == EINTR); + + if (rv == 0) + return 0; + + drmMsg("Failed to change owner or group for file %s! %d: %s\n", + path, errno, strerror(errno)); + return -1; +} + + +/** + * Determine whether the DRM kernel driver has been loaded. + * + * \return 1 if the DRM driver is loaded, 0 otherwise. + * + * \internal + * Determine the presence of the kernel driver by attempting to open the 0 + * minor and get version information. For backward compatibility with older + * Linux implementations, /proc/dri is also checked. + */ +int +drmAvailable(void) +{ + drmVersionPtr version; + int retval = 0; + +/* + if ((version = drmGetVersion(fd))) { + retval = 1; + drmFreeVersion(version); + } + close(fd); +*/ + + return retval; +} + + +/** + * Open the DRM device. + * + * Looks up the specified name and bus ID, and opens the device found. The + * entry in /dev/dri is created if necessary and if called by root. + * + * \param name driver name. Not referenced if bus ID is supplied. + * \param busid bus ID. Zero if not known. + * + * \return a file descriptor on success, or a negative value on error. + * + * \internal + * It calls drmOpenByBusid() if \p busid is specified or drmOpenByName() + * otherwise. + */ +drmAccelerantInfoPtr +drmOpen() +{ + return -1; +} + + +/** + * Free the version information returned by drmGetVersion(). + * + * \param v pointer to the version information. + * + * \internal + * It frees the memory pointed by \p %v as well as all the non-null strings + * pointers in it. + */ +void +drmFreeVersion(drmVersionPtr v) +{ + if (!v) + return; + drmFree(v->name); + drmFree(v->date); + drmFree(v->desc); + drmFree(v); +} + + +/** + * Free the non-public version information returned by the kernel. + * + * \param v pointer to the version information. + * + * \internal + * Used by drmGetVersion() to free the memory pointed by \p %v as well as all + * the non-null strings pointers in it. + */ +static void +drmFreeKernelVersion(drm_version_t *v) +{ + if (!v) + return; + drmFree(v->name); + drmFree(v->date); + drmFree(v->desc); + drmFree(v); +} + + +/** + * Copy version information. + * + * \param d destination pointer. + * \param s source pointer. + * + * \internal + * Used by drmGetVersion() to translate the information returned by the ioctl + * interface in a private structure into the public structure counterpart. + */ +static void +drmCopyVersion(drmVersionPtr d, const drm_version_t *s) +{ + d->version_major = s->version_major; + d->version_minor = s->version_minor; + d->version_patchlevel = s->version_patchlevel; + d->name_len = s->name_len; + d->name = drmStrdup(s->name); + d->date_len = s->date_len; + d->date = drmStrdup(s->date); + d->desc_len = s->desc_len; + d->desc = drmStrdup(s->desc); +} + + +/** + * Query the driver version information. + * + * \param fd file descriptor. + * + * \return pointer to a drmVersion structure which should be freed with + * drmFreeVersion(). + * + * \note Similar information is available via /proc/dri. + * + * \internal + * It gets the version information via successive DRM_IOCTL_VERSION ioctls, + * first with zeros to get the string lengths, and then the actually strings. + * It also null-terminates them since they might not be already. + */ +drmVersionPtr +drmGetVersion(drmAccelerantInfoPtr info) +{ + if (!info || !info->GetVersion) + return NULL; + + drmVersionPtr retval; + drm_version_t *version = drmMalloc(sizeof(*version)); + + version->name_len = 0; + version->name = NULL; + version->date_len = 0; + version->date = NULL; + version->desc_len = 0; + version->desc = NULL; + + info->GetVersion(version); + + if (version->name_len) + version->name = drmMalloc(version->name_len + 1); + if (version->date_len) + version->date = drmMalloc(version->date_len + 1); + if (version->desc_len) + version->desc = drmMalloc(version->desc_len + 1); + + info->GetVersion(version); + + /* The results might not be null-terminated strings, so terminate them. */ + if (version->name_len) version->name[version->name_len] = '\0'; + if (version->date_len) version->date[version->date_len] = '\0'; + if (version->desc_len) version->desc[version->desc_len] = '\0'; + + retval = drmMalloc(sizeof(*retval)); + drmCopyVersion(retval, version); + drmFreeKernelVersion(version); + return retval; +} + + +/** + * Get version information for the DRM user space library. + * + * This version number is driver independent. + * + * \param fd file descriptor. + * + * \return version information. + * + * \internal + * This function allocates and fills a drm_version structure with a hard coded + * version number. + */ +drmVersionPtr +drmGetLibVersion(drmAccelerantInfoPtr info) +{ + drm_version_t *version = drmMalloc(sizeof(*version)); + + /* Version history: + * NOTE THIS MUST NOT GO ABOVE VERSION 1.X due to drivers needing it + * revision 1.0.x = original DRM interface with no drmGetLibVersion + * entry point and many drm extensions + * revision 1.1.x = added drmCommand entry points for device extensions + * added drmGetLibVersion to identify libdrm.a version + * revision 1.2.x = added drmSetInterfaceVersion + * modified drmOpen to handle both busid and name + * revision 1.3.x = added server + memory manager + */ + version->version_major = 1; + version->version_minor = 3; + version->version_patchlevel = 0; + + return (drmVersionPtr)version; +} + + +/** + * Free the bus ID information. + * + * \param busid bus ID information string as given by drmGetBusid(). + * + * \internal + * This function is just frees the memory pointed by \p busid. + */ +void +drmFreeBusid(const char* busid) +{ + drmFree((void*)busid); +} + + +/** + * Get the bus ID of the device. + * + * \param fd file descriptor. + * + * \return bus ID string. + * + * \internal + * This function gets the bus ID via successive DRM_IOCTL_GET_UNIQUE ioctls to + * get the string length and data, passing the arguments in a drm_unique + * structure. + */ +char* +drmGetBusid(drmAccelerantInfoPtr info) +{ +// IMPLEMENT +#if 0 + drm_unique_t u; + + u.unique_len = 0; + u.unique = NULL; + + if (drmIoctl(fd, DRM_IOCTL_GET_UNIQUE, &u)) + return NULL; + u.unique = drmMalloc(u.unique_len + 1); + if (drmIoctl(fd, DRM_IOCTL_GET_UNIQUE, &u)) + return NULL; + u.unique[u.unique_len] = '\0'; + + return u.unique; +#endif + return NULL; +} + + +/** + * Set the bus ID of the device. + * + * \param fd file descriptor. + * \param busid bus ID string. + * + * \return zero on success, negative on failure. + * + * \internal + * This function is a wrapper around the DRM_IOCTL_SET_UNIQUE ioctl, passing + * the arguments in a drm_unique structure. + */ +int +drmSetBusid(drmAccelerantInfoPtr info, const char* busid) +{ +// IMPLEMENT +#if 0 + drm_unique_t u; + + u.unique = (char *)busid; + u.unique_len = strlen(busid); + + if (drmIoctl(fd, DRM_IOCTL_SET_UNIQUE, &u)) { + return -errno; + } +#endif + return 0; +} + + +int +drmGetMagic(drmAccelerantInfoPtr info, drm_magic_t* magic) +{ +// IMPLEMENT +#if 0 + drm_auth_t auth; + + *magic = 0; + if (drmIoctl(fd, DRM_IOCTL_GET_MAGIC, &auth)) + return -errno; + *magic = auth.magic; +#endif + return 0; +} + + +int +drmAuthMagic(drmAccelerantInfoPtr info, drm_magic_t magic) +{ +// IMPLEMENT +#if 0 + drm_auth_t auth; + + auth.magic = magic; + if (drmIoctl(fd, DRM_IOCTL_AUTH_MAGIC, &auth)) + return -errno; +#endif + return 0; +} + + +/** + * Specifies a range of memory that is available for mapping by a + * non-root process. + * + * \param fd file descriptor. + * \param offset usually the physical address. The actual meaning depends of + * the \p type parameter. See below. + * \param size of the memory in bytes. + * \param type type of the memory to be mapped. + * \param flags combination of several flags to modify the function actions. + * \param handle will be set to a value that may be used as the offset + * parameter for mmap(). + * + * \return zero on success or a negative value on error. + * + * \par Mapping the frame buffer + * For the frame buffer + * - \p offset will be the physical address of the start of the frame buffer, + * - \p size will be the size of the frame buffer in bytes, and + * - \p type will be DRM_FRAME_BUFFER. + * + * \par + * The area mapped will be uncached. If MTRR support is available in the + * kernel, the frame buffer area will be set to write combining. + * + * \par Mapping the MMIO register area + * For the MMIO register area, + * - \p offset will be the physical address of the start of the register area, + * - \p size will be the size of the register area bytes, and + * - \p type will be DRM_REGISTERS. + * \par + * The area mapped will be uncached. + * + * \par Mapping the SAREA + * For the SAREA, + * - \p offset will be ignored and should be set to zero, + * - \p size will be the desired size of the SAREA in bytes, + * - \p type will be DRM_SHM. + * + * \par + * A shared memory area of the requested size will be created and locked in + * kernel memory. This area may be mapped into client-space by using the handle + * returned. + * + * \note May only be called by root. + * + * \internal + * This function is a wrapper around the DRM_IOCTL_ADD_MAP ioctl, passing + * the arguments in a drm_map structure. + */ +int +drmAddMap(drmAccelerantInfoPtr info, drm_handle_t offset, drmSize size, + drmMapType type, drmMapFlags flags, drm_handle_t* handle) +{ +// IMPLEMENT +#if 0 + drm_map_t map; + + map.offset = offset; + map.size = size; + map.handle = 0; + map.type = type; + map.flags = flags; + if (drmIoctl(fd, DRM_IOCTL_ADD_MAP, &map)) + return -errno; + if (handle) + *handle = (drm_handle_t)map.handle; +#endif + return 0; +} + + +int +drmRmMap(drmAccelerantInfoPtr info, drm_handle_t handle) +{ +// IMPLEMENT +#if 0 + drm_map_t map; + + map.handle = (void *)handle; + + if(drmIoctl(fd, DRM_IOCTL_RM_MAP, &map)) + return -errno; +#endif + return 0; +} + + +/** + * Make buffers available for DMA transfers. + * + * \param fd file descriptor. + * \param count number of buffers. + * \param size size of each buffer. + * \param flags buffer allocation flags. + * \param agp_offset offset in the AGP aperture + * + * \return number of buffers allocated, negative on error. + * + * \internal + * This function is a wrapper around DRM_IOCTL_ADD_BUFS ioctl. + * + * \sa drm_buf_desc. + */ +int +drmAddBufs(drmAccelerantInfoPtr info, int count, int size, drmBufDescFlags flags, + int agp_offset) +{ +// IMPLEMENT +#if 0 + drm_buf_desc_t request; + + request.count = count; + request.size = size; + request.low_mark = 0; + request.high_mark = 0; + request.flags = flags; + request.agp_start = agp_offset; + + if (drmIoctl(fd, DRM_IOCTL_ADD_BUFS, &request)) + return -errno; + return request.count; +#endif + return -1; +} + + +int +drmMarkBufs(drmAccelerantInfoPtr info, double low, double high) +{ +// IMPLEMENT +#if 0 + drm_buf_info_t info; + int i; + + info.count = 0; + info.list = NULL; + + if (drmIoctl(fd, DRM_IOCTL_INFO_BUFS, &info)) + return -EINVAL; + + if (!info.count) + return -EINVAL; + + if (!(info.list = drmMalloc(info.count * sizeof(*info.list)))) + return -ENOMEM; + + if (drmIoctl(fd, DRM_IOCTL_INFO_BUFS, &info)) { + int retval = -errno; + drmFree(info.list); + return retval; + } + + for (i = 0; i < info.count; i++) { + info.list[i].low_mark = low * info.list[i].count; + info.list[i].high_mark = high * info.list[i].count; + if (drmIoctl(fd, DRM_IOCTL_MARK_BUFS, &info.list[i])) { + int retval = -errno; + drmFree(info.list); + return retval; + } + } + drmFree(info.list); +#endif + return 0; +} + + +/** + * Free buffers. + * + * \param fd file descriptor. + * \param count number of buffers to free. + * \param list list of buffers to be freed. + * + * \return zero on success, or a negative value on failure. + * + * \note This function is primarily used for debugging. + * + * \internal + * This function is a wrapper around the DRM_IOCTL_FREE_BUFS ioctl, passing + * the arguments in a drm_buf_free structure. + */ +int +drmFreeBufs(drmAccelerantInfoPtr info, int count, int* list) +{ +// IMPLEMENT +#if 0 + drm_buf_free_t request; + + request.count = count; + request.list = list; + if (drmIoctl(fd, DRM_IOCTL_FREE_BUFS, &request)) + return -errno; +#endif + return 0; +} + + + +/** + * Close the device. + * + * \param fd file descriptor. + * + * \internal + * This function closes the file descriptor. + */ +int drmClose(drmAccelerantInfoPtr info) +{ +// IMPLEMENT +#if 0 + unsigned long key = drmGetKeyFromFd(fd); + drmHashEntry *entry = drmGetEntry(fd); + + drmHashDestroy(entry->tagTable); + entry->fd = 0; + entry->f = NULL; + entry->tagTable = NULL; + + drmHashDelete(drmHashTable, key); + drmFree(entry); + + return close(fd); +#endif + return -1; +} + + +/** + * Map a region of memory. + * + * \param fd file descriptor. + * \param handle handle returned by drmAddMap(). + * \param size size in bytes. Must match the size used by drmAddMap(). + * \param address will contain the user-space virtual address where the mapping + * begins. + * + * \return zero on success, or a negative value on failure. + * + * \internal + * This function is a wrapper for mmap(). + */ +int +drmMap(drmAccelerantInfoPtr info, drm_handle_t handle, drmSize size, + drmAddressPtr address) +{ +// IMPLEMENT +#if 0 + static unsigned long pagesize_mask = 0; + + if (fd < 0) + return -EINVAL; + + if (!pagesize_mask) + pagesize_mask = getpagesize() - 1; + + size = (size + pagesize_mask) & ~pagesize_mask; + + *address = mmap(0, size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, handle); + if (*address == MAP_FAILED) + return -errno; +#endif + return 0; +} + + +/** + * Unmap mappings obtained with drmMap(). + * + * \param address address as given by drmMap(). + * \param size size in bytes. Must match the size used by drmMap(). + * + * \return zero on success, or a negative value on failure. + * + * \internal + * This function is a wrapper for munmap(). + */ +int +drmUnmap(drmAddress address, drmSize size) +{ +// IMPLEMENT +#if 0 + return munmap(address, size); +#endif + return -1; +} + + +drmBufInfoPtr +drmGetBufInfo(drmAccelerantInfoPtr info) +{ +// IMPLEMENT +#if 0 + drm_buf_info_t info; + drmBufInfoPtr retval; + int i; + + info.count = 0; + info.list = NULL; + + if (drmIoctl(fd, DRM_IOCTL_INFO_BUFS, &info)) + return NULL; + + if (info.count) { + if (!(info.list = drmMalloc(info.count * sizeof(*info.list)))) + return NULL; + + if (drmIoctl(fd, DRM_IOCTL_INFO_BUFS, &info)) { + drmFree(info.list); + return NULL; + } + + retval = drmMalloc(sizeof(*retval)); + retval->count = info.count; + retval->list = drmMalloc(info.count * sizeof(*retval->list)); + for (i = 0; i < info.count; i++) { + retval->list[i].count = info.list[i].count; + retval->list[i].size = info.list[i].size; + retval->list[i].low_mark = info.list[i].low_mark; + retval->list[i].high_mark = info.list[i].high_mark; + } + drmFree(info.list); + return retval; + } +#endif + return NULL; +} + + +/** + * Map all DMA buffers into client-virtual space. + * [... truncated: 2463 lines follow ...] From phoudoin at mail.berlios.de Mon Sep 14 05:56:54 2009 From: phoudoin at mail.berlios.de (phoudoin at mail.berlios.de) Date: Mon, 14 Sep 2009 05:56:54 +0200 Subject: [Haiku-commits] r33126 - haiku/trunk/src/add-ons/kernel/drivers/midi/usb_midi Message-ID: <200909140356.n8E3usHq005542@sheep.berlios.de> Author: phoudoin Date: 2009-09-14 05:56:49 +0200 (Mon, 14 Sep 2009) New Revision: 33126 ViewCVS: http://svn.berlios.de/viewcvs/haiku?rev=33126&view=rev Modified: haiku/trunk/src/add-ons/kernel/drivers/midi/usb_midi/devlist.c haiku/trunk/src/add-ons/kernel/drivers/midi/usb_midi/usb_midi.c haiku/trunk/src/add-ons/kernel/drivers/midi/usb_midi/usb_midi.h Log: Apply Pete Goodeve patch, provided in #4463: * add output support * fix variable lenght input: all usb_midi_event_packet bytes were always returned before. Missing features are: * multiport support (input from any ports are read and merged currently, so beware to connect only one port!) * non-standard USB midi adapters, like my Roland UM-2 which don't advertize themselves as Audio / Midi stream class/subclass. Modified: haiku/trunk/src/add-ons/kernel/drivers/midi/usb_midi/devlist.c =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/midi/usb_midi/devlist.c 2009-09-14 03:43:19 UTC (rev 33125) +++ haiku/trunk/src/add-ons/kernel/drivers/midi/usb_midi/devlist.c 2009-09-14 03:56:49 UTC (rev 33126) @@ -1,128 +1,129 @@ -/*****************************************************************************/ -// midi usb driver -// Written by J?r?me Duval -// -// devlist.c -// -// Copyright (c) 2006 Haiku Project -// -// Some portions of code are copyrighted by -// USB Joystick driver for BeOS R5 -// Copyright 2000 (C) ITO, Takayuki -// All rights reserved -// -// 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. -/*****************************************************************************/ +/* + * midi usb driver + * devlist.c + * + * Copyright 2009 Haiku Inc. All rights reserved. + * Distributed under tthe terms of the MIT Licence. + * + * Authors: + * J?r?me Duval + * Pete Goodeve, pete.goodeve at computer.org + * + * Some portions of this code were originally derived from + * USB Joystick driver for BeOS R5 + * Copyright 2000 (C) ITO, Takayuki + * All rights reserved + * + */ + +#include "usb_midi.h" + #include #include -#include "usb_midi.h" -sem_id my_device_list_lock = -1; -bool my_device_list_changed = true; /* added or removed */ -static my_device_info *my_device_list = NULL; -static int my_device_count = 0; +sem_id usbmidi_device_list_lock = -1; +bool usbmidi_device_list_changed = true; /* added or removed */ -void add_device_info (my_device_info *my_dev) +static usbmidi_device_info* usbmidi_device_list = NULL; +static int usbmidi_device_count = 0; + + +void +add_device_info(usbmidi_device_info* my_dev) { - assert (my_dev != NULL); - acquire_sem (my_device_list_lock); - my_dev->next = my_device_list; - my_device_list = my_dev; - my_device_count++; - my_device_list_changed = true; - release_sem (my_device_list_lock); + assert(my_dev != NULL); + acquire_sem(usbmidi_device_list_lock); + my_dev->next = usbmidi_device_list; + usbmidi_device_list = my_dev; + usbmidi_device_count++; + usbmidi_device_list_changed = true; + release_sem(usbmidi_device_list_lock); } -void remove_device_info (my_device_info *my_dev) + +void +remove_device_info(usbmidi_device_info* my_dev) { - assert (my_dev != NULL); - acquire_sem (my_device_list_lock); - if (my_device_list == my_dev) { - my_device_list = my_dev->next; - --my_device_count; - my_device_list_changed = true; + assert(my_dev != NULL); + acquire_sem(usbmidi_device_list_lock); + if (usbmidi_device_list == my_dev) { + usbmidi_device_list = my_dev->next; + --usbmidi_device_count; + usbmidi_device_list_changed = true; } else { - my_device_info *d; - for (d = my_device_list; d != NULL; d = d->next) { + usbmidi_device_info* d; + for (d = usbmidi_device_list; d != NULL; d = d->next) { if (d->next == my_dev) { d->next = my_dev->next; - --my_device_count; - my_device_list_changed = true; + --usbmidi_device_count; + usbmidi_device_list_changed = true; break; } } - assert (d != NULL); + assert(d != NULL); } - release_sem (my_device_list_lock); + release_sem(usbmidi_device_list_lock); } -my_device_info *search_device_info (const char* name) + +usbmidi_device_info* +search_device_info(const char* name) { - my_device_info *my_dev; + usbmidi_device_info* my_dev; - acquire_sem (my_device_list_lock); - for (my_dev = my_device_list; my_dev != NULL; my_dev = my_dev->next) { + acquire_sem(usbmidi_device_list_lock); + for (my_dev = usbmidi_device_list; my_dev != NULL; my_dev = my_dev->next) { if (strcmp(my_dev->name, name) == 0) break; } - release_sem (my_device_list_lock); + release_sem(usbmidi_device_list_lock); return my_dev; } + /* device names */ /* dynamically generated */ -char **my_device_names = NULL; +char** usbmidi_device_names = NULL; -void alloc_device_names (void) + +void +alloc_device_names(void) { - assert (my_device_names == NULL); - my_device_names = malloc (sizeof (char *) * (my_device_count + 1)); + assert(usbmidi_device_names == NULL); + usbmidi_device_names = malloc(sizeof(char*) * (usbmidi_device_count + 1)); } -void free_device_names (void) + +void +free_device_names(void) { - if (my_device_names != NULL) { + if (usbmidi_device_names != NULL) { int i; - for (i = 0; my_device_names [i] != NULL; i++) - free (my_device_names [i]); - free (my_device_names); - my_device_names = NULL; + for (i = 0; usbmidi_device_names[i] != NULL; i++) + free(usbmidi_device_names[i]); + free(usbmidi_device_names); + usbmidi_device_names = NULL; } } -void rebuild_device_names (void) + +void +rebuild_device_names(void) { int i; - my_device_info *my_dev; + usbmidi_device_info* my_dev; - assert (my_device_names != NULL); - acquire_sem (my_device_list_lock); - for (i = 0, my_dev = my_device_list; my_dev != NULL; my_dev = my_dev->next) { - my_device_names [i++] = strdup(my_dev->name); - DPRINTF_INFO ((MY_ID "publishing %s\n", my_dev->name)); + assert(usbmidi_device_names != NULL); + acquire_sem(usbmidi_device_list_lock); + for (i = 0, my_dev = usbmidi_device_list; my_dev != NULL; my_dev = my_dev->next) { + usbmidi_device_names[i++] = strdup(my_dev->name); + DPRINTF_INFO((MY_ID "publishing %s\n", my_dev->name)); } - my_device_names [i] = NULL; - release_sem (my_device_list_lock); + usbmidi_device_names[i] = NULL; + release_sem(usbmidi_device_list_lock); } - Modified: haiku/trunk/src/add-ons/kernel/drivers/midi/usb_midi/usb_midi.c =================================================================== --- haiku/trunk/src/add-ons/kernel/drivers/midi/usb_midi/usb_midi.c 2009-09-14 03:43:19 UTC (rev 33125) +++ haiku/trunk/src/add-ons/kernel/drivers/midi/usb_midi/usb_midi.c 2009-09-14 03:56:49 UTC (rev 33126) @@ -1,91 +1,101 @@ -/*****************************************************************************/ -// midi usb driver -// Written by J?r?me Duval -// -// usb_midi.c -// -// Copyright (c) 2006 Haiku Project -// -// Some portions of code are copyrighted by -// USB Joystick driver for BeOS R5 -// Copyright 2000 (C) ITO, Takayuki -// All rights reserved -// -// 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
              ALT N Creates a new folder.
              ALT E Lets you rename the selected entry.