[haiku-commits] r37226 - in haiku/trunk: headers/os/kernel headers/private/system src/add-ons/kernel/bus_managers/firewire src/add-ons/kernel/bus_managers/scsi src/add-ons/kernel/bus_managers/usb ...

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Wed, 23 Jun 2010 15:29:25 +0200 (CEST)

Author: bonefish
Date: 2010-06-23 15:29:25 +0200 (Wed, 23 Jun 2010)
New Revision: 37226
Changeset: http://dev.haiku-os.org/changeset/37226/haiku

Modified:
   haiku/trunk/headers/os/kernel/OS.h
   haiku/trunk/headers/private/system/vm_defs.h
   haiku/trunk/src/add-ons/kernel/bus_managers/firewire/util.c
   haiku/trunk/src/add-ons/kernel/bus_managers/scsi/devices.c
   haiku/trunk/src/add-ons/kernel/bus_managers/scsi/dma_buffer.cpp
   haiku/trunk/src/add-ons/kernel/bus_managers/scsi/emulation.cpp
   haiku/trunk/src/add-ons/kernel/bus_managers/usb/PhysicalMemoryAllocator.cpp
   haiku/trunk/src/add-ons/kernel/bus_managers/usb/Stack.cpp
   
haiku/trunk/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c
   
haiku/trunk/src/add-ons/kernel/busses/ide/silicon_image_3112/silicon_image_3112.c
   haiku/trunk/src/add-ons/kernel/busses/scsi/53c8xx/53c8xx.c
   haiku/trunk/src/add-ons/kernel/busses/scsi/buslogic/buslogic.c
   haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/ali5451/util.c
   haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/util.c
   haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auvia/util.c
   haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/es1370/util.c
   haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/geode_controller.cpp
   haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/ich/util.c
   haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/ichaudio/lala/util.c
   haiku/trunk/src/add-ons/kernel/drivers/audio/echo/util.c
   haiku/trunk/src/add-ons/kernel/drivers/audio/emuxki/util.c
   haiku/trunk/src/add-ons/kernel/drivers/audio/ice1712/util.c
   haiku/trunk/src/add-ons/kernel/drivers/dvb/cx23882/util.c
   haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/driver.c
   haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia_gpgpu/driver.c
   haiku/trunk/src/add-ons/kernel/drivers/graphics/radeon/PCI_GART.c
   haiku/trunk/src/add-ons/kernel/drivers/network/bcm440x/b44um.c
   haiku/trunk/src/add-ons/kernel/drivers/network/bcm440x/mempool.c
   haiku/trunk/src/add-ons/kernel/drivers/network/dp83815/driver.c
   haiku/trunk/src/add-ons/kernel/drivers/network/dp83815/util.c
   haiku/trunk/src/add-ons/kernel/drivers/network/rtl8169/util.c
   haiku/trunk/src/add-ons/kernel/drivers/network/sis900/sis900.c
   haiku/trunk/src/add-ons/kernel/drivers/network/vlance/vlance.c
   haiku/trunk/src/add-ons/kernel/drivers/network/wb840/wb840.c
   haiku/trunk/src/add-ons/kernel/drivers/network/wlan/ipw2100/ipw2100.cpp
   haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c
   haiku/trunk/src/add-ons/kernel/generic/ide_adapter/ide_adapter.c
   haiku/trunk/src/system/kernel/vm/vm.cpp
Log:
Replaced B_32_BIT_MEMORY by B_32_BIT_FULL_LOCK and B_32_BIT_CONTIGUOUS, so
the constraint can be expressed more precisely. ATM B_32_BIT_FULL_LOCK is
implemented as B_32_BIT_CONTIGUOUS when B_HAIKU_PHYSICAL_BITS > 32, though.


Modified: haiku/trunk/headers/os/kernel/OS.h
===================================================================
--- haiku/trunk/headers/os/kernel/OS.h  2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/headers/os/kernel/OS.h  2010-06-23 13:29:25 UTC (rev 37226)
@@ -69,7 +69,8 @@
 #define B_FULL_LOCK                            2
 #define B_CONTIGUOUS                   3
 #define        B_LOMEM                                 4       /* 
B_CONTIGUOUS, < 16 MB physical address */
-#define        B_32_BIT_MEMORY                 5       /* B_CONTIGUOUS, < 4 GB 
physical address */
+#define        B_32_BIT_FULL_LOCK              5       /* B_FULL_LOCK, < 4 GB 
physical addresses */
+#define        B_32_BIT_CONTIGUOUS             6       /* B_CONTIGUOUS, < 4 GB 
physical address */
 
 /* address spec for create_area(), and clone_area() */
 #define B_ANY_ADDRESS                  0

