mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
[ACPI] Update ACPICA library to version 20190215.
This commit is contained in:
parent
8dcdf82e71
commit
9d53c935f2
44 changed files with 236 additions and 372 deletions
|
@ -577,6 +577,12 @@ AcpiDsCreateField (
|
|||
Info.RegionNode = RegionNode;
|
||||
|
||||
Status = AcpiDsGetFieldNames (&Info, WalkState, Arg->Common.Next);
|
||||
if (Info.RegionNode->Type == ACPI_ADR_SPACE_PLATFORM_COMM &&
|
||||
!(RegionNode->Object->Field.InternalPccBuffer
|
||||
= ACPI_ALLOCATE_ZEROED(Info.RegionNode->Object->Region.Length)))
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
|
|
@ -413,6 +413,7 @@ AcpiDsEvalRegionOperands (
|
|||
ACPI_OPERAND_OBJECT *OperandDesc;
|
||||
ACPI_NAMESPACE_NODE *Node;
|
||||
ACPI_PARSE_OBJECT *NextOp;
|
||||
ACPI_ADR_SPACE_TYPE SpaceId;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE_PTR (DsEvalRegionOperands, Op);
|
||||
|
@ -422,11 +423,12 @@ AcpiDsEvalRegionOperands (
|
|||
* This is where we evaluate the address and length fields of the
|
||||
* OpRegion declaration
|
||||
*/
|
||||
Node = Op->Common.Node;
|
||||
Node = Op->Common.Node;
|
||||
|
||||
/* NextOp points to the op that holds the SpaceID */
|
||||
|
||||
NextOp = Op->Common.Value.Arg;
|
||||
SpaceId = (ACPI_ADR_SPACE_TYPE) NextOp->Common.Value.Integer;
|
||||
|
||||
/* NextOp points to address op */
|
||||
|
||||
|
@ -464,6 +466,15 @@ AcpiDsEvalRegionOperands (
|
|||
ObjDesc->Region.Length = (UINT32) OperandDesc->Integer.Value;
|
||||
AcpiUtRemoveReference (OperandDesc);
|
||||
|
||||
/* A zero-length operation region is unusable. Just warn */
|
||||
|
||||
if (!ObjDesc->Region.Length && (SpaceId < ACPI_NUM_PREDEFINED_REGIONS))
|
||||
{
|
||||
ACPI_WARNING ((AE_INFO,
|
||||
"Operation Region [%4.4s] has zero length (SpaceId %X)",
|
||||
Node->Name.Ascii, SpaceId));
|
||||
}
|
||||
|
||||
/*
|
||||
* Get the address and save it
|
||||
* (at top of stack - 1)
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
* FUNCTION: AcpiDsLoad2BeginOp
|
||||
*
|
||||
* PARAMETERS: WalkState - Current state of the parse tree walk
|
||||
* OutOp - Wher to return op if a new one is created
|
||||
* OutOp - Where to return op if a new one is created
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
@ -904,7 +904,7 @@ AcpiEvGpeDispatch (
|
|||
GpeDevice, GpeNumber,
|
||||
GpeEventInfo->Dispatch.Handler->Context);
|
||||
|
||||
/* If requested, clear (if level-triggered) and reenable the GPE */
|
||||
/* If requested, clear (if level-triggered) and re-enable the GPE */
|
||||
|
||||
if (ReturnValue & ACPI_REENABLE_GPE)
|
||||
{
|
||||
|
|
|
@ -301,7 +301,7 @@ AcpiEvAddressSpaceDispatch (
|
|||
/*
|
||||
* For handlers other than the default (supplied) handlers, we must
|
||||
* exit the interpreter because the handler *might* block -- we don't
|
||||
* know what it will do, so we can't hold the lock on the intepreter.
|
||||
* know what it will do, so we can't hold the lock on the interpreter.
|
||||
*/
|
||||
AcpiExExitInterpreter();
|
||||
}
|
||||
|
|
|
@ -616,24 +616,6 @@ AcpiEvInitializeRegion (
|
|||
HandlerObj = ObjDesc->CommonNotify.Handler;
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_METHOD:
|
||||
/*
|
||||
* If we are executing module level code, the original
|
||||
* Node's object was replaced by this Method object and we
|
||||
* saved the handler in the method object.
|
||||
*
|
||||
* Note: Only used for the legacy MLC support. Will
|
||||
* be removed in the future.
|
||||
*
|
||||
* See AcpiNsExecModuleCode
|
||||
*/
|
||||
if (!AcpiGbl_ExecuteTablesAsMethods &&
|
||||
ObjDesc->Method.InfoFlags & ACPI_METHOD_MODULE_LEVEL)
|
||||
{
|
||||
HandlerObj = ObjDesc->Method.Dispatch.Handler;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
/* Ignore other objects */
|
||||
|
|
|
@ -777,9 +777,9 @@ ACPI_EXPORT_SYMBOL (AcpiGetGpeStatus)
|
|||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
* DESCRIPTION: Clear and conditionally reenable a GPE. This completes the GPE
|
||||
* DESCRIPTION: Clear and conditionally re-enable a GPE. This completes the GPE
|
||||
* processing. Intended for use by asynchronous host-installed
|
||||
* GPE handlers. The GPE is only reenabled if the EnableForRun bit
|
||||
* GPE handlers. The GPE is only re-enabled if the EnableForRun bit
|
||||
* is set in the GPE info.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
|
|
@ -600,7 +600,7 @@ AcpiExConvertToString (
|
|||
{
|
||||
if (Base == 16)
|
||||
{
|
||||
/* Emit 0x prefix for explict/implicit hex conversion */
|
||||
/* Emit 0x prefix for explicit/implicit hex conversion */
|
||||
|
||||
*NewBuf++ = '0';
|
||||
*NewBuf++ = 'x';
|
||||
|
|
|
@ -79,6 +79,17 @@ const UINT8 AcpiProtocolLengths[] =
|
|||
0xFF /* F - ATTRIB_RAW_PROCESS_BYTES */
|
||||
};
|
||||
|
||||
#define PCC_MASTER_SUBSPACE 3
|
||||
|
||||
/*
|
||||
* The following macros determine a given offset is a COMD field.
|
||||
* According to the specification, generic subspaces (types 0-2) contains a
|
||||
* 2-byte COMD field at offset 4 and master subspaces (type 3) contains a 4-byte
|
||||
* COMD field starting at offset 12.
|
||||
*/
|
||||
#define GENERIC_SUBSPACE_COMMAND(a) (4 == a || a == 5)
|
||||
#define MASTER_SUBSPACE_COMMAND(a) (12 <= a && a <= 15)
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
|
@ -229,6 +240,23 @@ AcpiExReadDataFromField (
|
|||
Status = AcpiExReadGpio (ObjDesc, Buffer);
|
||||
goto Exit;
|
||||
}
|
||||
else if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REGION_FIELD) &&
|
||||
(ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_COMM))
|
||||
{
|
||||
/*
|
||||
* Reading from a PCC field unit does not require the handler because
|
||||
* it only requires reading from the InternalPccBuffer.
|
||||
*/
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
|
||||
"PCC FieldRead bits %u\n", ObjDesc->Field.BitLength));
|
||||
|
||||
memcpy (Buffer, ObjDesc->Field.RegionObj->Field.InternalPccBuffer +
|
||||
ObjDesc->Field.BaseByteOffset, (ACPI_SIZE) ACPI_ROUND_BITS_UP_TO_BYTES (
|
||||
ObjDesc->Field.BitLength));
|
||||
|
||||
*RetBufferDesc = BufferDesc;
|
||||
return AE_OK;
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
|
||||
"FieldRead [TO]: Obj %p, Type %X, Buf %p, ByteLen %X\n",
|
||||
|
@ -285,6 +313,7 @@ AcpiExWriteDataToField (
|
|||
{
|
||||
ACPI_STATUS Status;
|
||||
UINT32 BufferLength;
|
||||
UINT32 DataLength;
|
||||
void *Buffer;
|
||||
|
||||
|
||||
|
@ -331,6 +360,39 @@ AcpiExWriteDataToField (
|
|||
Status = AcpiExWriteSerialBus (SourceDesc, ObjDesc, ResultDesc);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
else if ((ObjDesc->Common.Type == ACPI_TYPE_LOCAL_REGION_FIELD) &&
|
||||
(ObjDesc->Field.RegionObj->Region.SpaceId == ACPI_ADR_SPACE_PLATFORM_COMM))
|
||||
{
|
||||
/*
|
||||
* According to the spec a write to the COMD field will invoke the
|
||||
* region handler. Otherwise, write to the PccInternal buffer. This
|
||||
* implementation will use the offsets specified rather than the name
|
||||
* of the field. This is considered safer because some firmware tools
|
||||
* are known to obfiscate named objects.
|
||||
*/
|
||||
DataLength = (ACPI_SIZE) ACPI_ROUND_BITS_UP_TO_BYTES (
|
||||
ObjDesc->Field.BitLength);
|
||||
memcpy (ObjDesc->Field.RegionObj->Field.InternalPccBuffer +
|
||||
ObjDesc->Field.BaseByteOffset,
|
||||
SourceDesc->Buffer.Pointer, DataLength);
|
||||
|
||||
if ((ObjDesc->Field.RegionObj->Region.Address == PCC_MASTER_SUBSPACE &&
|
||||
MASTER_SUBSPACE_COMMAND (ObjDesc->Field.BaseByteOffset)) ||
|
||||
GENERIC_SUBSPACE_COMMAND (ObjDesc->Field.BaseByteOffset))
|
||||
{
|
||||
/* Perform the write */
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
|
||||
"PCC COMD field has been written. Invoking PCC handler now.\n"));
|
||||
|
||||
Status = AcpiExAccessRegion (
|
||||
ObjDesc, 0, (UINT64 *) ObjDesc->Field.RegionObj->Field.InternalPccBuffer,
|
||||
ACPI_WRITE);
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
return (AE_OK);
|
||||
}
|
||||
|
||||
|
||||
/* Get a pointer to the data to be written */
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
* FUNCTION: AcpiExReadGpio
|
||||
*
|
||||
* PARAMETERS: ObjDesc - The named field to read
|
||||
* Buffer - Where the return data is returnd
|
||||
* Buffer - Where the return data is returned
|
||||
*
|
||||
* RETURN: Status
|
||||
*
|
||||
|
|
|
@ -217,7 +217,7 @@ AcpiExTruncateFor32bitTable (
|
|||
* RETURN: None
|
||||
*
|
||||
* DESCRIPTION: Obtain the ACPI hardware Global Lock, only if the field
|
||||
* flags specifiy that it is to be obtained before field access.
|
||||
* flags specify that it is to be obtained before field access.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
|
|
@ -237,7 +237,7 @@ sprintf (
|
|||
|
||||
/*
|
||||
* NOTE: Currently we only need to update errno for file IOs. Other
|
||||
* Clibrary invocations in ACPICA do not make descisions according to
|
||||
* Clibrary invocations in ACPICA do not make decisions according to
|
||||
* the errno.
|
||||
*/
|
||||
extern int errno;
|
||||
|
|
|
@ -178,7 +178,7 @@
|
|||
|
||||
/*
|
||||
* Maximal number of elements the Result Stack can contain,
|
||||
* it may be an arbitray value not exceeding the types of
|
||||
* it may be an arbitrary value not exceeding the types of
|
||||
* ResultSize and ResultCount (now UINT8).
|
||||
*/
|
||||
#define ACPI_RESULTS_OBJ_NUM_MAX 255
|
||||
|
|
|
@ -51,7 +51,8 @@
|
|||
#endif
|
||||
|
||||
|
||||
#define ACPI_DEBUG_BUFFER_SIZE 0x4000 /* 16K buffer for return objects */
|
||||
#define ACPI_DEBUG_BUFFER_SIZE 0x4000 /* 16K buffer for return objects */
|
||||
#define ACPI_DEBUG_LENGTH_FORMAT " (%.4X bits, %.3X bytes)"
|
||||
|
||||
typedef struct acpi_db_command_info
|
||||
{
|
||||
|
|
|
@ -301,6 +301,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoFpdt1[];
|
|||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoGas[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtHdr[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdtEl2[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt0a[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoGtdt1[];
|
||||
|
@ -445,6 +446,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat1[];
|
|||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat2[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat3[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat4[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoSrat5[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoStao[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoStaoStr[];
|
||||
extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaHdr[];
|
||||
|
|
|
@ -326,7 +326,7 @@ static const ACPI_EXCEPTION_INFO AcpiGbl_ExceptionNames_Aml[] =
|
|||
EXCEP_TXT ("AE_AML_DIVIDE_BY_ZERO", "During execution of AML Divide operator"),
|
||||
EXCEP_TXT ("AE_AML_BAD_NAME", "An ACPI name contains invalid character(s)"),
|
||||
EXCEP_TXT ("AE_AML_NAME_NOT_FOUND", "Could not resolve a named reference"),
|
||||
EXCEP_TXT ("AE_AML_INTERNAL", "An internal error within the interprete"),
|
||||
EXCEP_TXT ("AE_AML_INTERNAL", "An internal error within the interpreter"),
|
||||
EXCEP_TXT ("AE_AML_INVALID_SPACE_ID", "An Operation Region SpaceID is invalid"),
|
||||
EXCEP_TXT ("AE_AML_STRING_LIMIT", "String is longer than 200 characters"),
|
||||
EXCEP_TXT ("AE_AML_NO_RETURN_VALUE", "A method did not return a required value"),
|
||||
|
|
|
@ -997,7 +997,7 @@ typedef struct acpi_comment_addr_node
|
|||
|
||||
/*
|
||||
* File node - used for "Include" operator file stack and
|
||||
* depdendency tree for the -ca option
|
||||
* dependency tree for the -ca option
|
||||
*/
|
||||
typedef struct acpi_file_node
|
||||
{
|
||||
|
|
|
@ -502,7 +502,7 @@
|
|||
|
||||
|
||||
/*
|
||||
* Macors used for the ASL-/ASL+ converter utility
|
||||
* Macros used for the ASL-/ASL+ converter utility
|
||||
*/
|
||||
#ifdef ACPI_ASL_COMPILER
|
||||
|
||||
|
|
|
@ -345,6 +345,7 @@ typedef struct acpi_object_region_field
|
|||
union acpi_operand_object *RegionObj; /* Containing OpRegion object */
|
||||
UINT8 *ResourceBuffer; /* ResourceTemplate for serial regions/fields */
|
||||
UINT16 PinNumberIndex; /* Index relative to previous Connection/Template */
|
||||
UINT8 *InternalPccBuffer; /* Internal buffer for fields associated with PCC */
|
||||
|
||||
} ACPI_OBJECT_REGION_FIELD;
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
|
||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20190108
|
||||
#define ACPI_CA_VERSION 0x20190215
|
||||
|
||||
#include "acconfig.h"
|
||||
#include "actypes.h"
|
||||
|
@ -192,14 +192,6 @@ ACPI_INIT_GLOBAL (UINT8, AcpiGbl_CopyDsdtLocally, FALSE);
|
|||
*/
|
||||
ACPI_INIT_GLOBAL (UINT8, AcpiGbl_DoNotUseXsdt, FALSE);
|
||||
|
||||
/*
|
||||
* Optionally support module level code by parsing an entire table as
|
||||
* a method as it is loaded. Default is TRUE.
|
||||
* NOTE, this is essentially obsolete and will be removed soon
|
||||
* (01/2018).
|
||||
*/
|
||||
ACPI_INIT_GLOBAL (UINT8, AcpiGbl_ExecuteTablesAsMethods, TRUE);
|
||||
|
||||
/*
|
||||
* Optionally use 32-bit FADT addresses if and when there is a conflict
|
||||
* (address mismatch) between the 32-bit and 64-bit versions of the
|
||||
|
|
|
@ -652,6 +652,21 @@ const ACPI_PREDEFINED_INFO AcpiGbl_PredefinedMethods[] =
|
|||
{{"_MTL", METHOD_0ARGS, /* ACPI 6.0 */
|
||||
METHOD_RETURNS (ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
{{"_NBS", METHOD_0ARGS, /* ACPI 6.3 */
|
||||
METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
|
||||
|
||||
{{"_NCH", METHOD_0ARGS, /* ACPI 6.3 */
|
||||
METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
|
||||
|
||||
{{"_NIC", METHOD_0ARGS, /* ACPI 6.3 */
|
||||
METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
|
||||
|
||||
{{"_NIG", METHOD_1ARGS (ACPI_TYPE_BUFFER), /* ACPI 6.3 */
|
||||
METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
|
||||
|
||||
{{"_NIH", METHOD_0ARGS, /* ACPI 6.3 */
|
||||
METHOD_RETURNS (ACPI_RTYPE_BUFFER)}},
|
||||
|
||||
{{"_NTT", METHOD_0ARGS,
|
||||
METHOD_RETURNS (ACPI_RTYPE_INTEGER)}},
|
||||
|
||||
|
|
|
@ -179,7 +179,7 @@ typedef struct acpi_resource_irq
|
|||
UINT8 DescriptorLength;
|
||||
UINT8 Triggering;
|
||||
UINT8 Polarity;
|
||||
UINT8 Sharable;
|
||||
UINT8 Shareable;
|
||||
UINT8 WakeCapable;
|
||||
UINT8 InterruptCount;
|
||||
UINT8 Interrupts[1];
|
||||
|
@ -426,7 +426,7 @@ typedef struct acpi_resource_extended_irq
|
|||
UINT8 ProducerConsumer;
|
||||
UINT8 Triggering;
|
||||
UINT8 Polarity;
|
||||
UINT8 Sharable;
|
||||
UINT8 Shareable;
|
||||
UINT8 WakeCapable;
|
||||
UINT8 InterruptCount;
|
||||
ACPI_RESOURCE_SOURCE ResourceSource;
|
||||
|
@ -450,7 +450,7 @@ typedef struct acpi_resource_gpio
|
|||
UINT8 ConnectionType;
|
||||
UINT8 ProducerConsumer; /* For values, see Producer/Consumer above */
|
||||
UINT8 PinConfig;
|
||||
UINT8 Sharable; /* For values, see Interrupt Attributes above */
|
||||
UINT8 Shareable; /* For values, see Interrupt Attributes above */
|
||||
UINT8 WakeCapable; /* For values, see Interrupt Attributes above */
|
||||
UINT8 IoRestriction;
|
||||
UINT8 Triggering; /* For values, see Interrupt Attributes above */
|
||||
|
@ -628,7 +628,7 @@ typedef struct acpi_resource_pin_function
|
|||
{
|
||||
UINT8 RevisionId;
|
||||
UINT8 PinConfig;
|
||||
UINT8 Sharable; /* For values, see Interrupt Attributes above */
|
||||
UINT8 Shareable; /* For values, see Interrupt Attributes above */
|
||||
UINT16 FunctionNumber;
|
||||
UINT16 PinTableLength;
|
||||
UINT16 VendorLength;
|
||||
|
@ -642,7 +642,7 @@ typedef struct acpi_resource_pin_config
|
|||
{
|
||||
UINT8 RevisionId;
|
||||
UINT8 ProducerConsumer; /* For values, see Producer/Consumer above */
|
||||
UINT8 Sharable; /* For values, see Interrupt Attributes above */
|
||||
UINT8 Shareable; /* For values, see Interrupt Attributes above */
|
||||
UINT8 PinConfigType;
|
||||
UINT32 PinConfigValue;
|
||||
UINT16 PinTableLength;
|
||||
|
@ -686,7 +686,7 @@ typedef struct acpi_resource_pin_group_function
|
|||
{
|
||||
UINT8 RevisionId;
|
||||
UINT8 ProducerConsumer; /* For values, see Producer/Consumer above */
|
||||
UINT8 Sharable; /* For values, see Interrupt Attributes above */
|
||||
UINT8 Shareable; /* For values, see Interrupt Attributes above */
|
||||
UINT16 FunctionNumber;
|
||||
UINT16 VendorLength;
|
||||
ACPI_RESOURCE_SOURCE ResourceSource;
|
||||
|
@ -699,7 +699,7 @@ typedef struct acpi_resource_pin_group_config
|
|||
{
|
||||
UINT8 RevisionId;
|
||||
UINT8 ProducerConsumer; /* For values, see Producer/Consumer above */
|
||||
UINT8 Sharable; /* For values, see Interrupt Attributes above */
|
||||
UINT8 Shareable; /* For values, see Interrupt Attributes above */
|
||||
UINT8 PinConfigType; /* For values, see PinConfigType above */
|
||||
UINT32 PinConfigValue;
|
||||
UINT16 VendorLength;
|
||||
|
|
|
@ -129,6 +129,7 @@
|
|||
#define ACPI_GTDT0a_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_GTDT_TIMER_ENTRY,f)
|
||||
#define ACPI_GTDT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_GTDT_WATCHDOG,f)
|
||||
#define ACPI_GTDTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_GTDT_HEADER,f)
|
||||
#define ACPI_GTDT_EL2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_GTDT_EL2,f)
|
||||
#define ACPI_HEST0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HEST_IA_MACHINE_CHECK,f)
|
||||
#define ACPI_HEST1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HEST_IA_CORRECTED,f)
|
||||
#define ACPI_HEST2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HEST_IA_NMI,f)
|
||||
|
@ -140,7 +141,7 @@
|
|||
#define ACPI_HEST11_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HEST_IA_DEFERRED_CHECK,f)
|
||||
#define ACPI_HESTN_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HEST_NOTIFY,f)
|
||||
#define ACPI_HESTB_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HEST_IA_ERROR_BANK,f)
|
||||
#define ACPI_HMAT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HMAT_ADDRESS_RANGE,f)
|
||||
#define ACPI_HMAT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HMAT_PROXIMITY_DOMAIN,f)
|
||||
#define ACPI_HMAT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HMAT_LOCALITY,f)
|
||||
#define ACPI_HMAT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HMAT_CACHE,f)
|
||||
#define ACPI_HMATH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_HMAT_STRUCTURE,f)
|
||||
|
@ -226,6 +227,7 @@
|
|||
#define ACPI_SRAT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_X2APIC_CPU_AFFINITY,f)
|
||||
#define ACPI_SRAT3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_GICC_AFFINITY,f)
|
||||
#define ACPI_SRAT4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_GIC_ITS_AFFINITY,f)
|
||||
#define ACPI_SRAT5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_GENERIC_AFFINITY,f)
|
||||
#define ACPI_TCPA_CLIENT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_CLIENT,f)
|
||||
#define ACPI_TCPA_SERVER_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_SERVER,f)
|
||||
#define ACPI_TPM2A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TPM2_TRAILER,f)
|
||||
|
@ -253,10 +255,11 @@
|
|||
#define ACPI_SRAT1_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_MEM_AFFINITY,f,o)
|
||||
#define ACPI_SRAT2_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_X2APIC_CPU_AFFINITY,f,o)
|
||||
#define ACPI_SRAT3_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_GICC_AFFINITY,f,o)
|
||||
#define ACPI_SRAT5_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_GENERIC_AFFINITY,f,o)
|
||||
#define ACPI_GTDT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_GTDT,f,o)
|
||||
#define ACPI_GTDT0a_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_GTDT_TIMER_ENTRY,f,o)
|
||||
#define ACPI_GTDT1_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_GTDT_WATCHDOG,f,o)
|
||||
#define ACPI_HMAT0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_HMAT_ADDRESS_RANGE,f,o)
|
||||
#define ACPI_HMAT0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_HMAT_PROXIMITY_DOMAIN,f,o)
|
||||
#define ACPI_HMAT1_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_HMAT_LOCALITY,f,o)
|
||||
#define ACPI_HMAT2_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_HMAT_CACHE,f,o)
|
||||
#define ACPI_IORT3_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_SMMU,f,o)
|
||||
|
|
|
@ -689,7 +689,7 @@ typedef struct acpi_dmar_hardware_unit
|
|||
#define ACPI_DMAR_INCLUDE_ALL (1)
|
||||
|
||||
|
||||
/* 1: Reserved Memory Defininition */
|
||||
/* 1: Reserved Memory Definition */
|
||||
|
||||
typedef struct acpi_dmar_reserved_memory
|
||||
{
|
||||
|
@ -1211,6 +1211,12 @@ typedef struct acpi_table_gtdt
|
|||
#define ACPI_GTDT_INTERRUPT_POLARITY (1<<1)
|
||||
#define ACPI_GTDT_ALWAYS_ON (1<<2)
|
||||
|
||||
typedef struct acpi_gtdt_el2
|
||||
{
|
||||
UINT32 VirtualEL2TimerGsiv;
|
||||
UINT32 VirtualEL2TimerFlags;
|
||||
} ACPI_GTDT_EL2;
|
||||
|
||||
|
||||
/* Common GTDT subtable header */
|
||||
|
||||
|
@ -1670,7 +1676,7 @@ typedef struct acpi_table_hmat
|
|||
|
||||
enum AcpiHmatType
|
||||
{
|
||||
ACPI_HMAT_TYPE_ADDRESS_RANGE = 0, /* Memory subystem address range */
|
||||
ACPI_HMAT_TYPE_ADDRESS_RANGE = 0, /* Memory subsystem address range */
|
||||
ACPI_HMAT_TYPE_LOCALITY = 1, /* System locality latency and bandwidth information */
|
||||
ACPI_HMAT_TYPE_CACHE = 2, /* Memory side cache information */
|
||||
ACPI_HMAT_TYPE_RESERVED = 3 /* 3 and greater are reserved */
|
||||
|
@ -1689,9 +1695,9 @@ typedef struct acpi_hmat_structure
|
|||
* HMAT Structures, correspond to Type in ACPI_HMAT_STRUCTURE
|
||||
*/
|
||||
|
||||
/* 0: Memory subystem address range */
|
||||
/* 0: Memory proximity domain attributes */
|
||||
|
||||
typedef struct acpi_hmat_address_range
|
||||
typedef struct acpi_hmat_proximity_domain
|
||||
{
|
||||
ACPI_HMAT_STRUCTURE Header;
|
||||
UINT16 Flags;
|
||||
|
@ -1699,10 +1705,10 @@ typedef struct acpi_hmat_address_range
|
|||
UINT32 ProcessorPD; /* Processor proximity domain */
|
||||
UINT32 MemoryPD; /* Memory proximity domain */
|
||||
UINT32 Reserved2;
|
||||
UINT64 PhysicalAddressBase; /* Physical address range base */
|
||||
UINT64 PhysicalAddressLength; /* Physical address range length */
|
||||
UINT64 Reserved3;
|
||||
UINT64 Reserved4;
|
||||
|
||||
} ACPI_HMAT_ADDRESS_RANGE;
|
||||
} ACPI_HMAT_PROXIMITY_DOMAIN;
|
||||
|
||||
/* Masks for Flags field above */
|
||||
|
||||
|
|
|
@ -195,7 +195,7 @@ typedef struct acpi_iort_memory_access
|
|||
typedef struct acpi_iort_its_group
|
||||
{
|
||||
UINT32 ItsCount;
|
||||
UINT32 Identifiers[1]; /* GIC ITS identifier arrary */
|
||||
UINT32 Identifiers[1]; /* GIC ITS identifier array */
|
||||
|
||||
} ACPI_IORT_ITS_GROUP;
|
||||
|
||||
|
@ -765,7 +765,7 @@ typedef struct acpi_madt_local_x2apic_nmi
|
|||
} ACPI_MADT_LOCAL_X2APIC_NMI;
|
||||
|
||||
|
||||
/* 11: Generic Interrupt (ACPI 5.0 + ACPI 6.0 changes) */
|
||||
/* 11: Generic Interrupt - GICC (ACPI 5.0 + ACPI 6.0 + ACPI 6.3 changes) */
|
||||
|
||||
typedef struct acpi_madt_generic_interrupt
|
||||
{
|
||||
|
@ -784,7 +784,8 @@ typedef struct acpi_madt_generic_interrupt
|
|||
UINT64 GicrBaseAddress;
|
||||
UINT64 ArmMpidr;
|
||||
UINT8 EfficiencyClass;
|
||||
UINT8 Reserved2[3];
|
||||
UINT8 Reserved2[1];
|
||||
UINT16 SpeInterrupt; /* ACPI 6.3 */
|
||||
|
||||
} ACPI_MADT_GENERIC_INTERRUPT;
|
||||
|
||||
|
@ -1629,6 +1630,7 @@ typedef struct acpi_pdtt_channel
|
|||
|
||||
#define ACPI_PDTT_RUNTIME_TRIGGER (1)
|
||||
#define ACPI_PDTT_WAIT_COMPLETION (1<<1)
|
||||
#define ACPI_PDTT_TRIGGER_ORDER (1<<2)
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1765,8 +1767,11 @@ typedef struct acpi_pptt_processor
|
|||
|
||||
/* Flags */
|
||||
|
||||
#define ACPI_PPTT_PHYSICAL_PACKAGE (1) /* Physical package */
|
||||
#define ACPI_PPTT_ACPI_PROCESSOR_ID_VALID (2) /* ACPI Processor ID valid */
|
||||
#define ACPI_PPTT_PHYSICAL_PACKAGE (1)
|
||||
#define ACPI_PPTT_ACPI_PROCESSOR_ID_VALID (1<<1)
|
||||
#define ACPI_PPTT_ACPI_PROCESSOR_IS_THREAD (1<<2) /* ACPI 6.3 */
|
||||
#define ACPI_PPTT_ACPI_LEAF_NODE (1<<3) /* ACPI 6.3 */
|
||||
#define ACPI_PPTT_ACPI_IDENTICAL (1<<4) /* ACPI 6.3 */
|
||||
|
||||
|
||||
/* 1: Cache Type Structure */
|
||||
|
|
|
@ -242,8 +242,9 @@ enum AcpiSratType
|
|||
ACPI_SRAT_TYPE_MEMORY_AFFINITY = 1,
|
||||
ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY = 2,
|
||||
ACPI_SRAT_TYPE_GICC_AFFINITY = 3,
|
||||
ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, /* ACPI 6.2 */
|
||||
ACPI_SRAT_TYPE_RESERVED = 5 /* 5 and greater are reserved */
|
||||
ACPI_SRAT_TYPE_GIC_ITS_AFFINITY = 4, /* ACPI 6.2 */
|
||||
ACPI_SRAT_TYPE_GENERIC_AFFINITY = 5, /* ACPI 6.3 */
|
||||
ACPI_SRAT_TYPE_RESERVED = 6 /* 5 and greater are reserved */
|
||||
};
|
||||
|
||||
/*
|
||||
|
@ -339,6 +340,24 @@ typedef struct acpi_srat_gic_its_affinity
|
|||
} ACPI_SRAT_GIC_ITS_AFFINITY;
|
||||
|
||||
|
||||
/* 5: Generic Initiator Affinity Structure (ACPI 6.3) */
|
||||
|
||||
typedef struct acpi_srat_generic_affinity
|
||||
{
|
||||
ACPI_SUBTABLE_HEADER Header;
|
||||
UINT8 Reserved;
|
||||
UINT8 DeviceHandleType;
|
||||
UINT32 ProximityDomain;
|
||||
UINT8 DeviceHandle[16];
|
||||
UINT32 Flags;
|
||||
UINT32 Reserved1;
|
||||
|
||||
} ACPI_SRAT_GENERIC_AFFINITY;
|
||||
|
||||
/* Flags for ACPI_SRAT_GENERIC_AFFINITY */
|
||||
|
||||
#define ACPI_SRAT_GENERIC_AFFINITY_ENABLED (1) /* 00: Use affinity structure */
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* STAO - Status Override Table (_STA override) - ACPI 6.0
|
||||
|
|
|
@ -659,8 +659,9 @@ typedef UINT64 ACPI_INTEGER;
|
|||
#define ACPI_NOTIFY_SHUTDOWN_REQUEST (UINT8) 0x0C
|
||||
#define ACPI_NOTIFY_AFFINITY_UPDATE (UINT8) 0x0D
|
||||
#define ACPI_NOTIFY_MEMORY_UPDATE (UINT8) 0x0E
|
||||
#define ACPI_NOTIFY_DISCONNECT_RECOVER (UINT8) 0x0F
|
||||
|
||||
#define ACPI_GENERIC_NOTIFY_MAX 0x0E
|
||||
#define ACPI_GENERIC_NOTIFY_MAX 0x0F
|
||||
#define ACPI_SPECIFIC_NOTIFY_MAX 0x84
|
||||
|
||||
/*
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
#define DEBUGGER_THREADING DEBUGGER_SINGLE_THREADED
|
||||
#endif /* !DEBUGGER_THREADING */
|
||||
|
||||
/* EDK2 EFI environemnt */
|
||||
/* EDK2 EFI environment */
|
||||
|
||||
#if defined(_EDK2_EFI)
|
||||
|
||||
|
|
|
@ -125,7 +125,7 @@ AcpiNsLoadTable (
|
|||
/*
|
||||
* On error, delete any namespace objects created by this table.
|
||||
* We cannot initialize these objects, so delete them. There are
|
||||
* a couple of expecially bad cases:
|
||||
* a couple of especially bad cases:
|
||||
* AE_ALREADY_EXISTS - namespace collision.
|
||||
* AE_NOT_FOUND - the target of a Scope operator does not
|
||||
* exist. This target of Scope must already exist in the
|
||||
|
|
|
@ -314,66 +314,18 @@ AcpiNsParseTable (
|
|||
ACPI_FUNCTION_TRACE (NsParseTable);
|
||||
|
||||
|
||||
if (AcpiGbl_ExecuteTablesAsMethods)
|
||||
{
|
||||
/*
|
||||
* This case executes the AML table as one large control method.
|
||||
* The point of this is to execute any module-level code in-place
|
||||
* as the table is parsed. Some AML code depends on this behavior.
|
||||
*
|
||||
* It is a run-time option at this time, but will eventually become
|
||||
* the default.
|
||||
*
|
||||
* Note: This causes the table to only have a single-pass parse.
|
||||
* However, this is compatible with other ACPI implementations.
|
||||
*/
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_PARSE,
|
||||
"%s: **** Start table execution pass\n", ACPI_GET_FUNCTION_NAME));
|
||||
/*
|
||||
* Executes the AML table as one large control method.
|
||||
* The point of this is to execute any module-level code in-place
|
||||
* as the table is parsed. Some AML code depends on this behavior.
|
||||
*
|
||||
* Note: This causes the table to only have a single-pass parse.
|
||||
* However, this is compatible with other ACPI implementations.
|
||||
*/
|
||||
ACPI_DEBUG_PRINT_RAW ((ACPI_DB_PARSE,
|
||||
"%s: **** Start table execution pass\n", ACPI_GET_FUNCTION_NAME));
|
||||
|
||||
Status = AcpiNsExecuteTable (TableIndex, StartNode);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* AML Parse, pass 1
|
||||
*
|
||||
* In this pass, we load most of the namespace. Control methods
|
||||
* are not parsed until later. A parse tree is not created.
|
||||
* Instead, each Parser Op subtree is deleted when it is finished.
|
||||
* This saves a great deal of memory, and allows a small cache of
|
||||
* parse objects to service the entire parse. The second pass of
|
||||
* the parse then performs another complete parse of the AML.
|
||||
*/
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 1\n"));
|
||||
|
||||
Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS1,
|
||||
TableIndex, StartNode);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
/*
|
||||
* AML Parse, pass 2
|
||||
*
|
||||
* In this pass, we resolve forward references and other things
|
||||
* that could not be completed during the first pass.
|
||||
* Another complete parse of the AML is performed, but the
|
||||
* overhead of this is compensated for by the fact that the
|
||||
* parse objects are all cached.
|
||||
*/
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_PARSE, "**** Start pass 2\n"));
|
||||
Status = AcpiNsOneCompleteParse (ACPI_IMODE_LOAD_PASS2,
|
||||
TableIndex, StartNode);
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
}
|
||||
Status = AcpiNsExecuteTable (TableIndex, StartNode);
|
||||
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
|
|
@ -453,7 +453,7 @@ AcpiNsInternalizeName (
|
|||
*
|
||||
* FUNCTION: AcpiNsExternalizeName
|
||||
*
|
||||
* PARAMETERS: InternalNameLength - Lenth of the internal name below
|
||||
* PARAMETERS: InternalNameLength - Length of the internal name below
|
||||
* InternalName - Internal representation of name
|
||||
* ConvertedNameLength - Where the length is returned
|
||||
* ConvertedName - Where the resulting external name
|
||||
|
|
|
@ -70,13 +70,6 @@ AcpiPsGetArguments (
|
|||
UINT8 *AmlOpStart,
|
||||
ACPI_PARSE_OBJECT *Op);
|
||||
|
||||
static void
|
||||
AcpiPsLinkModuleCode (
|
||||
ACPI_PARSE_OBJECT *ParentOp,
|
||||
UINT8 *AmlStart,
|
||||
UINT32 AmlLength,
|
||||
ACPI_OWNER_ID OwnerId);
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
|
@ -100,7 +93,6 @@ AcpiPsGetArguments (
|
|||
{
|
||||
ACPI_STATUS Status = AE_OK;
|
||||
ACPI_PARSE_OBJECT *Arg = NULL;
|
||||
const ACPI_OPCODE_INFO *OpInfo;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE_PTR (PsGetArguments, WalkState);
|
||||
|
@ -179,82 +171,6 @@ AcpiPsGetArguments (
|
|||
"Final argument count: %8.8X pass %u\n",
|
||||
WalkState->ArgCount, WalkState->PassNumber));
|
||||
|
||||
/*
|
||||
* This case handles the legacy option that groups all module-level
|
||||
* code blocks together and defers execution until all of the tables
|
||||
* are loaded. Execute all of these blocks at this time.
|
||||
* Execute any module-level code that was detected during the table
|
||||
* load phase.
|
||||
*
|
||||
* Note: this option is deprecated and will be eliminated in the
|
||||
* future. Use of this option can cause problems with AML code that
|
||||
* depends upon in-order immediate execution of module-level code.
|
||||
*/
|
||||
if (!AcpiGbl_ExecuteTablesAsMethods &&
|
||||
(WalkState->PassNumber <= ACPI_IMODE_LOAD_PASS2) &&
|
||||
((WalkState->ParseFlags & ACPI_PARSE_DISASSEMBLE) == 0))
|
||||
{
|
||||
/*
|
||||
* We want to skip If/Else/While constructs during Pass1 because we
|
||||
* want to actually conditionally execute the code during Pass2.
|
||||
*
|
||||
* Except for disassembly, where we always want to walk the
|
||||
* If/Else/While packages
|
||||
*/
|
||||
switch (Op->Common.AmlOpcode)
|
||||
{
|
||||
case AML_IF_OP:
|
||||
case AML_ELSE_OP:
|
||||
case AML_WHILE_OP:
|
||||
/*
|
||||
* Currently supported module-level opcodes are:
|
||||
* IF/ELSE/WHILE. These appear to be the most common,
|
||||
* and easiest to support since they open an AML
|
||||
* package.
|
||||
*/
|
||||
if (WalkState->PassNumber == ACPI_IMODE_LOAD_PASS1)
|
||||
{
|
||||
AcpiPsLinkModuleCode (Op->Common.Parent, AmlOpStart,
|
||||
(UINT32) (WalkState->ParserState.PkgEnd - AmlOpStart),
|
||||
WalkState->OwnerId);
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
|
||||
"Pass1: Skipping an If/Else/While body\n"));
|
||||
|
||||
/* Skip body of if/else/while in pass 1 */
|
||||
|
||||
WalkState->ParserState.Aml = WalkState->ParserState.PkgEnd;
|
||||
WalkState->ArgCount = 0;
|
||||
break;
|
||||
|
||||
default:
|
||||
/*
|
||||
* Check for an unsupported executable opcode at module
|
||||
* level. We must be in PASS1, the parent must be a SCOPE,
|
||||
* The opcode class must be EXECUTE, and the opcode must
|
||||
* not be an argument to another opcode.
|
||||
*/
|
||||
if ((WalkState->PassNumber == ACPI_IMODE_LOAD_PASS1) &&
|
||||
(Op->Common.Parent->Common.AmlOpcode == AML_SCOPE_OP))
|
||||
{
|
||||
OpInfo = AcpiPsGetOpcodeInfo (Op->Common.AmlOpcode);
|
||||
if ((OpInfo->Class == AML_CLASS_EXECUTE) &&
|
||||
(!Arg))
|
||||
{
|
||||
ACPI_WARNING ((AE_INFO,
|
||||
"Unsupported module-level executable opcode "
|
||||
"0x%.2X at table offset 0x%.4X",
|
||||
Op->Common.AmlOpcode,
|
||||
(UINT32) (ACPI_PTR_DIFF (AmlOpStart,
|
||||
WalkState->ParserState.AmlStart) +
|
||||
sizeof (ACPI_TABLE_HEADER))));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Special processing for certain opcodes */
|
||||
|
||||
switch (Op->Common.AmlOpcode)
|
||||
|
@ -326,117 +242,6 @@ AcpiPsGetArguments (
|
|||
}
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiPsLinkModuleCode
|
||||
*
|
||||
* PARAMETERS: ParentOp - Parent parser op
|
||||
* AmlStart - Pointer to the AML
|
||||
* AmlLength - Length of executable AML
|
||||
* OwnerId - OwnerId of module level code
|
||||
*
|
||||
* RETURN: None.
|
||||
*
|
||||
* DESCRIPTION: Wrap the module-level code with a method object and link the
|
||||
* object to the global list. Note, the mutex field of the method
|
||||
* object is used to link multiple module-level code objects.
|
||||
*
|
||||
* NOTE: In this legacy option, each block of detected executable AML
|
||||
* code that is outside of any control method is wrapped with a temporary
|
||||
* control method object and placed on a global list below.
|
||||
*
|
||||
* This function executes the module-level code for all tables only after
|
||||
* all of the tables have been loaded. It is a legacy option and is
|
||||
* not compatible with other ACPI implementations. See AcpiNsLoadTable.
|
||||
*
|
||||
* This function will be removed when the legacy option is removed.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
static void
|
||||
AcpiPsLinkModuleCode (
|
||||
ACPI_PARSE_OBJECT *ParentOp,
|
||||
UINT8 *AmlStart,
|
||||
UINT32 AmlLength,
|
||||
ACPI_OWNER_ID OwnerId)
|
||||
{
|
||||
ACPI_OPERAND_OBJECT *Prev;
|
||||
ACPI_OPERAND_OBJECT *Next;
|
||||
ACPI_OPERAND_OBJECT *MethodObj;
|
||||
ACPI_NAMESPACE_NODE *ParentNode;
|
||||
|
||||
|
||||
ACPI_FUNCTION_TRACE (PsLinkModuleCode);
|
||||
|
||||
|
||||
/* Get the tail of the list */
|
||||
|
||||
Prev = Next = AcpiGbl_ModuleCodeList;
|
||||
while (Next)
|
||||
{
|
||||
Prev = Next;
|
||||
Next = Next->Method.Mutex;
|
||||
}
|
||||
|
||||
/*
|
||||
* Insert the module level code into the list. Merge it if it is
|
||||
* adjacent to the previous element.
|
||||
*/
|
||||
if (!Prev ||
|
||||
((Prev->Method.AmlStart + Prev->Method.AmlLength) != AmlStart))
|
||||
{
|
||||
/* Create, initialize, and link a new temporary method object */
|
||||
|
||||
MethodObj = AcpiUtCreateInternalObject (ACPI_TYPE_METHOD);
|
||||
if (!MethodObj)
|
||||
{
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
|
||||
"Create/Link new code block: %p\n", MethodObj));
|
||||
|
||||
if (ParentOp->Common.Node)
|
||||
{
|
||||
ParentNode = ParentOp->Common.Node;
|
||||
}
|
||||
else
|
||||
{
|
||||
ParentNode = AcpiGbl_RootNode;
|
||||
}
|
||||
|
||||
MethodObj->Method.AmlStart = AmlStart;
|
||||
MethodObj->Method.AmlLength = AmlLength;
|
||||
MethodObj->Method.OwnerId = OwnerId;
|
||||
MethodObj->Method.InfoFlags |= ACPI_METHOD_MODULE_LEVEL;
|
||||
|
||||
/*
|
||||
* Save the parent node in NextObject. This is cheating, but we
|
||||
* don't want to expand the method object.
|
||||
*/
|
||||
MethodObj->Method.NextObject =
|
||||
ACPI_CAST_PTR (ACPI_OPERAND_OBJECT, ParentNode);
|
||||
|
||||
if (!Prev)
|
||||
{
|
||||
AcpiGbl_ModuleCodeList = MethodObj;
|
||||
}
|
||||
else
|
||||
{
|
||||
Prev->Method.Mutex = MethodObj;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_DEBUG_PRINT ((ACPI_DB_PARSE,
|
||||
"Appending to existing code block: %p\n", Prev));
|
||||
|
||||
Prev->Method.AmlLength += AmlLength;
|
||||
}
|
||||
|
||||
return_VOID;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION: AcpiPsParseLoop
|
||||
|
|
|
@ -572,12 +572,12 @@ AcpiPsParseAml (
|
|||
if (Status == AE_ABORT_METHOD)
|
||||
{
|
||||
AcpiNsPrintNodePathname (
|
||||
WalkState->MethodNode, "Method aborted:");
|
||||
WalkState->MethodNode, "Aborting method");
|
||||
AcpiOsPrintf ("\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
ACPI_ERROR_METHOD ("Method parse/execution failed",
|
||||
ACPI_ERROR_METHOD ("Aborting method",
|
||||
WalkState->MethodNode, NULL, Status);
|
||||
}
|
||||
AcpiExEnterInterpreter ();
|
||||
|
|
|
@ -72,7 +72,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpIrq[7] =
|
|||
{ACPI_RSD_UINT8 , ACPI_RSD_OFFSET (Irq.DescriptorLength), "Descriptor Length", NULL},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Triggering), "Triggering", AcpiGbl_HeDecode},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Irq.Polarity), "Polarity", AcpiGbl_LlDecode},
|
||||
{ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Irq.Sharable), "Sharing", AcpiGbl_ShrDecode},
|
||||
{ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Irq.Shareable), "Sharing", AcpiGbl_ShrDecode},
|
||||
{ACPI_RSD_UINT8 , ACPI_RSD_OFFSET (Irq.InterruptCount), "Interrupt Count", NULL},
|
||||
{ACPI_RSD_SHORTLIST,ACPI_RSD_OFFSET (Irq.Interrupts[0]), "Interrupt List", NULL}
|
||||
};
|
||||
|
@ -216,7 +216,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpExtIrq[8] =
|
|||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.ProducerConsumer), "Type", AcpiGbl_ConsumeDecode},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Triggering), "Triggering", AcpiGbl_HeDecode},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Polarity), "Polarity", AcpiGbl_LlDecode},
|
||||
{ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Sharable), "Sharing", AcpiGbl_ShrDecode},
|
||||
{ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (ExtendedIrq.Shareable), "Sharing", AcpiGbl_ShrDecode},
|
||||
{ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (ExtendedIrq.ResourceSource), NULL, NULL},
|
||||
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (ExtendedIrq.InterruptCount), "Interrupt Count", NULL},
|
||||
{ACPI_RSD_DWORDLIST,ACPI_RSD_OFFSET (ExtendedIrq.Interrupts[0]), "Interrupt List", NULL}
|
||||
|
@ -239,7 +239,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpGpio[16] =
|
|||
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (Gpio.ConnectionType), "ConnectionType", AcpiGbl_CtDecode},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Gpio.ProducerConsumer), "ProducerConsumer", AcpiGbl_ConsumeDecode},
|
||||
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (Gpio.PinConfig), "PinConfig", AcpiGbl_PpcDecode},
|
||||
{ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Gpio.Sharable), "Sharing", AcpiGbl_ShrDecode},
|
||||
{ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Gpio.Shareable), "Sharing", AcpiGbl_ShrDecode},
|
||||
{ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Gpio.IoRestriction), "IoRestriction", AcpiGbl_IorDecode},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (Gpio.Triggering), "Triggering", AcpiGbl_HeDecode},
|
||||
{ACPI_RSD_2BITFLAG, ACPI_RSD_OFFSET (Gpio.Polarity), "Polarity", AcpiGbl_LlDecode},
|
||||
|
@ -257,7 +257,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpPinFunction[10] =
|
|||
{ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinFunction), "PinFunction", NULL},
|
||||
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (PinFunction.RevisionId), "RevisionId", NULL},
|
||||
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (PinFunction.PinConfig), "PinConfig", AcpiGbl_PpcDecode},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinFunction.Sharable), "Sharing", AcpiGbl_ShrDecode},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinFunction.Shareable), "Sharing", AcpiGbl_ShrDecode},
|
||||
{ACPI_RSD_UINT16, ACPI_RSD_OFFSET (PinFunction.FunctionNumber), "FunctionNumber", NULL},
|
||||
{ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (PinFunction.ResourceSource), "ResourceSource", NULL},
|
||||
{ACPI_RSD_UINT16, ACPI_RSD_OFFSET (PinFunction.PinTableLength), "PinTableLength", NULL},
|
||||
|
@ -271,7 +271,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpPinConfig[11] =
|
|||
{ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinConfig), "PinConfig", NULL},
|
||||
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (PinConfig.RevisionId), "RevisionId", NULL},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinConfig.ProducerConsumer), "ProducerConsumer", AcpiGbl_ConsumeDecode},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinConfig.Sharable), "Sharing", AcpiGbl_ShrDecode},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinConfig.Shareable), "Sharing", AcpiGbl_ShrDecode},
|
||||
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (PinConfig.PinConfigType), "PinConfigType", NULL},
|
||||
{ACPI_RSD_UINT32, ACPI_RSD_OFFSET (PinConfig.PinConfigValue), "PinConfigValue", NULL},
|
||||
{ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (PinConfig.ResourceSource), "ResourceSource", NULL},
|
||||
|
@ -298,7 +298,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpPinGroupFunction[9] =
|
|||
{ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinGroupFunction), "PinGroupFunction", NULL},
|
||||
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (PinGroupFunction.RevisionId), "RevisionId", NULL},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupFunction.ProducerConsumer), "ProducerConsumer", AcpiGbl_ConsumeDecode},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupFunction.Sharable), "Sharing", AcpiGbl_ShrDecode},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupFunction.Shareable), "Sharing", AcpiGbl_ShrDecode},
|
||||
{ACPI_RSD_UINT16, ACPI_RSD_OFFSET (PinGroupFunction.FunctionNumber), "FunctionNumber", NULL},
|
||||
{ACPI_RSD_SOURCE_LABEL, ACPI_RSD_OFFSET (PinGroupFunction.ResourceSourceLabel), "ResourceSourceLabel", NULL},
|
||||
{ACPI_RSD_SOURCE, ACPI_RSD_OFFSET (PinGroupFunction.ResourceSource), "ResourceSource", NULL},
|
||||
|
@ -311,7 +311,7 @@ ACPI_RSDUMP_INFO AcpiRsDumpPinGroupConfig[10] =
|
|||
{ACPI_RSD_TITLE, ACPI_RSD_TABLE_SIZE (AcpiRsDumpPinGroupConfig), "PinGroupConfig", NULL},
|
||||
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (PinGroupConfig.RevisionId), "RevisionId", NULL},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupConfig.ProducerConsumer), "ProducerConsumer", AcpiGbl_ConsumeDecode},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupConfig.Sharable), "Sharing", AcpiGbl_ShrDecode},
|
||||
{ACPI_RSD_1BITFLAG, ACPI_RSD_OFFSET (PinGroupConfig.Shareable), "Sharing", AcpiGbl_ShrDecode},
|
||||
{ACPI_RSD_UINT8, ACPI_RSD_OFFSET (PinGroupConfig.PinConfigType), "PinConfigType", NULL},
|
||||
{ACPI_RSD_UINT32, ACPI_RSD_OFFSET (PinGroupConfig.PinConfigValue), "PinConfigValue", NULL},
|
||||
{ACPI_RSD_SOURCE_LABEL, ACPI_RSD_OFFSET (PinGroupConfig.ResourceSourceLabel), "ResourceSourceLabel", NULL},
|
||||
|
|
|
@ -93,7 +93,7 @@ ACPI_RSCONVERT_INFO AcpiRsGetIrq[9] =
|
|||
AML_OFFSET (Irq.Flags),
|
||||
3},
|
||||
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Sharable),
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Shareable),
|
||||
AML_OFFSET (Irq.Flags),
|
||||
4},
|
||||
|
||||
|
@ -133,7 +133,7 @@ ACPI_RSCONVERT_INFO AcpiRsSetIrq[14] =
|
|||
AML_OFFSET (Irq.Flags),
|
||||
3},
|
||||
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Sharable),
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Irq.Shareable),
|
||||
AML_OFFSET (Irq.Flags),
|
||||
4},
|
||||
|
||||
|
@ -180,7 +180,7 @@ ACPI_RSCONVERT_INFO AcpiRsSetIrq[14] =
|
|||
ACPI_ACTIVE_HIGH},
|
||||
|
||||
{ACPI_RSC_EXIT_NE, ACPI_RSC_COMPARE_VALUE,
|
||||
ACPI_RS_OFFSET (Data.Irq.Sharable),
|
||||
ACPI_RS_OFFSET (Data.Irq.Shareable),
|
||||
ACPI_EXCLUSIVE},
|
||||
|
||||
/* We can optimize to a 2-byte IrqNoFlags() descriptor */
|
||||
|
@ -221,7 +221,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertExtIrq[10] =
|
|||
AML_OFFSET (ExtendedIrq.Flags),
|
||||
2},
|
||||
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ExtendedIrq.Sharable),
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.ExtendedIrq.Shareable),
|
||||
AML_OFFSET (ExtendedIrq.Flags),
|
||||
3},
|
||||
|
||||
|
|
|
@ -78,7 +78,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertGpio[18] =
|
|||
AML_OFFSET (Gpio.Flags),
|
||||
0},
|
||||
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Gpio.Sharable),
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.Gpio.Shareable),
|
||||
AML_OFFSET (Gpio.IntFlags),
|
||||
3},
|
||||
|
||||
|
@ -166,7 +166,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertPinFunction[13] =
|
|||
AML_OFFSET (PinFunction.RevisionId),
|
||||
1},
|
||||
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinFunction.Sharable),
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinFunction.Shareable),
|
||||
AML_OFFSET (PinFunction.Flags),
|
||||
0},
|
||||
|
||||
|
@ -531,7 +531,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertPinConfig[14] =
|
|||
AML_OFFSET (PinConfig.RevisionId),
|
||||
1},
|
||||
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinConfig.Sharable),
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinConfig.Shareable),
|
||||
AML_OFFSET (PinConfig.Flags),
|
||||
0},
|
||||
|
||||
|
@ -667,7 +667,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertPinGroupFunction[13] =
|
|||
AML_OFFSET (PinGroupFunction.RevisionId),
|
||||
1},
|
||||
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinGroupFunction.Sharable),
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinGroupFunction.Shareable),
|
||||
AML_OFFSET (PinGroupFunction.Flags),
|
||||
0},
|
||||
|
||||
|
@ -734,7 +734,7 @@ ACPI_RSCONVERT_INFO AcpiRsConvertPinGroupConfig[14] =
|
|||
AML_OFFSET (PinGroupConfig.RevisionId),
|
||||
1},
|
||||
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinGroupConfig.Sharable),
|
||||
{ACPI_RSC_1BITFLAG, ACPI_RS_OFFSET (Data.PinGroupConfig.Shareable),
|
||||
AML_OFFSET (PinGroupConfig.Flags),
|
||||
0},
|
||||
|
||||
|
|
|
@ -632,7 +632,7 @@ AcpiTbConvertFadt (
|
|||
* 64-bit X length field.
|
||||
* Note: If the legacy length field is > 0xFF bits, ignore
|
||||
* this check. (GPE registers can be larger than the
|
||||
* 64-bit GAS structure can accomodate, 0xFF bits).
|
||||
* 64-bit GAS structure can accommodate, 0xFF bits).
|
||||
*/
|
||||
if ((ACPI_MUL_8 (Length) <= ACPI_UINT8_MAX) &&
|
||||
(Address64->BitWidth != ACPI_MUL_8 (Length)))
|
||||
|
|
|
@ -155,7 +155,7 @@ AcpiInitializeTables (
|
|||
/*
|
||||
* Get the root table (RSDT or XSDT) and extract all entries to the local
|
||||
* Root Table Array. This array contains the information of the RSDT/XSDT
|
||||
* in a common, more useable format.
|
||||
* in a common, more usable format.
|
||||
*/
|
||||
Status = AcpiTbParseRootTable (RsdpAddress);
|
||||
return_ACPI_STATUS (Status);
|
||||
|
@ -226,7 +226,7 @@ AcpiReallocateRootTable (
|
|||
{
|
||||
/*
|
||||
* Now it's safe to do full table validation. We can do deferred
|
||||
* table initilization here once the flag is set.
|
||||
* table initialization here once the flag is set.
|
||||
*/
|
||||
AcpiGbl_EnableTableValidation = TRUE;
|
||||
for (i = 0; i < AcpiGbl_RootTableList.CurrentTableCount; ++i)
|
||||
|
|
|
@ -111,25 +111,19 @@ AcpiLoadTables (
|
|||
"While loading namespace from ACPI tables"));
|
||||
}
|
||||
|
||||
if (AcpiGbl_ExecuteTablesAsMethods)
|
||||
/*
|
||||
* Initialize the objects in the namespace that remain uninitialized.
|
||||
* This runs the executable AML that may be part of the declaration of
|
||||
* these name objects:
|
||||
* OperationRegions, BufferFields, Buffers, and Packages.
|
||||
*
|
||||
*/
|
||||
Status = AcpiNsInitializeObjects ();
|
||||
if (ACPI_SUCCESS (Status))
|
||||
{
|
||||
/*
|
||||
* If the module-level code support is enabled, initialize the objects
|
||||
* in the namespace that remain uninitialized. This runs the executable
|
||||
* AML that may be part of the declaration of these name objects:
|
||||
* OperationRegions, BufferFields, Buffers, and Packages.
|
||||
*
|
||||
* Note: The module-level code is optional at this time, but will
|
||||
* become the default in the future.
|
||||
*/
|
||||
Status = AcpiNsInitializeObjects ();
|
||||
if (ACPI_FAILURE (Status))
|
||||
{
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
AcpiGbl_NamespaceInitialized = TRUE;
|
||||
}
|
||||
|
||||
AcpiGbl_NamespaceInitialized = TRUE;
|
||||
return_ACPI_STATUS (Status);
|
||||
}
|
||||
|
||||
|
|
|
@ -291,7 +291,7 @@ strlen (
|
|||
* PARAMETERS: String - Null terminated string
|
||||
* Delimiters - Delimiters to match
|
||||
*
|
||||
* RETURN: The first occurance in the string of any of the bytes in the
|
||||
* RETURN: The first occurrence in the string of any of the bytes in the
|
||||
* delimiters
|
||||
*
|
||||
* DESCRIPTION: Search a string for any of a set of the delimiters
|
||||
|
@ -681,7 +681,7 @@ strstr (
|
|||
* FUNCTION: strtoul
|
||||
*
|
||||
* PARAMETERS: String - Null terminated string
|
||||
* Terminater - Where a pointer to the terminating byte is
|
||||
* Terminator - Where a pointer to the terminating byte is
|
||||
* returned
|
||||
* Base - Radix of the string
|
||||
*
|
||||
|
|
|
@ -525,6 +525,7 @@ static const char *AcpiGbl_GenericNotify[ACPI_GENERIC_NOTIFY_MAX + 1]
|
|||
/* 0C */ "Reserved (was previously Shutdown Request)", /* Reserved in ACPI 6.0 */
|
||||
/* 0D */ "System Resource Affinity Update",
|
||||
/* 0E */ "Heterogeneous Memory Attributes Update" /* ACPI 6.2 */
|
||||
/* 0F */ "Error Disconnect Recover" /* ACPI 6.3 */
|
||||
};
|
||||
|
||||
static const char *AcpiGbl_DeviceNotify[5] =
|
||||
|
@ -561,14 +562,14 @@ AcpiUtGetNotifyName (
|
|||
ACPI_OBJECT_TYPE Type)
|
||||
{
|
||||
|
||||
/* 00 - 0D are "common to all object types" (from ACPI Spec) */
|
||||
/* 00 - 0F are "common to all object types" (from ACPI Spec) */
|
||||
|
||||
if (NotifyValue <= ACPI_GENERIC_NOTIFY_MAX)
|
||||
{
|
||||
return (AcpiGbl_GenericNotify[NotifyValue]);
|
||||
}
|
||||
|
||||
/* 0E - 7F are reserved */
|
||||
/* 10 - 7F are reserved */
|
||||
|
||||
if (NotifyValue <= ACPI_MAX_SYS_NOTIFY)
|
||||
{
|
||||
|
|
|
@ -304,6 +304,11 @@ AcpiUtDeleteInternalObj (
|
|||
|
||||
AcpiUtDeleteObjectDesc (SecondDesc);
|
||||
}
|
||||
if (Object->Field.InternalPccBuffer)
|
||||
{
|
||||
ACPI_FREE(Object->Field.InternalPccBuffer);
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case ACPI_TYPE_BUFFER_FIELD:
|
||||
|
|
|
@ -245,19 +245,19 @@ AcpiUtPrefixedNamespaceError (
|
|||
case AE_ALREADY_EXISTS:
|
||||
|
||||
AcpiOsPrintf (ACPI_MSG_BIOS_ERROR);
|
||||
Message = "Failure creating";
|
||||
Message = "Failure creating named object";
|
||||
break;
|
||||
|
||||
case AE_NOT_FOUND:
|
||||
|
||||
AcpiOsPrintf (ACPI_MSG_BIOS_ERROR);
|
||||
Message = "Could not resolve";
|
||||
Message = "Could not resolve symbol";
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
AcpiOsPrintf (ACPI_MSG_ERROR);
|
||||
Message = "Failure resolving";
|
||||
Message = "Failure resolving symbol";
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -392,7 +392,8 @@ AcpiUtMethodError (
|
|||
}
|
||||
|
||||
AcpiNsPrintNodePathname (Node, Message);
|
||||
AcpiOsPrintf (", %s", AcpiFormatException (MethodStatus));
|
||||
AcpiOsPrintf (" due to previous error (%s)",
|
||||
AcpiFormatException (MethodStatus));
|
||||
|
||||
ACPI_MSG_SUFFIX;
|
||||
ACPI_MSG_REDIRECT_END;
|
||||
|
|
|
@ -971,7 +971,7 @@ Bus_PDO_QueryResources(
|
|||
ResourceDescriptor->Type = CmResourceTypeInterrupt;
|
||||
|
||||
ResourceDescriptor->ShareDisposition =
|
||||
(irq_data->Sharable == ACPI_SHARED ? CmResourceShareShared : CmResourceShareDeviceExclusive);
|
||||
(irq_data->Shareable == ACPI_SHARED ? CmResourceShareShared : CmResourceShareDeviceExclusive);
|
||||
ResourceDescriptor->Flags =
|
||||
(irq_data->Triggering == ACPI_LEVEL_SENSITIVE ? CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE : CM_RESOURCE_INTERRUPT_LATCHED);
|
||||
ResourceDescriptor->u.Interrupt.Level =
|
||||
|
@ -990,7 +990,7 @@ Bus_PDO_QueryResources(
|
|||
ResourceDescriptor->Type = CmResourceTypeInterrupt;
|
||||
|
||||
ResourceDescriptor->ShareDisposition =
|
||||
(irq_data->Sharable == ACPI_SHARED ? CmResourceShareShared : CmResourceShareDeviceExclusive);
|
||||
(irq_data->Shareable == ACPI_SHARED ? CmResourceShareShared : CmResourceShareDeviceExclusive);
|
||||
ResourceDescriptor->Flags =
|
||||
(irq_data->Triggering == ACPI_LEVEL_SENSITIVE ? CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE : CM_RESOURCE_INTERRUPT_LATCHED);
|
||||
ResourceDescriptor->u.Interrupt.Level =
|
||||
|
@ -1445,7 +1445,7 @@ Bus_PDO_QueryResourceRequirements(
|
|||
{
|
||||
RequirementDescriptor->Option = (i == 0) ? IO_RESOURCE_PREFERRED : IO_RESOURCE_ALTERNATIVE;
|
||||
RequirementDescriptor->Type = CmResourceTypeInterrupt;
|
||||
RequirementDescriptor->ShareDisposition = (irq_data->Sharable == ACPI_SHARED ? CmResourceShareShared : CmResourceShareDeviceExclusive);
|
||||
RequirementDescriptor->ShareDisposition = (irq_data->Shareable == ACPI_SHARED ? CmResourceShareShared : CmResourceShareDeviceExclusive);
|
||||
RequirementDescriptor->Flags =(irq_data->Triggering == ACPI_LEVEL_SENSITIVE ? CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE : CM_RESOURCE_INTERRUPT_LATCHED);
|
||||
RequirementDescriptor->u.Interrupt.MinimumVector =
|
||||
RequirementDescriptor->u.Interrupt.MaximumVector = irq_data->Interrupts[i];
|
||||
|
@ -1461,7 +1461,7 @@ Bus_PDO_QueryResourceRequirements(
|
|||
{
|
||||
RequirementDescriptor->Option = (i == 0) ? IO_RESOURCE_PREFERRED : IO_RESOURCE_ALTERNATIVE;
|
||||
RequirementDescriptor->Type = CmResourceTypeInterrupt;
|
||||
RequirementDescriptor->ShareDisposition = (irq_data->Sharable == ACPI_SHARED ? CmResourceShareShared : CmResourceShareDeviceExclusive);
|
||||
RequirementDescriptor->ShareDisposition = (irq_data->Shareable == ACPI_SHARED ? CmResourceShareShared : CmResourceShareDeviceExclusive);
|
||||
RequirementDescriptor->Flags =(irq_data->Triggering == ACPI_LEVEL_SENSITIVE ? CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE : CM_RESOURCE_INTERRUPT_LATCHED);
|
||||
RequirementDescriptor->u.Interrupt.MinimumVector =
|
||||
RequirementDescriptor->u.Interrupt.MaximumVector = irq_data->Interrupts[i];
|
||||
|
|
Loading…
Reference in a new issue