Author: tqh Date: 2011-11-03 23:15:20 +0100 (Thu, 03 Nov 2011) New Revision: 43172 Changeset: https://dev.haiku-os.org/changeset/43172 Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmtable.c haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acapps.h haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acconfig.h haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/aclocal.h haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acpixf.h haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/platform/acenv.h Log: 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. Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmtable.c =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmtable.c 2011-11-03 21:14:05 UTC (rev 43171) +++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/common/dmtable.c 2011-11-03 22:15:20 UTC (rev 43172) @@ -822,44 +822,25 @@ 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: Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acapps.h =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acapps.h 2011-11-03 21:14:05 UTC (rev 43171) +++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acapps.h 2011-11-03 22:15:20 UTC (rev 43172) @@ -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" Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acconfig.h =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acconfig.h 2011-11-03 21:14:05 UTC (rev 43171) +++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acconfig.h 2011-11-03 22:15:20 UTC (rev 43172) @@ -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 */ /****************************************************************************** Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/aclocal.h =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/aclocal.h 2011-11-03 21:14:05 UTC (rev 43171) +++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/aclocal.h 2011-11-03 22:15:20 UTC (rev 43172) @@ -285,7 +285,6 @@ #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 @@ } 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 @@ 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; Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acpixf.h =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acpixf.h 2011-11-03 21:14:05 UTC (rev 43171) +++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/acpixf.h 2011-11-03 22:15:20 UTC (rev 43172) @@ -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" Modified: haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/platform/acenv.h =================================================================== --- haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/platform/acenv.h 2011-11-03 21:14:05 UTC (rev 43171) +++ haiku/trunk/src/add-ons/kernel/bus_managers/acpi/include/platform/acenv.h 2011-11-03 22:15:20 UTC (rev 43172) @@ -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