Forgot to remove several patches that are no longer needed.

Signed-off-by: Al Stone <ahs3@redhat.com>
This commit is contained in:
Al Stone 2015-06-30 16:17:06 -06:00
parent 702e10de46
commit 8394543552
5 changed files with 4 additions and 888 deletions

View File

@ -1,6 +1,6 @@
Name: acpica-tools
Version: 20150619
Release: 1%{?dist}
Release: 2%{?dist}
Summary: ACPICA tools for the development and debug of ACPI tables
Group: Development/Languages
@ -195,6 +195,9 @@ fi
%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
- Update to latest upstream. Closes BZ#1232512.
- Refresh patches

View File

@ -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__ */

View File

@ -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

View File

@ -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);
+}

View File

@ -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
{