Resolve conflicts from the 20001201 merge.

This commit is contained in:
msmith 2000-12-08 09:22:18 +00:00
parent fa6a4ed39b
commit 131561da3d
4 changed files with 150 additions and 82 deletions

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acgcc.h - GCC specific defines, etc.
* $Revision: 1 $
* $Revision: 2 $
*
*****************************************************************************/
@ -165,7 +165,7 @@
";;\n" \
"(p8) mov %0=-1\n" \
"(p9) mov %0=r0\n" \
:"=r"(Acq):"m" __atomic_fool_gcc((GLptr)):"r2","r29","r30","memory"); \
:"=r"(Acq):"m"(GLptr):"r2","r29","r30","memory"); \
} while (0)
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq) \
@ -182,7 +182,7 @@
"(p7) br.dpnt.few 1b\n" \
"and %0=1,r2\n" \
";;\n" \
:"=r"(Acq):"m" __atomic_fool_gcc((GLptr)):"r2","r29","r30","memory"); \
:"=r"(Acq):"m"(GLptr):"r2","r29","r30","memory"); \
} while (0)
/*! [End] no source code translation !*/

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: psparse - Parser top level AML parse routines
* $Revision: 65 $
* $Revision: 69 $
*
*****************************************************************************/
@ -357,11 +357,11 @@ AcpiPsCompleteThisOp (
/* Delete this op and the subtree below it if asked to */
if (((WalkState->ParseFlags & ACPI_PARSE_TREE_MASK) == ACPI_PARSE_DELETE_TREE) &&
(OpcodeClass != OPTYPE_CONSTANT) &&
(OpcodeClass != OPTYPE_LITERAL) &&
(OpcodeClass != OPTYPE_LOCAL_VARIABLE) &&
(OpcodeClass != OPTYPE_CONSTANT) &&
(OpcodeClass != OPTYPE_LITERAL) &&
(OpcodeClass != OPTYPE_LOCAL_VARIABLE) &&
(OpcodeClass != OPTYPE_METHOD_ARGUMENT) &&
(OpcodeClass != OPTYPE_DATA_TERM) &&
(OpcodeClass != OPTYPE_DATA_TERM) &&
(Op->Opcode != AML_NAMEPATH_OP))
{
/* Make sure that we only delete this subtree */
@ -370,7 +370,7 @@ AcpiPsCompleteThisOp (
{
/*
* Check if we need to replace the operator and its subtree
* with a return value op
* with a return value op (placeholder op)
*/
ParentInfo = AcpiPsGetOpcodeInfo (Op->Parent->Opcode);
@ -378,7 +378,30 @@ AcpiPsCompleteThisOp (
switch (ACPI_GET_OP_CLASS (ParentInfo))
{
case OPTYPE_CONTROL: /* IF, ELSE, WHILE only */
break;
case OPTYPE_NAMED_OBJECT: /* Scope, method, etc. */
/*
* These opcodes contain TermArg operands. The current
* op must be replace by a placeholder return op
*/
if ((Op->Parent->Opcode == AML_REGION_OP) ||
(Op->Parent->Opcode == AML_CREATE_FIELD_OP) ||
(Op->Parent->Opcode == AML_BIT_FIELD_OP) ||
(Op->Parent->Opcode == AML_BYTE_FIELD_OP) ||
(Op->Parent->Opcode == AML_WORD_FIELD_OP) ||
(Op->Parent->Opcode == AML_DWORD_FIELD_OP) ||
(Op->Parent->Opcode == AML_QWORD_FIELD_OP))
{
ReplacementOp = AcpiPsAllocOp (AML_RETURN_VALUE_OP);
if (!ReplacementOp)
{
return_VALUE (FALSE);
}
}
break;
default:
@ -398,14 +421,14 @@ AcpiPsCompleteThisOp (
if (ReplacementOp)
{
ReplacementOp->Parent = Op->Parent;
ReplacementOp->Parent = Op->Parent;
ReplacementOp->Value.Arg = NULL;
Op->Parent->Value.Arg = ReplacementOp;
ReplacementOp->Next = Op->Next;
Op->Parent->Value.Arg = ReplacementOp;
ReplacementOp->Next = Op->Next;
}
else
{
Op->Parent->Value.Arg = Op->Next;
Op->Parent->Value.Arg = Op->Next;
}
}
@ -602,6 +625,7 @@ AcpiPsParseLoop (
UINT16 Opcode;
ACPI_PARSE_OBJECT PreOp;
ACPI_PARSE_STATE *ParserState;
UINT8 *AmlOpStart;
FUNCTION_TRACE_PTR ("PsParseLoop", WalkState);
@ -667,8 +691,9 @@ AcpiPsParseLoop (
{
/* Get the next opcode from the AML stream */
AmlOffset = ParserState->Aml - ParserState->AmlStart;
Opcode = AcpiPsPeekOpcode (ParserState);
AmlOpStart = ParserState->Aml;
AmlOffset = ParserState->Aml - ParserState->AmlStart;
Opcode = AcpiPsPeekOpcode (ParserState);
/*
* First cut to determine what we have found:
@ -704,7 +729,7 @@ AcpiPsParseLoop (
/* The opcode is unrecognized. Just skip unknown opcodes */
DEBUG_PRINT (ACPI_ERROR,
("ParseLoop: Found unknown opcode 0x%lX at AML offset 0x%X, ignoring\n",
("ParseLoop: Found unknown opcode %lX at AML offset %X, ignoring\n",
Opcode, AmlOffset));
DUMP_BUFFER (ParserState->Aml, 128);
@ -771,17 +796,19 @@ AcpiPsParseLoop (
if (DeferredOp)
{
/*
* Skip parsing of control method or opregion body,
* Defer final parsing of an OperationRegion body,
* because we don't have enough info in the first pass
* to parse them correctly.
* to parse it correctly (i.e., there may be method
* calls within the TermArg elements of the body.
*
* However, we must continue parsing because
* the opregion is not a standalone package --
* we don't know where the end is at this point.
*
* Backup to beginning of OpRegion declaration (2 for
* Opcode, 4 for name)
*
* BodyLength is unknown until we parse the body
* (Length is unknown until parse of the body complete)
*/
DeferredOp->Data = ParserState->Aml - 6;
DeferredOp->Data = AmlOpStart;
DeferredOp->Length = 0;
}
}
@ -806,14 +833,12 @@ AcpiPsParseLoop (
(Op->Opcode == AML_DWORD_FIELD_OP))
{
/*
* Backup to beginning of CreateXXXfield declaration (1 for
* Opcode)
*
* Backup to beginning of CreateXXXfield declaration
* BodyLength is unknown until we parse the body
*/
DeferredOp = (ACPI_PARSE2_OBJECT *) Op;
DeferredOp->Data = ParserState->Aml -1;
DeferredOp->Data = AmlOpStart;
DeferredOp->Length = 0;
}
@ -970,18 +995,16 @@ AcpiPsParseLoop (
(Op->Opcode == AML_BIT_FIELD_OP) ||
(Op->Opcode == AML_BYTE_FIELD_OP) ||
(Op->Opcode == AML_WORD_FIELD_OP) ||
(Op->Opcode == AML_DWORD_FIELD_OP))
(Op->Opcode == AML_DWORD_FIELD_OP) ||
(Op->Opcode == AML_QWORD_FIELD_OP))
{
/*
* Backup to beginning of CreateXXXfield declaration (1 for
* Opcode)
*
* BodyLength is unknown until we parse the body
* -4 for the name (last) -- TBD: namestring: may be longer
* than 4?
*/
DeferredOp = (ACPI_PARSE2_OBJECT *) Op;
DeferredOp->Length = ParserState->Aml - DeferredOp->Data;
}
@ -1014,29 +1037,38 @@ AcpiPsParseLoop (
}
if (Status == AE_CTRL_TRANSFER)
switch (Status)
{
case AE_OK:
break;
case AE_CTRL_TRANSFER:
/*
* We are about to transfer to a called method.
*/
WalkState->PrevOp = Op;
WalkState->PrevArgTypes = ArgTypes;
return_ACPI_STATUS (Status);
}
break;
case AE_CTRL_END:
else if (Status == AE_CTRL_END)
{
AcpiPsPopScope (ParserState, &Op, &ArgTypes, &ArgCount);
Status = WalkState->AscendingCallback (WalkState, Op);
Status = AcpiPsNextParseState (WalkState, Op, Status);
AcpiPsCompleteThisOp (WalkState, Op);
Op = NULL;
Status = AE_OK;
}
break;
case AE_CTRL_TERMINATE:
else if (Status == AE_CTRL_TERMINATE)
{
Status = AE_OK;
/* Clean up */
@ -1051,10 +1083,11 @@ AcpiPsParseLoop (
} while (Op);
return_ACPI_STATUS (Status);
}
break;
default: /* All other non-AE_OK status */
else if (ACPI_FAILURE (Status))
{
if (Op == NULL)
{
AcpiPsPopScope (ParserState, &Op, &ArgTypes, &ArgCount);
@ -1067,6 +1100,7 @@ AcpiPsParseLoop (
*/
return_ACPI_STATUS (Status);
break;
}

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Name: acgcc.h - GCC specific defines, etc.
* $Revision: 1 $
* $Revision: 2 $
*
*****************************************************************************/
@ -165,7 +165,7 @@
";;\n" \
"(p8) mov %0=-1\n" \
"(p9) mov %0=r0\n" \
:"=r"(Acq):"m" __atomic_fool_gcc((GLptr)):"r2","r29","r30","memory"); \
:"=r"(Acq):"m"(GLptr):"r2","r29","r30","memory"); \
} while (0)
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Acq) \
@ -182,7 +182,7 @@
"(p7) br.dpnt.few 1b\n" \
"and %0=1,r2\n" \
";;\n" \
:"=r"(Acq):"m" __atomic_fool_gcc((GLptr)):"r2","r29","r30","memory"); \
:"=r"(Acq):"m"(GLptr):"r2","r29","r30","memory"); \
} while (0)
/*! [End] no source code translation !*/

View File

@ -1,7 +1,7 @@
/******************************************************************************
*
* Module Name: psparse - Parser top level AML parse routines
* $Revision: 65 $
* $Revision: 69 $
*
*****************************************************************************/
@ -357,11 +357,11 @@ AcpiPsCompleteThisOp (
/* Delete this op and the subtree below it if asked to */
if (((WalkState->ParseFlags & ACPI_PARSE_TREE_MASK) == ACPI_PARSE_DELETE_TREE) &&
(OpcodeClass != OPTYPE_CONSTANT) &&
(OpcodeClass != OPTYPE_LITERAL) &&
(OpcodeClass != OPTYPE_LOCAL_VARIABLE) &&
(OpcodeClass != OPTYPE_CONSTANT) &&
(OpcodeClass != OPTYPE_LITERAL) &&
(OpcodeClass != OPTYPE_LOCAL_VARIABLE) &&
(OpcodeClass != OPTYPE_METHOD_ARGUMENT) &&
(OpcodeClass != OPTYPE_DATA_TERM) &&
(OpcodeClass != OPTYPE_DATA_TERM) &&
(Op->Opcode != AML_NAMEPATH_OP))
{
/* Make sure that we only delete this subtree */
@ -370,7 +370,7 @@ AcpiPsCompleteThisOp (
{
/*
* Check if we need to replace the operator and its subtree
* with a return value op
* with a return value op (placeholder op)
*/
ParentInfo = AcpiPsGetOpcodeInfo (Op->Parent->Opcode);
@ -378,7 +378,30 @@ AcpiPsCompleteThisOp (
switch (ACPI_GET_OP_CLASS (ParentInfo))
{
case OPTYPE_CONTROL: /* IF, ELSE, WHILE only */
break;
case OPTYPE_NAMED_OBJECT: /* Scope, method, etc. */
/*
* These opcodes contain TermArg operands. The current
* op must be replace by a placeholder return op
*/
if ((Op->Parent->Opcode == AML_REGION_OP) ||
(Op->Parent->Opcode == AML_CREATE_FIELD_OP) ||
(Op->Parent->Opcode == AML_BIT_FIELD_OP) ||
(Op->Parent->Opcode == AML_BYTE_FIELD_OP) ||
(Op->Parent->Opcode == AML_WORD_FIELD_OP) ||
(Op->Parent->Opcode == AML_DWORD_FIELD_OP) ||
(Op->Parent->Opcode == AML_QWORD_FIELD_OP))
{
ReplacementOp = AcpiPsAllocOp (AML_RETURN_VALUE_OP);
if (!ReplacementOp)
{
return_VALUE (FALSE);
}
}
break;
default:
@ -398,14 +421,14 @@ AcpiPsCompleteThisOp (
if (ReplacementOp)
{
ReplacementOp->Parent = Op->Parent;
ReplacementOp->Parent = Op->Parent;
ReplacementOp->Value.Arg = NULL;
Op->Parent->Value.Arg = ReplacementOp;
ReplacementOp->Next = Op->Next;
Op->Parent->Value.Arg = ReplacementOp;
ReplacementOp->Next = Op->Next;
}
else
{
Op->Parent->Value.Arg = Op->Next;
Op->Parent->Value.Arg = Op->Next;
}
}
@ -602,6 +625,7 @@ AcpiPsParseLoop (
UINT16 Opcode;
ACPI_PARSE_OBJECT PreOp;
ACPI_PARSE_STATE *ParserState;
UINT8 *AmlOpStart;
FUNCTION_TRACE_PTR ("PsParseLoop", WalkState);
@ -667,8 +691,9 @@ AcpiPsParseLoop (
{
/* Get the next opcode from the AML stream */
AmlOffset = ParserState->Aml - ParserState->AmlStart;
Opcode = AcpiPsPeekOpcode (ParserState);
AmlOpStart = ParserState->Aml;
AmlOffset = ParserState->Aml - ParserState->AmlStart;
Opcode = AcpiPsPeekOpcode (ParserState);
/*
* First cut to determine what we have found:
@ -704,7 +729,7 @@ AcpiPsParseLoop (
/* The opcode is unrecognized. Just skip unknown opcodes */
DEBUG_PRINT (ACPI_ERROR,
("ParseLoop: Found unknown opcode 0x%lX at AML offset 0x%X, ignoring\n",
("ParseLoop: Found unknown opcode %lX at AML offset %X, ignoring\n",
Opcode, AmlOffset));
DUMP_BUFFER (ParserState->Aml, 128);
@ -771,17 +796,19 @@ AcpiPsParseLoop (
if (DeferredOp)
{
/*
* Skip parsing of control method or opregion body,
* Defer final parsing of an OperationRegion body,
* because we don't have enough info in the first pass
* to parse them correctly.
* to parse it correctly (i.e., there may be method
* calls within the TermArg elements of the body.
*
* However, we must continue parsing because
* the opregion is not a standalone package --
* we don't know where the end is at this point.
*
* Backup to beginning of OpRegion declaration (2 for
* Opcode, 4 for name)
*
* BodyLength is unknown until we parse the body
* (Length is unknown until parse of the body complete)
*/
DeferredOp->Data = ParserState->Aml - 6;
DeferredOp->Data = AmlOpStart;
DeferredOp->Length = 0;
}
}
@ -806,14 +833,12 @@ AcpiPsParseLoop (
(Op->Opcode == AML_DWORD_FIELD_OP))
{
/*
* Backup to beginning of CreateXXXfield declaration (1 for
* Opcode)
*
* Backup to beginning of CreateXXXfield declaration
* BodyLength is unknown until we parse the body
*/
DeferredOp = (ACPI_PARSE2_OBJECT *) Op;
DeferredOp->Data = ParserState->Aml -1;
DeferredOp->Data = AmlOpStart;
DeferredOp->Length = 0;
}
@ -970,18 +995,16 @@ AcpiPsParseLoop (
(Op->Opcode == AML_BIT_FIELD_OP) ||
(Op->Opcode == AML_BYTE_FIELD_OP) ||
(Op->Opcode == AML_WORD_FIELD_OP) ||
(Op->Opcode == AML_DWORD_FIELD_OP))
(Op->Opcode == AML_DWORD_FIELD_OP) ||
(Op->Opcode == AML_QWORD_FIELD_OP))
{
/*
* Backup to beginning of CreateXXXfield declaration (1 for
* Opcode)
*
* BodyLength is unknown until we parse the body
* -4 for the name (last) -- TBD: namestring: may be longer
* than 4?
*/
DeferredOp = (ACPI_PARSE2_OBJECT *) Op;
DeferredOp->Length = ParserState->Aml - DeferredOp->Data;
}
@ -1014,29 +1037,38 @@ AcpiPsParseLoop (
}
if (Status == AE_CTRL_TRANSFER)
switch (Status)
{
case AE_OK:
break;
case AE_CTRL_TRANSFER:
/*
* We are about to transfer to a called method.
*/
WalkState->PrevOp = Op;
WalkState->PrevArgTypes = ArgTypes;
return_ACPI_STATUS (Status);
}
break;
case AE_CTRL_END:
else if (Status == AE_CTRL_END)
{
AcpiPsPopScope (ParserState, &Op, &ArgTypes, &ArgCount);
Status = WalkState->AscendingCallback (WalkState, Op);
Status = AcpiPsNextParseState (WalkState, Op, Status);
AcpiPsCompleteThisOp (WalkState, Op);
Op = NULL;
Status = AE_OK;
}
break;
case AE_CTRL_TERMINATE:
else if (Status == AE_CTRL_TERMINATE)
{
Status = AE_OK;
/* Clean up */
@ -1051,10 +1083,11 @@ AcpiPsParseLoop (
} while (Op);
return_ACPI_STATUS (Status);
}
break;
default: /* All other non-AE_OK status */
else if (ACPI_FAILURE (Status))
{
if (Op == NULL)
{
AcpiPsPopScope (ParserState, &Op, &ArgTypes, &ArgCount);
@ -1067,6 +1100,7 @@ AcpiPsParseLoop (
*/
return_ACPI_STATUS (Status);
break;
}