Vendor import of the Intel ACPI CA 20010717 snapshot.

This commit is contained in:
Mike Smith 2001-07-21 03:55:17 +00:00
parent 2e5c56cb6b
commit 9d5c013ca4
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/vendor-sys/acpica/dist/; revision=80062
82 changed files with 1357 additions and 1438 deletions

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acconfig.h - Global configuration constants
* $Revision: 65 $
* $Revision: 66 $
*
*****************************************************************************/
@ -144,7 +144,7 @@
/* Version string */
#define ACPI_CA_VERSION 0x20010615
#define ACPI_CA_VERSION 0x20010717
/* Maximum objects in the various object caches */

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acenv.h - Generation environment specific items
* $Revision: 75 $
* $Revision: 76 $
*
*****************************************************************************/
@ -153,7 +153,7 @@
*/
#ifdef ACPI_DEBUG
#ifndef _IA16
#define ACPI_DEBUG_TRACK_ALLOCATIONS
#define ACPI_DBG_TRACK_ALLOCATIONS
#endif
#endif

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acexcep.h - Exception codes returned by the ACPI subsystem
* $Revision: 46 $
* $Revision: 49 $
*
*****************************************************************************/
@ -244,7 +244,7 @@
* String versions of the exception codes above
* These strings must match the corresponding defines exactly
*/
static NATIVE_CHAR *AcpiGbl_ExceptionNames_Env[] =
NATIVE_CHAR *AcpiGbl_ExceptionNames_Env[] =
{
"AE_OK",
"AE_ERROR",
@ -275,7 +275,7 @@ static NATIVE_CHAR *AcpiGbl_ExceptionNames_Env[] =
"AE_NO_GLOBAL_LOCK",
};
static NATIVE_CHAR *AcpiGbl_ExceptionNames_Pgm[] =
NATIVE_CHAR *AcpiGbl_ExceptionNames_Pgm[] =
{
"AE_BAD_PARAMETER",
"AE_BAD_CHARACTER",
@ -284,7 +284,7 @@ static NATIVE_CHAR *AcpiGbl_ExceptionNames_Pgm[] =
"AE_BAD_ADDRESS",
};
static NATIVE_CHAR *AcpiGbl_ExceptionNames_Tbl[] =
NATIVE_CHAR *AcpiGbl_ExceptionNames_Tbl[] =
{
"AE_BAD_SIGNATURE",
"AE_BAD_HEADER",
@ -292,7 +292,7 @@ static NATIVE_CHAR *AcpiGbl_ExceptionNames_Tbl[] =
"AE_BAD_VALUE",
};
static NATIVE_CHAR *AcpiGbl_ExceptionNames_Aml[] =
NATIVE_CHAR *AcpiGbl_ExceptionNames_Aml[] =
{
"AE_AML_ERROR",
"AE_AML_PARSE",
@ -321,7 +321,7 @@ static NATIVE_CHAR *AcpiGbl_ExceptionNames_Aml[] =
"AE_AML_INVALID_RESOURCE_TYPE",
};
static NATIVE_CHAR *AcpiGbl_ExceptionNames_Ctrl[] =
NATIVE_CHAR *AcpiGbl_ExceptionNames_Ctrl[] =
{
"AE_CTRL_RETURN_VALUE",
"AE_CTRL_PENDING",
@ -333,8 +333,7 @@ static NATIVE_CHAR *AcpiGbl_ExceptionNames_Ctrl[] =
"AE_CTRL_TRANSFER",
};
#endif /* DEFINE_ACPI_GLOBALS */
#endif /* ACPI GLOBALS */
#endif /* __ACEXCEP_H__ */

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acglobal.h - Declarations for global variables
* $Revision: 101 $
* $Revision: 102 $
*
*****************************************************************************/
@ -309,15 +309,6 @@ ACPI_EXTERN UINT8 AcpiGbl_CmSingleStep;
ACPI_EXTERN ACPI_PARSE_OBJECT *AcpiGbl_ParsedNamespaceRoot;
/*****************************************************************************
*
* Hardware globals
*
****************************************************************************/
extern ACPI_C_STATE_HANDLER AcpiHwCxHandlers[MAX_CX_STATES];
extern UINT32 AcpiHwActiveCxState;
/*****************************************************************************
*

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acinterp.h - Interpreter subcomponent prototypes and defines
* $Revision: 102 $
* $Revision: 105 $
*
*****************************************************************************/
@ -166,17 +166,21 @@ AcpiExExecuteMethod (
ACPI_STATUS
AcpiExConvertToInteger (
ACPI_OPERAND_OBJECT **ObjDesc,
ACPI_OPERAND_OBJECT *ObjDesc,
ACPI_OPERAND_OBJECT **ResultDesc,
ACPI_WALK_STATE *WalkState);
ACPI_STATUS
AcpiExConvertToBuffer (
ACPI_OPERAND_OBJECT **ObjDesc,
ACPI_OPERAND_OBJECT *ObjDesc,
ACPI_OPERAND_OBJECT **ResultDesc,
ACPI_WALK_STATE *WalkState);
ACPI_STATUS
AcpiExConvertToString (
ACPI_OPERAND_OBJECT **ObjDesc,
ACPI_OPERAND_OBJECT *ObjDesc,
ACPI_OPERAND_OBJECT **ResultDesc,
UINT32 MaxLength,
ACPI_WALK_STATE *WalkState);
ACPI_STATUS
@ -264,6 +268,18 @@ AcpiExWriteDataToField (
* ammisc - ACPI AML (p-code) execution - specific opcodes
*/
ACPI_STATUS
AcpiExTriadic (
UINT16 Opcode,
ACPI_WALK_STATE *WalkState,
ACPI_OPERAND_OBJECT **ReturnDesc);
ACPI_STATUS
AcpiExHexadic (
UINT16 Opcode,
ACPI_WALK_STATE *WalkState,
ACPI_OPERAND_OBJECT **ReturnDesc);
ACPI_STATUS
AcpiExCreateBufferField (
UINT8 *AmlPtr,
@ -276,20 +292,6 @@ AcpiExReconfiguration (
UINT16 Opcode,
ACPI_WALK_STATE *WalkState);
ACPI_STATUS
AcpiExFatal (
ACPI_WALK_STATE *WalkState);
ACPI_STATUS
AcpiExIndex (
ACPI_WALK_STATE *WalkState,
ACPI_OPERAND_OBJECT **ReturnDesc);
ACPI_STATUS
AcpiExMatch (
ACPI_WALK_STATE *WalkState,
ACPI_OPERAND_OBJECT **ReturnDesc);
ACPI_STATUS
AcpiExCreateMutex (
ACPI_WALK_STATE *WalkState);

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: aclocal.h - Internal data types used across the ACPI subsystem
* $Revision: 123 $
* $Revision: 124 $
*
*****************************************************************************/
@ -723,22 +723,7 @@ typedef struct acpi_parse_state
/* PCI */
#define PCI_ROOT_HID_STRING "PNP0A03"
#define PCI_ROOT_HID_VALUE 0x030AD041 /* EISAID("PNP0A03") */
/* Sleep states */
#define SLWA_DEBUG_LEVEL 4
#define GTS_CALL 0
#define GTS_WAKE 1
/* Cx States */
#define MAX_CX_STATE_LATENCY 0xFFFFFFFF
#define MAX_CX_STATES 4
/*
* The #define's and enum below establish an abstract way of identifying what

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acmacros.h - C macros for the entire subsystem.
* $Revision: 72 $
* $Revision: 80 $
*
*****************************************************************************/
@ -117,18 +117,11 @@
#ifndef __ACMACROS_H__
#define __ACMACROS_H__
/*
* Data manipulation macros
*/
#ifndef LODWORD
#define LODWORD(l) ((UINT32)(UINT64)(l))
#endif
#ifndef HIDWORD
#define HIDWORD(l) ((UINT32)((((UINT64)(l)) >> 32) & 0xFFFFFFFF))
#endif
#ifndef LOWORD
#define LOWORD(l) ((UINT16)(NATIVE_UINT)(l))
#endif
@ -167,6 +160,14 @@
* For 16-bit addresses, we have to assume that the upper 32 bits
* are zero.
*/
#ifndef LODWORD
#define LODWORD(l) (l)
#endif
#ifndef HIDWORD
#define HIDWORD(l) (0)
#endif
#define ACPI_GET_ADDRESS(a) ((a).Lo)
#define ACPI_STORE_ADDRESS(a,b) {(a).Hi=0;(a).Lo=(b);}
#define ACPI_VALID_ADDRESS(a) ((a).Hi | (a).Lo)
@ -175,6 +176,14 @@
/*
* Full 64-bit address on 32-bit and 64-bit platforms
*/
#ifndef LODWORD
#define LODWORD(l) ((UINT32)(UINT64)(l))
#endif
#ifndef HIDWORD
#define HIDWORD(l) ((UINT32)((((UINT64)(l)) >> 32) & 0xFFFFFFFF))
#endif
#define ACPI_GET_ADDRESS(a) (a)
#define ACPI_STORE_ADDRESS(a,b) ((a)=(b))
#define ACPI_VALID_ADDRESS(a) (a)
@ -269,7 +278,6 @@
/*
* Rounding macros (Power of two boundaries only)
*/
#define ROUND_DOWN(value,boundary) ((value) & (~((boundary)-1)))
#define ROUND_UP(value,boundary) (((value) + ((boundary)-1)) & (~((boundary)-1)))
@ -299,32 +307,30 @@
* MASK_BITS_ABOVE creates a mask starting AT the position and above
* MASK_BITS_BELOW creates a mask starting one bit BELOW the position
*/
#define MASK_BITS_ABOVE(position) (~(((UINT32)(-1)) << ((UINT32) (position))))
#define MASK_BITS_BELOW(position) (((UINT32)(-1)) << ((UINT32) (position)))
#ifdef DEBUG_ASSERT
#undef DEBUG_ASSERT
#endif
/* Macros for GAS addressing */
#ifndef _IA16
#define ACPI_PCI_DEVICE_MASK (UINT64) 0x0000FFFF00000000
#define ACPI_PCI_FUNCTION_MASK (UINT64) 0x00000000FFFF0000
#define ACPI_PCI_REGISTER_MASK (UINT64) 0x000000000000FFFF
#define ACPI_PCI_FUNCTION(a) (UINT32) ((((a) & ACPI_PCI_FUNCTION_MASK) >> 16))
#define ACPI_PCI_DEVICE(a) (UINT32) ((((a) & ACPI_PCI_DEVICE_MASK) >> 32))
#ifndef _IA16
#define ACPI_PCI_REGISTER(a) (UINT32) (((a) & ACPI_PCI_REGISTER_MASK))
#define ACPI_PCI_DEVFUN(a) (UINT32) ((ACPI_PCI_DEVICE(a) << 16) | ACPI_PCI_FUNCTION(a))
#define ACPI_PCI_FUNCTION(a) (UINT16) ((((a) & ACPI_PCI_FUNCTION_MASK) >> 16))
#define ACPI_PCI_DEVICE(a) (UINT16) ((((a) & ACPI_PCI_DEVICE_MASK) >> 32))
#define ACPI_PCI_REGISTER(a) (UINT16) (((a) & ACPI_PCI_REGISTER_MASK))
#else
#define ACPI_PCI_REGISTER(a) (UINT32) (((a) & 0x0000FFFF))
#define ACPI_PCI_DEVFUN(a) (UINT32) ((((a) & 0xFFFF0000) >> 16))
/* No support for GAS and PCI IDs in 16-bit mode */
#define ACPI_PCI_FUNCTION(a) (UINT16) ((a) & 0xFFFF0000)
#define ACPI_PCI_DEVICE(a) (UINT16) ((a) & 0x0000FFFF)
#define ACPI_PCI_REGISTER(a) (UINT16) ((a) & 0x0000FFFF)
#endif
@ -335,7 +341,6 @@
*
* The DataType field is the first field in both structures.
*/
#define VALID_DESCRIPTOR_TYPE(d,t) (((ACPI_NAMESPACE_NODE *)d)->DataType == t)
@ -357,7 +362,6 @@
* as a pointer to an ACPI_TABLE_HEADER. (b+1) then points past the header,
* and ((UINT8 *)b+b->Length) points one byte past the end of the table.
*/
#ifndef _IA16
#define IS_IN_ACPI_TABLE(a,b) (((UINT8 *)(a) >= (UINT8 *)(b + 1)) &&\
((UINT8 *)(a) < ((UINT8 *)b + b->Length)))
@ -371,7 +375,6 @@
/*
* Macros for the master AML opcode table
*/
#ifdef ACPI_DEBUG
#define OP_INFO_ENTRY(Flags,Name,PArgs,IArgs) {Flags,PArgs,IArgs,Name}
#else
@ -526,7 +529,8 @@
#define DUMP_TABLES(a,b) AcpiNsDumpTables(a,b)
#define DUMP_PATHNAME(a,b,c,d) AcpiNsDumpPathname(a,b,c,d)
#define DUMP_RESOURCE_LIST(a) AcpiRsDumpResourceList(a)
#define BREAK_MSG(a) AcpiOsBreakpoint (a)
#define BREAK_MSG(a) AcpiOsSignal (ACPI_SIGNAL_BREAKPOINT,(a))
/*
* Generate INT3 on ACPI_ERROR (Debug only!)
@ -534,7 +538,7 @@
#define ERROR_BREAK
#ifdef ERROR_BREAK
#define BREAK_ON_ERROR(lvl) if ((lvl)&ACPI_ERROR) AcpiOsBreakpoint("Fatal error encountered\n")
#define BREAK_ON_ERROR(lvl) if ((lvl)&ACPI_ERROR) AcpiOsSignal(ACPI_SIGNAL_BREAKPOINT,"Fatal error encountered\n")
#else
#define BREAK_ON_ERROR(lvl)
#endif
@ -563,16 +567,6 @@
#define DEBUG_PRINT_RAW(lvl,fp) TEST_DEBUG_SWITCH(lvl) {\
DebugPrintRaw PARAM_LIST(fp);}
/* Assert macros */
#define ACPI_ASSERT(exp) if(!(exp)) \
AcpiOsDbgAssert(#exp, __FILE__, __LINE__, "Failed Assertion")
#define DEBUG_ASSERT(msg, exp) if(!(exp)) \
AcpiOsDbgAssert(#exp, __FILE__, __LINE__, msg)
#else
/*
* This is the non-debug case -- make everything go away,
@ -611,9 +605,6 @@
#define return_VALUE(s) return(s)
#define return_PTR(s) return(s)
#define ACPI_ASSERT(exp)
#define DEBUG_ASSERT(msg, exp)
#endif
/*
@ -660,12 +651,14 @@
* Memory allocation tracking (DEBUG ONLY)
*/
#ifndef ACPI_DEBUG_TRACK_ALLOCATIONS
#ifndef ACPI_DBG_TRACK_ALLOCATIONS
/* Memory allocation */
#define ACPI_MEM_ALLOCATE(a) AcpiOsAllocate(a)
#define ACPI_MEM_CALLOCATE(a) AcpiOsCallocate(a)
#define ACPI_MEM_FREE(a) AcpiOsFree(a)
#define AcpiUtAddElementToAllocList(a,b,c,d,e,f)
#define AcpiUtDeleteElementFromAllocList(a,b,c,d)
#define AcpiUtDumpCurrentAllocations(a,b)
#define AcpiUtDumpAllocationInfo()
#define DECREMENT_OBJECT_METRICS(a)
#define INCREMENT_OBJECT_METRICS(a)
@ -675,6 +668,12 @@
#else
/* Memory allocation */
#define ACPI_MEM_ALLOCATE(a) AcpiUtAllocate(a,_COMPONENT,_THIS_MODULE,__LINE__)
#define ACPI_MEM_CALLOCATE(a) AcpiUtCallocate(a, _COMPONENT,_THIS_MODULE,__LINE__)
#define ACPI_MEM_FREE(a) AcpiUtFree(a,_COMPONENT,_THIS_MODULE,__LINE__)
#define INITIALIZE_ALLOCATION_METRICS() \
AcpiGbl_CurrentObjectCount = 0; \
AcpiGbl_CurrentObjectSize = 0; \
@ -722,7 +721,7 @@
{ \
AcpiGbl_MaxConcurrentNodeCount = AcpiGbl_CurrentNodeCount; \
}
#endif /* ACPI_DEBUG_TRACK_ALLOCATIONS */
#endif /* ACPI_DBG_TRACK_ALLOCATIONS */
#endif /* ACMACROS_H */

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acoutput.h -- debug output
* $Revision: 78 $
* $Revision: 80 $
*
*****************************************************************************/
@ -137,17 +137,18 @@
#define ACPI_DEBUGGER 0x00000200
#define ACPI_OS_SERVICES 0x00000400
#define ACPI_BUS 0x00001000
#define ACPI_SYSTEM 0x00002000
#define ACPI_POWER 0x00004000
#define ACPI_EC 0x00008000
#define ACPI_AC_ADAPTER 0x00010000
#define ACPI_BATTERY 0x00020000
#define ACPI_BUTTON 0x00040000
#define ACPI_PROCESSOR 0x00080000
#define ACPI_THERMAL 0x00100000
#define ACPI_BUS 0x00010000
#define ACPI_SYSTEM 0x00020000
#define ACPI_POWER 0x00040000
#define ACPI_EC 0x00080000
#define ACPI_AC_ADAPTER 0x00100000
#define ACPI_BATTERY 0x00200000
#define ACPI_BUTTON 0x00400000
#define ACPI_PROCESSOR 0x00800000
#define ACPI_THERMAL 0x01000000
#define ACPI_FAN 0x02000000
#define ACPI_ALL_COMPONENTS 0x00FFFFFF
#define ACPI_ALL_COMPONENTS 0x0FFFFFFF
#define ACPI_COMPONENT_DEFAULT (ACPI_ALL_COMPONENTS)

View File

@ -135,6 +135,20 @@
#define ACPI_MUTEX_SEM 1
/* Functions for AcpiOsSignal */
#define ACPI_SIGNAL_FATAL 0
#define ACPI_SIGNAL_BREAKPOINT 1
typedef struct AcpiFatalInfo
{
UINT32 Type;
UINT32 Code;
UINT32 Argument;
} ACPI_SIGNAL_FATAL_INFO;
/*
* Types specific to the OS service interfaces
*/
@ -160,6 +174,11 @@ ACPI_STATUS
AcpiOsTerminate (
void);
ACPI_STATUS
AcpiOsGetRootPointer (
UINT32 Flags,
ACPI_PHYSICAL_ADDRESS *RsdpPhysicalAddress);
/*
* Synchronization primitives
@ -256,131 +275,70 @@ AcpiOsSleep (
UINT32 Milliseconds);
void
AcpiOsSleepUsec (
AcpiOsStall (
UINT32 Microseconds);
/*
* Platform/Hardware independent I/O interfaces
* Platform and hardware-independent I/O interfaces
*/
UINT8
AcpiOsIn8 (
ACPI_IO_ADDRESS InPort);
ACPI_STATUS
AcpiOsReadPort (
ACPI_IO_ADDRESS Address,
void *Value,
UINT32 Width);
UINT16
AcpiOsIn16 (
ACPI_IO_ADDRESS InPort);
UINT32
AcpiOsIn32 (
ACPI_IO_ADDRESS InPort);
void
AcpiOsOut8 (
ACPI_IO_ADDRESS OutPort,
UINT8 Value);
void
AcpiOsOut16 (
ACPI_IO_ADDRESS OutPort,
UINT16 Value);
void
AcpiOsOut32 (
ACPI_IO_ADDRESS OutPort,
UINT32 Value);
ACPI_STATUS
AcpiOsWritePort (
ACPI_IO_ADDRESS Address,
NATIVE_UINT Value,
UINT32 Width);
/*
* Platform/Hardware independent physical memory interfaces
* Platform and hardware-independent physical memory interfaces
*/
UINT8
AcpiOsMemIn8 (
ACPI_PHYSICAL_ADDRESS InAddr);
ACPI_STATUS
AcpiOsReadMemory (
ACPI_PHYSICAL_ADDRESS Address,
void *Value,
UINT32 Width);
UINT16
AcpiOsMemIn16 (
ACPI_PHYSICAL_ADDRESS InAddr);
UINT32
AcpiOsMemIn32 (
ACPI_PHYSICAL_ADDRESS InAddr);
void
AcpiOsMemOut8 (
ACPI_PHYSICAL_ADDRESS OutAddr,
UINT8 Value);
void
AcpiOsMemOut16 (
ACPI_PHYSICAL_ADDRESS OutAddr,
UINT16 Value);
void
AcpiOsMemOut32 (
ACPI_PHYSICAL_ADDRESS OutAddr,
UINT32 Value);
ACPI_STATUS
AcpiOsWriteMemory (
ACPI_PHYSICAL_ADDRESS Address,
NATIVE_UINT Value,
UINT32 Width);
/*
* Standard access to PCI configuration space
* Platform and hardware-independent PCI configuration space access
*/
ACPI_STATUS
AcpiOsReadPciCfgByte (
UINT32 Bus,
UINT32 DeviceFunction,
AcpiOsReadPciConfiguration (
ACPI_PCI_ID *PciId,
UINT32 Register,
UINT8 *Value);
ACPI_STATUS
AcpiOsReadPciCfgWord (
UINT32 Bus,
UINT32 DeviceFunction,
UINT32 Register,
UINT16 *Value);
ACPI_STATUS
AcpiOsReadPciCfgDword (
UINT32 Bus,
UINT32 DeviceFunction,
UINT32 Register,
UINT32 *Value);
ACPI_STATUS
AcpiOsWritePciCfgByte (
UINT32 Bus,
UINT32 DeviceFunction,
UINT32 Register,
UINT8 Value);
ACPI_STATUS
AcpiOsWritePciCfgWord (
UINT32 Bus,
UINT32 DeviceFunction,
UINT32 Register,
UINT16 Value);
void *Value,
UINT32 Width);
ACPI_STATUS
AcpiOsWritePciCfgDword (
UINT32 Bus,
UINT32 DeviceFunction,
AcpiOsWritePciConfiguration (
ACPI_PCI_ID *PciId,
UINT32 Register,
UINT32 Value);
NATIVE_UINT Value,
UINT32 Width);
/*
* Miscellaneous
*/
ACPI_STATUS
AcpiOsBreakpoint (
NATIVE_CHAR *Message);
BOOLEAN
AcpiOsReadable (
void *Pointer,
@ -396,7 +354,10 @@ UINT32
AcpiOsGetTimer (
void);
ACPI_STATUS
AcpiOsSignal (
UINT32 Function,
void *Info);
/*
* Debug print routines

View File

@ -122,7 +122,7 @@
#include "actbl.h"
/*
/*
* Global interfaces
*/
@ -138,6 +138,10 @@ ACPI_STATUS
AcpiTerminate (
void);
ACPI_STATUS
AcpiSubsystemStatus (
void);
ACPI_STATUS
AcpiEnable (
void);
@ -147,13 +151,12 @@ AcpiDisable (
void);
ACPI_STATUS
AcpiGetSystemInfo(
AcpiGetSystemInfo (
ACPI_BUFFER *RetBuffer);
ACPI_STATUS
const char *
AcpiFormatException (
ACPI_STATUS Exception,
ACPI_BUFFER *OutBuffer);
ACPI_STATUS Exception);
/*
@ -179,11 +182,12 @@ AcpiFree (
ACPI_STATUS
AcpiFindRootPointer (
UINT32 Flags,
ACPI_PHYSICAL_ADDRESS *RsdpPhysicalAddress);
ACPI_STATUS
AcpiLoadTables (
ACPI_PHYSICAL_ADDRESS RsdpPhysicalAddress);
void);
ACPI_STATUS
AcpiLoadTable (

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: actypes.h - Common data types for the entire ACPI subsystem
* $Revision: 180 $
* $Revision: 184 $
*
*****************************************************************************/
@ -281,7 +281,7 @@ typedef UINT64 u64;
*/
typedef UINT32 ACPI_STATUS; /* All ACPI Exceptions */
typedef UINT32 ACPI_NAME; /* 4-INT8 ACPI name */
typedef UINT32 ACPI_NAME; /* 4-byte ACPI name */
typedef char* ACPI_STRING; /* Null terminated ASCII string */
typedef void* ACPI_HANDLE; /* Actually a ptr to an Node */
@ -334,6 +334,10 @@ typedef UINT64 ACPI_INTEGER;
#define ACPI_NO_DEVICE_INIT 0x10
#define ACPI_NO_OBJECT_INIT 0x20
/*
* Initialization state
*/
#define ACPI_INITIALIZED_OK 0x01
/*
* Power state values
@ -347,8 +351,6 @@ typedef UINT64 ACPI_INTEGER;
#define ACPI_STATE_S3 (UINT8) 3
#define ACPI_STATE_S4 (UINT8) 4
#define ACPI_STATE_S5 (UINT8) 5
/* let's pretend S4BIOS didn't exist for now. ASG */
#define ACPI_STATE_S4BIOS (UINT8) 6
#define ACPI_S_STATES_MAX ACPI_STATE_S5
#define ACPI_S_STATE_COUNT 6
@ -676,30 +678,6 @@ typedef struct
#define SYS_MODE_LEGACY 0x0002
#define SYS_MODES_MASK 0x0003
/*
* ACPI CPU Cx state handler
*/
typedef
ACPI_STATUS (*ACPI_SET_C_STATE_HANDLER) (
NATIVE_UINT PblkAddress);
/*
* ACPI Cx State info
*/
typedef struct
{
UINT32 StateNumber;
UINT32 Latency;
} ACPI_CX_STATE;
/*
* ACPI CPU throttling info
*/
typedef struct
{
UINT32 StateNumber;
UINT32 PercentOfClock;
} ACPI_CPU_THROTTLING_STATE;
/*
* ACPI Table Info. One per ACPI table _type_
@ -730,18 +708,6 @@ typedef struct _AcpiSysInfo
} ACPI_SYSTEM_INFO;
/*
* System Initiailization data. This data is passed to ACPIInitialize
* copyied to global data and retained by ACPI CA
*/
typedef struct _AcpiInitData
{
void *RSDP_PhysicalAddress; /* Address of RSDP, needed it it is */
/* not found in the IA32 manner */
} ACPI_INIT_DATA;
/*
* Various handlers and callback procedures
*/
@ -837,10 +803,11 @@ typedef struct
typedef struct
{
UINT32 Seg;
UINT32 Bus;
UINT32 DevFunc;
} ACPI_PCI_SPACE_CONTEXT;
UINT16 Segment;
UINT16 Bus;
UINT16 Device;
UINT16 Function;
} ACPI_PCI_ID;
typedef struct
@ -851,13 +818,6 @@ typedef struct
} ACPI_MEM_SPACE_CONTEXT;
/*
* C-state handler
*/
typedef ACPI_STATUS (*ACPI_C_STATE_HANDLER) (ACPI_IO_ADDRESS, UINT32*);
/*
* Definitions for Resource Attributes
*/

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acutils.h -- prototypes for the common (subsystem-wide) procedures
* $Revision: 100 $
* $Revision: 104 $
*
*****************************************************************************/
@ -523,15 +523,6 @@ AcpiUtExecute_UID (
ACPI_DEVICE_ID *Uid);
/*
* UtError - exception interfaces
*/
NATIVE_CHAR *
AcpiUtFormatException (
ACPI_STATUS Status);
/*
* UtMutex - mutual exclusion interfaces
*/
@ -709,21 +700,21 @@ AcpiUtDisplayInitPathname (
*/
void *
_UtAllocate (
AcpiUtAllocate (
UINT32 Size,
UINT32 Component,
NATIVE_CHAR *Module,
UINT32 Line);
void *
_UtCallocate (
AcpiUtCallocate (
UINT32 Size,
UINT32 Component,
NATIVE_CHAR *Module,
UINT32 Line);
void
_UtFree (
AcpiUtFree (
void *Address,
UINT32 Component,
NATIVE_CHAR *Module,
@ -734,7 +725,7 @@ AcpiUtInitStaticObject (
ACPI_OPERAND_OBJECT *ObjDesc);
#ifdef ACPI_DEBUG_TRACK_ALLOCATIONS
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
void
AcpiUtDumpAllocationInfo (
void);
@ -746,9 +737,5 @@ AcpiUtDumpCurrentAllocations (
#endif
#define AcpiUtAllocate(a) _UtAllocate(a,_COMPONENT,_THIS_MODULE,__LINE__)
#define AcpiUtCallocate(a) _UtCallocate(a, _COMPONENT,_THIS_MODULE,__LINE__)
#define AcpiUtFree(a) _UtFree(a,_COMPONENT,_THIS_MODULE,__LINE__)
#endif /* _ACUTILS_H */

View File

@ -3,7 +3,7 @@
* Name: amlcode.h - Definitions for AML, as included in "definition blocks"
* Declarations and definitions contained herein are derived
* directly from the ACPI specification.
* $Revision: 52 $
* $Revision: 53 $
*
*****************************************************************************/
@ -371,7 +371,6 @@
#define OPTYPE_MONADIC1 6
#define OPTYPE_DYADIC1 7
/* Type 2 opcodes */
#define OPTYPE_MONADIC2 8
@ -379,18 +378,20 @@
#define OPTYPE_DYADIC2 10
#define OPTYPE_DYADIC2R 11
#define OPTYPE_DYADIC2S 12
#define OPTYPE_INDEX 13
#define OPTYPE_MATCH 14
/* Multi-operand (>=3) opcodes */
#define OPTYPE_TRIADIC 13
#define OPTYPE_QUADRADIC 14
#define OPTYPE_HEXADIC 15
/* Generic for an op that returns a value */
#define OPTYPE_METHOD_CALL 15
#define OPTYPE_METHOD_CALL 16
/* Misc */
#define OPTYPE_CREATE_FIELD 16
#define OPTYPE_FATAL 17
#define OPTYPE_CREATE_FIELD 17
#define OPTYPE_CONTROL 18
#define OPTYPE_RECONFIGURATION 19
#define OPTYPE_NAMED_OBJECT 20

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dbcmds - debug commands and output routines
* $Revision: 60 $
* $Revision: 61 $
*
******************************************************************************/
@ -326,7 +326,8 @@ AcpiDbUnloadAcpiTable (
for (i = 0; i < NUM_ACPI_TABLES; i++)
{
if (!STRNCMP (TableArg, AcpiGbl_AcpiTableData[i].Signature, AcpiGbl_AcpiTableData[i].SigLength))
if (!STRNCMP (TableArg, AcpiGbl_AcpiTableData[i].Signature,
AcpiGbl_AcpiTableData[i].SigLength))
{
/* Found the table, unload it */
@ -337,7 +338,8 @@ AcpiDbUnloadAcpiTable (
}
else
{
AcpiOsPrintf ("%s, while unloading [%s]\n", AcpiUtFormatException (Status), TableArg);
AcpiOsPrintf ("%s, while unloading [%s]\n",
AcpiFormatException (Status), TableArg);
}
return;
@ -1046,7 +1048,7 @@ AcpiDbDisplayResources (
Status = AcpiEvaluateObject (ObjDesc, "_PRT", NULL, &ReturnObj);
if (ACPI_FAILURE (Status))
{
AcpiOsPrintf ("Could not obtain _PRT: %s\n", AcpiUtFormatException (Status));
AcpiOsPrintf ("Could not obtain _PRT: %s\n", AcpiFormatException (Status));
goto GoCRS;
}
@ -1056,7 +1058,7 @@ AcpiDbDisplayResources (
Status = AcpiGetIrqRoutingTable (ObjDesc, &ReturnObj);
if (ACPI_FAILURE (Status))
{
AcpiOsPrintf ("GetIrqRoutingTable failed: %s\n", AcpiUtFormatException (Status));
AcpiOsPrintf ("GetIrqRoutingTable failed: %s\n", AcpiFormatException (Status));
goto GoCRS;
}
@ -1073,7 +1075,7 @@ AcpiDbDisplayResources (
Status = AcpiEvaluateObject (ObjDesc, "_CRS", NULL, &ReturnObj);
if (ACPI_FAILURE (Status))
{
AcpiOsPrintf ("Could not obtain _CRS: %s\n", AcpiUtFormatException (Status));
AcpiOsPrintf ("Could not obtain _CRS: %s\n", AcpiFormatException (Status));
goto GoPRS;
}
@ -1083,7 +1085,7 @@ AcpiDbDisplayResources (
Status = AcpiGetCurrentResources (ObjDesc, &ReturnObj);
if (ACPI_FAILURE (Status))
{
AcpiOsPrintf ("AcpiGetCurrentResources failed: %s\n", AcpiUtFormatException (Status));
AcpiOsPrintf ("AcpiGetCurrentResources failed: %s\n", AcpiFormatException (Status));
goto GoPRS;
}
@ -1099,7 +1101,7 @@ AcpiDbDisplayResources (
Status = AcpiEvaluateObject (ObjDesc, "_PRS", NULL, &ReturnObj);
if (ACPI_FAILURE (Status))
{
AcpiOsPrintf ("Could not obtain _PRS: %s\n", AcpiUtFormatException (Status));
AcpiOsPrintf ("Could not obtain _PRS: %s\n", AcpiFormatException (Status));
goto Cleanup;
}
@ -1109,7 +1111,7 @@ AcpiDbDisplayResources (
Status = AcpiGetPossibleResources (ObjDesc, &ReturnObj);
if (ACPI_FAILURE (Status))
{
AcpiOsPrintf ("AcpiGetPossibleResources failed: %s\n", AcpiUtFormatException (Status));
AcpiOsPrintf ("AcpiGetPossibleResources failed: %s\n", AcpiFormatException (Status));
goto Cleanup;
}

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dbdisply - debug display commands
* $Revision: 45 $
* $Revision: 46 $
*
******************************************************************************/
@ -416,8 +416,17 @@ AcpiDbDecodeInternalObject (
break;
case ACPI_TYPE_STRING:
AcpiOsPrintf ("(%d) \"%.16s\"...",
AcpiOsPrintf ("(%d) \"%.24s",
ObjDesc->String.Length, ObjDesc->String.Pointer);
if (ObjDesc->String.Length > 24)
{
AcpiOsPrintf ("...");
}
else
{
AcpiOsPrintf ("\"");
}
break;
case ACPI_TYPE_BUFFER:

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dbexec - debugger control method execution
* $Revision: 26 $
* $Revision: 27 $
*
******************************************************************************/
@ -322,7 +322,7 @@ AcpiDbExecute (
if (ACPI_FAILURE (Status))
{
AcpiOsPrintf ("Execution of %s failed with status %s\n",
Info.Pathname, AcpiUtFormatException (Status));
Info.Pathname, AcpiFormatException (Status));
}
else
@ -429,7 +429,7 @@ AcpiDbCreateExecutionThreads (
Status = AcpiOsCreateSemaphore (1, 0, &ThreadGate);
if (ACPI_FAILURE (Status))
{
AcpiOsPrintf ("Could not create semaphore, %s\n", AcpiUtFormatException (Status));
AcpiOsPrintf ("Could not create semaphore, %s\n", AcpiFormatException (Status));
return;
}

View File

@ -2,7 +2,7 @@
*
* Module Name: dbfileio - Debugger file I/O commands. These can't usually
* be used when running the debugger in Ring 0 (Kernel mode)
* $Revision: 41 $
* $Revision: 43 $
*
******************************************************************************/
@ -311,7 +311,7 @@ AcpiDbLoadTable(
/* Allocate a buffer for the table */
*TableLength = TableHeader.Length;
*TablePtr = (ACPI_TABLE_HEADER *) AcpiUtAllocate ((size_t) *TableLength);
*TablePtr = ACPI_MEM_ALLOCATE ((size_t) *TableLength);
if (!*TablePtr)
{
AcpiOsPrintf ("Could not allocate memory for the table (size=%X)\n", TableHeader.Length);
@ -342,7 +342,7 @@ AcpiDbLoadTable(
AcpiOsPrintf ("Error - could not read the table file\n");
AcpiUtFree (*TablePtr);
ACPI_MEM_FREE (*TablePtr);
*TablePtr = NULL;
*TableLength = 0;
@ -469,12 +469,14 @@ AcpiDbLoadAcpiTable (
AcpiOsPrintf ("Table %4.4s is already installed\n",
&TablePtr->Signature);
}
else
{
AcpiOsPrintf ("Could not install table, %s\n",
AcpiUtFormatException (Status));
AcpiFormatException (Status));
}
AcpiUtFree (TablePtr);
ACPI_MEM_FREE (TablePtr);
return (Status);
}

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dbinput - user front-end to the AML debugger
* $Revision: 61 $
* $Revision: 62 $
*
******************************************************************************/
@ -600,7 +600,9 @@ AcpiDbCommandDispatch (
break;
case CMD_ALLOCATIONS:
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
AcpiUtDumpCurrentAllocations ((UINT32) -1, NULL);
#endif
break;
case CMD_ARGS:

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dbstats - Generation and display of ACPI table statistics
* $Revision: 40 $
* $Revision: 41 $
*
******************************************************************************/
@ -409,7 +409,9 @@ AcpiDbDisplayStatistics (
{
#ifndef PARSER_ONLY
case CMD_ALLOCATIONS:
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
AcpiUtDumpAllocationInfo ();
#endif
break;
#endif

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dbutils - AML debugger utilities
* $Revision: 37 $
* $Revision: 39 $
*
******************************************************************************/
@ -450,11 +450,11 @@ AcpiDbLocalNsLookup (
if (ACPI_FAILURE (Status))
{
AcpiOsPrintf ("Could not locate name: %s %s\n", Name, AcpiUtFormatException (Status));
AcpiOsPrintf ("Could not locate name: %s %s\n", Name, AcpiFormatException (Status));
}
AcpiUtFree (InternalPath);
ACPI_MEM_FREE (InternalPath);
return (Node);
}

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dsmthdat - control method arguments and local variables
* $Revision: 46 $
* $Revision: 47 $
*
******************************************************************************/
@ -154,7 +154,7 @@ AcpiDsMethodDataInit (
/*
* WalkState fields are initialized to zero by the
* AcpiUtCallocate().
* ACPI_MEM_CALLOCATE().
*
* An Node is assigned to each argument and local so
* that RefOf() can return a pointer to the Node.

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: dsobject - Dispatcher object management routines
* $Revision: 65 $
* $Revision: 67 $
*
*****************************************************************************/
@ -225,7 +225,7 @@ AcpiDsInitOneObject (
{
DEBUG_PRINTP (ACPI_ERROR, ("Method %p [%4.4s] parse failed! %s\n",
ObjHandle, &((ACPI_NAMESPACE_NODE *)ObjHandle)->Name,
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
break;
}
@ -395,8 +395,8 @@ AcpiDsInitObjectFromOp (
else
{
(*ObjDesc)->Buffer.Pointer =
AcpiUtCallocate ((*ObjDesc)->Buffer.Length);
(*ObjDesc)->Buffer.Pointer = ACPI_MEM_CALLOCATE (
(*ObjDesc)->Buffer.Length);
if (!(*ObjDesc)->Buffer.Pointer)
{
@ -565,13 +565,15 @@ AcpiDsBuildInternalSimpleObj (
{
REPORT_WARNING (("Reference %s at AML %X not found\n",
Name, Op->AmlOffset));
AcpiUtFree (Name);
ACPI_MEM_FREE (Name);
}
else
{
REPORT_WARNING (("Reference %s at AML %X not found\n",
Op->Value.String, Op->AmlOffset));
}
*ObjDescPtr = NULL;
}
@ -662,8 +664,8 @@ AcpiDsBuildInternalPackageObj (
* that the list is always null terminated.
*/
ObjDesc->Package.Elements =
AcpiUtCallocate ((ObjDesc->Package.Count + 1) * sizeof (void *));
ObjDesc->Package.Elements = ACPI_MEM_CALLOCATE (
(ObjDesc->Package.Count + 1) * sizeof (void *));
if (!ObjDesc->Package.Elements)
{

View File

@ -2,7 +2,7 @@
*
* Module Name: dsopcode - Dispatcher Op Region support and handling of
* "control" opcodes
* $Revision: 44 $
* $Revision: 47 $
*
*****************************************************************************/
@ -802,8 +802,9 @@ AcpiDsEvalRegionOperands (
AcpiUtRemoveReference (OperandDesc);
DEBUG_PRINTP (TRACE_EXEC, ("RgnObj %p Addr %X Len %X\n",
ObjDesc, ObjDesc->Region.Address, ObjDesc->Region.Length));
DEBUG_PRINTP (TRACE_EXEC, ("RgnObj %p Addr %8.8lX%8.8lX Len %X\n",
ObjDesc, HIDWORD(ObjDesc->Region.Address), LODWORD(ObjDesc->Region.Address),
ObjDesc->Region.Length));
/* Now the address and length are valid for this opregion */
@ -936,7 +937,6 @@ AcpiDsExecEndControlOp (
* Save the result of the predicate in case there is an
* ELSE to come
*/
WalkState->LastPredicate =
(BOOLEAN) WalkState->ControlState->Common.Value;
@ -944,7 +944,6 @@ AcpiDsExecEndControlOp (
* Pop the control state that was created at the start
* of the IF and free it
*/
ControlState = AcpiUtPopGenericState (&WalkState->ControlState);
AcpiUtDeleteGenericState (ControlState);
break;
@ -1014,7 +1013,6 @@ AcpiDsExecEndControlOp (
* value. This is the only place where WalkState->ReturnDesc
* is set to anything other than zero!
*/
WalkState->ReturnDesc = WalkState->Operands[0];
}
@ -1065,6 +1063,7 @@ AcpiDsExecEndControlOp (
WalkState, WalkState->ReturnDesc));
/* End the control method execution right now */
Status = AE_CTRL_TERMINATE;
break;
@ -1077,11 +1076,11 @@ AcpiDsExecEndControlOp (
case AML_BREAK_POINT_OP:
/* Call up to the OS dependent layer to handle this */
/* Call up to the OS service layer to handle this */
AcpiOsBreakpoint (NULL);
AcpiOsSignal (ACPI_SIGNAL_BREAKPOINT, "Executed AML Breakpoint opcode");
/* If it returns, we are done! */
/* If and when it returns, all done. */
break;
@ -1091,6 +1090,8 @@ AcpiDsExecEndControlOp (
DEBUG_PRINTP (ACPI_INFO,
("Break to end of current package, Op=%p\n", Op));
/* TBD: update behavior for ACPI 2.0 */
/*
* As per the ACPI specification:
* "The break operation causes the current package
@ -1102,11 +1103,16 @@ AcpiDsExecEndControlOp (
* the current package, and execution will continue one
* level up, starting with the completion of the parent Op.
*/
Status = AE_CTRL_FALSE;
break;
case AML_CONTINUE_OP: /* ACPI 2.0 */
Status = AE_NOT_IMPLEMENTED;
break;
default:
DEBUG_PRINTP (ACPI_ERROR, ("Unknown control opcode=%X Op=%p\n",

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: dsutils - Dispatcher utilities
* $Revision: 58 $
* $Revision: 62 $
*
******************************************************************************/
@ -424,7 +424,7 @@ AcpiDsCreateOperand (
/* Free the namestring created above */
AcpiUtFree (NameString);
ACPI_MEM_FREE (NameString);
/*
* The only case where we pass through (ignore) a NOT_FOUND
@ -528,7 +528,7 @@ AcpiDsCreateOperand (
* a missing or null operand!
*/
DEBUG_PRINTP (ACPI_ERROR, ("Missing or null operand, %s\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
return_ACPI_STATUS (Status);
}
@ -629,7 +629,7 @@ AcpiDsCreateOperands (
AcpiDsObjStackPopAndDelete (ArgCount, WalkState);
DEBUG_PRINTP (ACPI_ERROR, ("While creating Arg %d - %s\n",
(ArgCount + 1), AcpiUtFormatException (Status)));
(ArgCount + 1), AcpiFormatException (Status)));
return_ACPI_STATUS (Status);
}
@ -761,6 +761,7 @@ AcpiDsMapOpcodeToDataType (
break;
case AML_PACKAGE_OP:
case AML_VAR_PACKAGE_OP:
DataType = ACPI_TYPE_PACKAGE;
break;
@ -786,14 +787,16 @@ AcpiDsMapOpcodeToDataType (
case OPTYPE_DYADIC2:
case OPTYPE_DYADIC2R:
case OPTYPE_DYADIC2S:
case OPTYPE_INDEX:
case OPTYPE_MATCH:
case OPTYPE_TRIADIC:
case OPTYPE_QUADRADIC:
case OPTYPE_HEXADIC:
case OPTYPE_RETURN:
Flags = OP_HAS_RETURN_VALUE;
DataType = ACPI_TYPE_ANY;
break;
case OPTYPE_METHOD_CALL:
Flags = OP_HAS_RETURN_VALUE;

View File

@ -2,7 +2,7 @@
*
* Module Name: dswexec - Dispatcher method execution callbacks;
* dispatch to interpreter.
* $Revision: 61 $
* $Revision: 63 $
*
*****************************************************************************/
@ -164,7 +164,7 @@ AcpiDsGetPredicateValue (
{
DEBUG_PRINTP (ACPI_ERROR,
("Could not get result from predicate evaluation, %s\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
return_ACPI_STATUS (Status);
}
@ -394,9 +394,9 @@ AcpiDsExecBeginOp (
case OPTYPE_DYADIC2R:
case OPTYPE_DYADIC2S:
case OPTYPE_RECONFIGURATION:
case OPTYPE_INDEX:
case OPTYPE_MATCH:
case OPTYPE_FATAL:
case OPTYPE_TRIADIC:
case OPTYPE_QUADRADIC:
case OPTYPE_HEXADIC:
case OPTYPE_CREATE_FIELD:
/* Start a new result/operand state */
@ -509,9 +509,9 @@ AcpiDsExecEndOp (
case OPTYPE_DYADIC2R:
case OPTYPE_DYADIC2S:
case OPTYPE_RECONFIGURATION:
case OPTYPE_INDEX:
case OPTYPE_MATCH:
case OPTYPE_FATAL:
case OPTYPE_TRIADIC:
case OPTYPE_QUADRADIC:
case OPTYPE_HEXADIC:
/* Build resolved operand stack */
@ -588,19 +588,21 @@ AcpiDsExecEndOp (
break;
case OPTYPE_INDEX: /* Type 2 opcode with 3 operands */
case OPTYPE_TRIADIC: /* Opcode with 3 operands */
/* 3 Operands, 1 ExternalResult, 1 InternalResult */
Status = AcpiExIndex (WalkState, &ResultObj);
Status = AcpiExTriadic (Opcode, WalkState, &ResultObj);
break;
case OPTYPE_QUADRADIC: /* Opcode with 4 operands */
break;
case OPTYPE_MATCH: /* Type 2 opcode with 6 operands */
case OPTYPE_HEXADIC: /* Opcode with 6 operands */
/* 6 Operands, 0 ExternalResult, 1 InternalResult */
Status = AcpiExMatch (WalkState, &ResultObj);
Status = AcpiExHexadic (Opcode, WalkState, &ResultObj);
break;
@ -610,14 +612,6 @@ AcpiDsExecEndOp (
Status = AcpiExReconfiguration (Opcode, WalkState);
break;
case OPTYPE_FATAL:
/* 3 Operands, 0 ExternalResult, 0 InternalResult */
Status = AcpiExFatal (WalkState);
break;
}
/*

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: dswstate - Dispatcher parse tree walk management routines
* $Revision: 45 $
* $Revision: 46 $
*
*****************************************************************************/
@ -971,11 +971,11 @@ AcpiDsCreateWalkState (
{
/* The cache is empty, create a new object */
/* Avoid deadlock with AcpiUtCallocate */
/* Avoid deadlock with ACPI_MEM_CALLOCATE */
AcpiUtReleaseMutex (ACPI_MTX_CACHES);
WalkState = AcpiUtCallocate (sizeof (ACPI_WALK_STATE));
WalkState = ACPI_MEM_CALLOCATE (sizeof (ACPI_WALK_STATE));
if (!WalkState)
{
return_PTR (NULL);
@ -1080,7 +1080,7 @@ AcpiDsDeleteWalkState (
if (AcpiGbl_WalkStateCacheDepth >= MAX_WALK_CACHE_DEPTH)
{
AcpiUtFree (WalkState);
ACPI_MEM_FREE (WalkState);
}
/* Otherwise put this object back into the cache */
@ -1138,7 +1138,8 @@ AcpiDsDeleteWalkStateCache (
/* Delete one cached state object */
Next = AcpiGbl_WalkStateCache->Next;
AcpiUtFree (AcpiGbl_WalkStateCache);
ACPI_MEM_FREE (AcpiGbl_WalkStateCache);
AcpiGbl_WalkStateCache = Next;
AcpiGbl_WalkStateCacheDepth--;
}

View File

@ -2,7 +2,7 @@
*
* Module Name: evevent - Fixed and General Purpose AcpiEvent
* handling and dispatch
* $Revision: 43 $
* $Revision: 46 $
*
*****************************************************************************/
@ -455,8 +455,8 @@ AcpiEvGpeInitialize (void)
* Allocate the Gpe information block
*/
AcpiGbl_GpeRegisters = AcpiUtCallocate (AcpiGbl_GpeRegisterCount *
sizeof (ACPI_GPE_REGISTERS));
AcpiGbl_GpeRegisters = ACPI_MEM_CALLOCATE (AcpiGbl_GpeRegisterCount *
sizeof (ACPI_GPE_REGISTERS));
if (!AcpiGbl_GpeRegisters)
{
DEBUG_PRINTP (ACPI_ERROR,
@ -470,11 +470,11 @@ AcpiEvGpeInitialize (void)
* Initialization to zeros is sufficient
*/
AcpiGbl_GpeInfo = AcpiUtCallocate (MUL_8 (AcpiGbl_GpeRegisterCount) *
sizeof (ACPI_GPE_LEVEL_INFO));
AcpiGbl_GpeInfo = ACPI_MEM_CALLOCATE (MUL_8 (AcpiGbl_GpeRegisterCount) *
sizeof (ACPI_GPE_LEVEL_INFO));
if (!AcpiGbl_GpeInfo)
{
AcpiUtFree (AcpiGbl_GpeRegisters);
ACPI_MEM_FREE (AcpiGbl_GpeRegisters);
DEBUG_PRINTP (ACPI_ERROR, ("Could not allocate the GpeInfo block\n"));
return_ACPI_STATUS (AE_NO_MEMORY);
}
@ -515,8 +515,8 @@ AcpiEvGpeInitialize (void)
* are cleared by writing a '1', while enable registers are cleared
* by writing a '0'.
*/
AcpiOsOut8 (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr, 0x00);
AcpiOsOut8 (AcpiGbl_GpeRegisters[RegisterIndex].StatusAddr, 0xFF);
AcpiOsWritePort (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr, 0x00, 8);
AcpiOsWritePort (AcpiGbl_GpeRegisters[RegisterIndex].StatusAddr, 0xFF, 8);
RegisterIndex++;
}
@ -545,8 +545,8 @@ AcpiEvGpeInitialize (void)
* are cleared by writing a '1', while enable registers are cleared
* by writing a '0'.
*/
AcpiOsOut8 (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr, 0x00);
AcpiOsOut8 (AcpiGbl_GpeRegisters[RegisterIndex].StatusAddr, 0xFF);
AcpiOsWritePort (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr, 0x00, 8);
AcpiOsWritePort (AcpiGbl_GpeRegisters[RegisterIndex].StatusAddr, 0xFF, 8);
RegisterIndex++;
}
@ -733,14 +733,13 @@ AcpiEvGpeDetect (void)
* in both of the register blocks, saving all of it.
* Find all currently active GP events.
*/
for (i = 0; i < AcpiGbl_GpeRegisterCount; i++)
{
AcpiGbl_GpeRegisters[i].Status =
AcpiOsIn8 (AcpiGbl_GpeRegisters[i].StatusAddr);
AcpiOsReadPort (AcpiGbl_GpeRegisters[i].StatusAddr,
&AcpiGbl_GpeRegisters[i].Status, 8);
AcpiGbl_GpeRegisters[i].Enable =
AcpiOsIn8 (AcpiGbl_GpeRegisters[i].EnableAddr);
AcpiOsReadPort (AcpiGbl_GpeRegisters[i].EnableAddr,
&AcpiGbl_GpeRegisters[i].Enable, 8);
DEBUG_PRINT (TRACE_INTERRUPTS,
("GPE block at %X - Enable %08X Status %08X\n",
@ -751,7 +750,7 @@ AcpiEvGpeDetect (void)
/* First check if there is anything active at all in this register */
EnabledStatusByte = (UINT8) (AcpiGbl_GpeRegisters[i].Status &
AcpiGbl_GpeRegisters[i].Enable);
AcpiGbl_GpeRegisters[i].Enable);
if (!EnabledStatusByte)
{
@ -772,8 +771,8 @@ AcpiEvGpeDetect (void)
* Found an active GPE. Dispatch the event to a handler
* or method.
*/
IntStatus |=
AcpiEvGpeDispatch (AcpiGbl_GpeRegisters[i].GpeBase + j);
IntStatus |= AcpiEvGpeDispatch (
AcpiGbl_GpeRegisters[i].GpeBase + j);
}
}
}
@ -904,17 +903,21 @@ AcpiEvGpeDispatch (
if (GpeInfo.Handler)
{
/* Invoke function handler (at interrupt level). */
GpeInfo.Handler (GpeInfo.Context);
/* Level-Triggered? */
if (GpeInfo.Type & ACPI_EVENT_LEVEL_TRIGGERED)
{
AcpiHwClearGpe (GpeNumber);
}
/* Enable GPE */
AcpiHwEnableGpe (GpeNumber);
}
/*
* Method Handler (e.g. _Exx/_Lxx)?
*/
@ -931,6 +934,7 @@ AcpiEvGpeDispatch (
REPORT_ERROR (("AcpiEvGpeDispatch: Unable to queue handler for GPE bit [%X]\n", GpeNumber));
}
}
/*
* No Handler? Report an error and leave the GPE disabled.
*/
@ -939,6 +943,7 @@ AcpiEvGpeDispatch (
REPORT_ERROR (("AcpiEvGpeDispatch: No installed handler for GPE [%X]\n", GpeNumber));
/* Level-Triggered? */
if (GpeInfo.Type & ACPI_EVENT_LEVEL_TRIGGERED)
{
AcpiHwClearGpe (GpeNumber);

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: evregion - ACPI AddressSpace (OpRegion) handler dispatch
* $Revision: 103 $
* $Revision: 106 $
*
*****************************************************************************/
@ -355,7 +355,7 @@ AcpiEvAddressSpaceDispatch (
if (ACPI_FAILURE (Status))
{
DEBUG_PRINTP (ACPI_ERROR, ("Region Init: %s [%s]\n",
AcpiUtFormatException (Status),
AcpiFormatException (Status),
AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
return_ACPI_STATUS(Status);
}
@ -375,8 +375,9 @@ AcpiEvAddressSpaceDispatch (
Handler = HandlerDesc->AddrHandler.Handler;
DEBUG_PRINTP ((TRACE_OPREGION | VERBOSE_INFO),
("Addrhandler %p (%p), Address %p\n",
&RegionObj->Region.AddrHandler->AddrHandler, Handler, Address));
("Addrhandler %p (%p), Address %8.8lX%8.8lX\n",
&RegionObj->Region.AddrHandler->AddrHandler, Handler, HIDWORD(Address),
LODWORD(Address)));
if (!(HandlerDesc->AddrHandler.Flags & ADDR_HANDLER_DEFAULT_INSTALLED))
{
@ -398,7 +399,7 @@ AcpiEvAddressSpaceDispatch (
if (ACPI_FAILURE (Status))
{
DEBUG_PRINTP (ACPI_ERROR, ("Region handler: %s [%s]\n",
AcpiUtFormatException (Status),
AcpiFormatException (Status),
AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
}
@ -509,7 +510,7 @@ AcpiEvDisassociateRegionFromHandler(
if (ACPI_FAILURE (Status))
{
DEBUG_PRINTP (ACPI_ERROR, ("%s from region init, [%s]\n",
AcpiUtFormatException (Status),
AcpiFormatException (Status),
AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
}
@ -525,8 +526,6 @@ AcpiEvDisassociateRegionFromHandler(
* If the region is on the handler's list
* this better be the region's handler
*/
ACPI_ASSERT (RegionObj->Region.AddrHandler == HandlerObj);
RegionObj->Region.AddrHandler = NULL;
return_VOID;
@ -582,25 +581,16 @@ AcpiEvAssociateRegionAndHandler (
("Adding Region %p to address handler %p [%s]\n",
RegionObj, HandlerObj, AcpiUtGetRegionName (RegionObj->Region.SpaceId)));
ACPI_ASSERT (RegionObj->Region.SpaceId == HandlerObj->AddrHandler.SpaceId);
ACPI_ASSERT (RegionObj->Region.AddrHandler == 0);
/*
* Link this region to the front of the handler's list
*/
RegionObj->Region.Next = HandlerObj->AddrHandler.RegionList;
HandlerObj->AddrHandler.RegionList = RegionObj;
/*
* set the region's handler
*/
/*
HandlerObj->Common.ReferenceCount =
(UINT16) (HandlerObj->Common.ReferenceCount +
RegionObj->Common.ReferenceCount - 1);
*/
RegionObj->Region.AddrHandler = HandlerObj;
/*
@ -749,8 +739,6 @@ AcpiEvAddrHandlerHelper (
/*
* Only here if it was a region
*/
ACPI_ASSERT (ObjDesc->Common.Type == ACPI_TYPE_REGION);
if (ObjDesc->Region.SpaceId != HandlerObj->AddrHandler.SpaceId)
{
/*

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: evrgnini- ACPI AddressSpace (OpRegion) init
* $Revision: 40 $
* $Revision: 44 $
*
*****************************************************************************/
@ -156,7 +156,7 @@ AcpiEvSystemMemoryRegionSetup (
{
if (*RegionContext)
{
AcpiUtFree (*RegionContext);
ACPI_MEM_FREE (*RegionContext);
*RegionContext = NULL;
}
return_ACPI_STATUS (AE_OK);
@ -165,7 +165,7 @@ AcpiEvSystemMemoryRegionSetup (
/* Activate. Create a new context */
*RegionContext = AcpiUtCallocate (sizeof (ACPI_MEM_SPACE_CONTEXT));
*RegionContext = ACPI_MEM_CALLOCATE (sizeof (ACPI_MEM_SPACE_CONTEXT));
if (!(*RegionContext))
{
return_ACPI_STATUS (AE_NO_MEMORY);
@ -239,7 +239,7 @@ AcpiEvPciConfigRegionSetup (
{
ACPI_STATUS Status = AE_OK;
ACPI_INTEGER Temp;
ACPI_PCI_SPACE_CONTEXT *PciContext = *RegionContext;
ACPI_PCI_ID *PciId = *RegionContext;
ACPI_OPERAND_OBJECT *HandlerObj;
ACPI_NAMESPACE_NODE *Node;
ACPI_OPERAND_OBJECT *RegionObj = (ACPI_OPERAND_OBJECT *) Handle;
@ -263,9 +263,9 @@ AcpiEvPciConfigRegionSetup (
if (Function == ACPI_REGION_DEACTIVATE)
{
if (PciContext)
if (PciId)
{
AcpiUtFree (PciContext);
ACPI_MEM_FREE (PciId);
*RegionContext = NULL;
}
@ -275,8 +275,8 @@ AcpiEvPciConfigRegionSetup (
/* Create a new context */
PciContext = AcpiUtCallocate (sizeof (ACPI_PCI_SPACE_CONTEXT));
if (!PciContext)
PciId = ACPI_MEM_CALLOCATE (sizeof (ACPI_PCI_ID));
if (!PciId)
{
return_ACPI_STATUS (AE_NO_MEMORY);
}
@ -290,8 +290,6 @@ AcpiEvPciConfigRegionSetup (
* First get device and function numbers from the _ADR object
* in the parent's scope.
*/
ACPI_ASSERT (RegionObj->Region.Node);
Node = AcpiNsGetParentObject (RegionObj->Region.Node);
@ -305,7 +303,8 @@ AcpiEvPciConfigRegionSetup (
*/
if (ACPI_SUCCESS (Status))
{
PciContext->DevFunc = (UINT32) Temp;
PciId->Device = HIWORD (Temp);
PciId->Function = LOWORD (Temp);
}
/*
@ -349,20 +348,25 @@ AcpiEvPciConfigRegionSetup (
Node = HandlerObj->AddrHandler.Node;
}
/*
* The PCI segment number comes from the _SEG method
*/
Status = AcpiUtEvaluateNumericObject (METHOD_NAME__SEG, Node, &Temp);
if (ACPI_SUCCESS (Status))
{
PciContext->Seg = (UINT32) Temp;
PciId->Segment = LOWORD (Temp);
}
/*
* The PCI bus number comes from the _BBN method
*/
Status = AcpiUtEvaluateNumericObject (METHOD_NAME__BBN, Node, &Temp);
if (ACPI_SUCCESS (Status))
{
PciContext->Bus = (UINT32) Temp;
PciId->Bus = LOWORD (Temp);
}
*RegionContext = PciContext;
*RegionContext = PciId;
return_ACPI_STATUS (AE_OK);
}
@ -448,8 +452,6 @@ AcpiEvInitializeRegion (
return_ACPI_STATUS (AE_BAD_PARAMETER);
}
ACPI_ASSERT (RegionObj->Region.Node);
Node = AcpiNsGetParentObject (RegionObj->Region.Node);
SpaceId = RegionObj->Region.SpaceId;

View File

@ -2,7 +2,7 @@
*
* Module Name: evsci - System Control Interrupt configuration and
* legacy to ACPI mode state transition functions
* $Revision: 72 $
* $Revision: 73 $
*
******************************************************************************/
@ -378,12 +378,12 @@ AcpiEvTerminate (void)
if (AcpiGbl_GpeRegisters)
{
AcpiUtFree (AcpiGbl_GpeRegisters);
ACPI_MEM_FREE (AcpiGbl_GpeRegisters);
}
if (AcpiGbl_GpeInfo)
{
AcpiUtFree (AcpiGbl_GpeInfo);
ACPI_MEM_FREE (AcpiGbl_GpeInfo);
}
return_VOID;

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: exconfig - Namespace reconfiguration (Load/Unload opcodes)
* $Revision: 34 $
* $Revision: 36 $
*
*****************************************************************************/
@ -179,7 +179,7 @@ AcpiExLoadTableOp (
/* Allocate a buffer for the entire table */
TablePtr = AcpiUtAllocate (TableHeader.Length);
TablePtr = ACPI_MEM_ALLOCATE (TableHeader.Length);
if (!TablePtr)
{
return_ACPI_STATUS (AE_NO_MEMORY);
@ -273,8 +273,8 @@ AcpiExLoadTableOp (
Cleanup:
AcpiUtFree (TableDesc);
AcpiUtFree (TablePtr);
ACPI_MEM_FREE (TableDesc);
ACPI_MEM_FREE (TablePtr);
return_ACPI_STATUS (Status);
}
@ -394,7 +394,7 @@ AcpiExReconfiguration (
if (ACPI_FAILURE (Status))
{
DEBUG_PRINTP (ACPI_ERROR, ("bad operand(s) (Load) (%s)\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
AcpiUtRemoveReference (RegionDesc);
return_ACPI_STATUS (Status);
@ -409,7 +409,7 @@ AcpiExReconfiguration (
if (ACPI_FAILURE (Status))
{
DEBUG_PRINTP (ACPI_ERROR, ("bad operand(s) (unload) (%s)\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
return_ACPI_STATUS (Status);
}

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: exconvrt - Object conversion routines
* $Revision: 13 $
* $Revision: 16 $
*
*****************************************************************************/
@ -146,7 +146,8 @@
ACPI_STATUS
AcpiExConvertToInteger (
ACPI_OPERAND_OBJECT **ObjDesc,
ACPI_OPERAND_OBJECT *ObjDesc,
ACPI_OPERAND_OBJECT **ResultDesc,
ACPI_WALK_STATE *WalkState)
{
UINT32 i;
@ -157,19 +158,20 @@ AcpiExConvertToInteger (
UINT32 IntegerSize = sizeof (ACPI_INTEGER);
switch ((*ObjDesc)->Common.Type)
switch (ObjDesc->Common.Type)
{
case ACPI_TYPE_INTEGER:
*ResultDesc = ObjDesc;
return (AE_OK);
case ACPI_TYPE_STRING:
Pointer = (*ObjDesc)->String.Pointer;
Count = (*ObjDesc)->String.Length;
Pointer = ObjDesc->String.Pointer;
Count = ObjDesc->String.Length;
break;
case ACPI_TYPE_BUFFER:
Pointer = (char *) (*ObjDesc)->Buffer.Pointer;
Count = (*ObjDesc)->Buffer.Length;
Pointer = (char *) ObjDesc->Buffer.Pointer;
Count = ObjDesc->Buffer.Length;
break;
default:
@ -219,7 +221,7 @@ AcpiExConvertToInteger (
/*
* String conversion is different than Buffer conversion
*/
switch ((*ObjDesc)->Common.Type)
switch (ObjDesc->Common.Type)
{
case ACPI_TYPE_STRING:
@ -257,13 +259,15 @@ AcpiExConvertToInteger (
RetDesc->Integer.Value = Result;
if (WalkState->Opcode != AML_STORE_OP)
if (*ResultDesc == ObjDesc)
{
AcpiUtRemoveReference (*ObjDesc);
if (WalkState->Opcode != AML_STORE_OP)
{
AcpiUtRemoveReference (ObjDesc);
}
}
*ObjDesc = RetDesc;
*ResultDesc = RetDesc;
return (AE_OK);
}
@ -284,7 +288,8 @@ AcpiExConvertToInteger (
ACPI_STATUS
AcpiExConvertToBuffer (
ACPI_OPERAND_OBJECT **ObjDesc,
ACPI_OPERAND_OBJECT *ObjDesc,
ACPI_OPERAND_OBJECT **ResultDesc,
ACPI_WALK_STATE *WalkState)
{
ACPI_OPERAND_OBJECT *RetDesc;
@ -293,7 +298,7 @@ AcpiExConvertToBuffer (
UINT8 *NewBuf;
switch ((*ObjDesc)->Common.Type)
switch (ObjDesc->Common.Type)
{
case ACPI_TYPE_INTEGER:
@ -321,7 +326,7 @@ AcpiExConvertToBuffer (
/* Need enough space for one integers */
RetDesc->Buffer.Length = IntegerSize;
NewBuf = AcpiUtCallocate (IntegerSize);
NewBuf = ACPI_MEM_CALLOCATE (IntegerSize);
if (!NewBuf)
{
REPORT_ERROR
@ -334,25 +339,31 @@ AcpiExConvertToBuffer (
for (i = 0; i < IntegerSize; i++)
{
NewBuf[i] = (UINT8) ((*ObjDesc)->Integer.Value >> (i * 8));
NewBuf[i] = (UINT8) (ObjDesc->Integer.Value >> (i * 8));
}
RetDesc->Buffer.Pointer = NewBuf;
/* Return the new buffer descriptor */
if (WalkState->Opcode != AML_STORE_OP)
if (*ResultDesc == ObjDesc)
{
AcpiUtRemoveReference (*ObjDesc);
if (WalkState->Opcode != AML_STORE_OP)
{
AcpiUtRemoveReference (ObjDesc);
}
}
*ObjDesc = RetDesc;
*ResultDesc = RetDesc;
break;
case ACPI_TYPE_STRING:
*ResultDesc = ObjDesc;
break;
case ACPI_TYPE_BUFFER:
*ResultDesc = ObjDesc;
break;
@ -381,18 +392,23 @@ AcpiExConvertToBuffer (
ACPI_STATUS
AcpiExConvertToString (
ACPI_OPERAND_OBJECT **ObjDesc,
ACPI_OPERAND_OBJECT *ObjDesc,
ACPI_OPERAND_OBJECT **ResultDesc,
UINT32 MaxLength,
ACPI_WALK_STATE *WalkState)
{
ACPI_OPERAND_OBJECT *RetDesc;
UINT32 i;
UINT32 j;
UINT32 Index;
UINT32 StringLength;
UINT32 IntegerSize = sizeof (ACPI_INTEGER);
UINT8 *NewBuf;
UINT8 *Pointer;
switch ((*ObjDesc)->Common.Type)
switch (ObjDesc->Common.Type)
{
case ACPI_TYPE_INTEGER:
@ -420,7 +436,7 @@ AcpiExConvertToString (
/* Need enough space for one ASCII integer plus null terminator */
RetDesc->String.Length = (IntegerSize * 2) + 1;
NewBuf = AcpiUtCallocate (RetDesc->String.Length);
NewBuf = ACPI_MEM_CALLOCATE (RetDesc->String.Length);
if (!NewBuf)
{
REPORT_ERROR
@ -431,36 +447,52 @@ AcpiExConvertToString (
/* Copy the integer to the buffer */
for (i = 0; i < (IntegerSize * 2); i++)
for (i = 0, j = ((IntegerSize * 2) -1); i < (IntegerSize * 2); i++, j--)
{
NewBuf[i] = AcpiGbl_HexToAscii [((*ObjDesc)->Integer.Value >> (i * 4)) & 0xF];
NewBuf[i] = AcpiGbl_HexToAscii [(ObjDesc->Integer.Value >> (j * 4)) & 0xF];
}
/* Null terminate */
/* Null terminate at the correct place */
if (MaxLength < i)
{
NewBuf[MaxLength] = 0;
}
else
{
NewBuf [i] = 0;
}
NewBuf [i] = 0;
RetDesc->Buffer.Pointer = NewBuf;
/* Return the new buffer descriptor */
if (WalkState->Opcode != AML_STORE_OP)
if (*ResultDesc == ObjDesc)
{
AcpiUtRemoveReference (*ObjDesc);
if (WalkState->Opcode != AML_STORE_OP)
{
AcpiUtRemoveReference (ObjDesc);
}
}
*ObjDesc = RetDesc;
return (AE_OK);
*ResultDesc = RetDesc;
break;
case ACPI_TYPE_BUFFER:
if (((*ObjDesc)->Buffer.Length * 3) > ACPI_MAX_STRING_CONVERSION)
StringLength = ObjDesc->Buffer.Length * 3;
if (MaxLength > ACPI_MAX_STRING_CONVERSION)
{
return (AE_AML_STRING_LIMIT);
if (StringLength > ACPI_MAX_STRING_CONVERSION)
{
return (AE_AML_STRING_LIMIT);
}
}
/*
* Create a new String
* Create a new string object
*/
RetDesc = AcpiUtCreateInternalObject (ACPI_TYPE_STRING);
if (!RetDesc)
@ -468,10 +500,14 @@ AcpiExConvertToString (
return (AE_NO_MEMORY);
}
/* Need enough space for one ASCII integer plus null terminator */
/* String length is the lesser of the Max or the actual length */
RetDesc->String.Length = (*ObjDesc)->Buffer.Length * 3;
NewBuf = AcpiUtCallocate (RetDesc->String.Length + 1);
if (MaxLength < StringLength)
{
StringLength = MaxLength;
}
NewBuf = ACPI_MEM_CALLOCATE (StringLength + 1);
if (!NewBuf)
{
REPORT_ERROR
@ -483,9 +519,9 @@ AcpiExConvertToString (
/*
* Convert each byte of the buffer to two ASCII characters plus a space.
*/
Pointer = (*ObjDesc)->Buffer.Pointer;
Pointer = ObjDesc->Buffer.Pointer;
Index = 0;
for (i = 0; i < (*ObjDesc)->Buffer.Length; i++)
for (i = 0; i < (StringLength/3); i++)
{
NewBuf[Index + 0] = AcpiGbl_HexToAscii [Pointer[i] & 0x0F];
NewBuf[Index + 1] = AcpiGbl_HexToAscii [(Pointer[i] >> 4) & 0x0F];
@ -495,20 +531,38 @@ AcpiExConvertToString (
/* Null terminate */
NewBuf [Index] = 0;
NewBuf [Index-1] = 0;
RetDesc->Buffer.Pointer = NewBuf;
RetDesc->String.Length = STRLEN ((char *) NewBuf);
/* Return the new buffer descriptor */
if (WalkState->Opcode != AML_STORE_OP)
if (*ResultDesc == ObjDesc)
{
AcpiUtRemoveReference (*ObjDesc);
if (WalkState->Opcode != AML_STORE_OP)
{
AcpiUtRemoveReference (ObjDesc);
}
}
*ObjDesc = RetDesc;
*ResultDesc = RetDesc;
break;
case ACPI_TYPE_STRING:
if (MaxLength >= ObjDesc->String.Length)
{
*ResultDesc = ObjDesc;
}
else
{
/* Must copy the string first and then truncate it */
return (AE_NOT_IMPLEMENTED);
}
break;
@ -592,7 +646,7 @@ AcpiExConvertToTargetType (
* These types require an Integer operand. We can convert
* a Buffer or a String to an Integer if necessary.
*/
Status = AcpiExConvertToInteger (ObjDesc, WalkState);
Status = AcpiExConvertToInteger (*ObjDesc, ObjDesc, WalkState);
break;
@ -602,7 +656,7 @@ AcpiExConvertToTargetType (
* The operand must be a String. We can convert an
* Integer or Buffer if necessary
*/
Status = AcpiExConvertToString (ObjDesc, WalkState);
Status = AcpiExConvertToString (*ObjDesc, ObjDesc, ACPI_UINT32_MAX, WalkState);
break;
@ -612,7 +666,7 @@ AcpiExConvertToTargetType (
* The operand must be a String. We can convert an
* Integer or Buffer if necessary
*/
Status = AcpiExConvertToBuffer (ObjDesc, WalkState);
Status = AcpiExConvertToBuffer (*ObjDesc, ObjDesc, WalkState);
break;
}
break;

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: exdyadic - ACPI AML (p-code) execution for dyadic operators
* $Revision: 77 $
* Module Name: exdyadic - ACPI AML execution for dyadic (2-operand) operators
* $Revision: 82 $
*
*****************************************************************************/
@ -134,8 +134,9 @@
*
* FUNCTION: AcpiExDoConcatenate
*
* PARAMETERS: *ObjDesc - Object to be converted. Must be an
* Integer, Buffer, or String
* PARAMETERS: *ObjDesc - Object to be converted. Must be an
* Integer, Buffer, or String
* WalkState - Current walk state
*
* RETURN: Status
*
@ -191,7 +192,7 @@ AcpiExDoConcatenate (
/* Need enough space for two integers */
RetDesc->Buffer.Length = IntegerSize * 2;
NewBuf = AcpiUtCallocate (RetDesc->Buffer.Length);
NewBuf = ACPI_MEM_CALLOCATE (RetDesc->Buffer.Length);
if (!NewBuf)
{
REPORT_ERROR
@ -233,8 +234,8 @@ AcpiExDoConcatenate (
/* Operand1 is string */
NewBuf = AcpiUtAllocate (ObjDesc->String.Length +
ObjDesc2->String.Length + 1);
NewBuf = ACPI_MEM_ALLOCATE (ObjDesc->String.Length +
ObjDesc2->String.Length + 1);
if (!NewBuf)
{
REPORT_ERROR
@ -265,8 +266,8 @@ AcpiExDoConcatenate (
return (AE_NO_MEMORY);
}
NewBuf = AcpiUtAllocate (ObjDesc->Buffer.Length +
ObjDesc2->Buffer.Length);
NewBuf = ACPI_MEM_ALLOCATE (ObjDesc->Buffer.Length +
ObjDesc2->Buffer.Length);
if (!NewBuf)
{
REPORT_ERROR
@ -311,6 +312,7 @@ AcpiExDoConcatenate (
* FUNCTION: AcpiExDyadic1
*
* PARAMETERS: Opcode - The opcode to be executed
* WalkState - Current walk state
*
* RETURN: Status
*
@ -350,7 +352,7 @@ AcpiExDyadic1 (
/* Invalid parameters on object stack */
DEBUG_PRINTP (ACPI_ERROR, ("(%s) bad operand(s) %s\n",
AcpiPsGetOpcodeName (Opcode), AcpiUtFormatException (Status)));
AcpiPsGetOpcodeName (Opcode), AcpiFormatException (Status)));
goto Cleanup;
}
@ -425,6 +427,8 @@ AcpiExDyadic1 (
* FUNCTION: AcpiExDyadic2R
*
* PARAMETERS: Opcode - The opcode to be executed
* WalkState - Current walk state
* ReturnDesc - Where to store the return object
*
* RETURN: Status
*
@ -474,7 +478,7 @@ AcpiExDyadic2R (
if (ACPI_FAILURE (Status))
{
DEBUG_PRINTP (ACPI_ERROR, ("(%s) bad operand(s) (%s)\n",
AcpiPsGetOpcodeName (Opcode), AcpiUtFormatException (Status)));
AcpiPsGetOpcodeName (Opcode), AcpiFormatException (Status)));
goto Cleanup;
}
@ -491,6 +495,7 @@ AcpiExDyadic2R (
case AML_BIT_NOR_OP:
case AML_BIT_XOR_OP:
case AML_DIVIDE_OP:
case AML_MOD_OP:
case AML_MULTIPLY_OP:
case AML_SHIFT_LEFT_OP:
case AML_SHIFT_RIGHT_OP:
@ -575,7 +580,7 @@ AcpiExDyadic2R (
if (!ObjDesc2->Integer.Value)
{
REPORT_ERROR
(("ExDyadic2R/DivideOp: Divide by zero\n"));
(("DivideOp: Divide by zero\n"));
Status = AE_AML_DIVIDE_BY_ZERO;
goto Cleanup;
@ -600,6 +605,26 @@ AcpiExDyadic2R (
break;
/* DefMod := ModOp Dividend Divisor Remainder */
case AML_MOD_OP: /* ACPI 2.0 */
if (!ObjDesc2->Integer.Value)
{
REPORT_ERROR
(("ModOp: Divide by zero\n"));
Status = AE_AML_DIVIDE_BY_ZERO;
goto Cleanup;
}
/* Remainder (modulo) */
RetDesc->Integer.Value = ACPI_MODULO (ObjDesc->Integer.Value,
ObjDesc2->Integer.Value);
break;
/* DefMultiply := MultiplyOp Operand1 Operand2 Result */
case AML_MULTIPLY_OP:
@ -640,7 +665,6 @@ AcpiExDyadic2R (
case AML_CONCAT_OP:
/*
* Convert the second operand if necessary. The first operand
* determines the type of the second operand, (See the Data Types
@ -648,19 +672,18 @@ AcpiExDyadic2R (
* guaranteed to be either Integer/String/Buffer by the operand
* resolution mechanism above.
*/
switch (ObjDesc->Common.Type)
{
case ACPI_TYPE_INTEGER:
Status = AcpiExConvertToInteger (&ObjDesc2, WalkState);
Status = AcpiExConvertToInteger (ObjDesc2, &ObjDesc2, WalkState);
break;
case ACPI_TYPE_STRING:
Status = AcpiExConvertToString (&ObjDesc2, WalkState);
Status = AcpiExConvertToString (ObjDesc2, &ObjDesc2, ACPI_UINT32_MAX, WalkState);
break;
case ACPI_TYPE_BUFFER:
Status = AcpiExConvertToBuffer (&ObjDesc2, WalkState);
Status = AcpiExConvertToBuffer (ObjDesc2, &ObjDesc2, WalkState);
break;
default:
@ -686,6 +709,24 @@ AcpiExDyadic2R (
break;
/* DefToString := Buffer, Length, Result */
case AML_TO_STRING_OP: /* ACPI 2.0 */
Status = AcpiExConvertToString (ObjDesc, &RetDesc,
(UINT32) ObjDesc2->Integer.Value, WalkState);
break;
/* DefConcatRes := Buffer, Buffer, Result */
case AML_CONCAT_RES_OP: /* ACPI 2.0 */
Status = AE_NOT_IMPLEMENTED;
goto Cleanup;
break;
default:
REPORT_ERROR (("AcpiExDyadic2R: Unknown dyadic opcode %X\n",
@ -758,6 +799,8 @@ AcpiExDyadic2R (
* FUNCTION: AcpiExDyadic2S
*
* PARAMETERS: Opcode - The opcode to be executed
* WalkState - Current walk state
* ReturnDesc - Where to store the return object
*
* RETURN: Status
*
@ -797,7 +840,7 @@ AcpiExDyadic2S (
/* Invalid parameters on object stack */
DEBUG_PRINTP (ACPI_ERROR, ("(%s) bad operand(s) %s\n",
AcpiPsGetOpcodeName (Opcode), AcpiUtFormatException (Status)));
AcpiPsGetOpcodeName (Opcode), AcpiFormatException (Status)));
goto Cleanup;
}
@ -887,6 +930,8 @@ AcpiExDyadic2S (
* FUNCTION: AcpiExDyadic2
*
* PARAMETERS: Opcode - The opcode to be executed
* WalkState - Current walk state
* ReturnDesc - Where to store the return object
*
* RETURN: Status
*
@ -929,7 +974,7 @@ AcpiExDyadic2 (
/* Invalid parameters on object stack */
DEBUG_PRINTP (ACPI_ERROR, ("(%s) bad operand(s) %s\n",
AcpiPsGetOpcodeName (Opcode), AcpiUtFormatException (Status)));
AcpiPsGetOpcodeName (Opcode), AcpiFormatException (Status)));
goto Cleanup;
}
@ -997,6 +1042,15 @@ AcpiExDyadic2 (
break;
/* DefCopy := Source, Destination */
case AML_COPY_OP: /* ACPI 2.0 */
Status = AE_NOT_IMPLEMENTED;
goto Cleanup;
break;
default:
REPORT_ERROR (("AcpiExDyadic2: Unknown dyadic opcode %X\n", Opcode));

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: exfield - ACPI AML (p-code) execution - field manipulation
* $Revision: 90 $
* $Revision: 91 $
*
*****************************************************************************/
@ -191,7 +191,7 @@ AcpiExReadDataFromField (
/* Create the actual read buffer */
BufferDesc->Buffer.Pointer = AcpiUtCallocate (Length);
BufferDesc->Buffer.Pointer = ACPI_MEM_CALLOCATE (Length);
if (!BufferDesc->Buffer.Pointer)
{
AcpiUtRemoveReference (BufferDesc);

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: exfldio - Aml Field I/O
* $Revision: 57 $
* $Revision: 59 $
*
*****************************************************************************/
@ -153,7 +153,7 @@ AcpiExSetupField (
ACPI_OPERAND_OBJECT *RgnDesc;
FUNCTION_TRACE ("ExSetupField");
FUNCTION_TRACE_U32 ("ExSetupField", FieldDatumByteOffset);
/* Parameter validation */
@ -309,11 +309,11 @@ AcpiExReadFieldDatum (
Address = RgnDesc->Region.Address + ObjDesc->CommonField.BaseByteOffset +
FieldDatumByteOffset;
DEBUG_PRINTP (TRACE_BFIELD, ("Region %s(%X) width %X base:off %X:%X at %08lX\n",
DEBUG_PRINTP (TRACE_BFIELD, ("Region %s(%X) width %X base:off %X:%X at %8.8lX%8.8lX\n",
AcpiUtGetRegionName (RgnDesc->Region.SpaceId),
RgnDesc->Region.SpaceId, ObjDesc->CommonField.AccessBitWidth,
ObjDesc->CommonField.BaseByteOffset, FieldDatumByteOffset,
Address));
HIDWORD(Address), LODWORD(Address)));
/* Invoke the appropriate AddressSpace/OpRegion handler */
@ -696,9 +696,10 @@ AcpiExWriteFieldDatum (
FieldDatumByteOffset;
DEBUG_PRINTP (TRACE_BFIELD,
("Store %X in Region %s(%X) at %p width %X\n",
("Store %X in Region %s(%X) at %8.8lX%8.8lX width %X\n",
Value, AcpiUtGetRegionName (RgnDesc->Region.SpaceId),
RgnDesc->Region.SpaceId, Address, ObjDesc->CommonField.AccessBitWidth));
RgnDesc->Region.SpaceId, HIDWORD(Address), LODWORD(Address),
ObjDesc->CommonField.AccessBitWidth));
/* Invoke the appropriate AddressSpace/OpRegion handler */

View File

@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exmisc - ACPI AML (p-code) execution - specific opcodes
* $Revision: 77 $
* $Revision: 79 $
*
*****************************************************************************/
@ -214,40 +214,37 @@ AcpiExFatal (
/*******************************************************************************
*
* FUNCTION: AcpiExIndex
* FUNCTION: AcpiExTriadic
*
* PARAMETERS: none
* PARAMETERS: Opcode - The opcode to be executed
* WalkState - Current walk state
* ReturnDesc - Where to store the return object
*
* RETURN: Status
*
* DESCRIPTION: Execute Index operator
* DESCRIPTION: Execute Triadic operator (3 operands)
*
* ALLOCATION: Deletes one operand descriptor -- other remains on stack
*
* ACPI SPECIFICATION REFERENCES:
* DefIndex := IndexOp BuffPkgObj IndexValue Result
* IndexValue := TermArg=>Integer
* NameString := <RootChar NamePath> | <PrefixPath NamePath>
* Result := SuperName
* SuperName := NameString | ArgObj | LocalObj | DebugObj | DefIndex
* Local4Op | Local5Op | Local6Op | Local7Op
*
******************************************************************************/
ACPI_STATUS
AcpiExIndex (
AcpiExTriadic (
UINT16 Opcode,
ACPI_WALK_STATE *WalkState,
ACPI_OPERAND_OBJECT **ReturnDesc)
{
ACPI_OPERAND_OBJECT *ObjDesc;
ACPI_OPERAND_OBJECT *IdxDesc;
ACPI_OPERAND_OBJECT *ObjDesc1;
ACPI_OPERAND_OBJECT *ObjDesc2;
ACPI_OPERAND_OBJECT *ResDesc;
ACPI_OPERAND_OBJECT *RetDesc = NULL;
ACPI_OPERAND_OBJECT *TmpDesc;
ACPI_SIGNAL_FATAL_INFO *Fatal;
ACPI_STATUS Status;
FUNCTION_TRACE ("ExIndex");
FUNCTION_TRACE ("ExTriadic");
/* Resolve operands */
@ -261,8 +258,8 @@ AcpiExIndex (
/* Get all operands */
Status |= AcpiDsObjStackPopObject (&ResDesc, WalkState);
Status |= AcpiDsObjStackPopObject (&IdxDesc, WalkState);
Status |= AcpiDsObjStackPopObject (&ObjDesc, WalkState);
Status |= AcpiDsObjStackPopObject (&ObjDesc2, WalkState);
Status |= AcpiDsObjStackPopObject (&ObjDesc1, WalkState);
if (ACPI_FAILURE (Status))
{
/* Invalid parameters on object stack */
@ -273,94 +270,139 @@ AcpiExIndex (
}
/* Create the internal return object */
RetDesc = AcpiUtCreateInternalObject (INTERNAL_TYPE_REFERENCE);
if (!RetDesc)
switch (Opcode)
{
Status = AE_NO_MEMORY;
goto Cleanup;
}
case AML_FATAL_OP:
/* DefFatal := FatalOp FatalType FatalCode FatalArg */
DEBUG_PRINTP (ACPI_INFO,
("FatalOp: Type %x Code %x Arg %x <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\n",
(UINT32) ObjDesc1->Integer.Value, (UINT32) ObjDesc2->Integer.Value,
(UINT32) ResDesc->Integer.Value));
/*
* At this point, the ObjDesc operand is either a Package or a Buffer
*/
if (ObjDesc->Common.Type == ACPI_TYPE_PACKAGE)
{
/* Object to be indexed is a Package */
if (IdxDesc->Integer.Value >= ObjDesc->Package.Count)
Fatal = ACPI_MEM_ALLOCATE (sizeof (ACPI_SIGNAL_FATAL_INFO));
if (Fatal)
{
DEBUG_PRINTP (ACPI_ERROR, ("Index value beyond package end\n"));
Status = AE_AML_PACKAGE_LIMIT;
goto Cleanup;
Fatal->Type = (UINT32) ObjDesc1->Integer.Value;
Fatal->Code = (UINT32) ObjDesc2->Integer.Value;
Fatal->Argument = (UINT32) ResDesc->Integer.Value;
}
if ((ResDesc->Common.Type == INTERNAL_TYPE_REFERENCE) &&
(ResDesc->Reference.Opcode == AML_ZERO_OP))
{
/*
* There is no actual result descriptor (the ZeroOp Result
* descriptor is a placeholder), so just delete the placeholder and
* return a reference to the package element
*/
/*
* Signal the OS
*/
AcpiOsSignal (ACPI_SIGNAL_FATAL, Fatal);
AcpiUtRemoveReference (ResDesc);
/* Might return while OS is shutting down */
ACPI_MEM_FREE (Fatal);
break;
case AML_MID_OP:
/* DefMid := MidOp Source Index Length Result */
/* Create the internal return object (string or buffer) */
break;
case AML_INDEX_OP:
/* DefIndex := IndexOp Source Index Destination */
/* Create the internal return object */
RetDesc = AcpiUtCreateInternalObject (INTERNAL_TYPE_REFERENCE);
if (!RetDesc)
{
Status = AE_NO_MEMORY;
goto Cleanup;
}
/*
* At this point, the ObjDesc1 operand is either a Package or a Buffer
*/
if (ObjDesc1->Common.Type == ACPI_TYPE_PACKAGE)
{
/* Object to be indexed is a Package */
if (ObjDesc2->Integer.Value >= ObjDesc1->Package.Count)
{
DEBUG_PRINTP (ACPI_ERROR, ("Index value beyond package end\n"));
Status = AE_AML_PACKAGE_LIMIT;
goto Cleanup;
}
if ((ResDesc->Common.Type == INTERNAL_TYPE_REFERENCE) &&
(ResDesc->Reference.Opcode == AML_ZERO_OP))
{
/*
* There is no actual result descriptor (the ZeroOp Result
* descriptor is a placeholder), so just delete the placeholder and
* return a reference to the package element
*/
AcpiUtRemoveReference (ResDesc);
}
else
{
/*
* Each element of the package is an internal object. Get the one
* we are after.
*/
TmpDesc = ObjDesc1->Package.Elements[ObjDesc2->Integer.Value];
RetDesc->Reference.Opcode = AML_INDEX_OP;
RetDesc->Reference.TargetType = TmpDesc->Common.Type;
RetDesc->Reference.Object = TmpDesc;
Status = AcpiExStore (RetDesc, ResDesc, WalkState);
RetDesc->Reference.Object = NULL;
}
/*
* The local return object must always be a reference to the package element,
* not the element itself.
*/
RetDesc->Reference.Opcode = AML_INDEX_OP;
RetDesc->Reference.TargetType = ACPI_TYPE_PACKAGE;
RetDesc->Reference.Where = &ObjDesc1->Package.Elements[ObjDesc2->Integer.Value];
}
else
{
/*
* Each element of the package is an internal object. Get the one
* we are after.
*/
/* Object to be indexed is a Buffer */
TmpDesc = ObjDesc->Package.Elements[IdxDesc->Integer.Value];
RetDesc->Reference.Opcode = AML_INDEX_OP;
RetDesc->Reference.TargetType = TmpDesc->Common.Type;
RetDesc->Reference.Object = TmpDesc;
if (ObjDesc2->Integer.Value >= ObjDesc1->Buffer.Length)
{
DEBUG_PRINTP (ACPI_ERROR, ("Index value beyond end of buffer\n"));
Status = AE_AML_BUFFER_LIMIT;
goto Cleanup;
}
RetDesc->Reference.Opcode = AML_INDEX_OP;
RetDesc->Reference.TargetType = ACPI_TYPE_BUFFER_FIELD;
RetDesc->Reference.Object = ObjDesc1;
RetDesc->Reference.Offset = (UINT32) ObjDesc2->Integer.Value;
Status = AcpiExStore (RetDesc, ResDesc, WalkState);
RetDesc->Reference.Object = NULL;
}
/*
* The local return object must always be a reference to the package element,
* not the element itself.
*/
RetDesc->Reference.Opcode = AML_INDEX_OP;
RetDesc->Reference.TargetType = ACPI_TYPE_PACKAGE;
RetDesc->Reference.Where = &ObjDesc->Package.Elements[IdxDesc->Integer.Value];
break;
}
else
{
/* Object to be indexed is a Buffer */
if (IdxDesc->Integer.Value >= ObjDesc->Buffer.Length)
{
DEBUG_PRINTP (ACPI_ERROR, ("Index value beyond end of buffer\n"));
Status = AE_AML_BUFFER_LIMIT;
goto Cleanup;
}
RetDesc->Reference.Opcode = AML_INDEX_OP;
RetDesc->Reference.TargetType = ACPI_TYPE_BUFFER_FIELD;
RetDesc->Reference.Object = ObjDesc;
RetDesc->Reference.Offset = (UINT32) IdxDesc->Integer.Value;
Status = AcpiExStore (RetDesc, ResDesc, WalkState);
}
Cleanup:
/* Always delete operands */
AcpiUtRemoveReference (ObjDesc);
AcpiUtRemoveReference (IdxDesc);
AcpiUtRemoveReference (ObjDesc1);
AcpiUtRemoveReference (ObjDesc2);
/* Delete return object on error */
@ -384,28 +426,21 @@ AcpiExIndex (
/*******************************************************************************
*
* FUNCTION: AcpiExMatch
* FUNCTION: AcpiExHexadic
*
* PARAMETERS: none
* PARAMETERS: Opcode - The opcode to be executed
* WalkState - Current walk state
* ReturnDesc - Where to store the return object
*
* RETURN: Status
*
* DESCRIPTION: Execute Match operator
*
* ACPI SPECIFICATION REFERENCES:
* DefMatch := MatchOp SearchPkg Opcode1 Operand1
* Opcode2 Operand2 StartIndex
* Opcode1 := ByteData: MTR, MEQ, MLE, MLT, MGE, or MGT
* Opcode2 := ByteData: MTR, MEQ, MLE, MLT, MGE, or MGT
* Operand1 := TermArg=>Integer
* Operand2 := TermArg=>Integer
* SearchPkg := TermArg=>PackageObject
* StartIndex := TermArg=>Integer
*
******************************************************************************/
ACPI_STATUS
AcpiExMatch (
AcpiExHexadic (
UINT16 Opcode,
ACPI_WALK_STATE *WalkState,
ACPI_OPERAND_OBJECT **ReturnDesc)
{
@ -421,7 +456,7 @@ AcpiExMatch (
UINT32 MatchValue = (UINT32) -1;
FUNCTION_TRACE ("ExMatch");
FUNCTION_TRACE ("ExHexadic");
/* Resolve all operands */
@ -449,197 +484,207 @@ AcpiExMatch (
goto Cleanup;
}
/* Validate match comparison sub-opcodes */
if ((Op1Desc->Integer.Value > MAX_MATCH_OPERATOR) ||
(Op2Desc->Integer.Value > MAX_MATCH_OPERATOR))
switch (Opcode)
{
DEBUG_PRINTP (ACPI_ERROR, ("operation encoding out of range\n"));
Status = AE_AML_OPERAND_VALUE;
goto Cleanup;
}
Index = (UINT32) StartDesc->Integer.Value;
if (Index >= (UINT32) PkgDesc->Package.Count)
{
DEBUG_PRINTP (ACPI_ERROR, ("Start position value out of range\n"));
Status = AE_AML_PACKAGE_LIMIT;
goto Cleanup;
}
case AML_MATCH_OP:
RetDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
if (!RetDesc)
{
Status = AE_NO_MEMORY;
goto Cleanup;
/* Validate match comparison sub-opcodes */
}
/*
* Examine each element until a match is found. Within the loop,
* "continue" signifies that the current element does not match
* and the next should be examined.
* Upon finding a match, the loop will terminate via "break" at
* the bottom. If it terminates "normally", MatchValue will be -1
* (its initial value) indicating that no match was found. When
* returned as a Number, this will produce the Ones value as specified.
*/
for ( ; Index < PkgDesc->Package.Count; ++Index)
{
/*
* Treat any NULL or non-numeric elements as non-matching.
* TBD [Unhandled] - if an element is a Name,
* should we examine its value?
*/
if (!PkgDesc->Package.Elements[Index] ||
ACPI_TYPE_INTEGER != PkgDesc->Package.Elements[Index]->Common.Type)
if ((Op1Desc->Integer.Value > MAX_MATCH_OPERATOR) ||
(Op2Desc->Integer.Value > MAX_MATCH_OPERATOR))
{
continue;
DEBUG_PRINTP (ACPI_ERROR, ("operation encoding out of range\n"));
Status = AE_AML_OPERAND_VALUE;
goto Cleanup;
}
Index = (UINT32) StartDesc->Integer.Value;
if (Index >= (UINT32) PkgDesc->Package.Count)
{
DEBUG_PRINTP (ACPI_ERROR, ("Start position value out of range\n"));
Status = AE_AML_PACKAGE_LIMIT;
goto Cleanup;
}
RetDesc = AcpiUtCreateInternalObject (ACPI_TYPE_INTEGER);
if (!RetDesc)
{
Status = AE_NO_MEMORY;
goto Cleanup;
}
/*
* Within these switch statements:
* "break" (exit from the switch) signifies a match;
* "continue" (proceed to next iteration of enclosing
* "for" loop) signifies a non-match.
* Examine each element until a match is found. Within the loop,
* "continue" signifies that the current element does not match
* and the next should be examined.
* Upon finding a match, the loop will terminate via "break" at
* the bottom. If it terminates "normally", MatchValue will be -1
* (its initial value) indicating that no match was found. When
* returned as a Number, this will produce the Ones value as specified.
*/
switch (Op1Desc->Integer.Value)
for ( ; Index < PkgDesc->Package.Count; ++Index)
{
case MATCH_MTR: /* always true */
break;
case MATCH_MEQ: /* true if equal */
if (PkgDesc->Package.Elements[Index]->Integer.Value
!= V1Desc->Integer.Value)
/*
* Treat any NULL or non-numeric elements as non-matching.
* TBD [Unhandled] - if an element is a Name,
* should we examine its value?
*/
if (!PkgDesc->Package.Elements[Index] ||
ACPI_TYPE_INTEGER != PkgDesc->Package.Elements[Index]->Common.Type)
{
continue;
}
break;
case MATCH_MLE: /* true if less than or equal */
if (PkgDesc->Package.Elements[Index]->Integer.Value
> V1Desc->Integer.Value)
/*
* Within these switch statements:
* "break" (exit from the switch) signifies a match;
* "continue" (proceed to next iteration of enclosing
* "for" loop) signifies a non-match.
*/
switch (Op1Desc->Integer.Value)
{
case MATCH_MTR: /* always true */
break;
case MATCH_MEQ: /* true if equal */
if (PkgDesc->Package.Elements[Index]->Integer.Value
!= V1Desc->Integer.Value)
{
continue;
}
break;
case MATCH_MLE: /* true if less than or equal */
if (PkgDesc->Package.Elements[Index]->Integer.Value
> V1Desc->Integer.Value)
{
continue;
}
break;
case MATCH_MLT: /* true if less than */
if (PkgDesc->Package.Elements[Index]->Integer.Value
>= V1Desc->Integer.Value)
{
continue;
}
break;
case MATCH_MGE: /* true if greater than or equal */
if (PkgDesc->Package.Elements[Index]->Integer.Value
< V1Desc->Integer.Value)
{
continue;
}
break;
case MATCH_MGT: /* true if greater than */
if (PkgDesc->Package.Elements[Index]->Integer.Value
<= V1Desc->Integer.Value)
{
continue;
}
break;
default: /* undefined */
continue;
}
break;
case MATCH_MLT: /* true if less than */
if (PkgDesc->Package.Elements[Index]->Integer.Value
>= V1Desc->Integer.Value)
switch(Op2Desc->Integer.Value)
{
case MATCH_MTR:
break;
case MATCH_MEQ:
if (PkgDesc->Package.Elements[Index]->Integer.Value
!= V2Desc->Integer.Value)
{
continue;
}
break;
case MATCH_MLE:
if (PkgDesc->Package.Elements[Index]->Integer.Value
> V2Desc->Integer.Value)
{
continue;
}
break;
case MATCH_MLT:
if (PkgDesc->Package.Elements[Index]->Integer.Value
>= V2Desc->Integer.Value)
{
continue;
}
break;
case MATCH_MGE:
if (PkgDesc->Package.Elements[Index]->Integer.Value
< V2Desc->Integer.Value)
{
continue;
}
break;
case MATCH_MGT:
if (PkgDesc->Package.Elements[Index]->Integer.Value
<= V2Desc->Integer.Value)
{
continue;
}
break;
default:
continue;
}
/* Match found: exit from loop */
MatchValue = Index;
break;
case MATCH_MGE: /* true if greater than or equal */
if (PkgDesc->Package.Elements[Index]->Integer.Value
< V1Desc->Integer.Value)
{
continue;
}
break;
case MATCH_MGT: /* true if greater than */
if (PkgDesc->Package.Elements[Index]->Integer.Value
<= V1Desc->Integer.Value)
{
continue;
}
break;
default: /* undefined */
continue;
}
/* MatchValue is the return value */
switch(Op2Desc->Integer.Value)
{
case MATCH_MTR:
break;
case MATCH_MEQ:
if (PkgDesc->Package.Elements[Index]->Integer.Value
!= V2Desc->Integer.Value)
{
continue;
}
break;
case MATCH_MLE:
if (PkgDesc->Package.Elements[Index]->Integer.Value
> V2Desc->Integer.Value)
{
continue;
}
break;
case MATCH_MLT:
if (PkgDesc->Package.Elements[Index]->Integer.Value
>= V2Desc->Integer.Value)
{
continue;
}
break;
case MATCH_MGE:
if (PkgDesc->Package.Elements[Index]->Integer.Value
< V2Desc->Integer.Value)
{
continue;
}
break;
case MATCH_MGT:
if (PkgDesc->Package.Elements[Index]->Integer.Value
<= V2Desc->Integer.Value)
{
continue;
}
break;
default:
continue;
}
/* Match found: exit from loop */
MatchValue = Index;
RetDesc->Integer.Value = MatchValue;
break;
}
/* MatchValue is the return value */
RetDesc->Integer.Value = MatchValue;
Cleanup:

View File

@ -1,8 +1,8 @@
/******************************************************************************
*
* Module Name: exmonad - ACPI AML (p-code) execution for monadic operators
* $Revision: 99 $
* Module Name: exmonad - ACPI AML execution for monadic (1 operand) operators
* $Revision: 104 $
*
*****************************************************************************/
@ -227,31 +227,42 @@ AcpiExMonadic1 (
UINT16 Opcode,
ACPI_WALK_STATE *WalkState)
{
ACPI_OPERAND_OBJECT *ObjDesc;
ACPI_OPERAND_OBJECT *ObjDesc = NULL;
ACPI_STATUS Status;
ACPI_STATUS ResolveStatus;
FUNCTION_TRACE_PTR ("ExMonadic1", WALK_OPERANDS);
/* Resolve all operands */
/* Resolve the operand */
Status = AcpiExResolveOperands (Opcode, WALK_OPERANDS, WalkState);
ResolveStatus = AcpiExResolveOperands (Opcode, WALK_OPERANDS, WalkState);
DUMP_OPERANDS (WALK_OPERANDS, IMODE_EXECUTE,
AcpiPsGetOpcodeName (Opcode),
1, "after AcpiExResolveOperands");
/* Get all operands */
/* Get the operand */
Status |= AcpiDsObjStackPopObject (&ObjDesc, WalkState);
if (ACPI_FAILURE (Status))
Status = AcpiDsObjStackPopObject (&ObjDesc, WalkState);
/* Check operand status */
if (ACPI_FAILURE (ResolveStatus))
{
DEBUG_PRINTP (ACPI_ERROR, ("bad operand(s) %s\n",
AcpiPsGetOpcodeName (Opcode), AcpiUtFormatException(Status)));
DEBUG_PRINTP (ACPI_ERROR, ("[%s]: Could not resolve operands, %s\n",
AcpiPsGetOpcodeName (Opcode), AcpiFormatException (ResolveStatus)));
goto Cleanup;
}
if (ACPI_FAILURE (Status))
{
DEBUG_PRINTP (ACPI_ERROR, ("[%s]: bad operand(s) %s\n",
AcpiPsGetOpcodeName (Opcode), AcpiFormatException (Status)));
goto Cleanup;
}
/* Examine the opcode */
@ -345,6 +356,7 @@ AcpiExMonadic2R (
ACPI_OPERAND_OBJECT *RetDesc2 = NULL;
UINT32 ResVal;
ACPI_STATUS Status;
ACPI_STATUS ResolveStatus;
UINT32 i;
UINT32 j;
ACPI_INTEGER Digit;
@ -355,19 +367,30 @@ AcpiExMonadic2R (
/* Resolve all operands */
Status = AcpiExResolveOperands (Opcode, WALK_OPERANDS, WalkState);
ResolveStatus = AcpiExResolveOperands (Opcode, WALK_OPERANDS, WalkState);
DUMP_OPERANDS (WALK_OPERANDS, IMODE_EXECUTE,
AcpiPsGetOpcodeName (Opcode),
2, "after AcpiExResolveOperands");
/* Get all operands */
Status |= AcpiDsObjStackPopObject (&ResDesc, WalkState);
Status = AcpiDsObjStackPopObject (&ResDesc, WalkState);
Status |= AcpiDsObjStackPopObject (&ObjDesc, WalkState);
/* Now we can check the status codes */
if (ACPI_FAILURE (ResolveStatus))
{
DEBUG_PRINTP (ACPI_ERROR, ("[%s]: Could not resolve operands, %s\n",
AcpiPsGetOpcodeName (Opcode), AcpiFormatException (ResolveStatus)));
goto Cleanup;
}
if (ACPI_FAILURE (Status))
{
DEBUG_PRINTP (ACPI_ERROR, ("bad operand(s) %s\n",
AcpiPsGetOpcodeName (Opcode), AcpiUtFormatException(Status)));
DEBUG_PRINTP (ACPI_ERROR, ("[%s]: bad operand(s) %s\n",
AcpiPsGetOpcodeName (Opcode), AcpiFormatException(Status)));
goto Cleanup;
}
@ -609,6 +632,31 @@ AcpiExMonadic2R (
break;
/*
* ACPI 2.0 Opcodes
*/
case AML_TO_DECSTRING_OP:
DEBUG_PRINTP (ACPI_ERROR, ("%s is not implemented\n",
AcpiPsGetOpcodeName (Opcode)));
Status = AE_NOT_IMPLEMENTED;
goto Cleanup;
break;
case AML_TO_HEXSTRING_OP:
Status = AcpiExConvertToString (ObjDesc, &RetDesc, ACPI_UINT32_MAX, WalkState);
break;
case AML_TO_BUFFER_OP:
Status = AcpiExConvertToBuffer (ObjDesc, &RetDesc, WalkState);
break;
case AML_TO_INTEGER_OP:
Status = AcpiExConvertToInteger (ObjDesc, &RetDesc, WalkState);
break;
/*
* These are obsolete opcodes
*/
@ -710,7 +758,7 @@ AcpiExMonadic2 (
if (ACPI_FAILURE (ResolveStatus))
{
DEBUG_PRINTP (ACPI_ERROR, ("[%s]: Could not resolve operands, %s\n",
AcpiPsGetOpcodeName (Opcode), AcpiUtFormatException (ResolveStatus)));
AcpiPsGetOpcodeName (Opcode), AcpiFormatException (ResolveStatus)));
goto Cleanup;
}
@ -718,7 +766,7 @@ AcpiExMonadic2 (
if (ACPI_FAILURE (Status))
{
DEBUG_PRINTP (ACPI_ERROR, ("[%s]: Bad operand(s), %s\n",
AcpiPsGetOpcodeName (Opcode), AcpiUtFormatException (Status)));
AcpiPsGetOpcodeName (Opcode), AcpiFormatException (Status)));
goto Cleanup;
}
@ -793,7 +841,7 @@ AcpiExMonadic2 (
if (ACPI_FAILURE (Status))
{
DEBUG_PRINTP (ACPI_ERROR, ("%s: bad operand(s) %s\n",
AcpiPsGetOpcodeName (Opcode), AcpiUtFormatException(Status)));
AcpiPsGetOpcodeName (Opcode), AcpiFormatException(Status)));
goto Cleanup;
}

View File

@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exnames - interpreter/scanner name load/execute
* $Revision: 79 $
* $Revision: 80 $
*
*****************************************************************************/
@ -184,7 +184,7 @@ AcpiExAllocateNameString (
* This buffer must be deleted by the caller!
*/
NameString = AcpiUtAllocate (SizeNeeded);
NameString = ACPI_MEM_ALLOCATE (SizeNeeded);
if (!NameString)
{
REPORT_ERROR (("ExAllocateNameString: name allocation failure\n"));

View File

@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exprep - ACPI AML (p-code) execution - field prep utilities
* $Revision: 90 $
* $Revision: 91 $
*
*****************************************************************************/
@ -144,13 +144,16 @@
static UINT32
AcpiExDecodeFieldAccessType (
UINT32 Access,
UINT16 Length)
UINT16 Length,
UINT32 *Alignment)
{
switch (Access)
{
case ACCESS_ANY_ACC:
*Alignment = 8;
/* Use the length to set the access type */
if (Length <= 8)
@ -176,18 +179,22 @@ AcpiExDecodeFieldAccessType (
break;
case ACCESS_BYTE_ACC:
*Alignment = 8;
return (8);
break;
case ACCESS_WORD_ACC:
*Alignment = 16;
return (16);
break;
case ACCESS_DWORD_ACC:
*Alignment = 32;
return (32);
break;
case ACCESS_QWORD_ACC: /* ACPI 2.0 */
*Alignment = 64;
return (64);
break;
@ -228,6 +235,7 @@ AcpiExPrepCommonFieldObject (
UINT32 FieldBitLength)
{
UINT32 AccessBitWidth;
UINT32 Alignment;
UINT32 NearestByteAddress;
@ -250,11 +258,18 @@ AcpiExPrepCommonFieldObject (
ObjDesc->CommonField.BitLength = (UINT16) FieldBitLength;
/* Decode the access type so we can compute offsets */
/*
* Decode the access type so we can compute offsets. The access type gives
* two pieces of information - the width of each field access and the
* necessary alignment of the access. For AnyAcc, the width used is the
* largest necessary/possible in an attempt to access the whole field in one
* I/O operation. However, for AnyAcc, the alignment is 8. For all other
* access types (Byte, Word, Dword, Qword), the width is the same as the
* alignment.
*/
AccessBitWidth = AcpiExDecodeFieldAccessType (
((FieldFlags & ACCESS_TYPE_MASK) >> ACCESS_TYPE_SHIFT),
ObjDesc->Field.BitLength);
ObjDesc->Field.BitLength, &Alignment);
if (!AccessBitWidth)
{
return_ACPI_STATUS (AE_AML_OPERAND_VALUE);
@ -269,9 +284,10 @@ AcpiExPrepCommonFieldObject (
{
/*
* BufferField access can be on any byte boundary, so the
* granularity is always 8
* alignment is always 8 (regardless of any alignment implied by the
* field access type.)
*/
AccessBitWidth = 8;
Alignment = 8;
}
@ -282,7 +298,7 @@ AcpiExPrepCommonFieldObject (
*/
NearestByteAddress = ROUND_BITS_DOWN_TO_BYTES (FieldBitPosition);
ObjDesc->CommonField.BaseByteOffset = ROUND_DOWN (NearestByteAddress,
DIV_8 (AccessBitWidth));
DIV_8 (Alignment));
/*
* StartFieldBitOffset is the offset of the first bit of the field within a field datum.

View File

@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exregion - ACPI default OpRegion (address space) handlers
* $Revision: 48 $
* $Revision: 54 $
*
*****************************************************************************/
@ -241,16 +241,17 @@ AcpiExSystemMemorySpaceHandler (
LogicalAddrPtr = MemInfo->MappedLogicalAddress +
((ACPI_INTEGER) Address - (ACPI_INTEGER) MemInfo->MappedPhysicalAddress);
/* Perform the memory read or write */
DEBUG_PRINT ((TRACE_OPREGION | VERBOSE_INFO),
("IO %d (%d width) Address=%8.8lX%8.8lX\n", Function, BitWidth,
HIDWORD(Address), LODWORD(Address)));
/* Perform the memory read or write */
switch (Function)
{
case ACPI_READ_ADR_SPACE:
DEBUG_PRINT ((TRACE_OPREGION | VERBOSE_INFO),
("Read (%d width) Address=%p\n", BitWidth, Address));
switch (BitWidth)
{
case 8:
@ -271,10 +272,6 @@ AcpiExSystemMemorySpaceHandler (
case ACPI_WRITE_ADR_SPACE:
DEBUG_PRINT ((TRACE_OPREGION | VERBOSE_INFO),
("Write (%d width) Address=%p Value %X\n",
BitWidth, Address, *Value));
switch (BitWidth)
{
case 8:
@ -335,6 +332,10 @@ AcpiExSystemIoSpaceHandler (
FUNCTION_TRACE ("ExSystemIoSpaceHandler");
DEBUG_PRINT ((TRACE_OPREGION | VERBOSE_INFO),
("IO %d (%d width) Address=%8.8lX%8.8lX\n", Function, BitWidth,
HIDWORD(Address), LODWORD(Address)));
/* Decode the function parameter */
switch (Function)
@ -342,61 +343,14 @@ AcpiExSystemIoSpaceHandler (
case ACPI_READ_ADR_SPACE:
DEBUG_PRINT ((TRACE_OPREGION | VERBOSE_INFO),
("Read(%d width) Address=%p\n", BitWidth, Address));
switch (BitWidth)
{
/* I/O Port width */
case 8:
*Value = (UINT32) AcpiOsIn8 ((ACPI_IO_ADDRESS) Address);
break;
case 16:
*Value = (UINT32) AcpiOsIn16 ((ACPI_IO_ADDRESS) Address);
break;
case 32:
*Value = AcpiOsIn32 ((ACPI_IO_ADDRESS) Address);
break;
default:
DEBUG_PRINTP (ACPI_ERROR, ("Invalid SystemIO width %d\n",
BitWidth));
Status = AE_AML_OPERAND_VALUE;
}
*Value = 0;
Status = AcpiOsReadPort ((ACPI_IO_ADDRESS) Address, Value, BitWidth);
break;
case ACPI_WRITE_ADR_SPACE:
DEBUG_PRINT ((TRACE_OPREGION | VERBOSE_INFO),
("Write(%d width) Address=%p Value %X\n",
BitWidth, Address, *Value));
switch (BitWidth)
{
/* I/O Port width */
case 8:
AcpiOsOut8 ((ACPI_IO_ADDRESS) Address, (UINT8) *Value);
break;
case 16:
AcpiOsOut16 ((ACPI_IO_ADDRESS) Address, (UINT16) *Value);
break;
case 32:
AcpiOsOut32 ((ACPI_IO_ADDRESS) Address, *Value);
break;
default:
DEBUG_PRINTP (ACPI_ERROR, ("Invalid SystemIO width %d\n",
BitWidth));
Status = AE_AML_OPERAND_VALUE;
}
Status = AcpiOsWritePort ((ACPI_IO_ADDRESS) Address, *Value, BitWidth);
break;
@ -408,6 +362,7 @@ AcpiExSystemIoSpaceHandler (
return_ACPI_STATUS (Status);
}
/*******************************************************************************
*
* FUNCTION: AcpiExPciConfigSpaceHandler
@ -436,111 +391,46 @@ AcpiExPciConfigSpaceHandler (
void *RegionContext)
{
ACPI_STATUS Status = AE_OK;
UINT32 PciBus;
UINT32 DevFunc;
UINT8 PciReg;
ACPI_PCI_SPACE_CONTEXT *PCIContext;
ACPI_PCI_ID *PciId;
UINT16 PciRegister;
FUNCTION_TRACE ("ExPciConfigSpaceHandler");
/*
* The arguments to AcpiOs(Read|Write)PciCfg(Byte|Word|Dword) are:
*
* SegBus - 0xSSSSBBBB - SSSS is the PCI bus segment
* BBBB is the PCI bus number
* PciSegment is the PCI bus segment range 0-31
* PciBus is the PCI bus number range 0-255
* PciDevice is the PCI device number range 0-31
* PciFunction is the PCI device function number
* PciRegister is the Config space register range 0-255 bytes
*
* DevFunc - 0xDDDDFFFF - DDDD is the PCI device number
* FFFF is the PCI device function number
*
* RegNum - Config space register must be < 40h
*
* Value - input value for write, output for read
* Value - input value for write, output address for read
*
*/
PciId = (ACPI_PCI_ID *) RegionContext;
PciRegister = (UINT16) Address;
PCIContext = (ACPI_PCI_SPACE_CONTEXT *) RegionContext;
PciBus = LOWORD (PCIContext->Seg) << 16;
PciBus |= LOWORD (PCIContext->Bus);
DevFunc = PCIContext->DevFunc;
PciReg = (UINT8) Address;
DEBUG_PRINT ((TRACE_OPREGION | VERBOSE_INFO),
("IO %d (%d) Seg(%04x) Bus(%04x) Dev(%04x) Func(%04x) Reg(%04x)\n",
Function, BitWidth, PciId->Segment, PciId->Bus, PciId->Device,
PciId->Function, PciRegister));
switch (Function)
{
case ACPI_READ_ADR_SPACE:
DEBUG_PRINT ((TRACE_OPREGION | VERBOSE_INFO),
("R%d S(%04x) B(%04x) DF(%08x) R(%04x)\n", BitWidth,
PCIContext->Seg,PCIContext->Bus,PCIContext->DevFunc, PciReg));
*Value = 0;
switch (BitWidth)
{
/* PCI Register width */
case 8:
Status = AcpiOsReadPciCfgByte (PciBus, DevFunc, PciReg,
(UINT8 *) Value);
break;
case 16:
Status = AcpiOsReadPciCfgWord (PciBus, DevFunc, PciReg,
(UINT16 *) Value);
break;
case 32:
Status = AcpiOsReadPciCfgDword (PciBus, DevFunc, PciReg,
Value);
break;
default:
DEBUG_PRINTP (ACPI_ERROR, ("Invalid PCIConfig width %d\n",
BitWidth));
Status = AE_AML_OPERAND_VALUE;
} /* Switch bitWidth */
*Value = 0;
Status = AcpiOsReadPciConfiguration (PciId, PciRegister, Value, BitWidth);
break;
case ACPI_WRITE_ADR_SPACE:
DEBUG_PRINT ((TRACE_OPREGION | VERBOSE_INFO),
("W%d S(%04x) B(%04x) DF(%08x) R(%04x) D(%08x)\n", BitWidth,
PCIContext->Seg,PCIContext->Bus,PCIContext->DevFunc,
PciReg,*Value));
switch (BitWidth)
{
/* PCI Register width */
case 8:
Status = AcpiOsWritePciCfgByte (PciBus, DevFunc, PciReg,
*(UINT8 *) Value);
break;
case 16:
Status = AcpiOsWritePciCfgWord (PciBus, DevFunc, PciReg,
*(UINT16 *) Value);
break;
case 32:
Status = AcpiOsWritePciCfgDword (PciBus, DevFunc, PciReg,
*Value);
break;
default:
DEBUG_PRINTP (ACPI_ERROR, ("Invalid PCIConfig width %d\n",
BitWidth));
Status = AE_AML_OPERAND_VALUE;
} /* Switch bitWidth */
Status = AcpiOsWritePciConfiguration (PciId, PciRegister, *Value, BitWidth);
break;
@ -548,7 +438,6 @@ AcpiExPciConfigSpaceHandler (
Status = AE_BAD_PARAMETER;
break;
}
return_ACPI_STATUS (Status);

View File

@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exresop - AML Interpreter operand/object resolution
* $Revision: 29 $
* $Revision: 31 $
*
*****************************************************************************/
@ -477,7 +477,7 @@ AcpiExResolveOperands (
* Need an operand of type ACPI_TYPE_INTEGER,
* But we can implicitly convert from a STRING or BUFFER
*/
Status = AcpiExConvertToInteger (StackPtr, WalkState);
Status = AcpiExConvertToInteger (*StackPtr, StackPtr, WalkState);
if (ACPI_FAILURE (Status))
{
if (Status == AE_TYPE)
@ -502,7 +502,7 @@ AcpiExResolveOperands (
* Need an operand of type ACPI_TYPE_BUFFER,
* But we can implicitly convert from a STRING or INTEGER
*/
Status = AcpiExConvertToBuffer (StackPtr, WalkState);
Status = AcpiExConvertToBuffer (*StackPtr, StackPtr, WalkState);
if (ACPI_FAILURE (Status))
{
if (Status == AE_TYPE)
@ -527,7 +527,7 @@ AcpiExResolveOperands (
* Need an operand of type ACPI_TYPE_STRING,
* But we can implicitly convert from a BUFFER or INTEGER
*/
Status = AcpiExConvertToString (StackPtr, WalkState);
Status = AcpiExConvertToString (*StackPtr, StackPtr, ACPI_UINT32_MAX, WalkState);
if (ACPI_FAILURE (Status))
{
if (Status == AE_TYPE)

View File

@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exstore - AML Interpreter object store support
* $Revision: 139 $
* $Revision: 140 $
*
*****************************************************************************/
@ -603,7 +603,6 @@ AcpiExStoreObjectToNode (
/*
* Assuming the parameters were already validated
*/
ACPI_ASSERT((Node) && (SourceDesc));
/*
@ -734,7 +733,6 @@ AcpiExStoreObjectToObject (
/*
* Assuming the parameters are valid!
*/
ACPI_ASSERT((DestDesc) && (SourceDesc));
DEBUG_PRINTP (ACPI_INFO, ("Storing %p(%s) to %p(%s)\n",
SourceDesc, AcpiUtGetTypeName (SourceDesc->Common.Type),

View File

@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exstorob - AML Interpreter object store support, store to object
* $Revision: 32 $
* $Revision: 33 $
*
*****************************************************************************/
@ -164,7 +164,7 @@ AcpiExCopyBufferToBuffer (
*/
if (TargetDesc->Buffer.Length == 0)
{
TargetDesc->Buffer.Pointer = AcpiUtAllocate (Length);
TargetDesc->Buffer.Pointer = ACPI_MEM_ALLOCATE (Length);
if (!TargetDesc->Buffer.Pointer)
{
return (AE_NO_MEMORY);
@ -181,8 +181,8 @@ AcpiExCopyBufferToBuffer (
{
/* Clear existing buffer and copy in the new one */
MEMSET(TargetDesc->Buffer.Pointer, 0, TargetDesc->Buffer.Length);
MEMCPY(TargetDesc->Buffer.Pointer, Buffer, Length);
MEMSET (TargetDesc->Buffer.Pointer, 0, TargetDesc->Buffer.Length);
MEMCPY (TargetDesc->Buffer.Pointer, Buffer, Length);
}
else
@ -190,7 +190,7 @@ AcpiExCopyBufferToBuffer (
/*
* Truncate the source, copy only what will fit
*/
MEMCPY(TargetDesc->Buffer.Pointer, Buffer, TargetDesc->Buffer.Length);
MEMCPY (TargetDesc->Buffer.Pointer, Buffer, TargetDesc->Buffer.Length);
DEBUG_PRINT (ACPI_INFO,
("ExCopyBufferToBuffer: Truncating src buffer from %X to %X\n",
@ -236,8 +236,8 @@ AcpiExCopyStringToString (
{
/* Clear old string and copy in the new one */
MEMSET(TargetDesc->String.Pointer, 0, TargetDesc->String.Length);
MEMCPY(TargetDesc->String.Pointer, Buffer, Length);
MEMSET (TargetDesc->String.Pointer, 0, TargetDesc->String.Length);
MEMCPY (TargetDesc->String.Pointer, Buffer, Length);
}
else
@ -252,10 +252,10 @@ AcpiExCopyStringToString (
/*
* Only free if not a pointer into the DSDT
*/
AcpiUtFree(TargetDesc->String.Pointer);
ACPI_MEM_FREE (TargetDesc->String.Pointer);
}
TargetDesc->String.Pointer = AcpiUtAllocate (Length + 1);
TargetDesc->String.Pointer = ACPI_MEM_ALLOCATE (Length + 1);
if (!TargetDesc->String.Pointer)
{
return (AE_NO_MEMORY);
@ -263,7 +263,7 @@ AcpiExCopyStringToString (
TargetDesc->String.Length = Length;
MEMCPY(TargetDesc->String.Pointer, Buffer, Length);
MEMCPY (TargetDesc->String.Pointer, Buffer, Length);
}
return (AE_OK);

View File

@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exsystem - Interface to OS services
* $Revision: 62 $
* $Revision: 64 $
*
*****************************************************************************/
@ -167,7 +167,7 @@ AcpiExSystemWaitSemaphore (
Status = AcpiOsWaitSemaphore (Semaphore, 1, Timeout);
DEBUG_PRINT (TRACE_EXEC, ("*** Thread awake after blocking, %s\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
/* Reacquire the interpreter */
@ -207,7 +207,7 @@ AcpiExSystemDoStall (
AcpiExExitInterpreter ();
AcpiOsSleepUsec (HowLong);
AcpiOsStall (HowLong);
/* And now we must get the interpreter again */
@ -216,7 +216,7 @@ AcpiExSystemDoStall (
else
{
AcpiOsSleepUsec (HowLong);
AcpiOsSleep (0, (HowLong / 1000) + 1);
}
}

View File

@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: exutils - interpreter/scanner utilities
* $Revision: 79 $
* $Revision: 80 $
*
*****************************************************************************/
@ -295,7 +295,7 @@ AcpiExAcquireGlobalLock (
else
{
DEBUG_PRINTP (ACPI_ERROR, ("Could not acquire Global Lock, %s\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
}
}

View File

@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: hwacpi - ACPI Hardware Initialization/Mode Interface
* $Revision: 40 $
* $Revision: 42 $
*
*****************************************************************************/
@ -232,7 +232,8 @@ AcpiHwInitialize (
* be modified. The PM1bEvtBlk behaves as expected.
*/
AcpiGbl_Pm1EnableRegisterSave = (UINT16) AcpiHwRegisterRead (ACPI_MTX_LOCK, PM1_EN);
AcpiGbl_Pm1EnableRegisterSave = (UINT16) AcpiHwRegisterRead (
ACPI_MTX_LOCK, PM1_EN);
/*
@ -245,8 +246,8 @@ AcpiHwInitialize (
{
/* GPE0 specified in FADT */
AcpiGbl_Gpe0EnableRegisterSave =
AcpiUtAllocate (DIV_2 (AcpiGbl_FADT->Gpe0BlkLen));
AcpiGbl_Gpe0EnableRegisterSave = ACPI_MEM_ALLOCATE (
DIV_2 (AcpiGbl_FADT->Gpe0BlkLen));
if (!AcpiGbl_Gpe0EnableRegisterSave)
{
return_ACPI_STATUS (AE_NO_MEMORY);
@ -271,8 +272,8 @@ AcpiHwInitialize (
{
/* GPE1 defined */
AcpiGbl_Gpe1EnableRegisterSave =
AcpiUtAllocate (DIV_2 (AcpiGbl_FADT->Gpe1BlkLen));
AcpiGbl_Gpe1EnableRegisterSave = ACPI_MEM_ALLOCATE (
DIV_2 (AcpiGbl_FADT->Gpe1BlkLen));
if (!AcpiGbl_Gpe1EnableRegisterSave)
{
return_ACPI_STATUS (AE_NO_MEMORY);
@ -324,7 +325,7 @@ AcpiHwSetMode (
{
/* BIOS should have disabled ALL fixed and GP events */
AcpiOsOut8 (AcpiGbl_FADT->SmiCmd, AcpiGbl_FADT->AcpiEnable);
AcpiOsWritePort (AcpiGbl_FADT->SmiCmd, AcpiGbl_FADT->AcpiEnable, 8);
DEBUG_PRINTP (ACPI_INFO, ("Attempting to enable ACPI mode\n"));
}
@ -335,7 +336,7 @@ AcpiHwSetMode (
* enable bits to default
*/
AcpiOsOut8 (AcpiGbl_FADT->SmiCmd, AcpiGbl_FADT->AcpiDisable);
AcpiOsWritePort (AcpiGbl_FADT->SmiCmd, AcpiGbl_FADT->AcpiDisable, 8);
DEBUG_PRINTP (ACPI_INFO,
("Attempting to enable Legacy (non-ACPI) mode\n"));
}

View File

@ -2,7 +2,7 @@
/******************************************************************************
*
* Module Name: hwgpe - Low level GPE enable/disable/clear functions
* $Revision: 29 $
* $Revision: 31 $
*
*****************************************************************************/
@ -140,9 +140,9 @@ void
AcpiHwEnableGpe (
UINT32 GpeNumber)
{
UINT8 InByte;
UINT32 InByte;
UINT32 RegisterIndex;
UINT8 BitMask;
UINT32 BitMask;
/*
* Translate GPE number to index into global registers array.
@ -158,9 +158,10 @@ AcpiHwEnableGpe (
* Read the current value of the register, set the appropriate bit
* to enable the GPE, and write out the new register.
*/
InByte = AcpiOsIn8 (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr);
AcpiOsOut8 (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr,
(UINT8)(InByte | BitMask));
InByte = 0;
AcpiOsReadPort (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr, &InByte, 8);
AcpiOsWritePort (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr,
(InByte | BitMask), 8);
}
@ -180,9 +181,9 @@ void
AcpiHwDisableGpe (
UINT32 GpeNumber)
{
UINT8 InByte;
UINT32 InByte;
UINT32 RegisterIndex;
UINT8 BitMask;
UINT32 BitMask;
/*
* Translate GPE number to index into global registers array.
@ -198,9 +199,10 @@ AcpiHwDisableGpe (
* Read the current value of the register, clear the appropriate bit,
* and write out the new register value to disable the GPE.
*/
InByte = AcpiOsIn8 (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr);
AcpiOsOut8 (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr,
(UINT8)(InByte & ~BitMask));
InByte = 0;
AcpiOsReadPort (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr, &InByte, 8);
AcpiOsWritePort (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr,
(InByte & ~BitMask), 8);
}
@ -221,7 +223,8 @@ AcpiHwClearGpe (
UINT32 GpeNumber)
{
UINT32 RegisterIndex;
UINT8 BitMask;
UINT32 BitMask;
/*
* Translate GPE number to index into global registers array.
@ -237,7 +240,7 @@ AcpiHwClearGpe (
* Write a one to the appropriate bit in the status register to
* clear this GPE.
*/
AcpiOsOut8 (AcpiGbl_GpeRegisters[RegisterIndex].StatusAddr, BitMask);
AcpiOsWritePort (AcpiGbl_GpeRegisters[RegisterIndex].StatusAddr, BitMask, 8);
}
@ -258,9 +261,10 @@ AcpiHwGetGpeStatus (
UINT32 GpeNumber,
ACPI_EVENT_STATUS *EventStatus)
{
UINT8 InByte = 0;
UINT32 InByte = 0;
UINT32 RegisterIndex = 0;
UINT8 BitMask = 0;
UINT32 BitMask = 0;
if (!EventStatus)
{
@ -282,8 +286,8 @@ AcpiHwGetGpeStatus (
/*
* Enabled?:
*/
InByte = AcpiOsIn8 (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr);
InByte = 0;
AcpiOsReadPort (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr, &InByte, 8);
if (BitMask & InByte)
{
(*EventStatus) |= ACPI_EVENT_FLAG_ENABLED;
@ -292,8 +296,8 @@ AcpiHwGetGpeStatus (
/*
* Set?
*/
InByte = AcpiOsIn8 (AcpiGbl_GpeRegisters[RegisterIndex].StatusAddr);
InByte = 0;
AcpiOsReadPort (AcpiGbl_GpeRegisters[RegisterIndex].StatusAddr, &InByte, 8);
if (BitMask & InByte)
{
(*EventStatus) |= ACPI_EVENT_FLAG_SET;

View File

@ -3,7 +3,7 @@
*
* Module Name: hwregs - Read/write access functions for the various ACPI
* control and status registers.
* $Revision: 97 $
* $Revision: 102 $
*
******************************************************************************/
@ -196,8 +196,9 @@ AcpiHwClearAcpiStatus (void)
if (ACPI_VALID_ADDRESS (AcpiGbl_FADT->XPm1bEvtBlk.Address))
{
AcpiOsOut16 ((ACPI_IO_ADDRESS) ACPI_GET_ADDRESS (AcpiGbl_FADT->XPm1bEvtBlk.Address),
(UINT16) ALL_FIXED_STS_BITS);
AcpiOsWritePort ((ACPI_IO_ADDRESS)
ACPI_GET_ADDRESS (AcpiGbl_FADT->XPm1bEvtBlk.Address),
ALL_FIXED_STS_BITS, 16);
}
/* now clear the GPE Bits */
@ -208,9 +209,9 @@ AcpiHwClearAcpiStatus (void)
for (Index = 0; Index < GpeLength; Index++)
{
AcpiOsOut8 ((ACPI_IO_ADDRESS) (
AcpiOsWritePort ((ACPI_IO_ADDRESS) (
ACPI_GET_ADDRESS (AcpiGbl_FADT->XGpe0Blk.Address) + Index),
(UINT8) 0xff);
0xFF, 8);
}
}
@ -220,9 +221,9 @@ AcpiHwClearAcpiStatus (void)
for (Index = 0; Index < GpeLength; Index++)
{
AcpiOsOut8 ((ACPI_IO_ADDRESS) (
AcpiOsWritePort ((ACPI_IO_ADDRESS) (
ACPI_GET_ADDRESS (AcpiGbl_FADT->XGpe1Blk.Address) + Index),
(UINT8) 0xff);
0xFF, 8);
}
}
@ -709,7 +710,7 @@ AcpiHwRegisterRead (
BOOLEAN UseLock,
UINT32 RegisterId)
{
UINT32 Value = 0;
UINT32 Value = 0;
UINT32 BankOffset;
@ -786,12 +787,12 @@ AcpiHwRegisterRead (
case SMI_CMD_BLOCK: /* 8bit */
Value = (UINT32) AcpiOsIn8 (AcpiGbl_FADT->SmiCmd);
AcpiOsReadPort (AcpiGbl_FADT->SmiCmd, &Value, 8);
break;
default:
Value = 0;
/* Value will be returned as 0 */
break;
}
@ -915,7 +916,7 @@ AcpiHwRegisterWrite (
/* For 2.0, SMI_CMD is always in IO space */
/* TBD: what about 1.0? 0.71? */
AcpiOsOut8 (AcpiGbl_FADT->SmiCmd, (UINT8) Value);
AcpiOsWritePort (AcpiGbl_FADT->SmiCmd, Value, 8);
break;
@ -957,8 +958,8 @@ AcpiHwLowLevelRead (
UINT32 Value = 0;
ACPI_PHYSICAL_ADDRESS MemAddress;
ACPI_IO_ADDRESS IoAddress;
UINT32 PciRegister;
UINT32 PciDevFunc;
ACPI_PCI_ID PciId;
UINT16 PciRegister;
/*
@ -983,18 +984,7 @@ AcpiHwLowLevelRead (
MemAddress = (ACPI_PHYSICAL_ADDRESS) (ACPI_GET_ADDRESS (Reg->Address) + Offset);
switch (Width)
{
case 8:
Value = AcpiOsMemIn8 (MemAddress);
break;
case 16:
Value = AcpiOsMemIn16 (MemAddress);
break;
case 32:
Value = AcpiOsMemIn32 (MemAddress);
break;
}
AcpiOsReadMemory (MemAddress, &Value, Width);
break;
@ -1002,38 +992,19 @@ AcpiHwLowLevelRead (
IoAddress = (ACPI_IO_ADDRESS) (ACPI_GET_ADDRESS (Reg->Address) + Offset);
switch (Width)
{
case 8:
Value = AcpiOsIn8 (IoAddress);
break;
case 16:
Value = AcpiOsIn16 (IoAddress);
break;
case 32:
Value = AcpiOsIn32 (IoAddress);
break;
}
AcpiOsReadPort (IoAddress, &Value, Width);
break;
case ACPI_ADR_SPACE_PCI_CONFIG:
PciDevFunc = ACPI_PCI_DEVFUN (ACPI_GET_ADDRESS (Reg->Address));
PciRegister = ACPI_PCI_REGISTER (ACPI_GET_ADDRESS (Reg->Address)) + Offset;
PciId.Segment = 0;
PciId.Bus = 0;
PciId.Device = ACPI_PCI_DEVICE (ACPI_GET_ADDRESS (Reg->Address));
PciId.Function = ACPI_PCI_FUNCTION (ACPI_GET_ADDRESS (Reg->Address));
PciRegister = (UINT16) (ACPI_PCI_REGISTER (ACPI_GET_ADDRESS (Reg->Address)) + Offset);
switch (Width)
{
case 8:
AcpiOsReadPciCfgByte (0, PciDevFunc, PciRegister, (UINT8 *) &Value);
break;
case 16:
AcpiOsReadPciCfgWord (0, PciDevFunc, PciRegister, (UINT16 *) &Value);
break;
case 32:
AcpiOsReadPciCfgDword (0, PciDevFunc, PciRegister, (UINT32 *) &Value);
break;
}
AcpiOsReadPciConfiguration (&PciId, PciRegister, &Value, Width);
break;
}
@ -1066,8 +1037,8 @@ AcpiHwLowLevelWrite (
{
ACPI_PHYSICAL_ADDRESS MemAddress;
ACPI_IO_ADDRESS IoAddress;
UINT32 PciRegister;
UINT32 PciDevFunc;
ACPI_PCI_ID PciId;
UINT16 PciRegister;
/*
@ -1092,18 +1063,7 @@ AcpiHwLowLevelWrite (
MemAddress = (ACPI_PHYSICAL_ADDRESS) (ACPI_GET_ADDRESS (Reg->Address) + Offset);
switch (Width)
{
case 8:
AcpiOsMemOut8 (MemAddress, (UINT8) Value);
break;
case 16:
AcpiOsMemOut16 (MemAddress, (UINT16) Value);
break;
case 32:
AcpiOsMemOut32 (MemAddress, (UINT32) Value);
break;
}
AcpiOsWriteMemory (MemAddress, Value, Width);
break;
@ -1111,38 +1071,19 @@ AcpiHwLowLevelWrite (
IoAddress = (ACPI_IO_ADDRESS) (ACPI_GET_ADDRESS (Reg->Address) + Offset);
switch (Width)
{
case 8:
AcpiOsOut8 (IoAddress, (UINT8) Value);
break;
case 16:
AcpiOsOut16 (IoAddress, (UINT16) Value);
break;
case 32:
AcpiOsOut32 (IoAddress, (UINT32) Value);
break;
}
AcpiOsWritePort (IoAddress, Value, Width);
break;
case ACPI_ADR_SPACE_PCI_CONFIG:
PciDevFunc = ACPI_PCI_DEVFUN (ACPI_GET_ADDRESS (Reg->Address));
PciRegister = ACPI_PCI_REGISTER (ACPI_GET_ADDRESS (Reg->Address)) + Offset;
PciId.Segment = 0;
PciId.Bus = 0;
PciId.Device = ACPI_PCI_DEVICE (ACPI_GET_ADDRESS (Reg->Address));
PciId.Function = ACPI_PCI_FUNCTION (ACPI_GET_ADDRESS (Reg->Address));
PciRegister = (UINT16) (ACPI_PCI_REGISTER (ACPI_GET_ADDRESS (Reg->Address)) + Offset);
switch (Width)
{
case 8:
AcpiOsWritePciCfgByte (0, PciDevFunc, PciRegister, (UINT8) Value);
break;
case 16:
AcpiOsWritePciCfgWord (0, PciDevFunc, PciRegister, (UINT16) Value);
break;
case 32:
AcpiOsWritePciCfgDword (0, PciDevFunc, PciRegister, (UINT32) Value);
break;
}
AcpiOsWritePciConfiguration (&PciId, PciRegister, Value, Width);
break;
}
}

View File

@ -2,7 +2,7 @@
/******************************************************************************
*
* Name: hwsleep.c - ACPI Hardware Sleep/Wake Interface
* $Revision: 12 $
* $Revision: 14 $
*
*****************************************************************************/
@ -283,7 +283,7 @@ AcpiEnterSleepState (
PM1AControl |= (TypeA << AcpiHwGetBitShift (SLP_TYPE_X_MASK));
PM1BControl |= (TypeB << AcpiHwGetBitShift (SLP_TYPE_X_MASK));
/* write #1: fill in SLP_TYPE data */
/* write #1: fill in SLP_TYP data */
AcpiHwRegisterWrite(ACPI_MTX_LOCK, PM1A_CONTROL, PM1AControl);
AcpiHwRegisterWrite(ACPI_MTX_LOCK, PM1B_CONTROL, PM1BControl);
@ -291,10 +291,16 @@ AcpiEnterSleepState (
PM1AControl |= (1 << AcpiHwGetBitShift (SLP_EN_MASK));
PM1BControl |= (1 << AcpiHwGetBitShift (SLP_EN_MASK));
/* write #2: the whole tamale */
/* write #2: SLP_TYP + SLP_EN */
AcpiHwRegisterWrite(ACPI_MTX_LOCK, PM1A_CONTROL, PM1AControl);
AcpiHwRegisterWrite(ACPI_MTX_LOCK, PM1B_CONTROL, PM1BControl);
/* wait a second, then try again */
AcpiOsStall(1000000);
AcpiHwRegisterWrite(ACPI_MTX_LOCK, PM1_CONTROL,
(1 << AcpiHwGetBitShift (SLP_EN_MASK)));
enable();
return_ACPI_STATUS (AE_OK);

View File

@ -2,7 +2,7 @@
/******************************************************************************
*
* Name: hwtimer.c - ACPI Power Management Timer Interface
* $Revision: 10 $
* $Revision: 11 $
*
*****************************************************************************/
@ -161,6 +161,7 @@ AcpiGetTimerResolution (
{
*Resolution = 24;
}
else
{
*Resolution = 32;
@ -205,7 +206,8 @@ AcpiGetTimer (
return_ACPI_STATUS (AE_BAD_PARAMETER);
}
*Ticks = AcpiOsIn32 ((ACPI_IO_ADDRESS) ACPI_GET_ADDRESS (AcpiGbl_FADT->XPmTmrBlk.Address));
AcpiOsReadPort ((ACPI_IO_ADDRESS)
ACPI_GET_ADDRESS (AcpiGbl_FADT->XPmTmrBlk.Address), Ticks, 32);
return_ACPI_STATUS (AE_OK);
}
@ -252,6 +254,7 @@ AcpiGetTimerDuration (
FUNCTION_TRACE ("AcpiGetTimerDuration");
if (!TimeElapsed)
{
return_ACPI_STATUS (AE_BAD_PARAMETER);
@ -266,19 +269,24 @@ AcpiGetTimerDuration (
{
DeltaTicks = EndTicks - StartTicks;
}
else if (StartTicks > EndTicks)
{
/* 24-bit Timer */
if (0 == AcpiGbl_FADT->TmrValExt)
{
DeltaTicks = (((0x00FFFFFF - StartTicks) + EndTicks) & 0x00FFFFFF);
}
/* 32-bit Timer */
else
{
DeltaTicks = (0xFFFFFFFF - StartTicks) + EndTicks;
}
}
else
{
*TimeElapsed = 0;
@ -311,17 +319,21 @@ AcpiGetTimerDuration (
*/
/* Step #1 */
Seconds = DeltaTicks / PM_TIMER_FREQUENCY;
Remainder = DeltaTicks % PM_TIMER_FREQUENCY;
/* Step #2 */
Milliseconds = (Remainder * 1000) / PM_TIMER_FREQUENCY;
Remainder = (Remainder * 1000) % PM_TIMER_FREQUENCY;
/* Step #3 */
Microseconds = (Remainder * 1000) / PM_TIMER_FREQUENCY;
/* Step #4 */
*TimeElapsed = Seconds * 1000000;
*TimeElapsed += Milliseconds * 1000;
*TimeElapsed += Microseconds;

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: nsaccess - Top-level functions for accessing ACPI namespace
* $Revision: 126 $
* $Revision: 128 $
*
******************************************************************************/
@ -189,7 +189,7 @@ AcpiNsRootInitialize (void)
{
DEBUG_PRINTP (ACPI_ERROR,
("Could not create predefined name %s, %s\n",
InitVal->Name, AcpiUtFormatException (Status)));
InitVal->Name, AcpiFormatException (Status)));
}
/*
@ -237,7 +237,7 @@ AcpiNsRootInitialize (void)
* String.Pointers must be allocated buffers!
* (makes deletion simpler)
*/
ObjDesc->String.Pointer = AcpiUtAllocate (
ObjDesc->String.Pointer = ACPI_MEM_ALLOCATE (
(ObjDesc->String.Length + 1));
if (!ObjDesc->String.Pointer)
{

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: nsalloc - Namespace allocation and deletion utilities
* $Revision: 50 $
* $Revision: 51 $
*
******************************************************************************/
@ -147,7 +147,7 @@ AcpiNsCreateNode (
FUNCTION_TRACE ("NsCreateNode");
Node = AcpiUtCallocate (sizeof (ACPI_NAMESPACE_NODE));
Node = ACPI_MEM_CALLOCATE (sizeof (ACPI_NAMESPACE_NODE));
if (!Node)
{
return_PTR (NULL);
@ -222,9 +222,7 @@ AcpiNsDeleteNode (
AcpiNsDetachObject (Node);
}
AcpiUtFree (Node);
ACPI_MEM_FREE (Node);
return_VOID;
}
@ -429,7 +427,7 @@ AcpiNsDeleteChildren (
AcpiNsDetachObject (ChildNode);
}
AcpiUtFree (ChildNode);
ACPI_MEM_FREE (ChildNode);
/* And move on to the next child in the list */

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: nsdump - table dumping routines for debug
* $Revision: 93 $
* $Revision: 94 $
*
*****************************************************************************/
@ -163,7 +163,7 @@ AcpiNsDumpPathname (
return_ACPI_STATUS (AE_OK);
}
Buffer = AcpiUtAllocate (PATHNAME_MAX);
Buffer = ACPI_MEM_ALLOCATE (PATHNAME_MAX);
if (!Buffer)
{
return_ACPI_STATUS (AE_NO_MEMORY);
@ -177,7 +177,7 @@ AcpiNsDumpPathname (
AcpiOsPrintf ("%s %s (%p)\n", Msg, Buffer, Handle);
}
AcpiUtFree (Buffer);
ACPI_MEM_FREE (Buffer);
return_ACPI_STATUS (AE_OK);
}

View File

@ -2,7 +2,7 @@
*
* Module Name: nseval - Object evaluation interfaces -- includes control
* method lookup and execution.
* $Revision: 91 $
* $Revision: 93 $
*
******************************************************************************/
@ -208,7 +208,7 @@ AcpiNsEvaluateRelative (
if (ACPI_FAILURE (Status))
{
DEBUG_PRINTP (ACPI_INFO, ("Object [%s] not found [%s]\n",
Pathname, AcpiUtFormatException (Status)));
Pathname, AcpiFormatException (Status)));
goto Cleanup;
}
@ -227,7 +227,7 @@ AcpiNsEvaluateRelative (
Cleanup:
AcpiUtFree (InternalPath);
ACPI_MEM_FREE (InternalPath);
return_ACPI_STATUS (Status);
}
@ -311,7 +311,7 @@ AcpiNsEvaluateByName (
if (InternalPath)
{
AcpiUtFree (InternalPath);
ACPI_MEM_FREE (InternalPath);
}
return_ACPI_STATUS (Status);

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: nsinit - namespace initialization
* $Revision: 25 $
* $Revision: 28 $
*
*****************************************************************************/
@ -120,6 +120,7 @@
#include "acpi.h"
#include "acnamesp.h"
#include "acdispat.h"
#include "acinterp.h"
#define _COMPONENT ACPI_NAMESPACE
MODULE_NAME ("nsinit")
@ -281,6 +282,22 @@ AcpiNsInitOneObject (
return (AE_OK);
}
if ((Type != ACPI_TYPE_REGION) &&
(Type != ACPI_TYPE_BUFFER_FIELD))
{
return (AE_OK);
}
/*
* Must lock the interpreter before executing AML code
*/
Status = AcpiExEnterInterpreter ();
if (ACPI_FAILURE (Status))
{
return (Status);
}
switch (Type)
{
@ -299,7 +316,7 @@ AcpiNsInitOneObject (
DEBUG_PRINT_RAW (ACPI_ERROR, ("\n"));
DEBUG_PRINT (ACPI_ERROR,
("%s while getting region arguments [%4.4s]\n",
AcpiUtFormatException (Status), &Node->Name));
AcpiFormatException (Status), &Node->Name));
}
if (!(AcpiDbgLevel & TRACE_INIT))
@ -325,7 +342,7 @@ AcpiNsInitOneObject (
DEBUG_PRINT_RAW (ACPI_ERROR, ("\n"));
DEBUG_PRINT (ACPI_ERROR,
("%s while getting buffer field arguments [%4.4s]\n",
AcpiUtFormatException (Status), &Node->Name));
AcpiFormatException (Status), &Node->Name));
}
if (!(AcpiDbgLevel & TRACE_INIT))
{
@ -339,10 +356,12 @@ AcpiNsInitOneObject (
break;
}
/*
* We ignore errors from above, and always return OK, since
* we don't want to abort the walk on a single error.
*/
AcpiExExitInterpreter ();
return (AE_OK);
}
@ -438,9 +457,9 @@ AcpiNsInitOneDevice (
NATIVE_CHAR *ScopeName = AcpiNsGetTablePathname (ObjHandle);
DEBUG_PRINTP (ACPI_WARN, ("%s._INI failed: %s\n",
ScopeName, AcpiUtFormatException (Status)));
ScopeName, AcpiFormatException (Status)));
AcpiUtFree (ScopeName);
ACPI_MEM_FREE (ScopeName);
#endif
}

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: nsnames - Name manipulation and search
* $Revision: 59 $
* $Revision: 60 $
*
******************************************************************************/
@ -182,7 +182,7 @@ AcpiNsGetTablePathname (
/* Allocate a buffer to be returned to caller */
NameBuffer = AcpiUtCallocate (Size + 1);
NameBuffer = ACPI_MEM_CALLOCATE (Size + 1);
if (!NameBuffer)
{
REPORT_ERROR (("NsGetTablePathname: allocation failure\n"));

View File

@ -2,7 +2,7 @@
*
* Module Name: nsobject - Utilities for objects attached to namespace
* table entries
* $Revision: 55 $
* $Revision: 56 $
*
******************************************************************************/
@ -470,7 +470,7 @@ AcpiNsDetachObject (
Node, ObjDesc, &Node->Name));
/*
* Not every value is an object allocated via AcpiUtCallocate,
* Not every value is an object allocated via ACPI_MEM_CALLOCATE,
* - must check
*/

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: nssearch - Namespace search
* $Revision: 70 $
* $Revision: 71 $
*
******************************************************************************/
@ -176,7 +176,7 @@ AcpiNsSearchNode (
DEBUG_PRINTP (TRACE_NAMES, ("Searching %s [%p] For %4.4s (type %X)\n",
ScopeName, Node, &TargetName, Type));
AcpiUtFree (ScopeName);
ACPI_MEM_FREE (ScopeName);
}
}
#endif

View File

@ -2,7 +2,7 @@
*
* Module Name: nsutils - Utilities for accessing ACPI namespace, accessing
* parents and siblings and Scope manipulation
* $Revision: 83 $
* $Revision: 85 $
*
*****************************************************************************/
@ -493,7 +493,7 @@ AcpiNsInternalizeName (
/* We need a segment to store the internal name */
InternalName = AcpiUtCallocate (Info.Length);
InternalName = ACPI_MEM_CALLOCATE (Info.Length);
if (!InternalName)
{
return_ACPI_STATUS (AE_NO_MEMORY);
@ -505,7 +505,7 @@ AcpiNsInternalizeName (
Status = AcpiNsBuildInternalName (&Info);
if (ACPI_FAILURE (Status))
{
AcpiUtFree (InternalName);
ACPI_MEM_FREE (InternalName);
return_ACPI_STATUS (Status);
}
@ -645,7 +645,7 @@ AcpiNsExternalizeName (
* Build ConvertedName...
*/
(*ConvertedName) = AcpiUtCallocate (*ConvertedNameLength);
(*ConvertedName) = ACPI_MEM_CALLOCATE (*ConvertedNameLength);
if (!(*ConvertedName))
{
return_ACPI_STATUS (AE_NO_MEMORY);
@ -923,7 +923,7 @@ AcpiNsGetNode (
if (ACPI_FAILURE (Status))
{
DEBUG_PRINTP (ACPI_INFO, ("%s, %s\n",
InternalPath, AcpiUtFormatException (Status)));
InternalPath, AcpiFormatException (Status)));
}
@ -931,7 +931,7 @@ AcpiNsGetNode (
/* Cleanup */
AcpiUtFree (InternalPath);
ACPI_MEM_FREE (InternalPath);
return_ACPI_STATUS (Status);
}

View File

@ -2,7 +2,7 @@
*
* Module Name: nsxfobj - Public interfaces to the ACPI subsystem
* ACPI Object oriented interfaces
* $Revision: 86 $
* $Revision: 87 $
*
******************************************************************************/
@ -197,8 +197,8 @@ AcpiEvaluateObject (
ParamLength = (Count + 1) * sizeof (void *);
ObjectLength = Count * sizeof (ACPI_OPERAND_OBJECT);
ParamPtr = AcpiUtCallocate (ParamLength + /* Parameter List part */
ObjectLength); /* Actual objects */
ParamPtr = ACPI_MEM_CALLOCATE (ParamLength + /* Parameter List part */
ObjectLength); /* Actual objects */
if (!ParamPtr)
{
return_ACPI_STATUS (AE_NO_MEMORY);

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: psopcode - Parser opcode information table
* $Revision: 32 $
* $Revision: 33 $
*
*****************************************************************************/
@ -477,8 +477,8 @@ static ACPI_OPCODE_INFO AmlOpInfo[] =
/* 2E */ /* AML_DEREF_OF_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2| AML_HAS_ARGS, "DerefOf", ARGP_DEREF_OF_OP, ARGI_DEREF_OF_OP),
/* 2F */ /* AML_NOTIFY_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC1| AML_HAS_ARGS, "Notify", ARGP_NOTIFY_OP, ARGI_NOTIFY_OP),
/* 30 */ /* AML_SIZE_OF_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2| AML_HAS_ARGS, "SizeOf", ARGP_SIZE_OF_OP, ARGI_SIZE_OF_OP),
/* 31 */ /* AML_INDEX_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_INDEX| AML_HAS_ARGS, "Index", ARGP_INDEX_OP, ARGI_INDEX_OP),
/* 32 */ /* AML_MATCH_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MATCH| AML_HAS_ARGS, "Match", ARGP_MATCH_OP, ARGI_MATCH_OP),
/* 31 */ /* AML_INDEX_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_TRIADIC| AML_HAS_ARGS, "Index", ARGP_INDEX_OP, ARGI_INDEX_OP),
/* 32 */ /* AML_MATCH_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_HEXADIC| AML_HAS_ARGS, "Match", ARGP_MATCH_OP, ARGI_MATCH_OP),
/* 33 */ /* AML_CREATE_DWORD_FIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CREATE_FIELD| AML_HAS_ARGS, "CreateDWordField", ARGP_CREATE_DWORD_FIELD_OP,ARGI_CREATE_DWORD_FIELD_OP),
/* 34 */ /* AML_CREATE_WORD_FIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CREATE_FIELD| AML_HAS_ARGS, "CreateWordField", ARGP_CREATE_WORD_FIELD_OP, ARGI_CREATE_WORD_FIELD_OP),
/* 35 */ /* AML_CREATE_BYTE_FIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CREATE_FIELD| AML_HAS_ARGS, "CreateByteField", ARGP_CREATE_BYTE_FIELD_OP, ARGI_CREATE_BYTE_FIELD_OP),
@ -518,7 +518,7 @@ static ACPI_OPCODE_INFO AmlOpInfo[] =
/* 54 */ /* AML_UNLOAD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_RECONFIGURATION| AML_HAS_ARGS, "Unload", ARGP_UNLOAD_OP, ARGI_UNLOAD_OP),
/* 55 */ /* AML_REVISION_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CONSTANT| AML_NO_ARGS, "Revision", ARGP_REVISION_OP, ARGI_REVISION_OP),
/* 56 */ /* AML_DEBUG_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CONSTANT| AML_NO_ARGS, "Debug", ARGP_DEBUG_OP, ARGI_DEBUG_OP),
/* 57 */ /* AML_FATAL_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_FATAL| AML_HAS_ARGS, "Fatal", ARGP_FATAL_OP, ARGI_FATAL_OP),
/* 57 */ /* AML_FATAL_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_TRIADIC| AML_HAS_ARGS, "Fatal", ARGP_FATAL_OP, ARGI_FATAL_OP),
/* 58 */ /* AML_REGION_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS, "OpRegion", ARGP_REGION_OP, ARGI_REGION_OP),
/* 59 */ /* AML_FIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS, "Field", ARGP_FIELD_OP, ARGI_FIELD_OP),
/* 5A */ /* AML_DEVICE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_NAMED_OBJECT| AML_HAS_ARGS, "Device", ARGP_DEVICE_OP, ARGI_DEVICE_OP),
@ -554,10 +554,10 @@ static ACPI_OPCODE_INFO AmlOpInfo[] =
/* 71 */ /* AML_MOD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "Mod", ARGP_MOD_OP, ARGI_MOD_OP),
/* 72 */ /* AML_CREATE_QWORD_FIELD_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CREATE_FIELD| AML_HAS_ARGS, "CreateQWordField", ARGP_CREATE_QWORD_FIELD_OP,ARGI_CREATE_QWORD_FIELD_OP),
/* 73 */ /* AML_TO_BUFFER_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "ToBuffer", ARGP_TO_BUFFER_OP, ARGI_TO_BUFFER_OP),
/* 74 */ /* AML_TO_DEC_STR_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "ToDecString", ARGP_TO_DEC_STR_OP, ARGI_TO_DEC_STR_OP),
/* 75 */ /* AML_TO_HEX_STR_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "ToHexString", ARGP_TO_HEX_STR_OP, ARGI_TO_HEX_STR_OP),
/* 74 */ /* AML_TO_DECSTR_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "ToDecString", ARGP_TO_DEC_STR_OP, ARGI_TO_DEC_STR_OP),
/* 75 */ /* AML_TO_HEXSTR_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "ToHexString", ARGP_TO_HEX_STR_OP, ARGI_TO_HEX_STR_OP),
/* 76 */ /* AML_TO_INTEGER_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "ToInteger", ARGP_TO_INTEGER_OP, ARGI_TO_INTEGER_OP),
/* 77 */ /* AML_TO_STRING_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "ToString", ARGP_TO_STRING_OP, ARGI_TO_STRING_OP),
/* 77 */ /* AML_TO_STRING_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_DYADIC2R| AML_HAS_ARGS, "ToString", ARGP_TO_STRING_OP, ARGI_TO_STRING_OP),
/* 78 */ /* AML_COPY_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "CopyObject", ARGP_COPY_OP, ARGI_COPY_OP),
/* 79 */ /* AML_MID_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_MONADIC2R| AML_HAS_ARGS, "Mid", ARGP_MID_OP, ARGI_MID_OP),
/* 7A */ /* AML_CONTINUE_OP */ OP_INFO_ENTRY (ACPI_OP_TYPE_OPCODE | OPTYPE_CONTROL| AML_NO_ARGS, "Continue", ARGP_CONTINUE_OP, ARGI_CONTINUE_OP),

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: psparse - Parser top level AML parse routines
* $Revision: 85 $
* $Revision: 87 $
*
*****************************************************************************/
@ -249,7 +249,7 @@ AcpiPsCreateState (
FUNCTION_TRACE ("PsCreateState");
ParserState = AcpiUtCallocate (sizeof (ACPI_PARSE_STATE));
ParserState = ACPI_MEM_CALLOCATE (sizeof (ACPI_PARSE_STATE));
if (!ParserState)
{
return_PTR (NULL);
@ -666,11 +666,11 @@ AcpiPsParseLoop (
{
DEBUG_PRINTP (ACPI_ERROR,
("Invoked method did not return a value, %s\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
}
DEBUG_PRINTP (ACPI_ERROR, ("GetPredicate Failed, %s\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
return_ACPI_STATUS (Status);
}
@ -1398,7 +1398,7 @@ AcpiPsParseAml (
/* Delete this walk state and all linked control states */
AcpiPsCleanupScope (WalkState->ParserState);
AcpiUtFree (WalkState->ParserState);
ACPI_MEM_FREE (WalkState->ParserState);
AcpiDsDeleteWalkState (WalkState);
/* Check if we have restarted a preempted walk */
@ -1450,7 +1450,7 @@ AcpiPsParseAml (
AcpiDsDeleteWalkState (WalkState);
AcpiPsCleanupScope (ParserState);
AcpiUtFree (ParserState);
ACPI_MEM_FREE (ParserState);
AcpiExReleaseAllMutexes ((ACPI_OPERAND_OBJECT *)&WalkList.AcquiredMutexList);
AcpiGbl_CurrentWalkList = PrevWalkList;

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: psutils - Parser miscellaneous utilities (Parser only)
* $Revision: 37 $
* $Revision: 38 $
*
*****************************************************************************/
@ -290,7 +290,7 @@ AcpiPsAllocOp (
if (!Op)
{
Op = AcpiUtCallocate (Size);
Op = ACPI_MEM_CALLOCATE (Size);
}
/* Initialize the Op */
@ -381,8 +381,7 @@ AcpiPsFreeOp (
/*
* Not a GENERIC OP, or the cache is full, just free the Op
*/
AcpiUtFree (Op);
ACPI_MEM_FREE (Op);
}
@ -415,7 +414,8 @@ AcpiPsDeleteParseCache (
/* Delete one cached state object */
Next = AcpiGbl_ParseCache->Next;
AcpiUtFree (AcpiGbl_ParseCache);
ACPI_MEM_FREE (AcpiGbl_ParseCache);
AcpiGbl_ParseCache = Next;
AcpiGbl_ParseCacheDepth--;
}
@ -427,7 +427,8 @@ AcpiPsDeleteParseCache (
/* Delete one cached state object */
Next = AcpiGbl_ExtParseCache->Next;
AcpiUtFree (AcpiGbl_ExtParseCache);
ACPI_MEM_FREE (AcpiGbl_ExtParseCache);
AcpiGbl_ExtParseCache = (ACPI_PARSE2_OBJECT *) Next;
AcpiGbl_ExtParseCacheDepth--;
}

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: psxface - Parser external interfaces
* $Revision: 44 $
* $Revision: 45 $
*
*****************************************************************************/
@ -128,7 +128,7 @@
MODULE_NAME ("psxface")
/*****************************************************************************
/*******************************************************************************
*
* FUNCTION: AcpiPsxExecute
*
@ -144,7 +144,7 @@
*
* DESCRIPTION: Execute a control method
*
****************************************************************************/
******************************************************************************/
ACPI_STATUS
AcpiPsxExecute (
@ -199,7 +199,6 @@ AcpiPsxExecute (
* Perform the first pass parse of the method to enter any
* named objects that it creates into the namespace
*/
DEBUG_PRINTP (ACPI_INFO,
("**** Begin Method Execution **** Entry=%p obj=%p\n",
MethodNode, ObjDesc));
@ -255,11 +254,9 @@ AcpiPsxExecute (
/*
* Normal exit is with Status == AE_RETURN_VALUE when a ReturnOp has been
* executed, or with Status == AE_PENDING at end of AML block (end of
* Method code)
* If the method has returned an object, signal this to the caller with
* a control exception code
*/
if (*ReturnObjDesc)
{
DEBUG_PRINTP (ACPI_INFO, ("Method returned ObjDesc=%X\n",

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: rscreate - Create resource lists/tables
* $Revision: 33 $
* $Revision: 34 $
*
******************************************************************************/
@ -516,7 +516,7 @@ AcpiRsCreateByteStream (
&ByteStreamSizeNeeded);
DEBUG_PRINTP (VERBOSE_INFO, ("ByteStreamSizeNeeded=%X, %s\n",
ByteStreamSizeNeeded, AcpiUtFormatException (Status)));
ByteStreamSizeNeeded, AcpiFormatException (Status)));
/*
* Exit with the error passed back

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: rsutils - Utilities for the resource manager
* $Revision: 19 $
* $Revision: 20 $
*
******************************************************************************/
@ -447,7 +447,7 @@ AcpiRsSetSrsMethodData (
/*
* Allocate the buffer needed
*/
ByteStream = AcpiUtCallocate(BufferSizeNeeded);
ByteStream = ACPI_MEM_CALLOCATE (BufferSizeNeeded);
if (NULL == ByteStream)
{
return_ACPI_STATUS (AE_NO_MEMORY);
@ -491,7 +491,7 @@ AcpiRsSetSrsMethodData (
*/
Cleanup:
AcpiUtFree (ByteStream);
ACPI_MEM_FREE (ByteStream);
return_ACPI_STATUS (Status);
}

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: tbconvrt - ACPI Table conversion utilities
* $Revision: 23 $
* $Revision: 24 $
*
*****************************************************************************/
@ -203,7 +203,7 @@ AcpiTbConvertToXsdt (
/* Allocate an XSDT */
NewTable = AcpiUtCallocate (TableSize);
NewTable = ACPI_MEM_CALLOCATE (TableSize);
if (!NewTable)
{
return (AE_NO_MEMORY);
@ -295,7 +295,7 @@ AcpiTbConvertTableFadt (void)
/* AcpiGbl_FADT is valid */
/* Allocate and zero the 2.0 buffer */
FADT2 = AcpiUtCallocate (sizeof (FADT_DESCRIPTOR_REV2));
FADT2 = ACPI_MEM_CALLOCATE (sizeof (FADT_DESCRIPTOR_REV2));
if (FADT2 == NULL)
{
return_ACPI_STATUS (AE_NO_MEMORY);
@ -614,7 +614,7 @@ AcpiTbBuildCommonFacs (
/* Allocate a common FACS */
CommonFacs = AcpiUtCallocate (sizeof (ACPI_COMMON_FACS));
CommonFacs = ACPI_MEM_CALLOCATE (sizeof (ACPI_COMMON_FACS));
if (!CommonFacs)
{
return_ACPI_STATUS (AE_NO_MEMORY);

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: tbget - ACPI Table get* routines
* $Revision: 48 $
* $Revision: 51 $
*
*****************************************************************************/
@ -263,7 +263,7 @@ AcpiTbGetTable (
/* Allocate buffer for the entire table */
FullTable = AcpiUtAllocate (TableHeader->Length);
FullTable = ACPI_MEM_ALLOCATE (TableHeader->Length);
if (!FullTable)
{
return_ACPI_STATUS (AE_NO_MEMORY);
@ -743,8 +743,9 @@ AcpiTbGetTableRsdt (
*/
DEBUG_PRINTP (ACPI_INFO,
("RSDP located at %p, RSDT physical=%p \n",
AcpiGbl_RSDP, AcpiGbl_RSDP->RsdtPhysicalAddress));
("RSDP located at %p, RSDT physical=%8.8lX%8.8lX \n",
AcpiGbl_RSDP, HIDWORD(AcpiGbl_RSDP->RsdtPhysicalAddress),
LODWORD(AcpiGbl_RSDP->RsdtPhysicalAddress)));
PhysicalAddress = AcpiTbGetRsdtAddress ();
@ -756,7 +757,7 @@ AcpiTbGetTableRsdt (
if (ACPI_FAILURE (Status))
{
DEBUG_PRINTP (ACPI_ERROR, ("Could not get the RSDT, %s\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
return_ACPI_STATUS (Status);
}
@ -846,7 +847,7 @@ AcpiTbGetTableFacs (
* Getting table from a file -- allocate a buffer and
* read the table.
*/
TablePtr = AcpiUtAllocate (Size);
TablePtr = ACPI_MEM_ALLOCATE (Size);
if(!TablePtr)
{
return_ACPI_STATUS (AE_NO_MEMORY);

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: tbinstal - ACPI table installation and removal
* $Revision: 39 $
* $Revision: 40 $
*
*****************************************************************************/
@ -345,7 +345,7 @@ AcpiTbInitTableDescriptor (
if (ListHead->Pointer)
{
TableDesc = AcpiUtCallocate (sizeof (ACPI_TABLE_DESC));
TableDesc = ACPI_MEM_CALLOCATE (sizeof (ACPI_TABLE_DESC));
if (!TableDesc)
{
return_ACPI_STATUS (AE_NO_MEMORY);
@ -586,7 +586,7 @@ AcpiTbDeleteSingleTable (
case ACPI_MEM_ALLOCATED:
AcpiUtFree (TableDesc->BasePointer);
ACPI_MEM_FREE (TableDesc->BasePointer);
break;
@ -667,7 +667,7 @@ AcpiTbUninstallTable (
/* Free the table descriptor */
NextDesc = TableDesc->Next;
AcpiUtFree (TableDesc);
ACPI_MEM_FREE (TableDesc);
}

View File

@ -2,7 +2,7 @@
*
* Module Name: tbxface - Public interfaces to the ACPI subsystem
* ACPI table oriented interfaces
* $Revision: 39 $
* $Revision: 41 $
*
*****************************************************************************/
@ -141,9 +141,9 @@
******************************************************************************/
ACPI_STATUS
AcpiLoadTables (
ACPI_PHYSICAL_ADDRESS RsdpPhysicalAddress)
AcpiLoadTables (void)
{
ACPI_PHYSICAL_ADDRESS RsdpPhysicalAddress;
ACPI_STATUS Status;
UINT32 NumberOfTables = 0;
@ -159,13 +159,25 @@ AcpiLoadTables (
return_ACPI_STATUS (Status);
}
/* Get the RSDP */
Status = AcpiOsGetRootPointer (ACPI_LOGICAL_ADDRESSING,
&RsdpPhysicalAddress);
if (ACPI_FAILURE (Status))
{
REPORT_ERROR (("AcpiLoadTables: Could not get RSDP, %s\n",
AcpiFormatException (Status)));
goto ErrorExit;
}
/* Map and validate the RSDP */
Status = AcpiTbVerifyRsdp (RsdpPhysicalAddress);
if (ACPI_FAILURE (Status))
{
REPORT_ERROR (("AcpiLoadTables: RSDP Failed validation: %s\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
goto ErrorExit;
}
@ -175,7 +187,7 @@ AcpiLoadTables (
if (ACPI_FAILURE (Status))
{
REPORT_ERROR (("AcpiLoadTables: Could not load RSDT: %s\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
goto ErrorExit;
}
@ -185,7 +197,7 @@ AcpiLoadTables (
if (ACPI_FAILURE (Status))
{
REPORT_ERROR (("AcpiLoadTables: Error getting required tables (DSDT/FADT/FACS): %s\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
goto ErrorExit;
}
@ -198,7 +210,7 @@ AcpiLoadTables (
if (ACPI_FAILURE (Status))
{
REPORT_ERROR (("AcpiLoadTables: Could not load namespace: %s\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
goto ErrorExit;
}
@ -207,7 +219,7 @@ AcpiLoadTables (
ErrorExit:
REPORT_ERROR (("AcpiLoadTables: Could not load tables: %s\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
return_ACPI_STATUS (Status);
}

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: tbxfroot - Find the root ACPI table (RSDT)
* $Revision: 39 $
* $Revision: 46 $
*
*****************************************************************************/
@ -132,6 +132,7 @@
* FUNCTION: AcpiFindRootPointer
*
* PARAMETERS: **RsdpPhysicalAddress - Where to place the RSDP address
* Flags - Logical/Physical addressing
*
* RETURN: Status, Physical address of the RSDP
*
@ -141,6 +142,7 @@
ACPI_STATUS
AcpiFindRootPointer (
UINT32 Flags,
ACPI_PHYSICAL_ADDRESS *RsdpPhysicalAddress)
{
ACPI_TABLE_DESC TableInfo;
@ -152,7 +154,7 @@ AcpiFindRootPointer (
/* Get the RSDP */
Status = AcpiTbFindRsdp (&TableInfo, ACPI_LOGICAL_ADDRESSING);
Status = AcpiTbFindRsdp (&TableInfo, Flags);
if (ACPI_FAILURE (Status))
{
DEBUG_PRINTP (ACPI_ERROR, ("RSDP structure not found\n"));
@ -204,11 +206,14 @@ AcpiTbScanMemoryForRsdp (
{
/* If so, we have found the RSDP */
DEBUG_PRINTP (ACPI_INFO,
("RSDP located at physical address %p\n",MemRover));
return_PTR (MemRover);
}
}
/* Searched entire block, no RSDP was found */
DEBUG_PRINTP (ACPI_INFO,("Searched entire block, no RSDP was found.\n"));
return_PTR (NULL);
}
@ -373,7 +378,6 @@ AcpiGetFirmwareTable (
ACPI_TABLE_HEADER **TablePointer)
{
ACPI_PHYSICAL_ADDRESS PhysicalAddress;
ACPI_TABLE_DESC TableInfo;
ACPI_TABLE_HEADER *RsdtPtr;
ACPI_TABLE_HEADER *TablePtr;
ACPI_STATUS Status;
@ -403,16 +407,21 @@ AcpiGetFirmwareTable (
return_ACPI_STATUS (AE_BAD_PARAMETER);
}
/* Get the RSDP by scanning low memory */
/* Get the RSDP */
Status = AcpiTbFindRsdp (&TableInfo, Flags);
Status = AcpiOsGetRootPointer (Flags, &PhysicalAddress);
if (ACPI_FAILURE (Status))
{
DEBUG_PRINTP (ACPI_ERROR, ("RSDP structure not found\n"));
DEBUG_PRINTP (ACPI_INFO, ("RSDP not found\n"));
return_ACPI_STATUS (AE_NO_ACPI_TABLES);
}
AcpiGbl_RSDP = (RSDP_DESCRIPTOR *) TableInfo.Pointer;
AcpiGbl_RSDP = (RSDP_DESCRIPTOR *) (ACPI_TBLPTR) PhysicalAddress;
DEBUG_PRINTP (ACPI_INFO,
("RSDP located at %p, RSDT physical=%8.8lX%8.8lX \n",
AcpiGbl_RSDP, HIDWORD(AcpiGbl_RSDP->RsdtPhysicalAddress),
LODWORD(AcpiGbl_RSDP->RsdtPhysicalAddress)));
/* Get the RSDT and validate it */

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: utalloc - local memory allocation routines
* $Revision: 90 $
* $Revision: 93 $
*
*****************************************************************************/
@ -126,15 +126,18 @@
MODULE_NAME ("utalloc")
#ifdef ACPI_DEBUG_TRACK_ALLOCATIONS
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
/*
* Most of this code is for tracking memory leaks in the subsystem, and it
* gets compiled out when the ACPI_DEBUG flag is not set.
* Every memory allocation is kept track of in a doubly linked list. Each
* This module is used for tracking memory leaks in the subsystem, and it
* gets compiled out when the ACPI_DBG_TRACK_ALLOCATIONS is not set.
*
* Each memory allocation is tracked via a doubly linked list. Each
* element contains the caller's component, module name, function name, and
* line number. _UtAllocate and _UtCallocate call AcpiUtAddElementToAllocList
* to add an element to the list; deletion occurs in the bosy of _UtFree.
* line number. AcpiUtAllocate and AcpiUtCallocate call
* AcpiUtAddElementToAllocList to add an element to the list; deletion
* occurs in the body of AcpiUtFree.
*/
@ -433,7 +436,7 @@ AcpiUtDeleteElementFromAllocList (
else
{
_REPORT_ERROR (Module, Line, Component,
("_UtFree: Entry not found in list\n"));
("AcpiUtFree: Entry not found in list\n"));
DEBUG_PRINTP (ACPI_ERROR, ("Entry %p was not found in allocation list\n",
Address));
AcpiUtReleaseMutex (ACPI_MTX_MEMORY);
@ -614,11 +617,11 @@ AcpiUtDumpCurrentAllocations (
return_VOID;
}
#endif /* #ifdef ACPI_DEBUG_TRACK_ALLOCATIONS */
/*******************************************************************************
*
* FUNCTION: _UtAllocate
* FUNCTION: AcpiUtAllocate
*
* PARAMETERS: Size - Size of the allocation
* Component - Component type of caller
@ -632,7 +635,7 @@ AcpiUtDumpCurrentAllocations (
******************************************************************************/
void *
_UtAllocate (
AcpiUtAllocate (
UINT32 Size,
UINT32 Component,
NATIVE_CHAR *Module,
@ -641,7 +644,7 @@ _UtAllocate (
void *Address = NULL;
FUNCTION_TRACE_U32 ("_UtAllocate", Size);
FUNCTION_TRACE_U32 ("AcpiUtAllocate", Size);
/* Check for an inadvertent size of zero bytes */
@ -664,7 +667,6 @@ _UtAllocate (
return_PTR (NULL);
}
#ifdef ACPI_DEBUG_TRACK_ALLOCATIONS
if (ACPI_FAILURE (AcpiUtAddElementToAllocList (Address, Size, MEM_MALLOC,
Component, Module, Line)))
@ -674,7 +676,6 @@ _UtAllocate (
}
DEBUG_PRINTP (TRACE_ALLOCATIONS, ("%p Size %X\n", Address, Size));
#endif
return_PTR (Address);
}
@ -682,7 +683,7 @@ _UtAllocate (
/*******************************************************************************
*
* FUNCTION: _UtCallocate
* FUNCTION: AcpiUtCallocate
*
* PARAMETERS: Size - Size of the allocation
* Component - Component type of caller
@ -696,7 +697,7 @@ _UtAllocate (
******************************************************************************/
void *
_UtCallocate (
AcpiUtCallocate (
UINT32 Size,
UINT32 Component,
NATIVE_CHAR *Module,
@ -705,7 +706,7 @@ _UtCallocate (
void *Address = NULL;
FUNCTION_TRACE_U32 ("_UtCallocate", Size);
FUNCTION_TRACE_U32 ("AcpiUtCallocate", Size);
/* Check for an inadvertent size of zero bytes */
@ -728,7 +729,6 @@ _UtCallocate (
return_PTR (NULL);
}
#ifdef ACPI_DEBUG_TRACK_ALLOCATIONS
if (ACPI_FAILURE (AcpiUtAddElementToAllocList (Address, Size, MEM_CALLOC,
Component,Module, Line)))
@ -736,7 +736,6 @@ _UtCallocate (
AcpiOsFree (Address);
return_PTR (NULL);
}
#endif
DEBUG_PRINTP (TRACE_ALLOCATIONS, ("%p Size %X\n", Address, Size));
@ -746,7 +745,7 @@ _UtCallocate (
/*******************************************************************************
*
* FUNCTION: _UtFree
* FUNCTION: AcpiUtFree
*
* PARAMETERS: Address - Address of the memory to deallocate
* Component - Component type of caller
@ -760,27 +759,24 @@ _UtCallocate (
******************************************************************************/
void
_UtFree (
AcpiUtFree (
void *Address,
UINT32 Component,
NATIVE_CHAR *Module,
UINT32 Line)
{
FUNCTION_TRACE_PTR ("_UtFree", Address);
FUNCTION_TRACE_PTR ("AcpiUtFree", Address);
if (NULL == Address)
{
_REPORT_ERROR (Module, Line, Component,
("_UtFree: Trying to delete a NULL address\n"));
("AcpiUtFree: Trying to delete a NULL address\n"));
return_VOID;
}
#ifdef ACPI_DEBUG_TRACK_ALLOCATIONS
AcpiUtDeleteElementFromAllocList (Address, Component, Module, Line);
#endif
AcpiOsFree (Address);
DEBUG_PRINTP (TRACE_ALLOCATIONS, ("%p freed\n", Address));
@ -788,4 +784,5 @@ _UtFree (
return_VOID;
}
#endif /* #ifdef ACPI_DBG_TRACK_ALLOCATIONS */

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: cmclib - Local implementation of C library functions
* $Revision: 38 $
* $Revision: 39 $
*
*****************************************************************************/
@ -344,7 +344,7 @@ AcpiUtStrcat (
for (String = DstString; *String++; )
{ ; }
/* Concatinate the string */
/* Concatenate the string */
for (--String; (*String++ = *SrcString++); )
{ ; }
@ -384,7 +384,7 @@ AcpiUtStrncat (
for (String = DstString; *String++; )
{ ; }
/* Concatinate the string */
/* Concatenate the string */
for (--String; (*String++ = *SrcString++) && --Count; )
{ ; }

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: utcopy - Internal to external object translation utilities
* $Revision: 74 $
* $Revision: 76 $
*
*****************************************************************************/
@ -527,6 +527,9 @@ AcpiUtCopyEsimpleToIsimple (
InternalObject->Common.Type = (UINT8) ExternalObject->Type;
/*
* Simple types supported are: String, Buffer, Integer
*/
switch (ExternalObject->Type)
{
@ -545,15 +548,15 @@ AcpiUtCopyEsimpleToIsimple (
case ACPI_TYPE_INTEGER:
/*
* Number is included in the object itself
*/
InternalObject->Integer.Value = ExternalObject->Integer.Value;
break;
default:
return_ACPI_STATUS (AE_CTRL_RETURN_VALUE);
/*
* Whatever other type -- it is not supported
*/
return_ACPI_STATUS (AE_SUPPORT);
break;
}
@ -815,7 +818,7 @@ AcpiUtCopyIpackageToIpackage (
* Create the object array and walk the source package tree
*/
DestObj->Package.Elements = AcpiUtCallocate ((SourceObj->Package.Count + 1) *
DestObj->Package.Elements = ACPI_MEM_CALLOCATE ((SourceObj->Package.Count + 1) *
sizeof (void *));
DestObj->Package.NextElement = DestObj->Package.Elements;

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: utdebug - Debug print routines
* $Revision: 72 $
* $Revision: 73 $
*
*****************************************************************************/
@ -342,11 +342,8 @@ FunctionStatusExit (
{
DebugPrint (ModuleName, LineNumber, ComponentId,
TRACE_FUNCTIONS,
" %2.2ld Exiting Function: %s, %s\n",
AcpiGbl_NestingLevel,
FunctionName,
AcpiUtFormatException (Status));
TRACE_FUNCTIONS, " %2.2ld Exiting Function: %s, %s\n",
AcpiGbl_NestingLevel, FunctionName, AcpiFormatException (Status));
AcpiGbl_NestingLevel--;
}

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: utdelete - object deletion and reference count utilities
* $Revision: 71 $
* $Revision: 72 $
*
******************************************************************************/
@ -285,7 +285,7 @@ AcpiUtDeleteInternalObj (
{
DEBUG_PRINTP (ACPI_INFO, ("Deleting Obj Ptr %p \n", ObjPointer));
AcpiUtFree (ObjPointer);
ACPI_MEM_FREE (ObjPointer);
}
}
@ -358,7 +358,7 @@ AcpiUtDeleteInternalObjectList (
/* Free the combined parameter pointer list and object array */
AcpiUtFree (ObjList);
ACPI_MEM_FREE (ObjList);
return_ACPI_STATUS (AE_OK);
}

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: uteval - Object evaluation
* $Revision: 27 $
* $Revision: 28 $
*
*****************************************************************************/
@ -169,7 +169,7 @@ AcpiUtEvaluateNumericObject (
{
DEBUG_PRINTP (ACPI_ERROR, ("%s on %4.4s failed with status %s\n",
ObjectName, &DeviceNode->Name,
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
}
return_ACPI_STATUS (Status);
@ -254,7 +254,7 @@ AcpiUtExecute_HID (
else
{
DEBUG_PRINTP (ACPI_ERROR, ("_HID on %4.4s failed %s\n",
&DeviceNode->Name, AcpiUtFormatException (Status)));
&DeviceNode->Name, AcpiFormatException (Status)));
}
return_ACPI_STATUS (Status);
@ -351,7 +351,7 @@ AcpiUtExecute_UID (
{
DEBUG_PRINTP (ACPI_ERROR,
("_UID on %4.4s failed %s\n",
&DeviceNode->Name, AcpiUtFormatException (Status)));
&DeviceNode->Name, AcpiFormatException (Status)));
}
return (Status);
@ -450,7 +450,7 @@ AcpiUtExecute_STA (
{
DEBUG_PRINTP (ACPI_ERROR, ("_STA on %4.4s failed %s\n",
&DeviceNode->Name,
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
}
else /* success */

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: utglobal - Global variables for the ACPI subsystem
* $Revision: 123 $
* $Revision: 125 $
*
*****************************************************************************/
@ -128,6 +128,81 @@
MODULE_NAME ("utglobal")
/******************************************************************************
*
* FUNCTION: AcpiFormatException
*
* PARAMETERS: Status - The ACPI_STATUS code to be formatted
*
* RETURN: A string containing the exception text
*
* DESCRIPTION: This function translates an ACPI exception into an ASCII string.
*
******************************************************************************/
const char *
AcpiFormatException (
ACPI_STATUS Status)
{
char *Exception = "UNKNOWN_STATUS_CODE";
ACPI_STATUS SubStatus;
SubStatus = (Status & ~AE_CODE_MASK);
switch (Status & AE_CODE_MASK)
{
case AE_CODE_ENVIRONMENTAL:
if (SubStatus <= AE_CODE_ENV_MAX)
{
Exception = AcpiGbl_ExceptionNames_Env [SubStatus];
}
break;
case AE_CODE_PROGRAMMER:
if (SubStatus <= AE_CODE_PGM_MAX)
{
Exception = AcpiGbl_ExceptionNames_Pgm [SubStatus -1];
}
break;
case AE_CODE_ACPI_TABLES:
if (SubStatus <= AE_CODE_TBL_MAX)
{
Exception = AcpiGbl_ExceptionNames_Tbl [SubStatus -1];
}
break;
case AE_CODE_AML:
if (SubStatus <= AE_CODE_AML_MAX)
{
Exception = AcpiGbl_ExceptionNames_Aml [SubStatus -1];
}
break;
case AE_CODE_CONTROL:
if (SubStatus <= AE_CODE_CTRL_MAX)
{
Exception = AcpiGbl_ExceptionNames_Ctrl [SubStatus -1];
}
break;
default:
break;
}
return ((const char *) Exception);
}
/******************************************************************************
*
* Static global variable initialization.
@ -523,80 +598,6 @@ AcpiUtValidObjectType (
}
/*****************************************************************************
*
* FUNCTION: AcpiUtFormatException
*
* PARAMETERS: Status - Acpi status to be formatted
*
* RETURN: Formatted status string
*
* DESCRIPTION: Convert an ACPI exception to a string
*
****************************************************************************/
NATIVE_CHAR *
AcpiUtFormatException (
ACPI_STATUS Status)
{
NATIVE_CHAR *Exception = "UNKNOWN_STATUS";
ACPI_STATUS SubStatus;
SubStatus = (Status & ~AE_CODE_MASK);
switch (Status & AE_CODE_MASK)
{
case AE_CODE_ENVIRONMENTAL:
if (SubStatus <= AE_CODE_ENV_MAX)
{
Exception = AcpiGbl_ExceptionNames_Env [SubStatus];
}
break;
case AE_CODE_PROGRAMMER:
if (SubStatus <= AE_CODE_PGM_MAX)
{
Exception = AcpiGbl_ExceptionNames_Pgm [SubStatus -1];
}
break;
case AE_CODE_ACPI_TABLES:
if (SubStatus <= AE_CODE_TBL_MAX)
{
Exception = AcpiGbl_ExceptionNames_Tbl [SubStatus -1];
}
break;
case AE_CODE_AML:
if (SubStatus <= AE_CODE_AML_MAX)
{
Exception = AcpiGbl_ExceptionNames_Aml [SubStatus -1];
}
break;
case AE_CODE_CONTROL:
if (SubStatus <= AE_CODE_CTRL_MAX)
{
Exception = AcpiGbl_ExceptionNames_Ctrl [SubStatus -1];
}
break;
default:
break;
}
return (Exception);
}
/****************************************************************************
*
* FUNCTION: AcpiUtAllocateOwnerId

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: utinit - Common ACPI subsystem initialization
* $Revision: 96 $
* $Revision: 98 $
*
*****************************************************************************/
@ -278,12 +278,12 @@ AcpiUtTerminate (void)
if (AcpiGbl_Gpe0EnableRegisterSave)
{
AcpiUtFree (AcpiGbl_Gpe0EnableRegisterSave);
ACPI_MEM_FREE (AcpiGbl_Gpe0EnableRegisterSave);
}
if (AcpiGbl_Gpe1EnableRegisterSave)
{
AcpiUtFree (AcpiGbl_Gpe1EnableRegisterSave);
ACPI_MEM_FREE (AcpiGbl_Gpe1EnableRegisterSave);
}
@ -349,7 +349,8 @@ AcpiUtSubsystemShutdown (void)
AcpiPsDeleteParseCache ();
/* Debug only - display leftover memory allocation, if any */
#ifdef ENABLE_DEBUGGER
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
AcpiUtDumpCurrentAllocations (ACPI_UINT32_MAX, NULL);
#endif

View File

@ -1,7 +1,7 @@
/*******************************************************************************
*
* Module Name: utmisc - common utility procedures
* $Revision: 42 $
* $Revision: 44 $
*
******************************************************************************/
@ -452,7 +452,7 @@ AcpiUtAcquireMutex (
{
DEBUG_PRINTP (ACPI_ERROR, ("Thread %X could not acquire Mutex [%s] %s\n",
ThisThreadId, AcpiUtGetMutexName (MutexId),
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
}
return (Status);
@ -541,7 +541,7 @@ AcpiUtReleaseMutex (
{
DEBUG_PRINTP (ACPI_ERROR, ("Thread %X could not release Mutex [%s] %s\n",
ThisThreadId, AcpiUtGetMutexName (MutexId),
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
}
else
{
@ -743,7 +743,7 @@ AcpiUtCreateGenericState (void)
AcpiUtReleaseMutex (ACPI_MTX_CACHES);
State = AcpiUtCallocate (sizeof (ACPI_GENERIC_STATE));
State = ACPI_MEM_CALLOCATE (sizeof (ACPI_GENERIC_STATE));
}
/* Initialize */
@ -915,7 +915,7 @@ AcpiUtDeleteGenericState (
if (AcpiGbl_GenericStateCacheDepth >= MAX_STATE_CACHE_DEPTH)
{
AcpiUtFree (State);
ACPI_MEM_FREE (State);
}
/* Otherwise put this object back into the cache */
@ -972,7 +972,8 @@ AcpiUtDeleteGenericStateCache (
/* Delete one cached state object */
Next = AcpiGbl_GenericStateCache->Common.Next;
AcpiUtFree (AcpiGbl_GenericStateCache);
ACPI_MEM_FREE (AcpiGbl_GenericStateCache);
AcpiGbl_GenericStateCache = Next;
AcpiGbl_GenericStateCacheDepth--;
}

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: utobject - ACPI object create/delete/size/cache routines
* $Revision: 46 $
* $Revision: 49 $
*
*****************************************************************************/
@ -182,7 +182,6 @@ _UtCreateInternalObject (
/* Any per-type initialization should go here */
return_PTR (Object);
}
@ -312,8 +311,7 @@ _UtAllocateObjectDesc (
/* Attempt to allocate new descriptor */
Object = _UtCallocate (sizeof (ACPI_OPERAND_OBJECT), ComponentId,
ModuleName, LineNumber);
Object = ACPI_MEM_CALLOCATE (sizeof (ACPI_OPERAND_OBJECT));
if (!Object)
{
/* Allocation failed */
@ -389,7 +387,7 @@ AcpiUtDeleteObjectDesc (
*/
DECREMENT_OBJECT_METRICS (sizeof (ACPI_OPERAND_OBJECT));
AcpiUtFree (Object);
ACPI_MEM_FREE (Object);
return_VOID;
}
@ -450,7 +448,7 @@ AcpiUtDeleteObjectCache (
*/
DECREMENT_OBJECT_METRICS (sizeof (ACPI_OPERAND_OBJECT));
AcpiUtFree (AcpiGbl_ObjectCache);
ACPI_MEM_FREE (AcpiGbl_ObjectCache);
AcpiGbl_ObjectCache = Next;
AcpiGbl_ObjectCacheDepth--;
}

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: utxface - External interfaces for "global" ACPI functions
* $Revision: 72 $
* $Revision: 76 $
*
*****************************************************************************/
@ -124,6 +124,7 @@
#include "acinterp.h"
#include "amlcode.h"
#include "acdebug.h"
#include "acexcep.h"
#define _COMPONENT ACPI_UTILITIES
@ -162,7 +163,7 @@ AcpiInitializeSubsystem (
if (ACPI_FAILURE (Status))
{
REPORT_ERROR (("OSD failed to initialize, %s\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
return_ACPI_STATUS (Status);
}
@ -172,7 +173,7 @@ AcpiInitializeSubsystem (
if (ACPI_FAILURE (Status))
{
REPORT_ERROR (("Global mutex creation failure, %s\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
return_ACPI_STATUS (Status);
}
@ -185,7 +186,7 @@ AcpiInitializeSubsystem (
if (ACPI_FAILURE (Status))
{
REPORT_ERROR (("Namespace initialization failure, %s\n",
AcpiUtFormatException (Status)));
AcpiFormatException (Status)));
return_ACPI_STATUS (Status);
}
@ -330,6 +331,7 @@ AcpiEnableSubsystem (
}
}
AcpiGbl_StartupFlags |= ACPI_INITIALIZED_OK;
return_ACPI_STATUS (Status);
}
@ -390,6 +392,34 @@ AcpiTerminate (void)
}
/*****************************************************************************
*
* FUNCTION: AcpiSubsystemStatus
*
* PARAMETERS: None
*
* RETURN: Status of the ACPI subsystem
*
* DESCRIPTION: Other drivers that use the ACPI subsystem should call this
* before making any other calls, to ensure the subsystem initial-
* ized successfully.
*
****************************************************************************/
ACPI_STATUS
AcpiSubsystemStatus (void)
{
if (AcpiGbl_StartupFlags & ACPI_INITIALIZED_OK)
{
return (AE_OK);
}
else
{
return (AE_ERROR);
}
}
/******************************************************************************
*
* FUNCTION: AcpiGetSystemInfo
@ -497,126 +527,3 @@ AcpiGetSystemInfo (
}
/******************************************************************************
*
* FUNCTION: AcpiFormatException
*
* PARAMETERS: OutBuffer - a pointer to a buffer to receive the
* exception name
*
* RETURN: Status - the status of the call
*
* DESCRIPTION: This function translates an ACPI exception into an ASCII string.
*
******************************************************************************/
ACPI_STATUS
AcpiFormatException (
ACPI_STATUS Exception,
ACPI_BUFFER *OutBuffer)
{
UINT32 Length;
NATIVE_CHAR *FormattedException;
FUNCTION_TRACE ("AcpiFormatException");
/*
* Must have a valid buffer
*/
if ((!OutBuffer) ||
(!OutBuffer->Pointer))
{
return_ACPI_STATUS (AE_BAD_PARAMETER);
}
/* Convert the exception code (Handles bad exception codes) */
FormattedException = AcpiUtFormatException (Exception);
/*
* Get length of string and check if it will fit in caller's buffer
*/
Length = STRLEN (FormattedException);
if (OutBuffer->Length < Length)
{
OutBuffer->Length = Length;
return_ACPI_STATUS (AE_BUFFER_OVERFLOW);
}
/* Copy the string, all done */
STRCPY (OutBuffer->Pointer, FormattedException);
return_ACPI_STATUS (AE_OK);
}
/*****************************************************************************
*
* FUNCTION: AcpiAllocate
*
* PARAMETERS: Size - Size of the allocation
*
* RETURN: Address of the allocated memory on success, NULL on failure.
*
* DESCRIPTION: The subsystem's equivalent of malloc.
* External front-end to the Ut* memory manager
*
****************************************************************************/
void *
AcpiAllocate (
UINT32 Size)
{
return (AcpiUtAllocate (Size));
}
/*****************************************************************************
*
* FUNCTION: AcpiCallocate
*
* PARAMETERS: Size - Size of the allocation
*
* RETURN: Address of the allocated memory on success, NULL on failure.
*
* DESCRIPTION: The subsystem's equivalent of calloc.
* External front-end to the Ut* memory manager
*
****************************************************************************/
void *
AcpiCallocate (
UINT32 Size)
{
return (AcpiUtCallocate (Size));
}
/*****************************************************************************
*
* FUNCTION: AcpiFree
*
* PARAMETERS: Address - Address of the memory to deallocate
*
* RETURN: None
*
* DESCRIPTION: Frees the memory at Address
* External front-end to the Ut* memory manager
*
****************************************************************************/
void
AcpiFree (
void *Address)
{
AcpiUtFree (Address);
}