From dd9eb3ad8b478f274756afdb699a14f99c77ea7e Mon Sep 17 00:00:00 2001 From: Fredrik Holmqvist Date: Thu, 3 Nov 2011 22:15:20 +0000 Subject: [PATCH] Update to ACPICA 20110922. It doesn't change much, altough it fixes a bug in the code: * Fixed a problem where the maximum sleep time for the Sleep() operator was intended to be limited to two seconds, but was inadvertently limited to 20 seconds instead. Doesn't seem to do much difference in Haiku though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43172 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../kernel/bus_managers/acpi/common/dmtable.c | 35 +++++-------------- .../kernel/bus_managers/acpi/include/acapps.h | 9 +++++ .../bus_managers/acpi/include/acconfig.h | 2 +- .../bus_managers/acpi/include/aclocal.h | 13 ++++++- .../kernel/bus_managers/acpi/include/acpixf.h | 2 +- .../acpi/include/platform/acenv.h | 3 +- 6 files changed, 33 insertions(+), 31 deletions(-) diff --git a/src/add-ons/kernel/bus_managers/acpi/common/dmtable.c b/src/add-ons/kernel/bus_managers/acpi/common/dmtable.c index a9e6a1de63..b2ed5dd3ad 100644 --- a/src/add-ons/kernel/bus_managers/acpi/common/dmtable.c +++ b/src/add-ons/kernel/bus_managers/acpi/common/dmtable.c @@ -822,44 +822,25 @@ AcpiDmDumpTable ( AcpiOsPrintf ("%1.1X\n", (*Target >> 2) & 0x03); break; - /* Standard Data Types */ + /* Integer Data Types */ case ACPI_DMT_UINT8: - - AcpiOsPrintf ("%2.2X\n", *Target); - break; - case ACPI_DMT_UINT16: - - AcpiOsPrintf ("%4.4X\n", ACPI_GET16 (Target)); - break; - case ACPI_DMT_UINT24: - - AcpiOsPrintf ("%2.2X%2.2X%2.2X\n", - *Target, *(Target + 1), *(Target + 2)); - break; - case ACPI_DMT_UINT32: - - AcpiOsPrintf ("%8.8X\n", ACPI_GET32 (Target)); - break; - case ACPI_DMT_UINT56: - - for (Temp8 = 0; Temp8 < 7; Temp8++) + case ACPI_DMT_UINT64: + /* + * Dump bytes - high byte first, low byte last. + * Note: All ACPI tables are little-endian. + */ + for (Temp8 = (UINT8) ByteLength; Temp8 > 0; Temp8--) { - AcpiOsPrintf ("%2.2X", Target[Temp8]); + AcpiOsPrintf ("%2.2X", Target[Temp8 - 1]); } AcpiOsPrintf ("\n"); break; - case ACPI_DMT_UINT64: - - AcpiOsPrintf ("%8.8X%8.8X\n", - ACPI_FORMAT_UINT64 (ACPI_GET64 (Target))); - break; - case ACPI_DMT_BUF7: case ACPI_DMT_BUF16: case ACPI_DMT_BUF128: diff --git a/src/add-ons/kernel/bus_managers/acpi/include/acapps.h b/src/add-ons/kernel/bus_managers/acpi/include/acapps.h index 4256ef89b2..d6a19f5574 100644 --- a/src/add-ons/kernel/bus_managers/acpi/include/acapps.h +++ b/src/add-ons/kernel/bus_managers/acpi/include/acapps.h @@ -153,6 +153,15 @@ Prefix, ACPICA_COPYRIGHT, \ Prefix +/* Macros for usage messages */ + +#define ACPI_USAGE_HEADER(Usage) \ + printf ("Usage: %s\nOptions:\n", Usage); + +#define ACPI_OPTION(Name, Description) \ + printf (" %-18s%s\n", Name, Description); + + #define FILE_SUFFIX_DISASSEMBLY "dsl" #define ACPI_TABLE_FILE_SUFFIX ".dat" diff --git a/src/add-ons/kernel/bus_managers/acpi/include/acconfig.h b/src/add-ons/kernel/bus_managers/acpi/include/acconfig.h index df826fa057..9bc00f1577 100644 --- a/src/add-ons/kernel/bus_managers/acpi/include/acconfig.h +++ b/src/add-ons/kernel/bus_managers/acpi/include/acconfig.h @@ -195,7 +195,7 @@ /* Maximum sleep allowed via Sleep() operator */ -#define ACPI_MAX_SLEEP 20000 /* Two seconds */ +#define ACPI_MAX_SLEEP 2000 /* 2000 millisec == two seconds */ /****************************************************************************** diff --git a/src/add-ons/kernel/bus_managers/acpi/include/aclocal.h b/src/add-ons/kernel/bus_managers/acpi/include/aclocal.h index 22b5dd36b2..b1b1d05a9e 100644 --- a/src/add-ons/kernel/bus_managers/acpi/include/aclocal.h +++ b/src/add-ons/kernel/bus_managers/acpi/include/aclocal.h @@ -285,7 +285,6 @@ typedef struct acpi_namespace_node #define ANOBJ_IS_EXTERNAL 0x08 /* iASL only: This object created via External() */ #define ANOBJ_METHOD_NO_RETVAL 0x10 /* iASL only: Method has no return value */ #define ANOBJ_METHOD_SOME_NO_RETVAL 0x20 /* iASL only: Method has at least one return value */ -#define ANOBJ_IS_BIT_OFFSET 0x40 /* iASL only: Reference is a bit offset */ #define ANOBJ_IS_REFERENCED 0x80 /* iASL only: Object was referenced */ @@ -847,6 +846,17 @@ typedef struct acpi_opcode_info } ACPI_OPCODE_INFO; +/* Structure for Resource Tag information */ + +typedef struct acpi_tag_info +{ + UINT32 BitOffset; + UINT32 BitLength; + +} ACPI_TAG_INFO; + +/* Value associated with the parse object */ + typedef union acpi_parse_value { UINT64 Integer; /* Integer constant (Up to 64 bits) */ @@ -855,6 +865,7 @@ typedef union acpi_parse_value UINT8 *Buffer; /* buffer or string */ char *Name; /* NULL terminated string */ union acpi_parse_object *Arg; /* arguments and contained ops */ + ACPI_TAG_INFO Tag; /* Resource descriptor tag info */ } ACPI_PARSE_VALUE; diff --git a/src/add-ons/kernel/bus_managers/acpi/include/acpixf.h b/src/add-ons/kernel/bus_managers/acpi/include/acpixf.h index ca90112409..34f84b166d 100644 --- a/src/add-ons/kernel/bus_managers/acpi/include/acpixf.h +++ b/src/add-ons/kernel/bus_managers/acpi/include/acpixf.h @@ -120,7 +120,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20110623 +#define ACPI_CA_VERSION 0x20110922 #include "actypes.h" #include "actbl.h" diff --git a/src/add-ons/kernel/bus_managers/acpi/include/platform/acenv.h b/src/add-ons/kernel/bus_managers/acpi/include/platform/acenv.h index e5b39a17b9..c1cdf082ec 100644 --- a/src/add-ons/kernel/bus_managers/acpi/include/platform/acenv.h +++ b/src/add-ons/kernel/bus_managers/acpi/include/platform/acenv.h @@ -173,7 +173,8 @@ * no debug output. */ #if (defined ACPI_BIN_APP) || \ - (defined ACPI_SRC_APP) + (defined ACPI_SRC_APP) || \ + (defined ACPI_XTRACT_APP) #define ACPI_APPLICATION #define ACPI_SINGLE_THREADED #endif