Check in files off the vendor branch as well as files with local patches.
This commit is contained in:
parent
55545f899c
commit
fce89338bf
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=127178
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acconfig.h - Global configuration constants
|
||||
* $Revision: 149 $
|
||||
* $Revision: 150 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -137,7 +137,7 @@
|
||||
|
||||
/* Version string */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20040220
|
||||
#define ACPI_CA_VERSION 0x20040311
|
||||
|
||||
/* Maximum objects in the various object caches */
|
||||
|
||||
@ -258,6 +258,10 @@
|
||||
|
||||
#define ACPI_SMBUS_BUFFER_SIZE 34
|
||||
|
||||
/* Number of strings associated with the _OSI reserved method */
|
||||
|
||||
#define ACPI_NUM_OSI_STRINGS 4
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Name: acutils.h -- prototypes for the common (subsystem-wide) procedures
|
||||
* $Revision: 159 $
|
||||
* $Revision: 160 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -125,7 +125,6 @@ ACPI_STATUS (*ACPI_PKG_CALLBACK) (
|
||||
ACPI_GENERIC_STATE *State,
|
||||
void *Context);
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtWalkPackageTree (
|
||||
ACPI_OPERAND_OBJECT *SourceObject,
|
||||
@ -133,7 +132,6 @@ AcpiUtWalkPackageTree (
|
||||
ACPI_PKG_CALLBACK WalkCallback,
|
||||
void *Context);
|
||||
|
||||
|
||||
typedef struct acpi_pkg_info
|
||||
{
|
||||
UINT8 *FreeSpace;
|
||||
@ -549,6 +547,10 @@ AcpiUtDeleteInternalObjectList (
|
||||
#define METHOD_NAME__PRS "_PRS"
|
||||
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtOsiImplementation (
|
||||
ACPI_WALK_STATE *WalkState);
|
||||
|
||||
ACPI_STATUS
|
||||
AcpiUtEvaluateObject (
|
||||
ACPI_NAMESPACE_NODE *PrefixNode,
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: psparse - Parser top level AML parse routines
|
||||
* $Revision: 143 $
|
||||
* $Revision: 144 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -522,7 +522,7 @@ AcpiPsParseLoop (
|
||||
ACPI_STATUS Status = AE_OK;
|
||||
ACPI_PARSE_OBJECT *Op = NULL; /* current op */
|
||||
ACPI_PARSE_OBJECT *Arg = NULL;
|
||||
ACPI_PARSE_OBJECT PreOp;
|
||||
ACPI_PARSE_OBJECT *PreOp = NULL;
|
||||
ACPI_PARSE_STATE *ParserState;
|
||||
UINT8 *AmlOpStart = NULL;
|
||||
|
||||
@ -654,8 +654,19 @@ AcpiPsParseLoop (
|
||||
|
||||
if (WalkState->OpInfo->Flags & AML_NAMED)
|
||||
{
|
||||
PreOp.Common.Value.Arg = NULL;
|
||||
PreOp.Common.AmlOpcode = WalkState->Opcode;
|
||||
/* Allocate a new PreOp if necessary */
|
||||
|
||||
if (!PreOp)
|
||||
{
|
||||
PreOp = AcpiPsAllocOp (WalkState->Opcode);
|
||||
if (!PreOp)
|
||||
{
|
||||
return_ACPI_STATUS (AE_NO_MEMORY);
|
||||
}
|
||||
}
|
||||
|
||||
PreOp->Common.Value.Arg = NULL;
|
||||
PreOp->Common.AmlOpcode = WalkState->Opcode;
|
||||
|
||||
/*
|
||||
* Get and append arguments until we find the node that contains
|
||||
@ -671,7 +682,7 @@ AcpiPsParseLoop (
|
||||
goto CloseThisOp;
|
||||
}
|
||||
|
||||
AcpiPsAppendArg (&PreOp, Arg);
|
||||
AcpiPsAppendArg (PreOp, Arg);
|
||||
INCREMENT_ARG_LIST (WalkState->ArgTypes);
|
||||
}
|
||||
|
||||
@ -717,7 +728,7 @@ AcpiPsParseLoop (
|
||||
goto CloseThisOp;
|
||||
}
|
||||
|
||||
AcpiPsAppendArg (Op, PreOp.Common.Value.Arg);
|
||||
AcpiPsAppendArg (Op, PreOp->Common.Value.Arg);
|
||||
AcpiGbl_Depth++;
|
||||
|
||||
if (Op->Common.AmlOpcode == AML_REGION_OP)
|
||||
@ -993,6 +1004,11 @@ AcpiPsParseLoop (
|
||||
|
||||
AcpiPsCompleteThisOp (WalkState, Op);
|
||||
Op = NULL;
|
||||
if (PreOp)
|
||||
{
|
||||
AcpiPsFreeOp (PreOp);
|
||||
PreOp = NULL;
|
||||
}
|
||||
|
||||
switch (Status)
|
||||
{
|
||||
@ -1285,6 +1301,30 @@ AcpiPsParseAml (
|
||||
{
|
||||
ACPI_REPORT_METHOD_ERROR ("Method execution failed",
|
||||
WalkState->MethodNode, NULL, Status);
|
||||
|
||||
/* Check for possible multi-thread reentrancy problem */
|
||||
|
||||
if ((Status == AE_ALREADY_EXISTS) &&
|
||||
(!WalkState->MethodDesc->Method.Semaphore))
|
||||
{
|
||||
/*
|
||||
* This method is marked NotSerialized, but it tried to create a named
|
||||
* object, causing the second thread entrance to fail. We will workaround
|
||||
* this by marking the method permanently as Serialized.
|
||||
*/
|
||||
WalkState->MethodDesc->Method.MethodFlags |= AML_METHOD_SERIALIZED;
|
||||
WalkState->MethodDesc->Method.Concurrency = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (WalkState->MethodDesc)
|
||||
{
|
||||
/* Decrement the thread count on the method parse tree */
|
||||
|
||||
if (WalkState->MethodDesc->Method.ThreadCount)
|
||||
{
|
||||
WalkState->MethodDesc->Method.ThreadCount--;
|
||||
}
|
||||
}
|
||||
|
||||
/* We are done with this walk, move on to the parent if any */
|
||||
|
@ -1,7 +1,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: utglobal - Global variables for the ACPI subsystem
|
||||
* $Revision: 193 $
|
||||
* $Revision: 194 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -265,6 +265,15 @@ const char *AcpiGbl_HighestDstateNames[4] = {
|
||||
"_S3D",
|
||||
"_S4D"};
|
||||
|
||||
/* Strings supported by the _OSI predefined (internal) method */
|
||||
|
||||
const char *AcpiGbl_ValidOsiStrings[ACPI_NUM_OSI_STRINGS] = {
|
||||
"Linux",
|
||||
"Windows 2000",
|
||||
"Windows 2001",
|
||||
"Windows 2001.1"};
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Namespace globals
|
||||
@ -275,14 +284,10 @@ const char *AcpiGbl_HighestDstateNames[4] = {
|
||||
/*
|
||||
* Predefined ACPI Names (Built-in to the Interpreter)
|
||||
*
|
||||
* Initial values are currently supported only for types String and Number.
|
||||
* Both are specified as strings in this table.
|
||||
*
|
||||
* NOTES:
|
||||
* 1) _SB_ is defined to be a device to allow _SB_/_INI to be run
|
||||
* 1) _SB_ is defined to be a device to allow \_SB_._INI to be run
|
||||
* during the initialization sequence.
|
||||
*/
|
||||
|
||||
const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames[] =
|
||||
{
|
||||
{"_GPE", ACPI_TYPE_LOCAL_SCOPE, NULL},
|
||||
@ -294,7 +299,7 @@ const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames[] =
|
||||
{"_OS_", ACPI_TYPE_STRING, ACPI_OS_NAME},
|
||||
{"_GL_", ACPI_TYPE_MUTEX, "0"},
|
||||
|
||||
#if defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
|
||||
#if !defined (ACPI_NO_METHOD_EXECUTION) || defined (ACPI_CONSTANT_EVAL_ONLY)
|
||||
{"_OSI", ACPI_TYPE_METHOD, "1"},
|
||||
#endif
|
||||
{NULL, ACPI_TYPE_ANY, NULL} /* Table terminator */
|
||||
@ -305,7 +310,6 @@ const ACPI_PREDEFINED_NAMES AcpiGbl_PreDefinedNames[] =
|
||||
* Properties of the ACPI Object Types, both internal and external.
|
||||
* The table is indexed by values of ACPI_OBJECT_TYPE
|
||||
*/
|
||||
|
||||
const UINT8 AcpiGbl_NsProperties[] =
|
||||
{
|
||||
ACPI_NS_NORMAL, /* 00 Any */
|
||||
@ -384,10 +388,8 @@ AcpiUtHexToAsciiChar (
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
ACPI_TABLE_LIST AcpiGbl_TableLists[NUM_ACPI_TABLE_TYPES];
|
||||
|
||||
|
||||
ACPI_TABLE_SUPPORT AcpiGbl_TableData[NUM_ACPI_TABLE_TYPES] =
|
||||
{
|
||||
/*********** Name, Signature, Global typed pointer Signature size, Type How many allowed?, Contains valid AML? */
|
||||
@ -551,9 +553,8 @@ AcpiUtGetEventName (
|
||||
*
|
||||
* The type ACPI_TYPE_ANY (Untyped) is used as a "don't care" when searching; when
|
||||
* stored in a table it really means that we have thus far seen no evidence to
|
||||
* indicatewhat type is actually going to be stored for this entry.
|
||||
* indicate what type is actually going to be stored for this entry.
|
||||
*/
|
||||
|
||||
static const char AcpiGbl_BadType[] = "UNDEFINED";
|
||||
#define TYPE_NAME_LENGTH 12 /* Maximum length of each string */
|
||||
|
||||
@ -858,6 +859,11 @@ AcpiUtInitGlobals (
|
||||
|
||||
ACPI_FUNCTION_TRACE ("UtInitGlobals");
|
||||
|
||||
/* Runtime configuration */
|
||||
|
||||
AcpiGbl_CreateOsiMethod = TRUE;
|
||||
AcpiGbl_AllMethodsSerialized = FALSE;
|
||||
|
||||
/* Memory allocation and cache lists */
|
||||
|
||||
ACPI_MEMSET (AcpiGbl_MemoryLists, 0, sizeof (ACPI_MEMORY_LIST) * ACPI_NUM_MEM_LISTS);
|
||||
|
Loading…
Reference in New Issue
Block a user