Modified: haiku/trunk/headers/private/system/vm_defs.h
===================================================================
--- haiku/trunk/headers/private/system/vm_defs.h        2010-06-23 11:13:39 UTC 
(rev 37225)
+++ haiku/trunk/headers/private/system/vm_defs.h        2010-06-23 13:29:25 UTC 
(rev 37226)
@@ -53,9 +53,9 @@
 };
 
 enum {
-       // ToDo: these are here only temporarily - it's a private
-       //      addition to the BeOS create_area() lock flags
-       B_ALREADY_WIRED = 6,
+       // TODO: these are here only temporarily - it's a private
+       // addition to the BeOS create_area() lock flags
+       B_ALREADY_WIRED = 7,
 };
 
 #define MEMORY_TYPE_SHIFT              28

Modified: haiku/trunk/src/add-ons/kernel/bus_managers/firewire/util.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/firewire/util.c 2010-06-23 
11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/firewire/util.c 2010-06-23 
13:29:25 UTC (rev 37226)
@@ -47,7 +47,7 @@
 
        size = round_to_pagesize(size);
        area = create_area(name, &virtadr, B_ANY_KERNEL_ADDRESS, size,
-               B_32_BIT_MEMORY, protection);
+               B_32_BIT_CONTIGUOUS, protection);
                // TODO: The rest of the code doesn't deal correctly with 
physical
                // addresses > 4 GB, so we have to force 32 bit addresses here.
        if (area < B_OK) {

Modified: haiku/trunk/src/add-ons/kernel/bus_managers/scsi/devices.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/scsi/devices.c  2010-06-23 
11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/scsi/devices.c  2010-06-23 
13:29:25 UTC (rev 37226)
@@ -219,7 +219,7 @@
 
        // allocate buffer for space sense data and S/G list
        device->auto_sense_area = create_area("auto_sense", (void**)&buffer,
-               B_ANY_KERNEL_ADDRESS, B_PAGE_SIZE, B_32_BIT_MEMORY, 0);
+               B_ANY_KERNEL_ADDRESS, B_PAGE_SIZE, B_32_BIT_FULL_LOCK, 0);
                // TODO: Use B_FULL_LOCK, if addresses >= 4 GB are supported!
        if (device->auto_sense_area < 0)
                goto err;

