Print this page
update to acpica-unix2-20140114
update to acpica-unix2-20130927
acpica-unix2-20130823
PANKOVs restructure
@@ -3,11 +3,11 @@
* Name: acutils.h -- prototypes for the common (subsystem-wide) procedures
*
*****************************************************************************/
/*
- * Copyright (C) 2000 - 2011, Intel Corp.
+ * Copyright (C) 2000 - 2014, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
@@ -44,14 +44,15 @@
#ifndef _ACUTILS_H
#define _ACUTILS_H
extern const UINT8 AcpiGbl_ResourceAmlSizes[];
+extern const UINT8 AcpiGbl_ResourceAmlSerialBusSizes[];
/* Strings used by the disassembler and debugger resource dump routines */
-#if defined(ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER)
+#if defined(ACPI_DEBUG_OUTPUT) || defined (ACPI_DISASSEMBLER) || defined (ACPI_DEBUGGER)
extern const char *AcpiGbl_BmDecode[];
extern const char *AcpiGbl_ConfigDecode[];
extern const char *AcpiGbl_ConsumeDecode[];
extern const char *AcpiGbl_DecDecode[];
@@ -67,12 +68,71 @@
extern const char *AcpiGbl_ShrDecode[];
extern const char *AcpiGbl_SizDecode[];
extern const char *AcpiGbl_TrsDecode[];
extern const char *AcpiGbl_TtpDecode[];
extern const char *AcpiGbl_TypDecode[];
+extern const char *AcpiGbl_PpcDecode[];
+extern const char *AcpiGbl_IorDecode[];
+extern const char *AcpiGbl_DtsDecode[];
+extern const char *AcpiGbl_CtDecode[];
+extern const char *AcpiGbl_SbtDecode[];
+extern const char *AcpiGbl_AmDecode[];
+extern const char *AcpiGbl_SmDecode[];
+extern const char *AcpiGbl_WmDecode[];
+extern const char *AcpiGbl_CphDecode[];
+extern const char *AcpiGbl_CpoDecode[];
+extern const char *AcpiGbl_DpDecode[];
+extern const char *AcpiGbl_EdDecode[];
+extern const char *AcpiGbl_BpbDecode[];
+extern const char *AcpiGbl_SbDecode[];
+extern const char *AcpiGbl_FcDecode[];
+extern const char *AcpiGbl_PtDecode[];
#endif
+/*
+ * For the iASL compiler case, the output is redirected to stderr so that
+ * any of the various ACPI errors and warnings do not appear in the output
+ * files, for either the compiler or disassembler portions of the tool.
+ */
+#ifdef ACPI_ASL_COMPILER
+
+#include <stdio.h>
+extern FILE *AcpiGbl_OutputFile;
+
+#define ACPI_MSG_REDIRECT_BEGIN \
+ FILE *OutputFile = AcpiGbl_OutputFile; \
+ AcpiOsRedirectOutput (stderr);
+
+#define ACPI_MSG_REDIRECT_END \
+ AcpiOsRedirectOutput (OutputFile);
+
+#else
+/*
+ * non-iASL case - no redirection, nothing to do
+ */
+#define ACPI_MSG_REDIRECT_BEGIN
+#define ACPI_MSG_REDIRECT_END
+#endif
+
+/*
+ * Common error message prefixes
+ */
+#define ACPI_MSG_ERROR "ACPI Error: "
+#define ACPI_MSG_EXCEPTION "ACPI Exception: "
+#define ACPI_MSG_WARNING "ACPI Warning: "
+#define ACPI_MSG_INFO "ACPI: "
+
+#define ACPI_MSG_BIOS_ERROR "ACPI BIOS Error (bug): "
+#define ACPI_MSG_BIOS_WARNING "ACPI BIOS Warning (bug): "
+
+/*
+ * Common message suffix
+ */
+#define ACPI_MSG_SUFFIX \
+ AcpiOsPrintf (" (%8.8X/%s-%u)\n", ACPI_CA_VERSION, ModuleName, LineNumber)
+
+
/* Types for Resource descriptor entries */
#define ACPI_INVALID_RESOURCE 0
#define ACPI_FIXED_LENGTH 1
#define ACPI_VARIABLE_LENGTH 2
@@ -82,11 +142,11 @@
ACPI_STATUS (*ACPI_WALK_AML_CALLBACK) (
UINT8 *Aml,
UINT32 Length,
UINT32 Offset,
UINT8 ResourceIndex,
- void *Context);
+ void **Context);
typedef
ACPI_STATUS (*ACPI_PKG_CALLBACK) (
UINT8 ObjectType,
ACPI_OPERAND_OBJECT *SourceObject,
@@ -100,22 +160,22 @@
UINT32 ObjectSpace;
UINT32 NumPackages;
} ACPI_PKG_INFO;
+/* Object reference counts */
+
#define REF_INCREMENT (UINT16) 0
#define REF_DECREMENT (UINT16) 1
-#define REF_FORCE_DELETE (UINT16) 2
/* AcpiUtDumpBuffer */
#define DB_BYTE_DISPLAY 1
#define DB_WORD_DISPLAY 2
#define DB_DWORD_DISPLAY 4
#define DB_QWORD_DISPLAY 8
-
/*
* utglobal - Global data structures and procedures
*/
ACPI_STATUS
AcpiUtInitGlobals (
@@ -407,21 +467,22 @@
const char *ModuleName,
UINT32 ComponentId,
UINT8 *Ptr);
void
-AcpiUtDumpBuffer (
+AcpiUtDebugDumpBuffer (
UINT8 *Buffer,
UINT32 Count,
UINT32 Display,
- UINT32 componentId);
+ UINT32 ComponentId);
void
-AcpiUtDumpBuffer2 (
+AcpiUtDumpBuffer (
UINT8 *Buffer,
UINT32 Count,
- UINT32 Display);
+ UINT32 Display,
+ UINT32 Offset);
void
AcpiUtReportError (
char *ModuleName,
UINT32 LineNumber);
@@ -493,21 +554,26 @@
* utids - device ID support
*/
ACPI_STATUS
AcpiUtExecute_HID (
ACPI_NAMESPACE_NODE *DeviceNode,
- ACPI_DEVICE_ID **ReturnId);
+ ACPI_PNP_DEVICE_ID **ReturnId);
ACPI_STATUS
AcpiUtExecute_UID (
ACPI_NAMESPACE_NODE *DeviceNode,
- ACPI_DEVICE_ID **ReturnId);
+ ACPI_PNP_DEVICE_ID **ReturnId);
ACPI_STATUS
+AcpiUtExecute_SUB (
+ ACPI_NAMESPACE_NODE *DeviceNode,
+ ACPI_PNP_DEVICE_ID **ReturnId);
+
+ACPI_STATUS
AcpiUtExecute_CID (
ACPI_NAMESPACE_NODE *DeviceNode,
- ACPI_DEVICE_ID_LIST **ReturnCidList);
+ ACPI_PNP_DEVICE_ID_LIST **ReturnCidList);
/*
* utlock - reader/writer locks
*/
@@ -590,11 +656,11 @@
*/
ACPI_STATUS
AcpiUtInitializeInterfaces (
void);
-void
+ACPI_STATUS
AcpiUtInterfaceTerminate (
void);
ACPI_STATUS
AcpiUtInstallInterface (
@@ -602,10 +668,14 @@
ACPI_STATUS
AcpiUtRemoveInterface (
ACPI_STRING InterfaceName);
+ACPI_STATUS
+AcpiUtUpdateInterfaces (
+ UINT8 Action);
+
ACPI_INTERFACE_INFO *
AcpiUtGetInterface (
ACPI_STRING InterfaceName);
ACPI_STATUS
@@ -612,10 +682,42 @@
AcpiUtOsiImplementation (
ACPI_WALK_STATE *WalkState);
/*
+ * utpredef - support for predefined names
+ */
+const ACPI_PREDEFINED_INFO *
+AcpiUtGetNextPredefinedMethod (
+ const ACPI_PREDEFINED_INFO *ThisName);
+
+const ACPI_PREDEFINED_INFO *
+AcpiUtMatchPredefinedMethod (
+ char *Name);
+
+const ACPI_PREDEFINED_INFO *
+AcpiUtMatchResourceName (
+ char *Name);
+
+void
+AcpiUtDisplayPredefinedMethod (
+ char *Buffer,
+ const ACPI_PREDEFINED_INFO *ThisName,
+ BOOLEAN MultiLine);
+
+void
+AcpiUtGetExpectedReturnTypes (
+ char *Buffer,
+ UINT32 ExpectedBtypes);
+
+UINT32
+AcpiUtGetResourceBitWidth (
+ char *Buffer,
+ UINT16 Types);
+
+
+/*
* utstate - Generic state creation/cache routines
*/
void
AcpiUtPushGenericState (
ACPI_GENERIC_STATE **ListHead,
@@ -682,14 +784,15 @@
UINT64 InDividend,
UINT32 Divisor,
UINT64 *OutQuotient,
UINT32 *OutRemainder);
+
/*
* utmisc
*/
-const char *
+const ACPI_EXCEPTION_INFO *
AcpiUtValidateException (
ACPI_STATUS Status);
BOOLEAN
AcpiUtIsPciRootBridge (
@@ -698,56 +801,17 @@
BOOLEAN
AcpiUtIsAmlTable (
ACPI_TABLE_HEADER *Table);
ACPI_STATUS
-AcpiUtAllocateOwnerId (
- ACPI_OWNER_ID *OwnerId);
-
-void
-AcpiUtReleaseOwnerId (
- ACPI_OWNER_ID *OwnerId);
-
-ACPI_STATUS
AcpiUtWalkPackageTree (
ACPI_OPERAND_OBJECT *SourceObject,
void *TargetObject,
ACPI_PKG_CALLBACK WalkCallback,
void *Context);
-void
-AcpiUtStrupr (
- char *SrcString);
-void
-AcpiUtStrlwr (
- char *SrcString);
-
-void
-AcpiUtPrintString (
- char *String,
- UINT8 MaxLength);
-
-BOOLEAN
-AcpiUtValidAcpiName (
- UINT32 Name);
-
-void
-AcpiUtRepairName (
- char *Name);
-
-BOOLEAN
-AcpiUtValidAcpiChar (
- char Character,
- UINT32 Position);
-
-ACPI_STATUS
-AcpiUtStrtoul64 (
- char *String,
- UINT32 Base,
- UINT64 *RetInteger);
-
/* Values for Base above (16=Hex, 10=Decimal) */
#define ACPI_ANY_BASE 0
UINT32
@@ -766,21 +830,35 @@
char *Path);
#endif
/*
+ * utownerid - Support for Table/Method Owner IDs
+ */
+ACPI_STATUS
+AcpiUtAllocateOwnerId (
+ ACPI_OWNER_ID *OwnerId);
+
+void
+AcpiUtReleaseOwnerId (
+ ACPI_OWNER_ID *OwnerId);
+
+
+/*
* utresrc
*/
ACPI_STATUS
AcpiUtWalkAmlResources (
+ ACPI_WALK_STATE *WalkState,
UINT8 *Aml,
ACPI_SIZE AmlLength,
ACPI_WALK_AML_CALLBACK UserFunction,
- void *Context);
+ void **Context);
ACPI_STATUS
AcpiUtValidateResource (
+ ACPI_WALK_STATE *WalkState,
void *Aml,
UINT8 *ReturnIndex);
UINT32
AcpiUtGetDescriptorLength (
@@ -803,10 +881,76 @@
ACPI_OPERAND_OBJECT *ObjDesc,
UINT8 **EndTag);
/*
+ * utstring - String and character utilities
+ */
+void
+AcpiUtStrupr (
+ char *SrcString);
+
+void
+AcpiUtStrlwr (
+ char *SrcString);
+
+int
+AcpiUtStricmp (
+ char *String1,
+ char *String2);
+
+ACPI_STATUS
+AcpiUtStrtoul64 (
+ char *String,
+ UINT32 Base,
+ UINT64 *RetInteger);
+
+void
+AcpiUtPrintString (
+ char *String,
+ UINT16 MaxLength);
+
+void
+UtConvertBackslashes (
+ char *Pathname);
+
+BOOLEAN
+AcpiUtValidAcpiName (
+ char *Name);
+
+BOOLEAN
+AcpiUtValidAcpiChar (
+ char Character,
+ UINT32 Position);
+
+void
+AcpiUtRepairName (
+ char *Name);
+
+#if defined (ACPI_DEBUGGER) || defined (ACPI_APPLICATION)
+BOOLEAN
+AcpiUtSafeStrcpy (
+ char *Dest,
+ ACPI_SIZE DestSize,
+ char *Source);
+
+BOOLEAN
+AcpiUtSafeStrcat (
+ char *Dest,
+ ACPI_SIZE DestSize,
+ char *Source);
+
+BOOLEAN
+AcpiUtSafeStrncat (
+ char *Dest,
+ ACPI_SIZE DestSize,
+ char *Source,
+ ACPI_SIZE MaxTransferLength);
+#endif
+
+
+/*
* utmutex - mutex support
*/
ACPI_STATUS
AcpiUtMutexInitialize (
void);
@@ -842,24 +986,10 @@
ACPI_STATUS
AcpiUtInitializeBuffer (
ACPI_BUFFER *Buffer,
ACPI_SIZE RequiredLength);
-void *
-AcpiUtAllocate (
- ACPI_SIZE Size,
- UINT32 Component,
- const char *Module,
- UINT32 Line);
-
-void *
-AcpiUtAllocateZeroed (
- ACPI_SIZE Size,
- UINT32 Component,
- const char *Module,
- UINT32 Line);
-
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
void *
AcpiUtAllocateAndTrack (
ACPI_SIZE Size,
UINT32 Component,
@@ -895,11 +1025,36 @@
UINT16 ObjectSize,
ACPI_MEMORY_LIST **ReturnCache);
#endif /* ACPI_DBG_TRACK_ALLOCATIONS */
+/*
+ * utaddress - address range check
+ */
+ACPI_STATUS
+AcpiUtAddAddressRange (
+ ACPI_ADR_SPACE_TYPE SpaceId,
+ ACPI_PHYSICAL_ADDRESS Address,
+ UINT32 Length,
+ ACPI_NAMESPACE_NODE *RegionNode);
+void
+AcpiUtRemoveAddressRange (
+ ACPI_ADR_SPACE_TYPE SpaceId,
+ ACPI_NAMESPACE_NODE *RegionNode);
+
+UINT32
+AcpiUtCheckAddressRange (
+ ACPI_ADR_SPACE_TYPE SpaceId,
+ ACPI_PHYSICAL_ADDRESS Address,
+ UINT32 Length,
+ BOOLEAN Warn);
+
+void
+AcpiUtDeleteAddressLists (
+ void);
+
/*
* utxferror - various error/warning output functions
*/
void ACPI_INTERNAL_VAR_XFACE
AcpiUtPredefinedWarning (
@@ -912,10 +1067,19 @@
void ACPI_INTERNAL_VAR_XFACE
AcpiUtPredefinedInfo (
const char *ModuleName,
UINT32 LineNumber,
+ char *Pathname,
+ UINT8 NodeFlags,
+ const char *Format,
+ ...);
+
+void ACPI_INTERNAL_VAR_XFACE
+AcpiUtPredefinedBiosError (
+ const char *ModuleName,
+ UINT32 LineNumber,
char *Pathname,
UINT8 NodeFlags,
const char *Format,
...);