aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConrad Meyer <cem@FreeBSD.org>2017-01-08 06:26:33 +0000
committerConrad Meyer <cem@FreeBSD.org>2017-01-08 06:26:33 +0000
commit8436bcc87d2e28790a861c28a4dd1b94832f1032 (patch)
tree1978c9c6d2d03415c0a70cf748f047c65a92a443
parentc8227de25f5d4ddf088b15f3c6c2fde287f73ba9 (diff)
Notes
-rw-r--r--sys/contrib/dev/acpica/components/namespace/nsxfeval.c40
-rw-r--r--sys/contrib/dev/acpica/components/tables/tbxface.c38
-rw-r--r--sys/contrib/dev/acpica/include/acpixf.h16
3 files changed, 83 insertions, 11 deletions
diff --git a/sys/contrib/dev/acpica/components/namespace/nsxfeval.c b/sys/contrib/dev/acpica/components/namespace/nsxfeval.c
index 6467d7e2f54f..4c50040156e1 100644
--- a/sys/contrib/dev/acpica/components/namespace/nsxfeval.c
+++ b/sys/contrib/dev/acpica/components/namespace/nsxfeval.c
@@ -1022,23 +1022,25 @@ ACPI_EXPORT_SYMBOL (AcpiDetachData)
/*******************************************************************************
*
- * 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 @@ AcpiGetData (
}
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)
diff --git a/sys/contrib/dev/acpica/components/tables/tbxface.c b/sys/contrib/dev/acpica/components/tables/tbxface.c
index 6e231cd8fceb..254958bd4924 100644
--- a/sys/contrib/dev/acpica/components/tables/tbxface.c
+++ b/sys/contrib/dev/acpica/components/tables/tbxface.c
@@ -314,11 +314,12 @@ ACPI_EXPORT_SYMBOL (AcpiGetTableHeader)
/*******************************************************************************
*
- * 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_EXPORT_SYMBOL (AcpiGetTableHeader)
******************************************************************************/
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 @@ AcpiPutTable (
(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
diff --git a/sys/contrib/dev/acpica/include/acpixf.h b/sys/contrib/dev/acpica/include/acpixf.h
index 7234ae8e331d..7a0edc091ddd 100644
--- a/sys/contrib/dev/acpica/include/acpixf.h
+++ b/sys/contrib/dev/acpica/include/acpixf.h
@@ -586,6 +586,14 @@ AcpiGetTableHeader (
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,
@@ -672,6 +680,14 @@ AcpiGetData (
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,