Forgot to remove several patches that are no longer needed.
Signed-off-by: Al Stone <ahs3@redhat.com>
This commit is contained in:
parent
702e10de46
commit
8394543552
@ -1,6 +1,6 @@
|
|||||||
Name: acpica-tools
|
Name: acpica-tools
|
||||||
Version: 20150619
|
Version: 20150619
|
||||||
Release: 1%{?dist}
|
Release: 2%{?dist}
|
||||||
Summary: ACPICA tools for the development and debug of ACPI tables
|
Summary: ACPICA tools for the development and debug of ACPI tables
|
||||||
|
|
||||||
Group: Development/Languages
|
Group: Development/Languages
|
||||||
@ -195,6 +195,9 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Jun 20 2015 Al Stone <ahs3@redhat.com> - 20150619-2
|
||||||
|
- Silly error: forgot to remove patches that are no longer needed
|
||||||
|
|
||||||
* Mon Jun 29 2015 Al Stone <ahs3@redhat.com> - 20150619-1
|
* Mon Jun 29 2015 Al Stone <ahs3@redhat.com> - 20150619-1
|
||||||
- Update to latest upstream. Closes BZ#1232512.
|
- Update to latest upstream. Closes BZ#1232512.
|
||||||
- Refresh patches
|
- Refresh patches
|
||||||
|
26
acuuid.patch
26
acuuid.patch
@ -1,26 +0,0 @@
|
|||||||
Index: acpica-unix/source/include/acuuid.h
|
|
||||||
===================================================================
|
|
||||||
--- acpica-unix.orig/source/include/acuuid.h
|
|
||||||
+++ acpica-unix/source/include/acuuid.h
|
|
||||||
@@ -52,13 +52,13 @@
|
|
||||||
|
|
||||||
/* NFIT/NVDIMM */
|
|
||||||
|
|
||||||
-#define UUID_VOLATILE_MEMORY "4F940573-DAFD-E344-B16C-3F22D252E5D0"
|
|
||||||
-#define UUID_PERSISTENT_MEMORY "79D3F066-F3B4-7440-AC43-0D3318B78CDB"
|
|
||||||
-#define UUID_CONTROL_REGION "F601F792-B413-5D40-910B-299367E8234C"
|
|
||||||
-#define UUID_DATA_REGION "3005AF91-865D-0E47-A6B0-0A2DB9408249"
|
|
||||||
-#define UUID_VOLATILE_VIRTUAL_DISK "5A53AB77-FC45-4B62-5560-F7B281D1F96E"
|
|
||||||
-#define UUID_VOLATILE_VIRTUAL_CD "30BD5A3D-7541-CE87-6D64-D2ADE523C4BB"
|
|
||||||
-#define UUID_PERSISTENT_VIRTUAL_DISK "C902EA5C-074D-69D3-269F-4496FBE096F9"
|
|
||||||
-#define UUID_PERSISTENT_VIRTUAL_CD "88810108-CD42-48BB-100F-5387D53DED3D"
|
|
||||||
+#define UUID_VOLATILE_MEMORY "7305944F-FDDA-44E3-B16C-3F22D252E5D0"
|
|
||||||
+#define UUID_PERSISTENT_MEMORY "66F0D379-B4F3-4074-AC43-0D3318B78CDB"
|
|
||||||
+#define UUID_CONTROL_REGION "92F701F6-13B4-405D-910B-299367E8234C"
|
|
||||||
+#define UUID_DATA_REGION "91AF0530-5D86-470E-A6B0-0A2DB9408249"
|
|
||||||
+#define UUID_VOLATILE_VIRTUAL_DISK "77AB535A-45FC-624B-5560-F7B281D1F96E"
|
|
||||||
+#define UUID_VOLATILE_VIRTUAL_CD "3D5ABD30-4175-87CE-6D64-D2ADE523C4BB"
|
|
||||||
+#define UUID_PERSISTENT_VIRTUAL_DISK "5CEA02C9-4D07-69D3-269F-4496FBE096F9"
|
|
||||||
+#define UUID_PERSISTENT_VIRTUAL_CD "08018188-42CD-BB48-100F-5387D53DED3D"
|
|
||||||
|
|
||||||
#endif /* __AUUID_H__ */
|
|
@ -1,45 +0,0 @@
|
|||||||
ACPI 6.0 specified MADT generic distributor version values, but
|
|
||||||
the detail definition is missing, add its support in this patch.
|
|
||||||
|
|
||||||
Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
|
|
||||||
---
|
|
||||||
Hi Bob, Lv,
|
|
||||||
|
|
||||||
As discussed with Lv on linux-acpi maillist, I prepared this
|
|
||||||
patch for review.
|
|
||||||
|
|
||||||
Please treat this patch as a fix for next ACPICA version and
|
|
||||||
linux kernel 4.2 material, because we still can not
|
|
||||||
use the newest ACPICA for linux when this enum is missing,
|
|
||||||
any comments are welcomed.
|
|
||||||
|
|
||||||
Thanks
|
|
||||||
Hanjun
|
|
||||||
|
|
||||||
source/include/actbl1.h | 12 ++++++++++++
|
|
||||||
1 file changed, 12 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/source/include/actbl1.h b/source/include/actbl1.h
|
|
||||||
index 1c508a0..0235543 100644
|
|
||||||
--- a/source/include/actbl1.h
|
|
||||||
+++ b/source/include/actbl1.h
|
|
||||||
@@ -978,6 +978,18 @@ typedef struct acpi_madt_generic_distributor
|
|
||||||
|
|
||||||
} ACPI_MADT_GENERIC_DISTRIBUTOR;
|
|
||||||
|
|
||||||
+/* Values for Version in Generic Distributor (ACPI 6.0) */
|
|
||||||
+
|
|
||||||
+enum AcpiMadtGicVersionType
|
|
||||||
+{
|
|
||||||
+ ACPI_MADT_GIC_VER_UNKNOWN = 0,
|
|
||||||
+ ACPI_MADT_GIC_VER_V1 = 1,
|
|
||||||
+ ACPI_MADT_GIC_VER_V2 = 2,
|
|
||||||
+ ACPI_MADT_GIC_VER_V3 = 3,
|
|
||||||
+ ACPI_MADT_GIC_VER_V4 = 4,
|
|
||||||
+ ACPI_MADT_GIC_VER_RESERVED = 5 /* 5 and greater are reserved */
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
|
|
||||||
/* 13: Generic MSI Frame (ACPI 5.1) */
|
|
||||||
|
|
||||||
-- 1.9.1
|
|
783
nodevmem.patch
783
nodevmem.patch
@ -1,783 +0,0 @@
|
|||||||
diff -Naur acpica-unix2-20150515/generate/unix/acpidump/Makefile acpica-unix2-20150515.devmem/generate/unix/acpidump/Makefile
|
|
||||||
--- acpica-unix2-20150515/generate/unix/acpidump/Makefile 2015-05-15 17:49:17.000000000 -0600
|
|
||||||
+++ acpica-unix2-20150515.devmem/generate/unix/acpidump/Makefile 2015-06-02 15:00:31.813746336 -0600
|
|
||||||
@@ -67,10 +67,17 @@
|
|
||||||
OBJECTS += \
|
|
||||||
$(OBJDIR)/osbsdtbl.o
|
|
||||||
else
|
|
||||||
+
|
|
||||||
+ifeq ($(NO_DEV_MEM), true)
|
|
||||||
+OBJECTS += \
|
|
||||||
+ $(OBJDIR)/oslinuxtbl_nodevmem.o
|
|
||||||
+else
|
|
||||||
OBJECTS += \
|
|
||||||
$(OBJDIR)/oslinuxtbl.o
|
|
||||||
endif
|
|
||||||
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
#
|
|
||||||
# Flags specific to acpidump
|
|
||||||
#
|
|
||||||
diff -Naur acpica-unix2-20150515/generate/unix/Makefile.config acpica-unix2-20150515.devmem/generate/unix/Makefile.config
|
|
||||||
--- acpica-unix2-20150515/generate/unix/Makefile.config 2015-06-03 14:57:30.328724317 -0600
|
|
||||||
+++ acpica-unix2-20150515.devmem/generate/unix/Makefile.config 2015-06-02 15:03:53.727560100 -0600
|
|
||||||
@@ -49,6 +49,7 @@
|
|
||||||
LINKPROG = $(CC) $(OBJECTS) -o $(PROG) $(LDFLAGS) $(OPT_LDFLAGS)
|
|
||||||
PREFIX ?= /usr
|
|
||||||
INSTALLDIR = $(PREFIX)/bin
|
|
||||||
+UNAME_M := $(shell uname -m)
|
|
||||||
UNAME_S := $(shell uname -s)
|
|
||||||
|
|
||||||
#
|
|
||||||
@@ -70,6 +71,12 @@
|
|
||||||
HOST = _NetBSD
|
|
||||||
endif
|
|
||||||
|
|
||||||
+ifeq ($(UNAME_S), Linux)
|
|
||||||
+ifeq ($(UNAME_M), aarch64)
|
|
||||||
+NO_DEV_MEM ?= true
|
|
||||||
+endif
|
|
||||||
+endif
|
|
||||||
+
|
|
||||||
ifeq ($(HOST), _APPLE)
|
|
||||||
INSTALL = cp
|
|
||||||
INSTALLFLAGS ?= -f
|
|
||||||
diff -Naur acpica-unix2-20150515/source/os_specific/service_layers/oslinuxtbl_nodevmem.c acpica-unix2-20150515.devmem/source/os_specific/service_layers/oslinuxtbl_nodevmem.c
|
|
||||||
--- acpica-unix2-20150515/source/os_specific/service_layers/oslinuxtbl_nodevmem.c 1969-12-31 17:00:00.000000000 -0700
|
|
||||||
+++ acpica-unix2-20150515.devmem/source/os_specific/service_layers/oslinuxtbl_nodevmem.c 2015-06-02 16:14:38.088031027 -0600
|
|
||||||
@@ -0,0 +1,734 @@
|
|
||||||
+/******************************************************************************
|
|
||||||
+ *
|
|
||||||
+ * Module Name: oslinuxtbl_nodevmem - Linux OSL for obtaining ACPI tables
|
|
||||||
+ * that assumes you cannot use /dev/mem
|
|
||||||
+ *
|
|
||||||
+ *****************************************************************************/
|
|
||||||
+
|
|
||||||
+#include "acpidump.h"
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#define _COMPONENT ACPI_OS_SERVICES
|
|
||||||
+ ACPI_MODULE_NAME ("oslinuxtbl_nodevmem")
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+#ifndef PATH_MAX
|
|
||||||
+#define PATH_MAX 256
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/* List of information about obtained ACPI tables */
|
|
||||||
+
|
|
||||||
+typedef struct osl_table_info
|
|
||||||
+{
|
|
||||||
+ struct osl_table_info *Next;
|
|
||||||
+ UINT32 Instance;
|
|
||||||
+ char Signature[ACPI_NAME_SIZE];
|
|
||||||
+
|
|
||||||
+} OSL_TABLE_INFO;
|
|
||||||
+
|
|
||||||
+/* Local prototypes */
|
|
||||||
+
|
|
||||||
+static ACPI_STATUS
|
|
||||||
+OslTableInitialize (
|
|
||||||
+ void);
|
|
||||||
+
|
|
||||||
+static ACPI_STATUS
|
|
||||||
+OslTableNameFromFile (
|
|
||||||
+ char *Filename,
|
|
||||||
+ char *Signature,
|
|
||||||
+ UINT32 *Instance);
|
|
||||||
+
|
|
||||||
+static ACPI_STATUS
|
|
||||||
+OslAddTableToList (
|
|
||||||
+ char *Signature,
|
|
||||||
+ UINT32 Instance);
|
|
||||||
+
|
|
||||||
+static ACPI_STATUS
|
|
||||||
+OslReadTableFromFile (
|
|
||||||
+ char *Filename,
|
|
||||||
+ ACPI_SIZE FileOffset,
|
|
||||||
+ char *Signature,
|
|
||||||
+ ACPI_TABLE_HEADER **Table);
|
|
||||||
+
|
|
||||||
+static ACPI_STATUS
|
|
||||||
+OslListAcpiTables (
|
|
||||||
+ char *Directory);
|
|
||||||
+
|
|
||||||
+static ACPI_STATUS
|
|
||||||
+OslGetAcpiTable (
|
|
||||||
+ char *Pathname,
|
|
||||||
+ char *Signature,
|
|
||||||
+ UINT32 Instance,
|
|
||||||
+ ACPI_TABLE_HEADER **Table,
|
|
||||||
+ ACPI_PHYSICAL_ADDRESS *Address);
|
|
||||||
+
|
|
||||||
+static ACPI_STATUS
|
|
||||||
+OslGetLastStatus (
|
|
||||||
+ ACPI_STATUS DefaultStatus);
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/* File locations */
|
|
||||||
+
|
|
||||||
+#define DYNAMIC_TABLE_DIR "/sys/firmware/acpi/tables/dynamic"
|
|
||||||
+#define STATIC_TABLE_DIR "/sys/firmware/acpi/tables"
|
|
||||||
+
|
|
||||||
+/* Should we get dynamically loaded SSDTs from DYNAMIC_TABLE_DIR? */
|
|
||||||
+
|
|
||||||
+UINT8 Gbl_DumpDynamicTables = TRUE;
|
|
||||||
+
|
|
||||||
+/* Initialization flags */
|
|
||||||
+
|
|
||||||
+UINT8 Gbl_TableListInitialized = FALSE;
|
|
||||||
+
|
|
||||||
+/* Revision of RSD PTR */
|
|
||||||
+
|
|
||||||
+UINT8 Gbl_Revision = 0;
|
|
||||||
+
|
|
||||||
+OSL_TABLE_INFO *Gbl_TableListHead = NULL;
|
|
||||||
+UINT32 Gbl_TableCount = 0;
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/******************************************************************************
|
|
||||||
+ *
|
|
||||||
+ * FUNCTION: OslGetLastStatus
|
|
||||||
+ *
|
|
||||||
+ * PARAMETERS: DefaultStatus - Default error status to return
|
|
||||||
+ *
|
|
||||||
+ * RETURN: Status; Converted from errno.
|
|
||||||
+ *
|
|
||||||
+ * DESCRIPTION: Get last errno and conver it to ACPI_STATUS.
|
|
||||||
+ *
|
|
||||||
+ *****************************************************************************/
|
|
||||||
+
|
|
||||||
+static ACPI_STATUS
|
|
||||||
+OslGetLastStatus (
|
|
||||||
+ ACPI_STATUS DefaultStatus)
|
|
||||||
+{
|
|
||||||
+
|
|
||||||
+ switch (errno)
|
|
||||||
+ {
|
|
||||||
+ case EACCES:
|
|
||||||
+ case EPERM:
|
|
||||||
+
|
|
||||||
+ return (AE_ACCESS);
|
|
||||||
+
|
|
||||||
+ case ENOENT:
|
|
||||||
+
|
|
||||||
+ return (AE_NOT_FOUND);
|
|
||||||
+
|
|
||||||
+ case ENOMEM:
|
|
||||||
+
|
|
||||||
+ return (AE_NO_MEMORY);
|
|
||||||
+
|
|
||||||
+ default:
|
|
||||||
+
|
|
||||||
+ return (DefaultStatus);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/******************************************************************************
|
|
||||||
+ *
|
|
||||||
+ * FUNCTION: AcpiOsGetTableByAddress
|
|
||||||
+ *
|
|
||||||
+ * PARAMETERS: Address - Physical address of the ACPI table
|
|
||||||
+ * Table - Where a pointer to the table is returned
|
|
||||||
+ *
|
|
||||||
+ * RETURN: Status; Table buffer is returned if AE_OK.
|
|
||||||
+ * AE_NOT_FOUND: A valid table was not found at the address
|
|
||||||
+ *
|
|
||||||
+ * DESCRIPTION: Get an ACPI table via a physical memory address.
|
|
||||||
+ *
|
|
||||||
+ *****************************************************************************/
|
|
||||||
+
|
|
||||||
+ACPI_STATUS
|
|
||||||
+AcpiOsGetTableByAddress (
|
|
||||||
+ ACPI_PHYSICAL_ADDRESS Address,
|
|
||||||
+ ACPI_TABLE_HEADER **Table)
|
|
||||||
+{
|
|
||||||
+ /*
|
|
||||||
+ * If this source file is being used, there is no reliable access
|
|
||||||
+ * to /dev/mem on this system. Hence, we cannot retrieve a table
|
|
||||||
+ * by address at all and will always return AE_NOT_FOUND.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+ return AE_NOT_FOUND;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/******************************************************************************
|
|
||||||
+ *
|
|
||||||
+ * FUNCTION: AcpiOsGetTableByName
|
|
||||||
+ *
|
|
||||||
+ * PARAMETERS: Signature - ACPI Signature for desired table. Must be
|
|
||||||
+ * a null terminated 4-character string.
|
|
||||||
+ * Instance - Multiple table support for SSDT/UEFI (0...n)
|
|
||||||
+ * Must be 0 for other tables.
|
|
||||||
+ * Table - Where a pointer to the table is returned
|
|
||||||
+ * Address - Where the table physical address is returned
|
|
||||||
+ *
|
|
||||||
+ * RETURN: Status; Table buffer and physical address returned if AE_OK.
|
|
||||||
+ * AE_LIMIT: Instance is beyond valid limit
|
|
||||||
+ * AE_NOT_FOUND: A table with the signature was not found
|
|
||||||
+ *
|
|
||||||
+ * NOTE: Assumes the input signature is uppercase.
|
|
||||||
+ *
|
|
||||||
+ *****************************************************************************/
|
|
||||||
+
|
|
||||||
+ACPI_STATUS
|
|
||||||
+AcpiOsGetTableByName (
|
|
||||||
+ char *Signature,
|
|
||||||
+ UINT32 Instance,
|
|
||||||
+ ACPI_TABLE_HEADER **Table,
|
|
||||||
+ ACPI_PHYSICAL_ADDRESS *Address)
|
|
||||||
+{
|
|
||||||
+ ACPI_STATUS Status;
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ /* Get main ACPI tables from memory on first invocation of this function */
|
|
||||||
+
|
|
||||||
+ Status = OslTableInitialize ();
|
|
||||||
+ if (ACPI_FAILURE (Status))
|
|
||||||
+ {
|
|
||||||
+ return (Status);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Attempt to get the table from the static directory */
|
|
||||||
+
|
|
||||||
+ Status = OslGetAcpiTable (STATIC_TABLE_DIR, Signature,
|
|
||||||
+ Instance, Table, Address);
|
|
||||||
+
|
|
||||||
+ if (ACPI_FAILURE (Status) && Status == AE_LIMIT)
|
|
||||||
+ {
|
|
||||||
+ if (Gbl_DumpDynamicTables)
|
|
||||||
+ {
|
|
||||||
+ /* Attempt to get a dynamic table */
|
|
||||||
+
|
|
||||||
+ Status = OslGetAcpiTable (DYNAMIC_TABLE_DIR, Signature,
|
|
||||||
+ Instance, Table, Address);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ return (Status);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/******************************************************************************
|
|
||||||
+ *
|
|
||||||
+ * FUNCTION: OslAddTableToList
|
|
||||||
+ *
|
|
||||||
+ * PARAMETERS: Signature - Table signature
|
|
||||||
+ * Instance - Table instance
|
|
||||||
+ *
|
|
||||||
+ * RETURN: Status; Successfully added if AE_OK.
|
|
||||||
+ * AE_NO_MEMORY: Memory allocation error
|
|
||||||
+ *
|
|
||||||
+ * DESCRIPTION: Insert a table structure into OSL table list.
|
|
||||||
+ *
|
|
||||||
+ *****************************************************************************/
|
|
||||||
+
|
|
||||||
+static ACPI_STATUS
|
|
||||||
+OslAddTableToList (
|
|
||||||
+ char *Signature,
|
|
||||||
+ UINT32 Instance)
|
|
||||||
+{
|
|
||||||
+ OSL_TABLE_INFO *NewInfo;
|
|
||||||
+ OSL_TABLE_INFO *Next;
|
|
||||||
+ UINT32 NextInstance = 0;
|
|
||||||
+ BOOLEAN Found = FALSE;
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ NewInfo = calloc (1, sizeof (OSL_TABLE_INFO));
|
|
||||||
+ if (!NewInfo)
|
|
||||||
+ {
|
|
||||||
+ return (AE_NO_MEMORY);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ ACPI_MOVE_NAME (NewInfo->Signature, Signature);
|
|
||||||
+
|
|
||||||
+ if (!Gbl_TableListHead)
|
|
||||||
+ {
|
|
||||||
+ Gbl_TableListHead = NewInfo;
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ Next = Gbl_TableListHead;
|
|
||||||
+ while (1)
|
|
||||||
+ {
|
|
||||||
+ if (ACPI_COMPARE_NAME (Next->Signature, Signature))
|
|
||||||
+ {
|
|
||||||
+ if (Next->Instance == Instance)
|
|
||||||
+ {
|
|
||||||
+ Found = TRUE;
|
|
||||||
+ }
|
|
||||||
+ if (Next->Instance >= NextInstance)
|
|
||||||
+ {
|
|
||||||
+ NextInstance = Next->Instance + 1;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (!Next->Next)
|
|
||||||
+ {
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ Next = Next->Next;
|
|
||||||
+ }
|
|
||||||
+ Next->Next = NewInfo;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (Found)
|
|
||||||
+ {
|
|
||||||
+ if (Instance)
|
|
||||||
+ {
|
|
||||||
+ fprintf (stderr,
|
|
||||||
+ "%4.4s: Warning unmatched table instance %d, expected %d\n",
|
|
||||||
+ Signature, Instance, NextInstance);
|
|
||||||
+ }
|
|
||||||
+ Instance = NextInstance;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ NewInfo->Instance = Instance;
|
|
||||||
+ Gbl_TableCount++;
|
|
||||||
+
|
|
||||||
+ return (AE_OK);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/******************************************************************************
|
|
||||||
+ *
|
|
||||||
+ * FUNCTION: AcpiOsGetTableByIndex
|
|
||||||
+ *
|
|
||||||
+ * PARAMETERS: Index - Which table to get
|
|
||||||
+ * Table - Where a pointer to the table is returned
|
|
||||||
+ * Instance - Where a pointer to the table instance no. is
|
|
||||||
+ * returned
|
|
||||||
+ * Address - Where the table physical address is returned
|
|
||||||
+ *
|
|
||||||
+ * RETURN: Status; Table buffer and physical address returned if AE_OK.
|
|
||||||
+ * AE_LIMIT: Index is beyond valid limit
|
|
||||||
+ *
|
|
||||||
+ * DESCRIPTION: Get an ACPI table via an index value (0 through n). Returns
|
|
||||||
+ * AE_LIMIT when an invalid index is reached. Index is not
|
|
||||||
+ * necessarily an index into the RSDT/XSDT.
|
|
||||||
+ *
|
|
||||||
+ *****************************************************************************/
|
|
||||||
+
|
|
||||||
+ACPI_STATUS
|
|
||||||
+AcpiOsGetTableByIndex (
|
|
||||||
+ UINT32 Index,
|
|
||||||
+ ACPI_TABLE_HEADER **Table,
|
|
||||||
+ UINT32 *Instance,
|
|
||||||
+ ACPI_PHYSICAL_ADDRESS *Address)
|
|
||||||
+{
|
|
||||||
+ OSL_TABLE_INFO *Info;
|
|
||||||
+ ACPI_STATUS Status;
|
|
||||||
+ UINT32 i;
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ /* Get main ACPI tables from memory on first invocation of this function */
|
|
||||||
+
|
|
||||||
+ Status = OslTableInitialize ();
|
|
||||||
+ if (ACPI_FAILURE (Status))
|
|
||||||
+ {
|
|
||||||
+ return (Status);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Validate Index */
|
|
||||||
+
|
|
||||||
+ if (Index >= Gbl_TableCount)
|
|
||||||
+ {
|
|
||||||
+ return (AE_LIMIT);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Point to the table list entry specified by the Index argument */
|
|
||||||
+
|
|
||||||
+ Info = Gbl_TableListHead;
|
|
||||||
+ for (i = 0; i < Index; i++)
|
|
||||||
+ {
|
|
||||||
+ Info = Info->Next;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Now we can just get the table via the signature */
|
|
||||||
+
|
|
||||||
+ Status = AcpiOsGetTableByName (Info->Signature, Info->Instance,
|
|
||||||
+ Table, Address);
|
|
||||||
+
|
|
||||||
+ if (ACPI_SUCCESS (Status))
|
|
||||||
+ {
|
|
||||||
+ *Instance = Info->Instance;
|
|
||||||
+ }
|
|
||||||
+ return (Status);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/******************************************************************************
|
|
||||||
+ *
|
|
||||||
+ * FUNCTION: OslTableInitialize
|
|
||||||
+ *
|
|
||||||
+ * PARAMETERS: None
|
|
||||||
+ *
|
|
||||||
+ * RETURN: Status
|
|
||||||
+ *
|
|
||||||
+ * DESCRIPTION: Initialize ACPI table data. Get and store main ACPI tables to
|
|
||||||
+ * local variables. Main ACPI tables include RSDT, FADT, RSDT,
|
|
||||||
+ * and/or XSDT.
|
|
||||||
+ *
|
|
||||||
+ *****************************************************************************/
|
|
||||||
+
|
|
||||||
+static ACPI_STATUS
|
|
||||||
+OslTableInitialize (
|
|
||||||
+ void)
|
|
||||||
+{
|
|
||||||
+ ACPI_STATUS Status;
|
|
||||||
+
|
|
||||||
+ if (Gbl_TableListInitialized)
|
|
||||||
+ {
|
|
||||||
+ return (AE_OK);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Add all tables found in the static directory */
|
|
||||||
+
|
|
||||||
+ Status = OslListAcpiTables (STATIC_TABLE_DIR);
|
|
||||||
+ if (ACPI_FAILURE (Status))
|
|
||||||
+ {
|
|
||||||
+ return (Status);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (Gbl_DumpDynamicTables)
|
|
||||||
+ {
|
|
||||||
+ /* Add all dynamically loaded tables in the dynamic directory */
|
|
||||||
+
|
|
||||||
+ Status = OslListAcpiTables (DYNAMIC_TABLE_DIR);
|
|
||||||
+ if (ACPI_FAILURE (Status))
|
|
||||||
+ {
|
|
||||||
+ return (Status);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ Gbl_TableListInitialized = TRUE;
|
|
||||||
+ return (AE_OK);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/******************************************************************************
|
|
||||||
+ *
|
|
||||||
+ * FUNCTION: OslListAcpiTables
|
|
||||||
+ *
|
|
||||||
+ * PARAMETERS: Directory - Directory that contains the tables
|
|
||||||
+ *
|
|
||||||
+ * RETURN: Status; Table list is initialized if AE_OK.
|
|
||||||
+ *
|
|
||||||
+ * DESCRIPTION: Add ACPI tables to the table list from a directory.
|
|
||||||
+ *
|
|
||||||
+ *****************************************************************************/
|
|
||||||
+
|
|
||||||
+static ACPI_STATUS
|
|
||||||
+OslListAcpiTables (
|
|
||||||
+ char *Directory)
|
|
||||||
+{
|
|
||||||
+ void *TableDir;
|
|
||||||
+ UINT32 Instance;
|
|
||||||
+ char TempName[ACPI_NAME_SIZE];
|
|
||||||
+ char *Filename;
|
|
||||||
+ ACPI_STATUS Status = AE_OK;
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ /* Open the requested directory */
|
|
||||||
+
|
|
||||||
+ TableDir = AcpiOsOpenDirectory (Directory, "*", REQUEST_FILE_ONLY);
|
|
||||||
+ if (!TableDir)
|
|
||||||
+ {
|
|
||||||
+ return (OslGetLastStatus (AE_NOT_FOUND));
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Examine all entries in this directory */
|
|
||||||
+
|
|
||||||
+ while ((Filename = AcpiOsGetNextFilename (TableDir)))
|
|
||||||
+ {
|
|
||||||
+ /* Extract table name and instance number */
|
|
||||||
+
|
|
||||||
+ Status = OslTableNameFromFile (Filename, TempName, &Instance);
|
|
||||||
+
|
|
||||||
+ /* Ignore meaningless files */
|
|
||||||
+
|
|
||||||
+ if (ACPI_FAILURE (Status))
|
|
||||||
+ {
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Add new info node to global table list */
|
|
||||||
+
|
|
||||||
+ Status = OslAddTableToList (TempName, Instance);
|
|
||||||
+ if (ACPI_FAILURE (Status))
|
|
||||||
+ {
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ AcpiOsCloseDirectory (TableDir);
|
|
||||||
+ return (Status);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/******************************************************************************
|
|
||||||
+ *
|
|
||||||
+ * FUNCTION: OslTableNameFromFile
|
|
||||||
+ *
|
|
||||||
+ * PARAMETERS: Filename - File that contains the desired table
|
|
||||||
+ * Signature - Pointer to 4-character buffer to store
|
|
||||||
+ * extracted table signature.
|
|
||||||
+ * Instance - Pointer to integer to store extracted
|
|
||||||
+ * table instance number.
|
|
||||||
+ *
|
|
||||||
+ * RETURN: Status; Table name is extracted if AE_OK.
|
|
||||||
+ *
|
|
||||||
+ * DESCRIPTION: Extract table signature and instance number from a table file
|
|
||||||
+ * name.
|
|
||||||
+ *
|
|
||||||
+ *****************************************************************************/
|
|
||||||
+
|
|
||||||
+static ACPI_STATUS
|
|
||||||
+OslTableNameFromFile (
|
|
||||||
+ char *Filename,
|
|
||||||
+ char *Signature,
|
|
||||||
+ UINT32 *Instance)
|
|
||||||
+{
|
|
||||||
+
|
|
||||||
+ /* Ignore meaningless files */
|
|
||||||
+
|
|
||||||
+ if (strlen (Filename) < ACPI_NAME_SIZE)
|
|
||||||
+ {
|
|
||||||
+ return (AE_BAD_SIGNATURE);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Extract instance number */
|
|
||||||
+
|
|
||||||
+ if (isdigit ((int) Filename[ACPI_NAME_SIZE]))
|
|
||||||
+ {
|
|
||||||
+ sscanf (&Filename[ACPI_NAME_SIZE], "%u", Instance);
|
|
||||||
+ }
|
|
||||||
+ else if (strlen (Filename) != ACPI_NAME_SIZE)
|
|
||||||
+ {
|
|
||||||
+ return (AE_BAD_SIGNATURE);
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ *Instance = 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Extract signature */
|
|
||||||
+
|
|
||||||
+ ACPI_MOVE_NAME (Signature, Filename);
|
|
||||||
+ return (AE_OK);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/******************************************************************************
|
|
||||||
+ *
|
|
||||||
+ * FUNCTION: OslReadTableFromFile
|
|
||||||
+ *
|
|
||||||
+ * PARAMETERS: Filename - File that contains the desired table
|
|
||||||
+ * FileOffset - Offset of the table in file
|
|
||||||
+ * Signature - Optional ACPI Signature for desired table.
|
|
||||||
+ * A null terminated 4-character string.
|
|
||||||
+ * Table - Where a pointer to the table is returned
|
|
||||||
+ *
|
|
||||||
+ * RETURN: Status; Table buffer is returned if AE_OK.
|
|
||||||
+ *
|
|
||||||
+ * DESCRIPTION: Read a ACPI table from a file.
|
|
||||||
+ *
|
|
||||||
+ *****************************************************************************/
|
|
||||||
+
|
|
||||||
+static ACPI_STATUS
|
|
||||||
+OslReadTableFromFile (
|
|
||||||
+ char *Filename,
|
|
||||||
+ ACPI_SIZE FileOffset,
|
|
||||||
+ char *Signature,
|
|
||||||
+ ACPI_TABLE_HEADER **Table)
|
|
||||||
+{
|
|
||||||
+ FILE *TableFile;
|
|
||||||
+ ACPI_TABLE_HEADER Header;
|
|
||||||
+ ACPI_TABLE_HEADER *LocalTable = NULL;
|
|
||||||
+ UINT32 TableLength;
|
|
||||||
+ INT32 Count;
|
|
||||||
+ ACPI_STATUS Status = AE_OK;
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ /* Open the file */
|
|
||||||
+
|
|
||||||
+ TableFile = fopen (Filename, "rb");
|
|
||||||
+ if (TableFile == NULL)
|
|
||||||
+ {
|
|
||||||
+ fprintf (stderr, "Could not open table file: %s\n", Filename);
|
|
||||||
+ return (OslGetLastStatus (AE_NOT_FOUND));
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ fseek (TableFile, FileOffset, SEEK_SET);
|
|
||||||
+
|
|
||||||
+ /* Read the Table header to get the table length */
|
|
||||||
+
|
|
||||||
+ Count = fread (&Header, 1, sizeof (ACPI_TABLE_HEADER), TableFile);
|
|
||||||
+ if (Count != sizeof (ACPI_TABLE_HEADER))
|
|
||||||
+ {
|
|
||||||
+ fprintf (stderr, "Could not read table header: %s\n", Filename);
|
|
||||||
+ Status = AE_BAD_HEADER;
|
|
||||||
+ goto Exit;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* If signature is specified, it must match the table */
|
|
||||||
+
|
|
||||||
+ if (Signature)
|
|
||||||
+ {
|
|
||||||
+ if (ACPI_VALIDATE_RSDP_SIG (Signature))
|
|
||||||
+ {
|
|
||||||
+ if (!ACPI_VALIDATE_RSDP_SIG (Header.Signature)) {
|
|
||||||
+ fprintf (stderr, "Incorrect RSDP signature: found %8.8s\n",
|
|
||||||
+ Header.Signature);
|
|
||||||
+ Status = AE_BAD_SIGNATURE;
|
|
||||||
+ goto Exit;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ else if (!ACPI_COMPARE_NAME (Signature, Header.Signature))
|
|
||||||
+ {
|
|
||||||
+ fprintf (stderr, "Incorrect signature: Expecting %4.4s, found %4.4s\n",
|
|
||||||
+ Signature, Header.Signature);
|
|
||||||
+ Status = AE_BAD_SIGNATURE;
|
|
||||||
+ goto Exit;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ TableLength = ApGetTableLength (&Header);
|
|
||||||
+ if (TableLength == 0)
|
|
||||||
+ {
|
|
||||||
+ Status = AE_BAD_HEADER;
|
|
||||||
+ goto Exit;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Read the entire table into a local buffer */
|
|
||||||
+
|
|
||||||
+ LocalTable = calloc (1, TableLength);
|
|
||||||
+ if (!LocalTable)
|
|
||||||
+ {
|
|
||||||
+ fprintf (stderr,
|
|
||||||
+ "%4.4s: Could not allocate buffer for table of length %X\n",
|
|
||||||
+ Header.Signature, TableLength);
|
|
||||||
+ Status = AE_NO_MEMORY;
|
|
||||||
+ goto Exit;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ fseek (TableFile, FileOffset, SEEK_SET);
|
|
||||||
+
|
|
||||||
+ Count = fread (LocalTable, 1, TableLength, TableFile);
|
|
||||||
+ if (Count != TableLength)
|
|
||||||
+ {
|
|
||||||
+ fprintf (stderr, "%4.4s: Could not read table content\n",
|
|
||||||
+ Header.Signature);
|
|
||||||
+ Status = AE_INVALID_TABLE_LENGTH;
|
|
||||||
+ goto Exit;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Validate checksum */
|
|
||||||
+
|
|
||||||
+ (void) ApIsValidChecksum (LocalTable);
|
|
||||||
+
|
|
||||||
+Exit:
|
|
||||||
+ fclose (TableFile);
|
|
||||||
+ *Table = LocalTable;
|
|
||||||
+ return (Status);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+/******************************************************************************
|
|
||||||
+ *
|
|
||||||
+ * FUNCTION: OslGetAcpiTable
|
|
||||||
+ *
|
|
||||||
+ * PARAMETERS: Pathname - Directory to find Linux ACPI table
|
|
||||||
+ * Signature - ACPI Signature for desired table. Must be
|
|
||||||
+ * a null terminated 4-character string.
|
|
||||||
+ * Instance - Multiple table support for SSDT/UEFI (0...n)
|
|
||||||
+ * Must be 0 for other tables.
|
|
||||||
+ * Table - Where a pointer to the table is returned
|
|
||||||
+ * Address - Where the table physical address is returned
|
|
||||||
+ *
|
|
||||||
+ * RETURN: Status; Table buffer is returned if AE_OK.
|
|
||||||
+ * AE_LIMIT: Instance is beyond valid limit
|
|
||||||
+ * AE_NOT_FOUND: A table with the signature was not found
|
|
||||||
+ *
|
|
||||||
+ * DESCRIPTION: Get an OS ACPI table.
|
|
||||||
+ *
|
|
||||||
+ *****************************************************************************/
|
|
||||||
+
|
|
||||||
+static ACPI_STATUS
|
|
||||||
+OslGetAcpiTable (
|
|
||||||
+ char *Pathname,
|
|
||||||
+ char *Signature,
|
|
||||||
+ UINT32 Instance,
|
|
||||||
+ ACPI_TABLE_HEADER **Table,
|
|
||||||
+ ACPI_PHYSICAL_ADDRESS *Address)
|
|
||||||
+{
|
|
||||||
+ void *TableDir;
|
|
||||||
+ UINT32 CurrentInstance = 0;
|
|
||||||
+ char TempName[ACPI_NAME_SIZE];
|
|
||||||
+ char TableFilename[PATH_MAX];
|
|
||||||
+ char *Filename;
|
|
||||||
+ ACPI_STATUS Status;
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ /* Open the directory for ACPI tables */
|
|
||||||
+
|
|
||||||
+ TableDir = AcpiOsOpenDirectory (Pathname, "*", REQUEST_FILE_ONLY);
|
|
||||||
+ if (!TableDir)
|
|
||||||
+ {
|
|
||||||
+ return (OslGetLastStatus (AE_NOT_FOUND));
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Attempt to find the table in the directory */
|
|
||||||
+
|
|
||||||
+ while ((Filename = AcpiOsGetNextFilename (TableDir)))
|
|
||||||
+ {
|
|
||||||
+ /* Ignore meaningless files */
|
|
||||||
+
|
|
||||||
+ if (!ACPI_COMPARE_NAME (Filename, Signature))
|
|
||||||
+ {
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Extract table name and instance number */
|
|
||||||
+
|
|
||||||
+ Status = OslTableNameFromFile (Filename, TempName, &CurrentInstance);
|
|
||||||
+
|
|
||||||
+ /* Ignore meaningless files */
|
|
||||||
+
|
|
||||||
+ if (ACPI_FAILURE (Status) || CurrentInstance != Instance)
|
|
||||||
+ {
|
|
||||||
+ continue;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* Create the table pathname */
|
|
||||||
+
|
|
||||||
+ if (Instance != 0)
|
|
||||||
+ {
|
|
||||||
+ sprintf (TableFilename, "%s/%4.4s%d", Pathname, TempName, Instance);
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ sprintf (TableFilename, "%s/%4.4s", Pathname, TempName);
|
|
||||||
+ }
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ AcpiOsCloseDirectory (TableDir);
|
|
||||||
+
|
|
||||||
+ if (!Filename)
|
|
||||||
+ {
|
|
||||||
+ return (AE_LIMIT);
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* There is no physical address saved for ACPI tables, use zero */
|
|
||||||
+
|
|
||||||
+ *Address = 0;
|
|
||||||
+ Status = OslReadTableFromFile (TableFilename, 0, NULL, Table);
|
|
||||||
+
|
|
||||||
+ return (Status);
|
|
||||||
+}
|
|
@ -1,33 +0,0 @@
|
|||||||
diff -Naur acpica-unix2-20150515.orig/source/components/disassembler/dmcstyle.c acpica-unix2-20150515/source/components/disassembler/dmcstyle.c
|
|
||||||
--- acpica-unix2-20150515.orig/source/components/disassembler/dmcstyle.c 2015-06-01 14:32:51.769218887 -0600
|
|
||||||
+++ acpica-unix2-20150515/source/components/disassembler/dmcstyle.c 2015-06-01 14:37:38.973898839 -0600
|
|
||||||
@@ -407,7 +407,7 @@
|
|
||||||
{
|
|
||||||
AcpiDmPromoteTarget (Op, Target);
|
|
||||||
|
|
||||||
- if (!Target->Common.OperatorSymbol)
|
|
||||||
+ if (Target && !Target->Common.OperatorSymbol)
|
|
||||||
{
|
|
||||||
Target->Common.OperatorSymbol = " = ";
|
|
||||||
}
|
|
||||||
@@ -425,7 +425,7 @@
|
|
||||||
Target = Child1->Common.Next;
|
|
||||||
AcpiDmPromoteTarget (Op, Target);
|
|
||||||
|
|
||||||
- if (!Target->Common.OperatorSymbol)
|
|
||||||
+ if (Target && !Target->Common.OperatorSymbol)
|
|
||||||
{
|
|
||||||
Target->Common.OperatorSymbol = " = ";
|
|
||||||
}
|
|
||||||
@@ -446,7 +446,10 @@
|
|
||||||
/* Valid target, not a placeholder */
|
|
||||||
|
|
||||||
AcpiDmPromoteTarget (Op, Target);
|
|
||||||
- Target->Common.OperatorSymbol = " = ~";
|
|
||||||
+ if (Target)
|
|
||||||
+ {
|
|
||||||
+ Target->Common.OperatorSymbol = " = ~";
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
Loading…
Reference in New Issue
Block a user