[haiku-commits] r37213 - in haiku/trunk/src/add-ons/kernel: bus_managers/firewire drivers/audio/ac97/ali5451 drivers/audio/ac97/auich drivers/audio/ac97/auvia drivers/audio/ac97/es1370 ...

  • From: ingo_weinhold@xxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Mon, 21 Jun 2010 23:17:23 +0200 (CEST)

Author: bonefish
Date: 2010-06-21 23:17:23 +0200 (Mon, 21 Jun 2010)
New Revision: 37213
Changeset: http://dev.haiku-os.org/changeset/37213/haiku

Modified:
   haiku/trunk/src/add-ons/kernel/bus_managers/firewire/util.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
Log:
Force memory allocations to 32 bit physical addresses. The code using them
has implicit limitations (probably because the devices/controllers/... do).


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-21 
21:00:51 UTC (rev 37212)
+++ haiku/trunk/src/add-ons/kernel/bus_managers/firewire/util.c 2010-06-21 
21:17:23 UTC (rev 37213)
@@ -46,8 +46,10 @@
        TRACE("allocating %ld bytes for %s\n", size, name);
 
        size = round_to_pagesize(size);
-       area = create_area(name, &virtadr, B_ANY_KERNEL_ADDRESS, size, 
B_CONTIGUOUS,
-               protection);
+       area = create_area(name, &virtadr, B_ANY_KERNEL_ADDRESS, size,
+               B_32_BIT_MEMORY, 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) {
                ERROR("couldn't allocate area %s\n", name);
                return B_ERROR;

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-21 21:00:51 UTC (rev 37212)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/ali5451/util.c    
2010-06-21 21:17:23 UTC (rev 37213)
@@ -43,7 +43,9 @@
 
        size = round_to_pagesize(size);
        areaid = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
-               B_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
+               B_32_BIT_MEMORY, 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) {
                TRACE("alloc_mem: couldn't allocate area %s\n", name);
                return B_ERROR;

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-21 21:00:51 UTC (rev 37212)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auich/util.c      
2010-06-21 21:17:23 UTC (rev 37213)
@@ -74,8 +74,10 @@
        LOG(("allocating %d bytes for %s\n",size,name));
 
        size = round_to_pagesize(size);
-       area = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size, 
B_CONTIGUOUS,
-               B_READ_AREA | B_WRITE_AREA);
+       area = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
+               B_32_BIT_MEMORY, 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) {
                PRINT(("couldn't allocate area %s\n", name));
                return B_ERROR;

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-21 21:00:51 UTC (rev 37212)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/auvia/util.c      
2010-06-21 21:17:23 UTC (rev 37213)
@@ -76,7 +76,9 @@
 
        size = round_to_pagesize(size);
        areaid = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
-               B_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
+               B_32_BIT_MEMORY, 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) {
                PRINT(("couldn't allocate area %s\n",name));
                return B_ERROR;

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-21 21:00:51 UTC (rev 37212)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/es1370/util.c     
2010-06-21 21:17:23 UTC (rev 37213)
@@ -76,7 +76,9 @@
 
        size = round_to_pagesize(size);
        areaid = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
-               B_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
+               B_32_BIT_MEMORY, 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) {
                PRINT(("couldn't allocate area %s\n",name));
                return B_ERROR;

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-21 21:00:51 UTC (rev 37212)
+++ 
haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/geode/geode_controller.cpp    
    2010-06-21 21:17:23 UTC (rev 37213)
@@ -306,7 +306,10 @@
 
        /* Allocate memory for buffers */
        stream->buffer_area = create_area("geode buffers", (void**)&buffer,
-               B_ANY_KERNEL_ADDRESS, alloc, B_CONTIGUOUS, B_READ_AREA | 
B_WRITE_AREA);
+               B_ANY_KERNEL_ADDRESS, alloc, B_32_BIT_MEMORY,
+               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 (stream->buffer_area < B_OK)
                return stream->buffer_area;
 
@@ -335,7 +338,9 @@
 
        stream->buffer_descriptors_area = create_area("geode buffer 
descriptors",
                (void**)&bufferDescriptors, B_ANY_KERNEL_ADDRESS, alloc,
-               B_CONTIGUOUS, 0);
+               B_32_BIT_MEMORY, 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) {
                delete_area(stream->buffer_area);
                return stream->buffer_descriptors_area;

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-21 21:00:51 UTC (rev 37212)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/ich/util.c        
2010-06-21 21:17:23 UTC (rev 37213)
@@ -76,7 +76,9 @@
 
        size = round_to_pagesize(size);
        areaid = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
-               B_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
+               B_32_BIT_MEMORY, 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) {
                PRINT(("couldn't allocate area %s\n",name));
                return B_ERROR;

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-21 21:00:51 UTC (rev 37212)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/ac97/ichaudio/lala/util.c      
2010-06-21 21:17:23 UTC (rev 37213)
@@ -57,7 +57,9 @@
 
        size = round_to_pagesize(size);
        areaid = create_area(name, &virtadr, B_ANY_KERNEL_ADDRESS, size,
-               B_CONTIGUOUS, protection);
+               B_32_BIT_MEMORY, 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) {
                PRINT(("couldn't allocate area %s\n",name));
                return B_ERROR;

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-21 
21:00:51 UTC (rev 37212)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/echo/util.c    2010-06-21 
21:17:23 UTC (rev 37213)
@@ -74,8 +74,10 @@
        LOG(("allocating %d bytes for %s\n",size,name));
 
        size = round_to_pagesize(size);
-       area = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size, 
B_CONTIGUOUS,
-               B_READ_AREA | B_WRITE_AREA);
+       area = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
+               B_32_BIT_MEMORY, 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) {
                PRINT(("couldn't allocate area %s\n",name));
                return B_ERROR;

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-21 
21:00:51 UTC (rev 37212)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/emuxki/util.c  2010-06-21 
21:17:23 UTC (rev 37213)
@@ -76,7 +76,9 @@
 
        size = round_to_pagesize(size);
        areaid = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
-               B_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
+               B_32_BIT_MEMORY, 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) {
                PRINT(("couldn't allocate area %s\n",name));
                return B_ERROR;

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-21 
21:00:51 UTC (rev 37212)
+++ haiku/trunk/src/add-ons/kernel/drivers/audio/ice1712/util.c 2010-06-21 
21:17:23 UTC (rev 37213)
@@ -58,7 +58,9 @@
 
        size = round_to_pagesize(size);
        areaid = create_area(name, &logadr, B_ANY_KERNEL_ADDRESS, size,
-               B_CONTIGUOUS, B_READ_AREA | B_WRITE_AREA);
+               B_32_BIT_MEMORY, 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) {
                TRACE("couldn't allocate area %s\n",name);
                return B_ERROR;

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-21 
21:00:51 UTC (rev 37212)
+++ haiku/trunk/src/add-ons/kernel/drivers/dvb/cx23882/util.c   2010-06-21 
21:17:23 UTC (rev 37213)
@@ -81,7 +81,9 @@
 
        size = ROUNDUP(size, B_PAGE_SIZE);
        areaid = create_area(name, &virtadr, B_ANY_KERNEL_ADDRESS, size,
-               B_CONTIGUOUS, protection);
+               B_32_BIT_MEMORY, 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) {
                TRACE("couldn't allocate area %s\n", name);
                return B_ERROR;


Other related posts:

  • » [haiku-commits] r37213 - in haiku/trunk/src/add-ons/kernel: bus_managers/firewire drivers/audio/ac97/ali5451 drivers/audio/ac97/auich drivers/audio/ac97/auvia drivers/audio/ac97/es1370 ... - ingo_weinhold