Index: sys/contrib/dev/acpica/components/namespace/nsxfeval.c =================================================================== --- sys/contrib/dev/acpica/components/namespace/nsxfeval.c +++ sys/contrib/dev/acpica/components/namespace/nsxfeval.c @@ -1022,23 +1022,25 @@ /******************************************************************************* * - * FUNCTION: AcpiGetData + * FUNCTION: AcpiGetDataFull * * PARAMETERS: ObjHandle - Namespace node - * Handler - Handler used in call to AttachData + * Handle - Handler used in call to attach_data * Data - Where the data is returned + * Callback - function to execute before returning * * RETURN: Status * - * DESCRIPTION: Retrieve data that was previously attached to a namespace node. + * DESCRIPTION: Retrieve data that was previously attached to a namespace node + * and execute a callback before returning. * ******************************************************************************/ - ACPI_STATUS -AcpiGetData ( +AcpiGetDataFull ( ACPI_HANDLE ObjHandle, ACPI_OBJECT_HANDLER Handler, - void **Data) + void **Data, + void (*Callback)(void *)) { ACPI_NAMESPACE_NODE *Node; ACPI_STATUS Status; @@ -1069,10 +1071,34 @@ } Status = AcpiNsGetAttachedData (Node, Handler, Data); - + if (ACPI_SUCCESS(Status) && Callback) { + Callback(*Data); + } UnlockAndExit: (void) AcpiUtReleaseMutex (ACPI_MTX_NAMESPACE); return (Status); } +ACPI_EXPORT_SYMBOL (AcpiGetDataFull) +/******************************************************************************* + * + * FUNCTION: AcpiGetData + * + * PARAMETERS: ObjHandle - Namespace node + * Handler - Handler used in call to AttachData + * Data - Where the data is returned + * + * RETURN: Status + * + * DESCRIPTION: Retrieve data that was previously attached to a namespace node. + * + ******************************************************************************/ +ACPI_STATUS +AcpiGetData ( + ACPI_HANDLE ObjHandle, + ACPI_OBJECT_HANDLER Handler, + void **Data) +{ + return (AcpiGetDataFull(ObjHandle, Handler, Data, NULL)); +} ACPI_EXPORT_SYMBOL (AcpiGetData) Index: sys/contrib/dev/acpica/components/tables/tbxface.c =================================================================== --- sys/contrib/dev/acpica/components/tables/tbxface.c +++ sys/contrib/dev/acpica/components/tables/tbxface.c @@ -314,11 +314,12 @@ /******************************************************************************* * - * FUNCTION: AcpiGetTable + * FUNCTION: AcpiGetTableWithSize * * PARAMETERS: Signature - ACPI signature of needed table * Instance - Which instance (for SSDTs) * OutTable - Where the pointer to the table is returned + * TblSize - Size of the table * * RETURN: Status and pointer to the requested table * @@ -333,10 +334,11 @@ ******************************************************************************/ ACPI_STATUS -AcpiGetTable ( +AcpiGetTableWithSize ( char *Signature, UINT32 Instance, - ACPI_TABLE_HEADER **OutTable) + ACPI_TABLE_HEADER **OutTable, + ACPI_SIZE *TblSize) { UINT32 i; UINT32 j; @@ -434,12 +436,40 @@ (void) AcpiUtReleaseMutex (ACPI_MTX_TABLES); return_VOID; } - ACPI_EXPORT_SYMBOL (AcpiPutTable) /******************************************************************************* * + * FUNCTION: AcpiGetTable + * + * PARAMETERS: Signature - ACPI signature of needed table + * Instance - Which instance (for SSDTs) + * OutTable - Where the pointer to the table is returned + * + * RETURN: Status and pointer to the requested table + * + * DESCRIPTION: Finds and verifies an ACPI table. Table must be in the + * RSDT/XSDT. + * + ******************************************************************************/ + +ACPI_STATUS +AcpiGetTable ( + char *Signature, + UINT32 Instance, + ACPI_TABLE_HEADER **OutTable) +{ + ACPI_SIZE Size; + + return (AcpiGetTableWithSize(Signature, Instance, OutTable, &Size)); +} + +ACPI_EXPORT_SYMBOL (AcpiGetTable) + + +/******************************************************************************* + * * FUNCTION: AcpiGetTableByIndex * * PARAMETERS: TableIndex - Table index Index: sys/contrib/dev/acpica/include/acpixf.h =================================================================== --- sys/contrib/dev/acpica/include/acpixf.h +++ sys/contrib/dev/acpica/include/acpixf.h @@ -577,6 +577,14 @@ ACPI_EXTERNAL_RETURN_STATUS ( ACPI_STATUS +AcpiGetTableWithSize ( + ACPI_STRING Signature, + UINT32 Instance, + ACPI_TABLE_HEADER **OutTable, + ACPI_SIZE *TblSize)) + +ACPI_EXTERNAL_RETURN_STATUS ( +ACPI_STATUS AcpiGetTable ( ACPI_STRING Signature, UINT32 Instance, @@ -663,6 +671,14 @@ ACPI_EXTERNAL_RETURN_STATUS ( ACPI_STATUS +AcpiGetDataFull ( + ACPI_HANDLE Object, + ACPI_OBJECT_HANDLER Handler, + void **Data, + void (*Callback)(void *))) + +ACPI_EXTERNAL_RETURN_STATUS ( +ACPI_STATUS AcpiDebugTrace ( const char *Name, UINT32 DebugLevel,