svn commit: r311667 - in head/sys/contrib/dev/acpica: components/namespace components/tables include
Conrad E. Meyer
cem at FreeBSD.org
Sun Jan 8 06:26:34 UTC 2017
Author: cem
Date: Sun Jan 8 06:26:33 2017
New Revision: 311667
URL: https://svnweb.freebsd.org/changeset/base/311667
Log:
Add some additional ACPI methods for DRM
Add AcpiGetDataFull and AcpiGetTableWithSize.
Submitted by: Matt Macy
Modified:
head/sys/contrib/dev/acpica/components/namespace/nsxfeval.c
head/sys/contrib/dev/acpica/components/tables/tbxface.c
head/sys/contrib/dev/acpica/include/acpixf.h
Modified: head/sys/contrib/dev/acpica/components/namespace/nsxfeval.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/namespace/nsxfeval.c Sun Jan 8 06:22:35 2017 (r311666)
+++ head/sys/contrib/dev/acpica/components/namespace/nsxfeval.c Sun Jan 8 06:26:33 2017 (r311667)
@@ -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)
Modified: head/sys/contrib/dev/acpica/components/tables/tbxface.c
==============================================================================
--- head/sys/contrib/dev/acpica/components/tables/tbxface.c Sun Jan 8 06:22:35 2017 (r311666)
+++ head/sys/contrib/dev/acpica/components/tables/tbxface.c Sun Jan 8 06:26:33 2017 (r311667)
@@ -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
Modified: head/sys/contrib/dev/acpica/include/acpixf.h
==============================================================================
--- head/sys/contrib/dev/acpica/include/acpixf.h Sun Jan 8 06:22:35 2017 (r311666)
+++ head/sys/contrib/dev/acpica/include/acpixf.h Sun Jan 8 06:26:33 2017 (r311667)
@@ -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,
More information about the svn-src-all
mailing list