Modified: haiku/trunk/src/add-ons/kernel/bus_managers/scsi/dma_buffer.cpp
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/scsi/dma_buffer.cpp     
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/scsi/dma_buffer.cpp     
2010-06-23 13:29:25 UTC (rev 37226)
@@ -208,15 +208,9 @@
        } else {
                // we can live with a fragmented buffer - very nice
                buffer->area = create_area("DMA buffer",
-                       (void **)&buffer->address,
-                       B_ANY_KERNEL_ADDRESS, size,
-#if B_HAIKU_PHYSICAL_BITS > 32
-                       B_32_BIT_MEMORY,
+                       (void **)&buffer->address, B_ANY_KERNEL_ADDRESS, size,
+                       B_32_BIT_FULL_LOCK, 0);
                                // TODO: Use B_FULL_LOCK, if possible!
-#else
-                       B_FULL_LOCK,
-#endif
-                       0);
                if (buffer->area < 0) {
                        SHOW_ERROR(2, "Cannot create DMA buffer of %d bytes",
                                (int)size);
@@ -234,13 +228,8 @@
 
        buffer->sg_list_area = create_area("DMA buffer S/G table",
                (void **)&buffer->sg_list, B_ANY_KERNEL_ADDRESS, sg_list_size,
-#if B_HAIKU_PHYSICAL_BITS > 32
-               B_32_BIT_MEMORY,
+               B_32_BIT_FULL_LOCK, 0);
                        // TODO: Use B_FULL_LOCK, if possible!
-#else
-               B_FULL_LOCK,
-#endif
-               0);
        if (buffer->sg_list_area < 0) {
                SHOW_ERROR( 2, "Cannot craete DMA buffer S/G list of %d bytes",
                        (int)sg_list_size );

Modified: haiku/trunk/src/add-ons/kernel/bus_managers/scsi/emulation.cpp
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/scsi/emulation.cpp      
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/scsi/emulation.cpp      
2010-06-23 13:29:25 UTC (rev 37226)
@@ -74,7 +74,7 @@
        physical_address_restrictions physicalRestrictions = {};
        physicalRestrictions.alignment = buffer_size;
        device->buffer_area = create_area_etc(B_SYSTEM_TEAM, "ATAPI buffer",
-               total_size, B_32_BIT_MEMORY, 0, 0, &virtualRestrictions,
+               total_size, B_32_BIT_CONTIGUOUS, 0, 0, &virtualRestrictions,
                &physicalRestrictions, &address);
                // TODO: Use B_CONTIGUOUS, if possible!
 

Modified: 
haiku/trunk/src/add-ons/kernel/bus_managers/usb/PhysicalMemoryAllocator.cpp
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/usb/PhysicalMemoryAllocator.cpp 
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/usb/PhysicalMemoryAllocator.cpp 
2010-06-23 13:29:25 UTC (rev 37226)
@@ -75,7 +75,7 @@
        roundedSize = (roundedSize + B_PAGE_SIZE - 1) & ~(B_PAGE_SIZE - 1);
 
        fArea = create_area(fName, &fLogicalBase, B_ANY_KERNEL_ADDRESS,
-               roundedSize, B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
+               roundedSize, B_32_BIT_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
                // TODO: Use B_CONTIGUOUS when the TODOs regarding 64 bit 
physical
                // addresses are fixed (if possible).
        if (fArea < B_OK) {

Modified: haiku/trunk/src/add-ons/kernel/bus_managers/usb/Stack.cpp
===================================================================
--- haiku/trunk/src/add-ons/kernel/bus_managers/usb/Stack.cpp   2010-06-23 
11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/usb/Stack.cpp   2010-06-23 
13:29:25 UTC (rev 37226)
@@ -300,7 +300,7 @@
        void *logAddress;
        size = (size + B_PAGE_SIZE - 1) & ~(B_PAGE_SIZE - 1);
        area_id area = create_area(name, &logAddress, B_ANY_KERNEL_ADDRESS, 
size,
-               B_32_BIT_MEMORY, 0);
+               B_32_BIT_CONTIGUOUS, 0);
                // TODO: Use B_CONTIGUOUS when the TODOs regarding 64 bit 
physical
                // addresses are fixed (if possible).
 

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
   2010-06-23 11:13:39 UTC (rev 37225)
+++ 
haiku/trunk/src/add-ons/kernel/busses/ata/silicon_image_3112/silicon_image_3112.c
   2010-06-23 13:29:25 UTC (rev 37226)
@@ -453,7 +453,7 @@
 // used.
        prdtSize = (ATA_ADAPTER_MAX_SG_COUNT * sizeof(prd_entry) + (B_PAGE_SIZE 
- 1)) & ~(B_PAGE_SIZE - 1);
        channel->prd_area = create_area("prd", (void **)&channel->prdt,
-               B_ANY_KERNEL_ADDRESS, prdtSize, B_32_BIT_MEMORY, 0);
+               B_ANY_KERNEL_ADDRESS, prdtSize, B_32_BIT_CONTIGUOUS, 0);
        if (channel->prd_area < B_OK) {
                TRACE("creating prd_area failed\n");
                goto err;

Modified: 
haiku/trunk/src/add-ons/kernel/busses/ide/silicon_image_3112/silicon_image_3112.c
===================================================================
--- 
haiku/trunk/src/add-ons/kernel/busses/ide/silicon_image_3112/silicon_image_3112.c
   2010-06-23 11:13:39 UTC (rev 37225)
+++ 
haiku/trunk/src/add-ons/kernel/busses/ide/silicon_image_3112/silicon_image_3112.c
   2010-06-23 13:29:25 UTC (rev 37226)
@@ -458,7 +458,7 @@
 // used.
        prdtSize = (IDE_ADAPTER_MAX_SG_COUNT * sizeof(prd_entry) + (B_PAGE_SIZE 
- 1)) & ~(B_PAGE_SIZE - 1);
        channel->prd_area = create_area("prd", (void **)&channel->prdt,
-               B_ANY_KERNEL_ADDRESS, prdtSize, B_32_BIT_MEMORY, 0);
+               B_ANY_KERNEL_ADDRESS, prdtSize, B_32_BIT_CONTIGUOUS, 0);
        if (channel->prd_area < B_OK) {
                TRACE("creating prd_area failed\n");
                goto err;

Modified: haiku/trunk/src/add-ons/kernel/busses/scsi/53c8xx/53c8xx.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/busses/scsi/53c8xx/53c8xx.c  2010-06-23 
11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/busses/scsi/53c8xx/53c8xx.c  2010-06-23 
13:29:25 UTC (rev 37226)
@@ -1107,7 +1107,7 @@
                uchar *a;
                physical_entry entries[2];
                aid = create_area(name, (void **)&a, B_ANY_KERNEL_ADDRESS, 
4096*5,
-                                 B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
+                       B_32_BIT_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
                if(aid == B_ERROR || aid == B_BAD_VALUE || aid == B_NO_MEMORY){
                        free(s);
                    return NULL;

Modified: haiku/trunk/src/add-ons/kernel/busses/scsi/buslogic/buslogic.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/busses/scsi/buslogic/buslogic.c      
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/busses/scsi/buslogic/buslogic.c      
2010-06-23 13:29:25 UTC (rev 37226)
@@ -832,7 +832,7 @@
 #else
     bl->box_count = MAX_CCB_COUNT;
     aid = create_area("bl_workspace", (void **)&a, B_ANY_KERNEL_ADDRESS, 
4096*5,
-                      B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
+               B_32_BIT_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
     if(aid == B_ERROR || aid == B_BAD_VALUE || aid == B_NO_MEMORY) {
         free(bl);
         return NULL;

Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/ali5451/util.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/ali5451/util.c    
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/ali5451/util.c    
2010-06-23 13:29:25 UTC (rev 37226)
@@ -43,7 +43,7 @@
 
        size = round_to_pagesize(size);
        areaid = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
-               B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
+               B_32_BIT_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
                // TODO: The rest of the code doesn't deal correctly with 
physical
                // addresses > 4 GB, so we have to force 32 bit addresses here.
        if (areaid < B_OK) {

Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/util.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/util.c      
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/util.c      
2010-06-23 13:29:25 UTC (rev 37226)
@@ -75,7 +75,7 @@
 
        size = round_to_pagesize(size);
        area = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
-               B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
+               B_32_BIT_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
                // TODO: The rest of the code doesn't deal correctly with 
physical
                // addresses > 4 GB, so we have to force 32 bit addresses here.
        if (area < B_OK) {

Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auvia/util.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auvia/util.c      
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auvia/util.c      
2010-06-23 13:29:25 UTC (rev 37226)
@@ -76,7 +76,7 @@
 
        size = round_to_pagesize(size);
        areaid = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
-               B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
+               B_32_BIT_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
                // TODO: The rest of the code doesn't deal correctly with 
physical
                // addresses > 4 GB, so we have to force 32 bit addresses here.
        if (areaid < B_OK) {

Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/es1370/util.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/es1370/util.c     
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/es1370/util.c     
2010-06-23 13:29:25 UTC (rev 37226)
@@ -76,7 +76,7 @@
 
        size = round_to_pagesize(size);
        areaid = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
-               B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
+               B_32_BIT_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
                // TODO: The rest of the code doesn't deal correctly with 
physical
                // addresses > 4 GB, so we have to force 32 bit addresses here.
        if (areaid < B_OK) {

Modified: 
haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/geode_controller.cpp
===================================================================
--- 
haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/geode_controller.cpp    
    2010-06-23 11:13:39 UTC (rev 37225)
+++ 
haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/geode_controller.cpp    
    2010-06-23 13:29:25 UTC (rev 37226)
@@ -306,7 +306,7 @@
 
        /* Allocate memory for buffers */
        stream->buffer_area = create_area("geode buffers", (void**)&buffer,
-               B_ANY_KERNEL_ADDRESS, alloc, B_32_BIT_MEMORY,
+               B_ANY_KERNEL_ADDRESS, alloc, B_32_BIT_CONTIGUOUS,
                B_READ_AREA | B_WRITE_AREA);
                // TODO: The rest of the code doesn't deal correctly with 
physical
                // addresses > 4 GB, so we have to force 32 bit addresses here.
@@ -338,7 +338,7 @@
 
        stream->buffer_descriptors_area = create_area("geode buffer 
descriptors",
                (void**)&bufferDescriptors, B_ANY_KERNEL_ADDRESS, alloc,
-               B_32_BIT_MEMORY, 0);
+               B_32_BIT_CONTIGUOUS, 0);
                // TODO: The rest of the code doesn't deal correctly with 
physical
                // addresses > 4 GB, so we have to force 32 bit addresses here.
        if (stream->buffer_descriptors_area < B_OK) {

Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/ich/util.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/ich/util.c        
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/ich/util.c        
2010-06-23 13:29:25 UTC (rev 37226)
@@ -76,7 +76,7 @@
 
        size = round_to_pagesize(size);
        areaid = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
-               B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
+               B_32_BIT_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
                // TODO: The rest of the code doesn't deal correctly with 
physical
                // addresses > 4 GB, so we have to force 32 bit addresses here.
        if (areaid < B_OK) {

Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/ichaudio/lala/util.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/ichaudio/lala/util.c      
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/ichaudio/lala/util.c      
2010-06-23 13:29:25 UTC (rev 37226)
@@ -57,7 +57,7 @@
 
        size = round_to_pagesize(size);
        areaid = create_area(name, &virtadr, B_ANY_KERNEL_ADDRESS, size,
-               B_32_BIT_MEMORY, protection);
+               B_32_BIT_CONTIGUOUS, protection);
                // TODO: The rest of the code doesn't deal correctly with 
physical
                // addresses > 4 GB, so we have to force 32 bit addresses here.
        if (areaid < B_OK) {

Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/echo/util.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/audio/echo/util.c    2010-06-23 
11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/echo/util.c    2010-06-23 
13:29:25 UTC (rev 37226)
@@ -75,7 +75,7 @@
 
        size = round_to_pagesize(size);
        area = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
-               B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
+               B_32_BIT_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
                // TODO: The rest of the code doesn't deal correctly with 
physical
                // addresses > 4 GB, so we have to force 32 bit addresses here.
        if (area < B_OK) {

Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/emuxki/util.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/audio/emuxki/util.c  2010-06-23 
11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/emuxki/util.c  2010-06-23 
13:29:25 UTC (rev 37226)
@@ -76,7 +76,7 @@
 
        size = round_to_pagesize(size);
        areaid = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
-               B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
+               B_32_BIT_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
                // TODO: The rest of the code doesn't deal correctly with 
physical
                // addresses > 4 GB, so we have to force 32 bit addresses here.
        if (areaid < B_OK) {

Modified: haiku/trunk/src/add-ons/kernel/drivers/audio/ice1712/util.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/audio/ice1712/util.c 2010-06-23 
11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/ice1712/util.c 2010-06-23 
13:29:25 UTC (rev 37226)
@@ -58,7 +58,7 @@
 
        size = round_to_pagesize(size);
        areaid = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
-               B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
+               B_32_BIT_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
                // TODO: The rest of the code doesn't deal correctly with 
physical
                // addresses > 4 GB, so we have to force 32 bit addresses here.
        if (areaid < B_OK) {

Modified: haiku/trunk/src/add-ons/kernel/drivers/dvb/cx23882/util.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/dvb/cx23882/util.c   2010-06-23 
11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/dvb/cx23882/util.c   2010-06-23 
13:29:25 UTC (rev 37226)
@@ -81,7 +81,7 @@
 
        size = ROUNDUP(size, B_PAGE_SIZE);
        areaid = create_area(name, &virtadr, B_ANY_KERNEL_ADDRESS, size,
-               B_32_BIT_MEMORY, protection);
+               B_32_BIT_CONTIGUOUS, protection);
                // TODO: The rest of the code doesn't deal correctly with 
physical
                // addresses > 4 GB, so we have to force 32 bit addresses here.
        if (areaid < B_OK) {

Modified: haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/driver.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/driver.c     
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/driver.c     
2010-06-23 13:29:25 UTC (rev 37226)
@@ -906,7 +906,7 @@
                        (void **)&unaligned_dma_buffer,
                        B_ANY_KERNEL_ADDRESS,
                        2 * net_buf_size, /* take twice the net size so we can 
have MTRR-WC even on old systems */
-                       B_32_BIT_MEMORY, /* GPU always needs access */
+                       B_32_BIT_CONTIGUOUS, /* GPU always needs access */
                        B_USER_CLONEABLE_AREA | B_READ_AREA | B_WRITE_AREA);
                        // TODO: Physical aligning can be done without waste 
using the
                        // private create_area_etc().

Modified: haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia_gpgpu/driver.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia_gpgpu/driver.c       
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia_gpgpu/driver.c       
2010-06-23 13:29:25 UTC (rev 37226)
@@ -662,7 +662,7 @@
                        (void **)&unaligned_dma_buffer,
                        B_ANY_KERNEL_ADDRESS,
                        2 * net_buf_size, /* take twice the net size so we can 
have MTRR-WC even on old systems */
-                       B_32_BIT_MEMORY, /* GPU always needs access */
+                       B_32_BIT_CONTIGUOUS, /* GPU always needs access */
                        B_USER_CLONEABLE_AREA | B_READ_AREA | B_WRITE_AREA);
                        // TODO: Physical aligning can be done without waste 
using the
                        // private create_area_etc().

Modified: haiku/trunk/src/add-ons/kernel/drivers/graphics/radeon/PCI_GART.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/graphics/radeon/PCI_GART.c   
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/graphics/radeon/PCI_GART.c   
2010-06-23 13:29:25 UTC (rev 37226)
@@ -152,7 +152,7 @@
        gart->GATT.area = create_area("Radeon GATT", (void **)&gart->GATT.ptr,
                B_ANY_KERNEL_ADDRESS,
                (num_pages * sizeof( uint32 ) + B_PAGE_SIZE - 1) & 
~(B_PAGE_SIZE - 1),
-               B_32_BIT_MEMORY,
+               B_32_BIT_CONTIGUOUS,
                        // TODO: Physical address is cast to 32 bit below! Use 
B_CONTIGUOUS,
                        // when that is (/can be) fixed!
 #ifdef HAIKU_TARGET_PLATFORM_HAIKU
@@ -187,9 +187,9 @@
 
        // temporary area where we fill in the memory map (deleted below)
        map_area = create_area("pci_gart_map_area", (void **)&map, 
B_ANY_ADDRESS,
-               map_area_size, B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
-               // TODO: Physical addresses are cast to 32 bit below! Use 
B_FULL_LOCK,
-               // when that is (/can be) fixed!
+               map_area_size, B_FULL_LOCK, B_READ_AREA | B_WRITE_AREA);
+               // TODO: We actually have a working malloc() in the kernel. Why 
create
+               // an area?
        dprintf("pci_gart_map_area: %ld\n", map_area);
 
        get_memory_map( gart->buffer.ptr, gart->buffer.size, map, map_count );

Modified: haiku/trunk/src/add-ons/kernel/drivers/network/bcm440x/b44um.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/network/bcm440x/b44um.c      
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/network/bcm440x/b44um.c      
2010-06-23 13:29:25 UTC (rev 37226)
@@ -599,9 +599,7 @@
        dev = (struct be_b44_dev *)(pDevice);
        area_desc = dev->lockmem_list[dev->lockmem_list_num++] = 
create_area("broadcom_shared_mem",
                &pvirt, B_ANY_KERNEL_ADDRESS, ROUND_UP_TO_PAGE(BlockSize),
-               B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
-               // TODO: B_32_BIT_MEMORY implies contiguous, although that 
wouldn't
-               // be necessary here!
+               B_32_BIT_FULL_LOCK, B_READ_AREA | B_WRITE_AREA);
        if (area_desc < B_OK)
                return LM_STATUS_FAILURE;
 

Modified: haiku/trunk/src/add-ons/kernel/drivers/network/bcm440x/mempool.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/network/bcm440x/mempool.c    
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/network/bcm440x/mempool.c    
2010-06-23 13:29:25 UTC (rev 37226)
@@ -31,9 +31,7 @@
        size = ROUNDUP(size, B_PAGE_SIZE);
 
        if (create_area("area_malloc", &p, B_ANY_KERNEL_ADDRESS, size,
-                       B_32_BIT_MEMORY, 0) < 0) {
-               // TODO: B_32_BIT_MEMORY implies contiguous, although that 
wouldn't
-               // be necessary here!
+                       B_32_BIT_FULL_LOCK, 0) < 0) {
                return 0;
        }
        return p;

Modified: haiku/trunk/src/add-ons/kernel/drivers/network/dp83815/driver.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/network/dp83815/driver.c     
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/network/dp83815/driver.c     
2010-06-23 13:29:25 UTC (rev 37226)
@@ -648,7 +648,7 @@
        pages = pages_needed(2*MAX_DESC*sizeof(descriptor_t) + 
NUM_BUFFS*BUFFER_SIZE);
 
        data->mem_area = create_area(kDevName " desc buffer", 
(void**)&RxDescRing,
-               B_ANY_KERNEL_ADDRESS, pages * B_PAGE_SIZE, B_32_BIT_MEMORY,
+               B_ANY_KERNEL_ADDRESS, pages * B_PAGE_SIZE, B_32_BIT_CONTIGUOUS,
                B_READ_AREA | B_WRITE_AREA);
        if( data->mem_area < 0 )
                return -1;

Modified: haiku/trunk/src/add-ons/kernel/drivers/network/dp83815/util.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/network/dp83815/util.c       
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/network/dp83815/util.c       
2010-06-23 13:29:25 UTC (rev 37226)
@@ -73,7 +73,7 @@
 
        size = round_to_pagesize(size);
        areaid = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
-               B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
+               B_32_BIT_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
                // TODO: The rest of the code doesn't deal correctly with 
physical
                // addresses > 4 GB, so we have to force 32 bit addresses here.
        if (areaid < B_OK) {

Modified: haiku/trunk/src/add-ons/kernel/drivers/network/rtl8169/util.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/network/rtl8169/util.c       
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/network/rtl8169/util.c       
2010-06-23 13:29:25 UTC (rev 37226)
@@ -47,7 +47,7 @@
 
        size = round_to_pagesize(size);
        areaid = create_area(name, &virtadr, B_ANY_KERNEL_ADDRESS, size,
-               B_32_BIT_MEMORY, protection);
+               B_32_BIT_CONTIGUOUS, protection);
                // TODO: The rest of the code doesn't deal correctly with 
physical
                // addresses > 4 GB, so we have to force 32 bit addresses here.
        if (areaid < B_OK) {

Modified: haiku/trunk/src/add-ons/kernel/drivers/network/sis900/sis900.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/network/sis900/sis900.c      
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/network/sis900/sis900.c      
2010-06-23 13:29:25 UTC (rev 37226)
@@ -734,9 +734,7 @@
        info->txArea = create_area("sis900 tx buffer", (void 
**)&info->txBuffer[0],
                B_ANY_KERNEL_ADDRESS,
                ROUND_TO_PAGE_SIZE(BUFFER_SIZE * NUM_Tx_DESCR),
-               B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
-                       // TODO: B_32_BIT_MEMORY implies contiguous, although 
that wouldn't
-                       // be necessary here!
+               B_32_BIT_FULL_LOCK, B_READ_AREA | B_WRITE_AREA);
        if (info->txArea < B_OK)
                return info->txArea;
 
@@ -759,9 +757,7 @@
        info->rxArea = create_area("sis900 rx buffer", (void 
**)&info->rxBuffer[0],
                B_ANY_KERNEL_ADDRESS,
                ROUND_TO_PAGE_SIZE(BUFFER_SIZE * NUM_Rx_DESCR),
-               B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
-                       // TODO: B_32_BIT_MEMORY implies contiguous, although 
that wouldn't
-                       // be necessary here!
+               B_32_BIT_FULL_LOCK, B_READ_AREA | B_WRITE_AREA);
        if (info->rxArea < B_OK) {
                delete_area(info->txArea);
                return info->rxArea;

Modified: haiku/trunk/src/add-ons/kernel/drivers/network/vlance/vlance.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/network/vlance/vlance.c      
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/network/vlance/vlance.c      
2010-06-23 13:29:25 UTC (rev 37226)
@@ -269,10 +269,8 @@
        /* create tx descriptor area */
        size = RNDUP(sizeof(trns_desc_t) * TX_BUFFERS, B_PAGE_SIZE);
        device->tx_desc_area = create_area(DEVICE_NAME " tx descriptors",
-               (void **)device->tx_desc, B_ANY_KERNEL_ADDRESS, size, 
B_32_BIT_MEMORY,
-               B_READ_AREA | B_WRITE_AREA);
-                       // TODO: B_32_BIT_MEMORY implies contiguous, although 
that wouldn't
-                       // be necessary here!
+               (void **)device->tx_desc, B_ANY_KERNEL_ADDRESS, size,
+               B_32_BIT_FULL_LOCK, B_READ_AREA | B_WRITE_AREA);
        if (device->tx_desc_area < 0)
                return device->tx_desc_area;
 
@@ -290,9 +288,7 @@
        size = RNDUP(BUFFER_SIZE * TX_BUFFERS, B_PAGE_SIZE);
        device->tx_buf_area = create_area(DEVICE_NAME " tx buffers",
                (void **)device->tx_buf, B_ANY_KERNEL_ADDRESS, size,
-               B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
-                       // TODO: B_32_BIT_MEMORY implies contiguous, although 
that wouldn't
-                       // be necessary here!
+               B_32_BIT_FULL_LOCK, B_READ_AREA | B_WRITE_AREA);
        if (device->tx_buf_area < 0) {
                delete_area(device->tx_desc_area);      // sensitive to alloc 
ordering
                return device->tx_buf_area;
@@ -313,9 +309,7 @@
        size = RNDUP( sizeof(recv_desc_t) * RX_BUFFERS, B_PAGE_SIZE);
        device->rx_desc_area = create_area(DEVICE_NAME " rx descriptors",
                (void **)device->rx_desc, B_ANY_KERNEL_ADDRESS, size,
-               B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
-                       // TODO: B_32_BIT_MEMORY implies contiguous, although 
that wouldn't
-                       // be necessary here!
+               B_32_BIT_FULL_LOCK, B_READ_AREA | B_WRITE_AREA);
        if (device->rx_desc_area < 0) {
                delete_area(device->tx_desc_area);
                delete_area(device->tx_buf_area);       // sensitive to alloc 
ordering
@@ -336,9 +330,7 @@
        size = RNDUP(BUFFER_SIZE * RX_BUFFERS, B_PAGE_SIZE);
        device->rx_buf_area = create_area(DEVICE_NAME " rx buffers",
                (void **)device->rx_buf, B_ANY_KERNEL_ADDRESS, size,
-               B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
-                       // TODO: B_32_BIT_MEMORY implies contiguous, although 
that wouldn't
-                       // be necessary here!
+               B_32_BIT_FULL_LOCK, B_READ_AREA | B_WRITE_AREA);
        if (device->rx_buf_area < 0) {
                delete_area(device->tx_desc_area);
                delete_area(device->tx_buf_area);

Modified: haiku/trunk/src/add-ons/kernel/drivers/network/wb840/wb840.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/network/wb840/wb840.c        
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/network/wb840/wb840.c        
2010-06-23 13:29:25 UTC (rev 37226)
@@ -525,9 +525,7 @@
 
        device->rxArea = create_area("wb840 rx buffer", (void 
**)&device->rxBuffer[0],
                        B_ANY_KERNEL_ADDRESS, ROUND_TO_PAGE_SIZE(WB_BUFBYTES * 
WB_RX_LIST_CNT),
-                       B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
-                       // TODO: B_32_BIT_MEMORY implies contiguous, although 
that wouldn't
-                       // be necessary here!
+                       B_32_BIT_FULL_LOCK, B_READ_AREA | B_WRITE_AREA);
        if (device->rxArea < B_OK)
                return device->rxArea;
 
@@ -547,9 +545,7 @@
 
        device->txArea = create_area("wb840 tx buffer", (void 
**)&device->txBuffer[0],
                        B_ANY_KERNEL_ADDRESS, ROUND_TO_PAGE_SIZE(WB_BUFBYTES * 
WB_TX_LIST_CNT),
-                       B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
-                       // TODO: B_32_BIT_MEMORY implies contiguous, although 
that wouldn't
-                       // be necessary here!
+                       B_32_BIT_FULL_LOCK, B_READ_AREA | B_WRITE_AREA);
        if (device->txArea < B_OK) {
                delete_area(device->rxArea);
                return device->txArea;

Modified: 
haiku/trunk/src/add-ons/kernel/drivers/network/wlan/ipw2100/ipw2100.cpp
===================================================================
--- haiku/trunk/src/add-ons/kernel/drivers/network/wlan/ipw2100/ipw2100.cpp     
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/drivers/network/wlan/ipw2100/ipw2100.cpp     
2010-06-23 13:29:25 UTC (rev 37226)
@@ -922,7 +922,7 @@
        size = (size + B_PAGE_SIZE - 1) & ~(B_PAGE_SIZE - 1);
        void *virtualAddress = NULL;
        area_id area = create_area(name, &virtualAddress, B_ANY_KERNEL_ADDRESS,
-               size, B_32_BIT_MEMORY, B_READ_AREA | B_WRITE_AREA);
+               size, B_32_BIT_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
        if (area < B_OK) {
                TRACE_ALWAYS(("IPW2100: allocating contiguous area failed\n"));
                return area;

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    
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/generic/ata_adapter/ata_adapter.c    
2010-06-23 13:29:25 UTC (rev 37226)
@@ -409,7 +409,7 @@
 // used.
        prdt_size = (ATA_ADAPTER_MAX_SG_COUNT * sizeof( prd_entry ) + 
(B_PAGE_SIZE - 1)) & ~(B_PAGE_SIZE - 1);
        channel->prd_area = create_area("prd", (void **)&channel->prdt, 
B_ANY_KERNEL_ADDRESS,
-               prdt_size, B_32_BIT_MEMORY, 0);
+               prdt_size, B_32_BIT_CONTIGUOUS, 0);
        if (channel->prd_area < B_OK) {
                res = channel->prd_area;
                goto err2;

Modified: haiku/trunk/src/add-ons/kernel/generic/ide_adapter/ide_adapter.c
===================================================================
--- haiku/trunk/src/add-ons/kernel/generic/ide_adapter/ide_adapter.c    
2010-06-23 11:13:39 UTC (rev 37225)
+++ haiku/trunk/src/add-ons/kernel/generic/ide_adapter/ide_adapter.c    
2010-06-23 13:29:25 UTC (rev 37226)
@@ -397,7 +397,7 @@
 // used.
        prdt_size = (IDE_ADAPTER_MAX_SG_COUNT * sizeof( prd_entry ) + 
(B_PAGE_SIZE - 1)) & ~(B_PAGE_SIZE - 1);
        channel->prd_area = create_area("prd", (void **)&channel->prdt, 
B_ANY_KERNEL_ADDRESS,
-               prdt_size, B_32_BIT_MEMORY, 0);
+               prdt_size, B_32_BIT_CONTIGUOUS, 0);
        if (channel->prd_area < B_OK) {
                res = channel->prd_area;
                goto err2;

Modified: haiku/trunk/src/system/kernel/vm/vm.cpp
===================================================================
--- haiku/trunk/src/system/kernel/vm/vm.cpp     2010-06-23 11:13:39 UTC (rev 
37225)
+++ haiku/trunk/src/system/kernel/vm/vm.cpp     2010-06-23 13:29:25 UTC (rev 
37226)
@@ -1117,16 +1117,21 @@
                case B_ALREADY_WIRED:
                        break;
                case B_LOMEM:
-               {
                        stackPhysicalRestrictions = 
*physicalAddressRestrictions;
                        stackPhysicalRestrictions.high_address = 16 * 1024 * 
1024;
                        physicalAddressRestrictions = 
&stackPhysicalRestrictions;
                        wiring = B_CONTIGUOUS;
                        doReserveMemory = true;
                        break;
-               }
-               case B_32_BIT_MEMORY:
-               {
+               case B_32_BIT_FULL_LOCK:
+                       #if B_HAIKU_PHYSICAL_BITS <= 32
+                               wiring = B_FULL_LOCK;
+                               doReserveMemory = true;
+                               break;
+                       #endif
+                       // TODO: We don't really support this mode efficiently. 
Just fall
+                       // through for now ...
+               case B_32_BIT_CONTIGUOUS:
                        #if B_HAIKU_PHYSICAL_BITS > 32
                                stackPhysicalRestrictions = 
*physicalAddressRestrictions;
                                stackPhysicalRestrictions.high_address = 
0x100000000LL;
@@ -1135,7 +1140,6 @@
                        wiring = B_CONTIGUOUS;
                        doReserveMemory = true;
                        break;
-               }
                default:
                        return B_BAD_VALUE;
        }


Other related posts:

  • » [haiku-commits] r37226 - in haiku/trunk: headers/os/kernel headers/private/system src/add-ons/kernel/bus_managers/firewire src/add-ons/kernel/bus_managers/scsi src/add-ons/kernel/bus_managers/usb ... - ingo_weinhold