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-head mailing list