Page MenuHomeFreeBSD

D6589.diff
No OneTemporary

D6589.diff

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
@@ -297,11 +297,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
*
@@ -311,10 +312,11 @@
******************************************************************************/
ACPI_STATUS
-AcpiGetTable (
+AcpiGetTableWithSize (
char *Signature,
UINT32 Instance,
- ACPI_TABLE_HEADER **OutTable)
+ ACPI_TABLE_HEADER **OutTable,
+ ACPI_SIZE *TblSize)
{
UINT32 i;
UINT32 j;
@@ -346,7 +348,8 @@
Status = AcpiTbValidateTable (&AcpiGbl_RootTableList.Tables[i]);
if (ACPI_SUCCESS (Status))
{
- *OutTable = AcpiGbl_RootTableList.Tables[i].Pointer;
+ *OutTable = AcpiGbl_RootTableList.Tables[i].Pointer;
+ *TblSize = AcpiGbl_RootTableList.Tables[i].Length;
}
return (Status);
@@ -355,6 +358,32 @@
return (AE_NOT_FOUND);
}
+/*******************************************************************************
+ *
+ * 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)
Index: sys/contrib/dev/acpica/include/acpixf.h
===================================================================
--- sys/contrib/dev/acpica/include/acpixf.h
+++ sys/contrib/dev/acpica/include/acpixf.h
@@ -563,6 +563,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,
@@ -644,6 +652,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,

File Metadata

Mime Type
text/plain
Expires
Mon, Oct 5, 2:05 AM (16 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
40221061
Default Alt Text
D6589.diff (5 KB)

Event Timeline