PERFORCE change 191575 for review
John Baldwin
jhb at FreeBSD.org
Sat Apr 16 03:08:35 UTC 2011
http://p4web.freebsd.org/@@191575?ac=10
Change 191575 by jhb at jhb_fiver on 2011/04/16 03:08:21
Finish making the resource set stuff handle 64-bit addresses.
Affected files ...
.. //depot/projects/pci/sys/dev/acpica/acpi_resource.c#4 edit
.. //depot/projects/pci/sys/dev/acpica/acpivar.h#3 edit
Differences ...
==== //depot/projects/pci/sys/dev/acpica/acpi_resource.c#4 (text+ko) ====
@@ -309,7 +309,14 @@
}
#ifdef __i386__
- /* XXX: TODO: check for ULONG_MAX issues. */
+ if (min > ULONG_MAX || res->Data.Address.MaxAddressFixed && max >
+ ULONG_MAX) {
+ ACPI_DEBUG_PRINT((ACPI_DB_RESOURCES, "ignored %s above 4G\n",
+ name));
+ break;
+ }
+ if (max > ULONG_MAX)
+ max = ULONG_MAX;
#endif
if (res->Data.Address.MinAddressFixed == ACPI_ADDRESS_FIXED &&
res->Data.Address.MaxAddressFixed == ACPI_ADDRESS_FIXED) {
@@ -394,20 +401,20 @@
static void acpi_res_set_init(device_t dev, void *arg, void **context);
static void acpi_res_set_done(device_t dev, void *context);
static void acpi_res_set_ioport(device_t dev, void *context,
- u_int32_t base, u_int32_t length);
+ uint64_t base, uint64_t length);
static void acpi_res_set_iorange(device_t dev, void *context,
- u_int32_t low, u_int32_t high,
- u_int32_t length, u_int32_t align);
+ uint64_t low, uint64_t high,
+ uint64_t length, uint64_t align);
static void acpi_res_set_memory(device_t dev, void *context,
- u_int32_t base, u_int32_t length);
+ uint64_t base, uint64_t length);
static void acpi_res_set_memoryrange(device_t dev, void *context,
- u_int32_t low, u_int32_t high,
- u_int32_t length, u_int32_t align);
-static void acpi_res_set_irq(device_t dev, void *context, u_int8_t *irq,
+ uint64_t low, uint64_t high,
+ uint64_t length, uint64_t align);
+static void acpi_res_set_irq(device_t dev, void *context, uint8_t *irq,
int count, int trig, int pol);
static void acpi_res_set_ext_irq(device_t dev, void *context,
- u_int32_t *irq, int count, int trig, int pol);
-static void acpi_res_set_drq(device_t dev, void *context, u_int8_t *drq,
+ uint32_t *irq, int count, int trig, int pol);
+static void acpi_res_set_drq(device_t dev, void *context, uint8_t *drq,
int count);
static void acpi_res_set_start_dependent(device_t dev, void *context,
int preference);
@@ -458,8 +465,8 @@
}
static void
-acpi_res_set_ioport(device_t dev, void *context, u_int32_t base,
- u_int32_t length)
+acpi_res_set_ioport(device_t dev, void *context, uint64_t base,
+ uint64_t length)
{
struct acpi_res_context *cp = (struct acpi_res_context *)context;
@@ -469,8 +476,8 @@
}
static void
-acpi_res_set_iorange(device_t dev, void *context, u_int32_t low,
- u_int32_t high, u_int32_t length, u_int32_t align)
+acpi_res_set_iorange(device_t dev, void *context, uint64_t low,
+ uint64_t high, uint64_t length, uint64_t align)
{
struct acpi_res_context *cp = (struct acpi_res_context *)context;
@@ -480,8 +487,8 @@
}
static void
-acpi_res_set_memory(device_t dev, void *context, u_int32_t base,
- u_int32_t length)
+acpi_res_set_memory(device_t dev, void *context, uint64_t base,
+ uint64_t length)
{
struct acpi_res_context *cp = (struct acpi_res_context *)context;
@@ -492,8 +499,8 @@
}
static void
-acpi_res_set_memoryrange(device_t dev, void *context, u_int32_t low,
- u_int32_t high, u_int32_t length, u_int32_t align)
+acpi_res_set_memoryrange(device_t dev, void *context, uint64_t low,
+ uint64_t high, uint64_t length, uint64_t align)
{
struct acpi_res_context *cp = (struct acpi_res_context *)context;
@@ -503,7 +510,7 @@
}
static void
-acpi_res_set_irq(device_t dev, void *context, u_int8_t *irq, int count,
+acpi_res_set_irq(device_t dev, void *context, uint8_t *irq, int count,
int trig, int pol)
{
struct acpi_res_context *cp = (struct acpi_res_context *)context;
@@ -519,7 +526,7 @@
}
static void
-acpi_res_set_ext_irq(device_t dev, void *context, u_int32_t *irq, int count,
+acpi_res_set_ext_irq(device_t dev, void *context, uint32_t *irq, int count,
int trig, int pol)
{
struct acpi_res_context *cp = (struct acpi_res_context *)context;
@@ -535,7 +542,7 @@
}
static void
-acpi_res_set_drq(device_t dev, void *context, u_int8_t *drq, int count)
+acpi_res_set_drq(device_t dev, void *context, uint8_t *drq, int count)
{
struct acpi_res_context *cp = (struct acpi_res_context *)context;
==== //depot/projects/pci/sys/dev/acpica/acpivar.h#3 (text+ko) ====
@@ -355,19 +355,19 @@
struct acpi_parse_resource_set {
void (*set_init)(device_t dev, void *arg, void **context);
void (*set_done)(device_t dev, void *context);
- void (*set_ioport)(device_t dev, void *context, uint32_t base,
- uint32_t length);
- void (*set_iorange)(device_t dev, void *context, uint32_t low,
- uint32_t high, uint32_t length, uint32_t align);
- void (*set_memory)(device_t dev, void *context, uint32_t base,
- uint32_t length);
- void (*set_memoryrange)(device_t dev, void *context, uint32_t low,
- uint32_t high, uint32_t length, uint32_t align);
- void (*set_irq)(device_t dev, void *context, u_int8_t *irq,
+ void (*set_ioport)(device_t dev, void *context, uint64_t base,
+ uint64_t length);
+ void (*set_iorange)(device_t dev, void *context, uint64_t low,
+ uint64_t high, uint64_t length, uint64_t align);
+ void (*set_memory)(device_t dev, void *context, uint64_t base,
+ uint64_t length);
+ void (*set_memoryrange)(device_t dev, void *context, uint64_t low,
+ uint64_t high, uint64_t length, uint64_t align);
+ void (*set_irq)(device_t dev, void *context, uint8_t *irq,
int count, int trig, int pol);
- void (*set_ext_irq)(device_t dev, void *context, u_int32_t *irq,
+ void (*set_ext_irq)(device_t dev, void *context, uint32_t *irq,
int count, int trig, int pol);
- void (*set_drq)(device_t dev, void *context, u_int8_t *drq,
+ void (*set_drq)(device_t dev, void *context, uint8_t *drq,
int count);
void (*set_start_dependent)(device_t dev, void *context,
int preference);
More information about the p4-projects
mailing list