iASL: Check access length for ResourceTag references.

When compiling CreateXxxField operators that access resource descriptor tags,
check that the bit access width matches the actual width of the resource
descriptor field referenced by the tag. ACPICA BZ 930.
This commit is contained in:
Robert Moore 2011-09-02 13:53:35 -07:00
parent 0341583276
commit bd2e51cfa9
17 changed files with 239 additions and 211 deletions

View File

@ -901,17 +901,12 @@ RsAllocateResourceNode (
UINT32 Size); UINT32 Size);
void void
RsCreateBitField ( RsCreateResourceField (
ACPI_PARSE_OBJECT *Op, ACPI_PARSE_OBJECT *Op,
char *Name, char *Name,
UINT32 ByteOffset, UINT32 ByteOffset,
UINT32 BitOffset); UINT32 BitOffset,
UINT32 BitLength);
void
RsCreateByteField (
ACPI_PARSE_OBJECT *Op,
char *Name,
UINT32 ByteOffset);
void void
RsSetFlagBits ( RsSetFlagBits (

View File

@ -225,5 +225,25 @@
#define POSITIVE 0 #define POSITIVE 0
/* Helper macros for resource tag creation */
#define RsCreateMultiBitField \
RsCreateResourceField
#define RsCreateBitField(Op, Name, ByteOffset, BitOffset) \
RsCreateResourceField (Op, Name, ByteOffset, BitOffset, 1)
#define RsCreateByteField(Op, Name, ByteOffset) \
RsCreateResourceField (Op, Name, ByteOffset, 0, 8);
#define RsCreateWordField(Op, Name, ByteOffset) \
RsCreateResourceField (Op, Name, ByteOffset, 0, 16);
#define RsCreateDwordField(Op, Name, ByteOffset) \
RsCreateResourceField (Op, Name, ByteOffset, 0, 32);
#define RsCreateQwordField(Op, Name, ByteOffset) \
RsCreateResourceField (Op, Name, ByteOffset, 0, 64);
#endif /* ASLDEFINE.H */ #endif /* ASLDEFINE.H */

View File

@ -362,7 +362,6 @@ LdLoadResourceElements (
InitializerOp = ASL_GET_CHILD_NODE (Op); InitializerOp = ASL_GET_CHILD_NODE (Op);
while (InitializerOp) while (InitializerOp)
{ {
if (InitializerOp->Asl.ExternalName) if (InitializerOp->Asl.ExternalName)
{ {
Status = AcpiNsLookup (WalkState->ScopeInfo, Status = AcpiNsLookup (WalkState->ScopeInfo,
@ -377,20 +376,15 @@ LdLoadResourceElements (
} }
/* /*
* Store the field offset in the namespace node so it * Store the field offset and length in the namespace node
* can be used when the field is referenced * so it can be used when the field is referenced
*/ */
Node->Value = (UINT32) InitializerOp->Asl.Value.Integer; Node->Value = InitializerOp->Asl.Value.Tag.BitOffset;
Node->Length = InitializerOp->Asl.Value.Tag.BitLength;
InitializerOp->Asl.Node = Node; InitializerOp->Asl.Node = Node;
Node->Op = InitializerOp; Node->Op = InitializerOp;
/* Pass thru the field type (Bitfield or Bytefield) */
if (InitializerOp->Asl.CompileFlags & NODE_IS_BIT_OFFSET)
{
Node->Flags |= ANOBJ_IS_BIT_OFFSET;
}
} }
InitializerOp = ASL_GET_PEER_NODE (InitializerOp); InitializerOp = ASL_GET_PEER_NODE (InitializerOp);
} }

View File

@ -894,7 +894,10 @@ LkNamespaceLocateBegin (
ACPI_PARSE_OBJECT *OwningOp; ACPI_PARSE_OBJECT *OwningOp;
ACPI_PARSE_OBJECT *SpaceIdOp; ACPI_PARSE_OBJECT *SpaceIdOp;
UINT32 MinimumLength; UINT32 MinimumLength;
UINT32 Temp; UINT32 Offset;
UINT32 FieldBitLength;
UINT32 TagBitLength;
UINT8 Message = 0;
const ACPI_OPCODE_INFO *OpInfo; const ACPI_OPCODE_INFO *OpInfo;
UINT32 Flags; UINT32 Flags;
@ -1098,74 +1101,106 @@ LkNamespaceLocateBegin (
/* 2) Check for a reference to a resource descriptor */ /* 2) Check for a reference to a resource descriptor */
if ((Node->Type == ACPI_TYPE_LOCAL_RESOURCE_FIELD) || if ((Node->Type == ACPI_TYPE_LOCAL_RESOURCE_FIELD) ||
(Node->Type == ACPI_TYPE_LOCAL_RESOURCE)) (Node->Type == ACPI_TYPE_LOCAL_RESOURCE))
{ {
/* /*
* This was a reference to a field within a resource descriptor. Extract * This was a reference to a field within a resource descriptor.
* the associated field offset (either a bit or byte offset depending on * Extract the associated field offset (either a bit or byte
* the field type) and change the named reference into an integer for * offset depending on the field type) and change the named
* AML code generation * reference into an integer for AML code generation
*/ */
Temp = Node->Value; Offset = Node->Value;
if (Node->Flags & ANOBJ_IS_BIT_OFFSET) TagBitLength = Node->Length;
/*
* If a field is being created, generate the length (in bits) of
* the field. Note: Opcodes other than CreateXxxField and Index
* can come through here. For other opcodes, we just need to
* convert the resource tag reference to an integer offset.
*/
switch (Op->Asl.Parent->Asl.AmlOpcode)
{ {
Op->Asl.CompileFlags |= NODE_IS_BIT_OFFSET; case AML_CREATE_FIELD_OP: /* Variable "Length" field, in bits */
/*
* We know the length operand is an integer constant because
* we know that it contains a reference to a resource
* descriptor tag.
*/
FieldBitLength = (UINT32) Op->Asl.Next->Asl.Value.Integer;
break;
case AML_CREATE_BIT_FIELD_OP:
FieldBitLength = 1;
break;
case AML_CREATE_BYTE_FIELD_OP:
case AML_INDEX_OP:
FieldBitLength = 8;
break;
case AML_CREATE_WORD_FIELD_OP:
FieldBitLength = 16;
break;
case AML_CREATE_DWORD_FIELD_OP:
FieldBitLength = 32;
break;
case AML_CREATE_QWORD_FIELD_OP:
FieldBitLength = 64;
break;
default:
FieldBitLength = 0;
break;
} }
/* Perform BitOffset <--> ByteOffset conversion if necessary */ /* Check the field length against the length of the resource tag */
if (FieldBitLength)
{
if (TagBitLength < FieldBitLength)
{
Message = ASL_MSG_TAG_SMALLER;
}
else if (TagBitLength > FieldBitLength)
{
Message = ASL_MSG_TAG_LARGER;
}
if (Message)
{
sprintf (MsgBuffer, "Tag: %u bit%s, Field: %u bit%s",
TagBitLength, (TagBitLength > 1) ? "s" : "",
FieldBitLength, (FieldBitLength > 1) ? "s" : "");
AslError (ASL_WARNING, Message, Op, MsgBuffer);
}
}
/* Convert the BitOffset to a ByteOffset for certain opcodes */
switch (Op->Asl.Parent->Asl.AmlOpcode) switch (Op->Asl.Parent->Asl.AmlOpcode)
{ {
case AML_CREATE_FIELD_OP:
/* We allow a Byte offset to Bit Offset conversion for this op */
if (!(Op->Asl.CompileFlags & NODE_IS_BIT_OFFSET))
{
/* Simply multiply byte offset times 8 to get bit offset */
Temp = ACPI_MUL_8 (Temp);
}
break;
case AML_CREATE_BIT_FIELD_OP:
/* This op requires a Bit Offset */
if (!(Op->Asl.CompileFlags & NODE_IS_BIT_OFFSET))
{
AslError (ASL_ERROR, ASL_MSG_BYTES_TO_BITS, Op, NULL);
}
break;
case AML_CREATE_BYTE_FIELD_OP: case AML_CREATE_BYTE_FIELD_OP:
case AML_CREATE_WORD_FIELD_OP: case AML_CREATE_WORD_FIELD_OP:
case AML_CREATE_DWORD_FIELD_OP: case AML_CREATE_DWORD_FIELD_OP:
case AML_CREATE_QWORD_FIELD_OP: case AML_CREATE_QWORD_FIELD_OP:
case AML_INDEX_OP: case AML_INDEX_OP:
/* These Ops require Byte offsets */ Offset = ACPI_DIV_8 (Offset);
if (Op->Asl.CompileFlags & NODE_IS_BIT_OFFSET)
{
AslError (ASL_ERROR, ASL_MSG_BITS_TO_BYTES, Op, NULL);
}
break; break;
default: default:
/* Nothing to do for other opcodes */
break; break;
} }
/* Now convert this node to an integer whose value is the field offset */ /* Now convert this node to an integer whose value is the field offset */
Op->Asl.AmlLength = 0; Op->Asl.AmlLength = 0;
Op->Asl.ParseOpcode = PARSEOP_INTEGER; Op->Asl.ParseOpcode = PARSEOP_INTEGER;
Op->Asl.Value.Integer = (UINT64) Temp; Op->Asl.Value.Integer = (UINT64) Offset;
Op->Asl.CompileFlags |= NODE_IS_RESOURCE_FIELD; Op->Asl.CompileFlags |= NODE_IS_RESOURCE_FIELD;
OpcGenerateAmlOpcode (Op); OpcGenerateAmlOpcode (Op);
} }

View File

@ -139,9 +139,7 @@ typedef enum
ASL_MSG_ARG_COUNT_LO, ASL_MSG_ARG_COUNT_LO,
ASL_MSG_ARG_INIT, ASL_MSG_ARG_INIT,
ASL_MSG_BACKWARDS_OFFSET, ASL_MSG_BACKWARDS_OFFSET,
ASL_MSG_BITS_TO_BYTES,
ASL_MSG_BUFFER_LENGTH, ASL_MSG_BUFFER_LENGTH,
ASL_MSG_BYTES_TO_BITS,
ASL_MSG_CLOSE, ASL_MSG_CLOSE,
ASL_MSG_COMPILER_INTERNAL, ASL_MSG_COMPILER_INTERNAL,
ASL_MSG_CONSTANT_EVALUATION, ASL_MSG_CONSTANT_EVALUATION,
@ -263,6 +261,8 @@ typedef enum
ASL_MSG_RESERVED_NO_RETURN_VAL, ASL_MSG_RESERVED_NO_RETURN_VAL,
ASL_MSG_GPE_NAME_CONFLICT, ASL_MSG_GPE_NAME_CONFLICT,
ASL_MSG_NO_REGION, ASL_MSG_NO_REGION,
ASL_MSG_TAG_LARGER,
ASL_MSG_TAG_SMALLER,
ASL_MSG_INVALID_FIELD_NAME, ASL_MSG_INVALID_FIELD_NAME,
ASL_MSG_INTEGER_SIZE, ASL_MSG_INTEGER_SIZE,
@ -293,9 +293,7 @@ char *AslMessages [] = {
/* ASL_MSG_ARG_COUNT_LO */ "Too few arguments", /* ASL_MSG_ARG_COUNT_LO */ "Too few arguments",
/* ASL_MSG_ARG_INIT */ "Method argument is not initialized", /* ASL_MSG_ARG_INIT */ "Method argument is not initialized",
/* ASL_MSG_BACKWARDS_OFFSET */ "Invalid backwards offset", /* ASL_MSG_BACKWARDS_OFFSET */ "Invalid backwards offset",
/* ASL_MSG_BITS_TO_BYTES */ "Field offset is in bits, but a byte offset is required",
/* ASL_MSG_BUFFER_LENGTH */ "Effective AML buffer length is zero", /* ASL_MSG_BUFFER_LENGTH */ "Effective AML buffer length is zero",
/* ASL_MSG_BYTES_TO_BITS */ "Field offset is in bytes, but a bit offset is required",
/* ASL_MSG_CLOSE */ "Could not close file", /* ASL_MSG_CLOSE */ "Could not close file",
/* ASL_MSG_COMPILER_INTERNAL */ "Internal compiler error", /* ASL_MSG_COMPILER_INTERNAL */ "Internal compiler error",
/* ASL_MSG_CONSTANT_EVALUATION */ "Could not evaluate constant expression", /* ASL_MSG_CONSTANT_EVALUATION */ "Could not evaluate constant expression",
@ -417,6 +415,8 @@ char *AslMessages [] = {
/* ASL_MSG_RESERVED_NO_RETURN_VAL */ "Reserved method should not return a value", /* ASL_MSG_RESERVED_NO_RETURN_VAL */ "Reserved method should not return a value",
/* ASL_MSG_GPE_NAME_CONFLICT */ "Name conflicts with a previous GPE method", /* ASL_MSG_GPE_NAME_CONFLICT */ "Name conflicts with a previous GPE method",
/* ASL_MSG_NO_REGION */ "_REG has no corresponding Operation Region", /* ASL_MSG_NO_REGION */ "_REG has no corresponding Operation Region",
/* ASL_MSG_TAG_LARGER */ "ResourceTag larger than Field",
/* ASL_MSG_TAG_SMALLER */ "ResourceTag smaller than Field",
/* These messages are used by the data table compiler only */ /* These messages are used by the data table compiler only */

View File

@ -509,13 +509,14 @@ RsAllocateResourceNode (
/******************************************************************************* /*******************************************************************************
* *
* FUNCTION: RsCreateBitField * FUNCTION: RsCreateResourceField
* *
* PARAMETERS: Op - Resource field node * PARAMETERS: Op - Resource field node
* Name - Name of the field (Used only to reference * Name - Name of the field (Used only to reference
* the field in the ASL, not in the AML) * the field in the ASL, not in the AML)
* ByteOffset - Offset from the field start * ByteOffset - Offset from the field start
* BitOffset - Additional bit offset * BitOffset - Additional bit offset
* BitLength - Number of bits in the field
* *
* RETURN: None, sets fields within the input node * RETURN: None, sets fields within the input node
* *
@ -526,46 +527,20 @@ RsAllocateResourceNode (
******************************************************************************/ ******************************************************************************/
void void
RsCreateBitField ( RsCreateResourceField (
ACPI_PARSE_OBJECT *Op, ACPI_PARSE_OBJECT *Op,
char *Name, char *Name,
UINT32 ByteOffset, UINT32 ByteOffset,
UINT32 BitOffset) UINT32 BitOffset,
UINT32 BitLength)
{ {
Op->Asl.ExternalName = Name; Op->Asl.ExternalName = Name;
Op->Asl.Value.Integer = ((UINT64) ByteOffset * 8) + BitOffset; Op->Asl.CompileFlags |= NODE_IS_RESOURCE_FIELD;
Op->Asl.CompileFlags |= (NODE_IS_RESOURCE_FIELD | NODE_IS_BIT_OFFSET);
}
/******************************************************************************* Op->Asl.Value.Tag.BitOffset = (ByteOffset * 8) + BitOffset;
* Op->Asl.Value.Tag.BitLength = BitLength;
* FUNCTION: RsCreateByteField
*
* PARAMETERS: Op - Resource field node
* Name - Name of the field (Used only to reference
* the field in the ASL, not in the AML)
* ByteOffset - Offset from the field start
*
* RETURN: None, sets fields within the input node
*
* DESCRIPTION: Utility function to generate a named byte field within a
* resource descriptor. Mark a node as 1) a field in a resource
* descriptor, and 2) set the value to be a BYTE offset
*
******************************************************************************/
void
RsCreateByteField (
ACPI_PARSE_OBJECT *Op,
char *Name,
UINT32 ByteOffset)
{
Op->Asl.ExternalName = Name;
Op->Asl.Value.Integer = ByteOffset;
Op->Asl.CompileFlags |= NODE_IS_RESOURCE_FIELD;
} }

View File

@ -251,7 +251,7 @@ RsDoMemory24Descriptor (
case 1: /* Min Address */ case 1: /* Min Address */
Descriptor->Memory24.Minimum = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Memory24.Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -259,7 +259,7 @@ RsDoMemory24Descriptor (
case 2: /* Max Address */ case 2: /* Max Address */
Descriptor->Memory24.Maximum = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Memory24.Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -267,14 +267,14 @@ RsDoMemory24Descriptor (
case 3: /* Alignment */ case 3: /* Alignment */
Descriptor->Memory24.Alignment = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Memory24.Alignment = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_ALIGNMENT, RsCreateWordField (InitializerOp, ACPI_RESTAG_ALIGNMENT,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Alignment)); CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.Alignment));
break; break;
case 4: /* Length */ case 4: /* Length */
Descriptor->Memory24.AddressLength = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Memory24.AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Memory24.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -358,7 +358,7 @@ RsDoMemory32Descriptor (
case 1: /* Min Address */ case 1: /* Min Address */
Descriptor->Memory32.Minimum = (UINT32) InitializerOp->Asl.Value.Integer; Descriptor->Memory32.Minimum = (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -366,7 +366,7 @@ RsDoMemory32Descriptor (
case 2: /* Max Address */ case 2: /* Max Address */
Descriptor->Memory32.Maximum = (UINT32) InitializerOp->Asl.Value.Integer; Descriptor->Memory32.Maximum = (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -374,7 +374,7 @@ RsDoMemory32Descriptor (
case 3: /* Alignment */ case 3: /* Alignment */
Descriptor->Memory32.Alignment = (UINT32) InitializerOp->Asl.Value.Integer; Descriptor->Memory32.Alignment = (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_ALIGNMENT, RsCreateDwordField (InitializerOp, ACPI_RESTAG_ALIGNMENT,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Alignment)); CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.Alignment));
AlignOp = InitializerOp; AlignOp = InitializerOp;
break; break;
@ -382,7 +382,7 @@ RsDoMemory32Descriptor (
case 4: /* Length */ case 4: /* Length */
Descriptor->Memory32.AddressLength = (UINT32) InitializerOp->Asl.Value.Integer; Descriptor->Memory32.AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Memory32.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -462,14 +462,14 @@ RsDoMemory32FixedDescriptor (
case 1: /* Address */ case 1: /* Address */
Descriptor->FixedMemory32.Address = (UINT32) InitializerOp->Asl.Value.Integer; Descriptor->FixedMemory32.Address = (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_BASEADDRESS, RsCreateDwordField (InitializerOp, ACPI_RESTAG_BASEADDRESS,
CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.Address)); CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.Address));
break; break;
case 2: /* Length */ case 2: /* Length */
Descriptor->FixedMemory32.AddressLength = (UINT32) InitializerOp->Asl.Value.Integer; Descriptor->FixedMemory32.AddressLength = (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (FixedMemory32.AddressLength));
break; break;

View File

@ -174,8 +174,8 @@ RsDoDmaDescriptor (
case 0: /* DMA type */ case 0: /* DMA type */
RsSetFlagBits (&Descriptor->Dma.Flags, InitializerOp, 5, 0); RsSetFlagBits (&Descriptor->Dma.Flags, InitializerOp, 5, 0);
RsCreateBitField (InitializerOp, ACPI_RESTAG_DMATYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_DMATYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (Dma.Flags), 5); CurrentByteOffset + ASL_RESDESC_OFFSET (Dma.Flags), 5, 2);
break; break;
case 1: /* Bus Master */ case 1: /* Bus Master */
@ -188,8 +188,8 @@ RsDoDmaDescriptor (
case 2: /* Xfer Type (transfer width) */ case 2: /* Xfer Type (transfer width) */
RsSetFlagBits (&Descriptor->Dma.Flags, InitializerOp, 0, 0); RsSetFlagBits (&Descriptor->Dma.Flags, InitializerOp, 0, 0);
RsCreateBitField (InitializerOp, ACPI_RESTAG_XFERTYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_XFERTYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (Dma.Flags), 0); CurrentByteOffset + ASL_RESDESC_OFFSET (Dma.Flags), 0, 2);
break; break;
case 3: /* Name */ case 3: /* Name */
@ -295,7 +295,7 @@ RsDoFixedIoDescriptor (
Descriptor->FixedIo.Address = Descriptor->FixedIo.Address =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_BASEADDRESS, RsCreateWordField (InitializerOp, ACPI_RESTAG_BASEADDRESS,
CurrentByteOffset + ASL_RESDESC_OFFSET (FixedIo.Address)); CurrentByteOffset + ASL_RESDESC_OFFSET (FixedIo.Address));
AddressOp = InitializerOp; AddressOp = InitializerOp;
break; break;
@ -386,7 +386,7 @@ RsDoIoDescriptor (
Descriptor->Io.Minimum = Descriptor->Io.Minimum =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -395,7 +395,7 @@ RsDoIoDescriptor (
Descriptor->Io.Maximum = Descriptor->Io.Maximum =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Io.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -552,7 +552,7 @@ RsDoIrqDescriptor (
/* Create a named field at the start of the list */ /* Create a named field at the start of the list */
RsCreateByteField (InitializerOp, ACPI_RESTAG_INTERRUPT, RsCreateWordField (InitializerOp, ACPI_RESTAG_INTERRUPT,
CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.IrqMask)); CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.IrqMask));
} }
break; break;
@ -652,7 +652,7 @@ RsDoIrqNoFlagsDescriptor (
/* Create a named field at the start of the list */ /* Create a named field at the start of the list */
RsCreateByteField (InitializerOp, ACPI_RESTAG_INTERRUPT, RsCreateWordField (InitializerOp, ACPI_RESTAG_INTERRUPT,
CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.IrqMask)); CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.IrqMask));
} }
break; break;

View File

@ -192,7 +192,7 @@ RsDoGeneralRegisterDescriptor (
case 3: /* Register Address */ case 3: /* Register Address */
Descriptor->GenericReg.Address = InitializerOp->Asl.Value.Integer; Descriptor->GenericReg.Address = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_ADDRESS, RsCreateQwordField (InitializerOp, ACPI_RESTAG_ADDRESS,
CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.Address)); CurrentByteOffset + ASL_RESDESC_OFFSET (GenericReg.Address));
break; break;
@ -426,7 +426,7 @@ RsDoInterruptDescriptor (
/* Create a named field at the start of the list */ /* Create a named field at the start of the list */
RsCreateByteField (InitializerOp, ACPI_RESTAG_INTERRUPT, RsCreateDwordField (InitializerOp, ACPI_RESTAG_INTERRUPT,
CurrentByteOffset + CurrentByteOffset +
ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0])); ASL_RESDESC_OFFSET (ExtendedIrq.Interrupts[0]));
} }

View File

@ -216,15 +216,15 @@ RsDoDwordIoDescriptor (
case 4: /* Range Type */ case 4: /* Range Type */
RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 0, 3); RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 0, 3);
RsCreateBitField (InitializerOp, ACPI_RESTAG_RANGETYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_RANGETYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 0); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 0, 2);
break; break;
case 5: /* Address Granularity */ case 5: /* Address Granularity */
Descriptor->Address32.Granularity = Descriptor->Address32.Granularity =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -233,7 +233,7 @@ RsDoDwordIoDescriptor (
Descriptor->Address32.Minimum = Descriptor->Address32.Minimum =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -242,7 +242,7 @@ RsDoDwordIoDescriptor (
Descriptor->Address32.Maximum = Descriptor->Address32.Maximum =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -251,7 +251,7 @@ RsDoDwordIoDescriptor (
Descriptor->Address32.TranslationOffset = Descriptor->Address32.TranslationOffset =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateDwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
break; break;
@ -259,7 +259,7 @@ RsDoDwordIoDescriptor (
Descriptor->Address32.AddressLength = Descriptor->Address32.AddressLength =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -448,8 +448,8 @@ RsDoDwordMemoryDescriptor (
case 4: /* Memory Type */ case 4: /* Memory Type */
RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 1, 0); RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 1, 0);
RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMTYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_MEMTYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 1); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 1, 2);
break; break;
case 5: /* Read/Write Type */ case 5: /* Read/Write Type */
@ -463,7 +463,7 @@ RsDoDwordMemoryDescriptor (
Descriptor->Address32.Granularity = Descriptor->Address32.Granularity =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -472,7 +472,7 @@ RsDoDwordMemoryDescriptor (
Descriptor->Address32.Minimum = Descriptor->Address32.Minimum =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -481,7 +481,7 @@ RsDoDwordMemoryDescriptor (
Descriptor->Address32.Maximum = Descriptor->Address32.Maximum =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -490,7 +490,7 @@ RsDoDwordMemoryDescriptor (
Descriptor->Address32.TranslationOffset = Descriptor->Address32.TranslationOffset =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateDwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
break; break;
@ -498,7 +498,7 @@ RsDoDwordMemoryDescriptor (
Descriptor->Address32.AddressLength = Descriptor->Address32.AddressLength =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -560,8 +560,8 @@ RsDoDwordMemoryDescriptor (
case 14: /* Address Range */ case 14: /* Address Range */
RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 3, 0); RsSetFlagBits (&Descriptor->Address32.SpecificFlags, InitializerOp, 3, 0);
RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMATTRIBUTES, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_MEMATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 3); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.SpecificFlags), 3, 2);
break; break;
case 15: /* Type */ case 15: /* Type */
@ -695,7 +695,7 @@ RsDoDwordSpaceDescriptor (
Descriptor->Address32.Granularity = Descriptor->Address32.Granularity =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateDwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -704,7 +704,7 @@ RsDoDwordSpaceDescriptor (
Descriptor->Address32.Minimum = Descriptor->Address32.Minimum =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateDwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -713,7 +713,7 @@ RsDoDwordSpaceDescriptor (
Descriptor->Address32.Maximum = Descriptor->Address32.Maximum =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateDwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -722,7 +722,7 @@ RsDoDwordSpaceDescriptor (
Descriptor->Address32.TranslationOffset = Descriptor->Address32.TranslationOffset =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateDwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.TranslationOffset));
break; break;
@ -730,7 +730,7 @@ RsDoDwordSpaceDescriptor (
Descriptor->Address32.AddressLength = Descriptor->Address32.AddressLength =
(UINT32) InitializerOp->Asl.Value.Integer; (UINT32) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateDwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address32.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;

View File

@ -208,14 +208,14 @@ RsDoExtendedIoDescriptor (
case 4: /* Range Type */ case 4: /* Range Type */
RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 0, 3); RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 0, 3);
RsCreateBitField (InitializerOp, ACPI_RESTAG_RANGETYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_RANGETYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 0); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 0, 2);
break; break;
case 5: /* Address Granularity */ case 5: /* Address Granularity */
Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -223,7 +223,7 @@ RsDoExtendedIoDescriptor (
case 6: /* Address Min */ case 6: /* Address Min */
Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -231,7 +231,7 @@ RsDoExtendedIoDescriptor (
case 7: /* Address Max */ case 7: /* Address Max */
Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -239,14 +239,14 @@ RsDoExtendedIoDescriptor (
case 8: /* Translation Offset */ case 8: /* Translation Offset */
Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset));
break; break;
case 9: /* Address Length */ case 9: /* Address Length */
Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -254,7 +254,7 @@ RsDoExtendedIoDescriptor (
case 10: /* Type-Specific Attributes */ case 10: /* Type-Specific Attributes */
Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES, RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
break; break;
@ -381,8 +381,8 @@ RsDoExtendedMemoryDescriptor (
case 4: /* Memory Type */ case 4: /* Memory Type */
RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 1, 0); RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 1, 0);
RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMTYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_MEMTYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 1); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 1, 2);
break; break;
case 5: /* Read/Write Type */ case 5: /* Read/Write Type */
@ -395,7 +395,7 @@ RsDoExtendedMemoryDescriptor (
case 6: /* Address Granularity */ case 6: /* Address Granularity */
Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -403,7 +403,7 @@ RsDoExtendedMemoryDescriptor (
case 7: /* Min Address */ case 7: /* Min Address */
Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -411,7 +411,7 @@ RsDoExtendedMemoryDescriptor (
case 8: /* Max Address */ case 8: /* Max Address */
Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -419,14 +419,14 @@ RsDoExtendedMemoryDescriptor (
case 9: /* Translation Offset */ case 9: /* Translation Offset */
Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset));
break; break;
case 10: /* Address Length */ case 10: /* Address Length */
Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -434,7 +434,7 @@ RsDoExtendedMemoryDescriptor (
case 11: /* Type-Specific Attributes */ case 11: /* Type-Specific Attributes */
Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES, RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
break; break;
@ -447,8 +447,8 @@ RsDoExtendedMemoryDescriptor (
case 13: /* Address Range */ case 13: /* Address Range */
RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 3, 0); RsSetFlagBits (&Descriptor->ExtAddress64.SpecificFlags, InitializerOp, 3, 0);
RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMATTRIBUTES, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_MEMATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 3); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.SpecificFlags), 3, 2);
break; break;
case 14: /* Type */ case 14: /* Type */
@ -573,7 +573,7 @@ RsDoExtendedSpaceDescriptor (
case 6: /* Address Granularity */ case 6: /* Address Granularity */
Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Granularity = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -581,7 +581,7 @@ RsDoExtendedSpaceDescriptor (
case 7: /* Min Address */ case 7: /* Min Address */
Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Minimum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -589,7 +589,7 @@ RsDoExtendedSpaceDescriptor (
case 8: /* Max Address */ case 8: /* Max Address */
Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.Maximum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -597,14 +597,14 @@ RsDoExtendedSpaceDescriptor (
case 9: /* Translation Offset */ case 9: /* Translation Offset */
Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.TranslationOffset = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TranslationOffset));
break; break;
case 10: /* Address Length */ case 10: /* Address Length */
Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.AddressLength = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -612,7 +612,7 @@ RsDoExtendedSpaceDescriptor (
case 11: /* Type-Specific Attributes */ case 11: /* Type-Specific Attributes */
Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer; Descriptor->ExtAddress64.TypeSpecific = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES, RsCreateQwordField (InitializerOp, ACPI_RESTAG_TYPESPECIFICATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific)); CurrentByteOffset + ASL_RESDESC_OFFSET (ExtAddress64.TypeSpecific));
break; break;

View File

@ -216,14 +216,14 @@ RsDoQwordIoDescriptor (
case 4: /* Range Type */ case 4: /* Range Type */
RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 0, 3); RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 0, 3);
RsCreateBitField (InitializerOp, ACPI_RESTAG_RANGETYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_RANGETYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 0); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 0, 2);
break; break;
case 5: /* Address Granularity */ case 5: /* Address Granularity */
Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -231,7 +231,7 @@ RsDoQwordIoDescriptor (
case 6: /* Address Min */ case 6: /* Address Min */
Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -239,7 +239,7 @@ RsDoQwordIoDescriptor (
case 7: /* Address Max */ case 7: /* Address Max */
Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -254,7 +254,7 @@ RsDoQwordIoDescriptor (
case 9: /* Address Length */ case 9: /* Address Length */
Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer; Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -438,8 +438,8 @@ RsDoQwordMemoryDescriptor (
case 4: /* Memory Type */ case 4: /* Memory Type */
RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 1, 0); RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 1, 0);
RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMTYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_MEMTYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 1); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 1, 2);
break; break;
case 5: /* Read/Write Type */ case 5: /* Read/Write Type */
@ -452,7 +452,7 @@ RsDoQwordMemoryDescriptor (
case 6: /* Address Granularity */ case 6: /* Address Granularity */
Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -460,7 +460,7 @@ RsDoQwordMemoryDescriptor (
case 7: /* Min Address */ case 7: /* Min Address */
Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -468,7 +468,7 @@ RsDoQwordMemoryDescriptor (
case 8: /* Max Address */ case 8: /* Max Address */
Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -476,14 +476,14 @@ RsDoQwordMemoryDescriptor (
case 9: /* Translation Offset */ case 9: /* Translation Offset */
Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer; Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset));
break; break;
case 10: /* Address Length */ case 10: /* Address Length */
Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer; Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -545,8 +545,8 @@ RsDoQwordMemoryDescriptor (
case 14: /* Address Range */ case 14: /* Address Range */
RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 3, 0); RsSetFlagBits (&Descriptor->Address64.SpecificFlags, InitializerOp, 3, 0);
RsCreateBitField (InitializerOp, ACPI_RESTAG_MEMATTRIBUTES, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_MEMATTRIBUTES,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 3); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.SpecificFlags), 3, 2);
break; break;
case 15: /* Type */ case 15: /* Type */
@ -679,7 +679,7 @@ RsDoQwordSpaceDescriptor (
case 6: /* Address Granularity */ case 6: /* Address Granularity */
Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Granularity = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateQwordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -687,7 +687,7 @@ RsDoQwordSpaceDescriptor (
case 7: /* Min Address */ case 7: /* Min Address */
Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Minimum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -695,7 +695,7 @@ RsDoQwordSpaceDescriptor (
case 8: /* Max Address */ case 8: /* Max Address */
Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer; Descriptor->Address64.Maximum = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateQwordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -703,14 +703,14 @@ RsDoQwordSpaceDescriptor (
case 9: /* Translation Offset */ case 9: /* Translation Offset */
Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer; Descriptor->Address64.TranslationOffset = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateQwordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.TranslationOffset));
break; break;
case 10: /* Address Length */ case 10: /* Address Length */
Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer; Descriptor->Address64.AddressLength = InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateQwordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address64.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;

View File

@ -216,14 +216,14 @@ RsDoWordIoDescriptor (
case 4: /* Range Type */ case 4: /* Range Type */
RsSetFlagBits (&Descriptor->Address16.SpecificFlags, InitializerOp, 0, 3); RsSetFlagBits (&Descriptor->Address16.SpecificFlags, InitializerOp, 0, 3);
RsCreateBitField (InitializerOp, ACPI_RESTAG_RANGETYPE, RsCreateMultiBitField (InitializerOp, ACPI_RESTAG_RANGETYPE,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.SpecificFlags), 0); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.SpecificFlags), 0, 2);
break; break;
case 5: /* Address Granularity */ case 5: /* Address Granularity */
Descriptor->Address16.Granularity = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Address16.Granularity = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -231,7 +231,7 @@ RsDoWordIoDescriptor (
case 6: /* Address Min */ case 6: /* Address Min */
Descriptor->Address16.Minimum = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Address16.Minimum = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -239,7 +239,7 @@ RsDoWordIoDescriptor (
case 7: /* Address Max */ case 7: /* Address Max */
Descriptor->Address16.Maximum = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Address16.Maximum = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -247,14 +247,14 @@ RsDoWordIoDescriptor (
case 8: /* Translation Offset */ case 8: /* Translation Offset */
Descriptor->Address16.TranslationOffset = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Address16.TranslationOffset = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateWordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
break; break;
case 9: /* Address Length */ case 9: /* Address Length */
Descriptor->Address16.AddressLength = (UINT16) InitializerOp->Asl.Value.Integer; Descriptor->Address16.AddressLength = (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -439,7 +439,7 @@ RsDoWordBusNumberDescriptor (
Descriptor->Address16.Granularity = Descriptor->Address16.Granularity =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -448,7 +448,7 @@ RsDoWordBusNumberDescriptor (
Descriptor->Address16.Minimum = Descriptor->Address16.Minimum =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -457,7 +457,7 @@ RsDoWordBusNumberDescriptor (
Descriptor->Address16.Maximum = Descriptor->Address16.Maximum =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -466,7 +466,7 @@ RsDoWordBusNumberDescriptor (
Descriptor->Address16.TranslationOffset = Descriptor->Address16.TranslationOffset =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateWordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
break; break;
@ -474,7 +474,7 @@ RsDoWordBusNumberDescriptor (
Descriptor->Address16.AddressLength = Descriptor->Address16.AddressLength =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;
@ -656,7 +656,7 @@ RsDoWordSpaceDescriptor (
Descriptor->Address16.Granularity = Descriptor->Address16.Granularity =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_GRANULARITY, RsCreateWordField (InitializerOp, ACPI_RESTAG_GRANULARITY,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Granularity));
GranOp = InitializerOp; GranOp = InitializerOp;
break; break;
@ -665,7 +665,7 @@ RsDoWordSpaceDescriptor (
Descriptor->Address16.Minimum = Descriptor->Address16.Minimum =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MINADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MINADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Minimum));
MinOp = InitializerOp; MinOp = InitializerOp;
break; break;
@ -674,7 +674,7 @@ RsDoWordSpaceDescriptor (
Descriptor->Address16.Maximum = Descriptor->Address16.Maximum =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_MAXADDR, RsCreateWordField (InitializerOp, ACPI_RESTAG_MAXADDR,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.Maximum));
MaxOp = InitializerOp; MaxOp = InitializerOp;
break; break;
@ -683,7 +683,7 @@ RsDoWordSpaceDescriptor (
Descriptor->Address16.TranslationOffset = Descriptor->Address16.TranslationOffset =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_TRANSLATION, RsCreateWordField (InitializerOp, ACPI_RESTAG_TRANSLATION,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.TranslationOffset));
break; break;
@ -691,7 +691,7 @@ RsDoWordSpaceDescriptor (
Descriptor->Address16.AddressLength = Descriptor->Address16.AddressLength =
(UINT16) InitializerOp->Asl.Value.Integer; (UINT16) InitializerOp->Asl.Value.Integer;
RsCreateByteField (InitializerOp, ACPI_RESTAG_LENGTH, RsCreateWordField (InitializerOp, ACPI_RESTAG_LENGTH,
CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength)); CurrentByteOffset + ASL_RESDESC_OFFSET (Address16.AddressLength));
LengthOp = InitializerOp; LengthOp = InitializerOp;
break; break;

View File

@ -359,9 +359,6 @@ TrGetNodeFlagName (
case NODE_METHOD_TYPED: case NODE_METHOD_TYPED:
return ("NODE_METHOD_TYPED"); return ("NODE_METHOD_TYPED");
case NODE_IS_BIT_OFFSET:
return ("NODE_IS_BIT_OFFSET");
case NODE_COMPILE_TIME_CONST: case NODE_COMPILE_TIME_CONST:
return ("NODE_COMPILE_TIME_CONST"); return ("NODE_COMPILE_TIME_CONST");

View File

@ -140,7 +140,7 @@
#define NODE_METHOD_SOME_NO_RETVAL 0x00000200 #define NODE_METHOD_SOME_NO_RETVAL 0x00000200
#define NODE_RESULT_NOT_USED 0x00000400 #define NODE_RESULT_NOT_USED 0x00000400
#define NODE_METHOD_TYPED 0x00000800 #define NODE_METHOD_TYPED 0x00000800
#define NODE_IS_BIT_OFFSET 0x00001000 #define NODE_UNUSED_FLAG 0x00001000
#define NODE_COMPILE_TIME_CONST 0x00002000 #define NODE_COMPILE_TIME_CONST 0x00002000
#define NODE_IS_TERM_ARG 0x00004000 #define NODE_IS_TERM_ARG 0x00004000
#define NODE_WAS_ONES_OP 0x00008000 #define NODE_WAS_ONES_OP 0x00008000

View File

@ -285,7 +285,6 @@ typedef struct acpi_namespace_node
#define ANOBJ_IS_EXTERNAL 0x08 /* iASL only: This object created via External() */ #define ANOBJ_IS_EXTERNAL 0x08 /* iASL only: This object created via External() */
#define ANOBJ_METHOD_NO_RETVAL 0x10 /* iASL only: Method has no return value */ #define ANOBJ_METHOD_NO_RETVAL 0x10 /* iASL only: Method has no return value */
#define ANOBJ_METHOD_SOME_NO_RETVAL 0x20 /* iASL only: Method has at least one return value */ #define ANOBJ_METHOD_SOME_NO_RETVAL 0x20 /* iASL only: Method has at least one return value */
#define ANOBJ_IS_BIT_OFFSET 0x40 /* iASL only: Reference is a bit offset */
#define ANOBJ_IS_REFERENCED 0x80 /* iASL only: Object was referenced */ #define ANOBJ_IS_REFERENCED 0x80 /* iASL only: Object was referenced */
@ -847,6 +846,17 @@ typedef struct acpi_opcode_info
} ACPI_OPCODE_INFO; } ACPI_OPCODE_INFO;
/* Structure for Resource Tag information */
typedef struct acpi_tag_info
{
UINT32 BitOffset;
UINT32 BitLength;
} ACPI_TAG_INFO;
/* Value associated with the parse object */
typedef union acpi_parse_value typedef union acpi_parse_value
{ {
UINT64 Integer; /* Integer constant (Up to 64 bits) */ UINT64 Integer; /* Integer constant (Up to 64 bits) */
@ -855,6 +865,7 @@ typedef union acpi_parse_value
UINT8 *Buffer; /* buffer or string */ UINT8 *Buffer; /* buffer or string */
char *Name; /* NULL terminated string */ char *Name; /* NULL terminated string */
union acpi_parse_object *Arg; /* arguments and contained ops */ union acpi_parse_object *Arg; /* arguments and contained ops */
ACPI_TAG_INFO Tag; /* Resource descriptor tag info */
} ACPI_PARSE_VALUE; } ACPI_PARSE_VALUE;

View File

@ -447,6 +447,7 @@ ACPI_TYPED_IDENTIFIER_TABLE AcpiIdentifiers[] = {
{"ACPI_TABLE_LIST", SRC_TYPE_STRUCT}, {"ACPI_TABLE_LIST", SRC_TYPE_STRUCT},
{"ACPI_TABLE_SUPPORT", SRC_TYPE_STRUCT}, {"ACPI_TABLE_SUPPORT", SRC_TYPE_STRUCT},
{"ACPI_TABLE_TYPE", SRC_TYPE_SIMPLE}, {"ACPI_TABLE_TYPE", SRC_TYPE_SIMPLE},
{"ACPI_TAG_INFO", SRC_TYPE_STRUCT},
{"ACPI_THREAD_ID", SRC_TYPE_SIMPLE}, {"ACPI_THREAD_ID", SRC_TYPE_SIMPLE},
{"ACPI_THREAD_STATE", SRC_TYPE_STRUCT}, {"ACPI_THREAD_STATE", SRC_TYPE_STRUCT},
{"ACPI_TYPED_IDENTIFIER_TABLE", SRC_TYPE_STRUCT}, {"ACPI_TYPED_IDENTIFIER_TABLE", SRC_TYPE_STRUCT},