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;