mirror of
https://github.com/acpica/acpica/
synced 2025-03-11 00:31:53 +03:00
Create function headers
date 2000.11.16.23.46.00; author rmoore1; state Exp;
This commit is contained in:
parent
8ab025ec3c
commit
f5b9e97c5b
@ -2,7 +2,7 @@
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: aslresource - Resource templates and descriptors
|
||||
* $Revision: 1.7 $
|
||||
* $Revision: 1.11 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -126,13 +126,14 @@
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsAllocateResourceNode
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Size - Size of node in bytes
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: The allocated node - aborts on allocation failure
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Allocate a resource description node and the resource
|
||||
* descriptor itself (the nodes are used to link descriptors).
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -157,25 +158,30 @@ RsAllocateResourceNode (
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsCreateBitField
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - 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
|
||||
* BitOffset - Additional bit offset
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: None, sets fields within the input node
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Utility function to generate a named bit field within a
|
||||
* resource descriptor. Mark a node as 1) a field in a resource
|
||||
* descriptor, and 2) set the value to be a BIT offset
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
RsCreateBitField (
|
||||
ASL_PARSE_NODE *Node,
|
||||
char *Name,
|
||||
UINT32 ByteOffset,
|
||||
UINT32 BitOffset)
|
||||
ASL_PARSE_NODE *Node,
|
||||
char *Name,
|
||||
UINT32 ByteOffset,
|
||||
UINT32 BitOffset)
|
||||
{
|
||||
|
||||
|
||||
@ -185,24 +191,28 @@ RsCreateBitField (
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsCreateByteField
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - 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:
|
||||
* RETURN: None, sets fields within the input node
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* 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 (
|
||||
ASL_PARSE_NODE *Node,
|
||||
char *Name,
|
||||
UINT32 ByteOffset)
|
||||
ASL_PARSE_NODE *Node,
|
||||
char *Name,
|
||||
UINT32 ByteOffset)
|
||||
{
|
||||
|
||||
|
||||
@ -212,25 +222,30 @@ RsCreateByteField (
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsSetFlagBits
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: *Flags - Pointer to the flag byte
|
||||
* Node - Flag initialization node
|
||||
* Position - Bit position within the flag byte
|
||||
* Default - Used if the node is DEFAULT.
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: Sets bits within the *Flags output byte.
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Set a bit in a cumulative flags word from an initialization
|
||||
* node. Will use a default value if the node is DEFAULT, meaning
|
||||
* that no value was specified in the ASL. Used to merge multiple
|
||||
* keywords into a single flags byte.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
RsSetFlagBits (
|
||||
UINT8 *Flags,
|
||||
ASL_PARSE_NODE *Node,
|
||||
UINT8 Position,
|
||||
UINT8 Default)
|
||||
UINT8 *Flags,
|
||||
ASL_PARSE_NODE *Node,
|
||||
UINT8 Position,
|
||||
UINT8 Default)
|
||||
{
|
||||
|
||||
|
||||
@ -252,19 +267,21 @@ RsSetFlagBits (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsCompleteNodeAndGetNext
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Resource node to be completed
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: The next peer to the input node.
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Mark the current node completed and return the next peer.
|
||||
* The node ParseOpcode is set to DEFAULT_ARG, meaning that
|
||||
* this node is to be ignored from now on.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
ASL_PARSE_NODE *
|
||||
RsCompleteNodeAndGetNext (
|
||||
ASL_PARSE_NODE *Node)
|
||||
ASL_PARSE_NODE *Node)
|
||||
{
|
||||
|
||||
|
||||
@ -278,16 +295,17 @@ RsCompleteNodeAndGetNext (
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsDoOneResourceDescriptor
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: DescriptorTypeNode - Parent parse node of the descriptor
|
||||
* CurrentByteOffset - Offset in the resource descriptor
|
||||
* buffer.
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: A valid resource node for the descriptor
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Dispatches the processing of one resource descriptor
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -299,7 +317,6 @@ RsDoOneResourceDescriptor (
|
||||
ASL_RESOURCE_NODE *Rnode = NULL;
|
||||
|
||||
|
||||
|
||||
/* Determine type of resource */
|
||||
|
||||
switch (DescriptorTypeNode->ParseOpcode)
|
||||
@ -360,10 +377,8 @@ RsDoOneResourceDescriptor (
|
||||
Rnode = RsDoQwordMemoryDescriptor (DescriptorTypeNode, CurrentByteOffset);
|
||||
break;
|
||||
|
||||
/* TBD: register */
|
||||
|
||||
case REGISTER:
|
||||
AslErrorMsg (ASL_ERROR_UNSUPPORTED, DescriptorTypeNode->LineNumber, "Register resource descriptor");
|
||||
Rnode = RsDoGeneralRegisterDescriptor (DescriptorTypeNode, CurrentByteOffset);
|
||||
break;
|
||||
|
||||
case STARTDEPENDENTFN:
|
||||
@ -374,16 +389,12 @@ RsDoOneResourceDescriptor (
|
||||
Rnode = RsDoStartDependentNoPriDescriptor (DescriptorTypeNode, CurrentByteOffset);
|
||||
break;
|
||||
|
||||
/* TBD: vendor */
|
||||
|
||||
case VENDORLONG:
|
||||
AslErrorMsg (ASL_ERROR_UNSUPPORTED, DescriptorTypeNode->LineNumber, "Vendor long descriptor");
|
||||
Rnode = RsDoVendorLargeDescriptor (DescriptorTypeNode, CurrentByteOffset);
|
||||
break;
|
||||
|
||||
/* TBD: vendor */
|
||||
|
||||
case VENDORSHORT:
|
||||
AslErrorMsg (ASL_ERROR_UNSUPPORTED, DescriptorTypeNode->LineNumber, "Vendor short descriptor");
|
||||
Rnode = RsDoVendorSmallDescriptor (DescriptorTypeNode, CurrentByteOffset);
|
||||
break;
|
||||
|
||||
case WORDBUSNUMBER:
|
||||
@ -399,14 +410,13 @@ RsDoOneResourceDescriptor (
|
||||
break;
|
||||
|
||||
default:
|
||||
printf ("Unknown resource descriptor type [%s]\n",
|
||||
printf ("Unknown resource descriptor type [%s]\n",
|
||||
DescriptorTypeNode->ParseOpName);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
/*
|
||||
* Mark original node as unused, but head of a resource descriptor.
|
||||
* This allows the resource to be installed in the namespace so that
|
||||
* references to the descriptor can be resolved.
|
||||
@ -421,13 +431,16 @@ RsDoOneResourceDescriptor (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsLinkDescriptorChain
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: PreviousRnode - Pointer to the node that will be previous
|
||||
* to the linked node, At exit, set to the
|
||||
* last node in the new chain.
|
||||
* Rnode - Resource node to link into the list
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: Cumulative buffer byte offset of the new segment of chain
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Link a descriptor chain at the end of an existing chain.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -440,14 +453,20 @@ RsLinkDescriptorChain (
|
||||
UINT32 CurrentByteOffset;
|
||||
|
||||
|
||||
/* Anything to do? */
|
||||
|
||||
if (!Rnode)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Point the previous node to the new node */
|
||||
|
||||
(*PreviousRnode)->Next = Rnode;
|
||||
CurrentByteOffset = Rnode->BufferLength;
|
||||
|
||||
/* Walk to the end of the chain headed by Rnode */
|
||||
|
||||
LastRnode = Rnode;
|
||||
while (LastRnode->Next)
|
||||
{
|
||||
@ -455,26 +474,28 @@ RsLinkDescriptorChain (
|
||||
CurrentByteOffset += LastRnode->BufferLength;
|
||||
}
|
||||
|
||||
/* Previous node becomes the last node in the chain */
|
||||
|
||||
*PreviousRnode = LastRnode;
|
||||
return CurrentByteOffset;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsDoResourceTemplate
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Parent of a resource template list
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: None. Sets input node to point to a list of AML code
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Merge a list of resource descriptors into a single AML buffer,
|
||||
* in preparation for output to the AML output file.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
void
|
||||
CgDoResourceTemplate (
|
||||
RsDoResourceTemplate (
|
||||
ASL_PARSE_NODE *Node)
|
||||
{
|
||||
ASL_PARSE_NODE *BufferLengthNode;
|
||||
@ -487,7 +508,6 @@ CgDoResourceTemplate (
|
||||
ASL_RESOURCE_NODE *Rnode;
|
||||
|
||||
|
||||
|
||||
/* ResourceTemplate Opcode is first (Node) */
|
||||
/* Buffer Length node is first child */
|
||||
|
||||
@ -524,7 +544,7 @@ CgDoResourceTemplate (
|
||||
|
||||
|
||||
/*
|
||||
* Insert the EndTag descriptor after all other descriptors have been processed
|
||||
* Insert the EndTag descriptor after all other descriptors have been processed
|
||||
*/
|
||||
Rnode = RsAllocateResourceNode (sizeof (ASL_END_TAG_DESC));
|
||||
|
||||
@ -549,7 +569,7 @@ CgDoResourceTemplate (
|
||||
BufferLengthNode->ParseOpcode = INTEGER;
|
||||
BufferLengthNode->Value.Integer = CurrentByteOffset;
|
||||
|
||||
CgSetOptimalIntegerSize (BufferLengthNode);
|
||||
OpcSetOptimalIntegerSize (BufferLengthNode);
|
||||
|
||||
BufferNode->ParseOpcode = RAW_DATA;
|
||||
BufferNode->AmlOpcode = AML_RAW_DATA_CHAIN;
|
||||
|
@ -1,8 +1,8 @@
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
* Module Name: aslrestype1 - Small (type1) resource templates and descriptors
|
||||
* $Revision: 1.3 $
|
||||
* Module Name: aslrestype1 - Short (type1) resource templates and descriptors
|
||||
* $Revision: 1.5 $
|
||||
*
|
||||
*****************************************************************************/
|
||||
|
||||
@ -123,16 +123,17 @@
|
||||
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsDoDmaDescriptor
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Parent resource descriptor parse node
|
||||
* CurrentByteOffset - Offset into the resource template AML
|
||||
* buffer (to track references to the desc)
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: Completed resource node
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Construct a short "DMA" descriptor
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -148,7 +149,6 @@ RsDoDmaDescriptor (
|
||||
UINT8 DmaChannelMask = 0;
|
||||
|
||||
|
||||
|
||||
InitializerNode = Node->Child;
|
||||
Rnode = RsAllocateResourceNode (sizeof (ASL_DMA_FORMAT_DESC));
|
||||
|
||||
@ -166,21 +166,21 @@ RsDoDmaDescriptor (
|
||||
case 0: /* DMA type */
|
||||
|
||||
RsSetFlagBits (&Descriptor->Dma.Flags, InitializerNode, 5, 0);
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_DMATYPE,
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_DMATYPE,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (Dma.Flags), 5);
|
||||
break;
|
||||
|
||||
case 1: /* Bus Master */
|
||||
|
||||
RsSetFlagBits (&Descriptor->Dma.Flags, InitializerNode, 2, 0);
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_BUSMASTER,
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_BUSMASTER,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (Dma.Flags), 2);
|
||||
break;
|
||||
|
||||
case 2: /* Xfer Type (transfer width) */
|
||||
|
||||
RsSetFlagBits (&Descriptor->Dma.Flags, InitializerNode, 0, 0);
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_XFERTYPE,
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_XFERTYPE,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (Dma.Flags), 0);
|
||||
break;
|
||||
|
||||
@ -211,16 +211,17 @@ RsDoDmaDescriptor (
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsDoEndDependentDescriptor
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Parent resource descriptor parse node
|
||||
* CurrentByteOffset - Offset into the resource template AML
|
||||
* buffer (to track references to the desc)
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: Completed resource node
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Construct a short "EndDependentFn" descriptor
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -233,7 +234,6 @@ RsDoEndDependentDescriptor (
|
||||
ASL_RESOURCE_NODE *Rnode;
|
||||
|
||||
|
||||
|
||||
Rnode = RsAllocateResourceNode (sizeof (ASL_END_DEPENDENT_DESC));
|
||||
|
||||
Descriptor = Rnode->Buffer;
|
||||
@ -243,16 +243,17 @@ RsDoEndDependentDescriptor (
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsDoFixedIoDescriptor
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Parent resource descriptor parse node
|
||||
* CurrentByteOffset - Offset into the resource template AML
|
||||
* buffer (to track references to the desc)
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: Completed resource node
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Construct a short "FixedIO" descriptor
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -267,7 +268,6 @@ RsDoFixedIoDescriptor (
|
||||
UINT32 i;
|
||||
|
||||
|
||||
|
||||
InitializerNode = Node->Child;
|
||||
Rnode = RsAllocateResourceNode (sizeof (ASL_FIXED_IO_PORT_DESC));
|
||||
|
||||
@ -285,14 +285,14 @@ RsDoFixedIoDescriptor (
|
||||
case 0: /* Base Address */
|
||||
|
||||
Descriptor->Fio.BaseAddress = InitializerNode->Value.Integer16;
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_BASEADDRESS,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_BASEADDRESS,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (Fio.BaseAddress));
|
||||
break;
|
||||
|
||||
case 1: /* Length */
|
||||
|
||||
Descriptor->Fio.Length = InitializerNode->Value.Integer8;
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_LENGTH,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_LENGTH,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (Fio.Length));
|
||||
break;
|
||||
|
||||
@ -312,13 +312,15 @@ RsDoFixedIoDescriptor (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsDoIoDescriptor
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Parent resource descriptor parse node
|
||||
* CurrentByteOffset - Offset into the resource template AML
|
||||
* buffer (to track references to the desc)
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: Completed resource node
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Construct a short "IO" descriptor
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -355,28 +357,28 @@ RsDoIoDescriptor (
|
||||
case 1: /* Min Address */
|
||||
|
||||
Descriptor->Iop.AddressMin = InitializerNode->Value.Integer16;
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_MINADDR,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_MINADDR,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (Iop.AddressMin));
|
||||
break;
|
||||
|
||||
case 2: /* Max Address */
|
||||
|
||||
Descriptor->Iop.AddressMax = InitializerNode->Value.Integer16;
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_MAXADDR,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_MAXADDR,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (Iop.AddressMax));
|
||||
break;
|
||||
|
||||
case 3: /* Alignment */
|
||||
|
||||
Descriptor->Iop.Alignment = InitializerNode->Value.Integer8;
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_ALIGNMENT,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_ALIGNMENT,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (Iop.Alignment));
|
||||
break;
|
||||
|
||||
case 4: /* Length */
|
||||
|
||||
Descriptor->Iop.Length = InitializerNode->Value.Integer8;
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_LENGTH,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_LENGTH,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (Iop.Length));
|
||||
break;
|
||||
|
||||
@ -395,13 +397,15 @@ RsDoIoDescriptor (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsDoIrqDescriptor
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Parent resource descriptor parse node
|
||||
* CurrentByteOffset - Offset into the resource template AML
|
||||
* buffer (to track references to the desc)
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: Completed resource node
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Construct a short "IRQ" descriptor
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -417,7 +421,6 @@ RsDoIrqDescriptor (
|
||||
UINT16 IrqMask = 0;
|
||||
|
||||
|
||||
|
||||
InitializerNode = Node->Child;
|
||||
Rnode = RsAllocateResourceNode (sizeof (ASL_IRQ_FORMAT_DESC));
|
||||
|
||||
@ -437,21 +440,21 @@ RsDoIrqDescriptor (
|
||||
case 0: /* Interrupt Type (or Mode - edge/level) */
|
||||
|
||||
RsSetFlagBits (&Descriptor->Irq.Flags, InitializerNode, 0, 1);
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_INTERRUPTTYPE,
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_INTERRUPTTYPE,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.Flags), 0);
|
||||
break;
|
||||
|
||||
case 1: /* Interrupt Level (or Polarity - Active high/low) */
|
||||
|
||||
RsSetFlagBits (&Descriptor->Irq.Flags, InitializerNode, 3, 0);
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_INTERRUPTLEVEL,
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_INTERRUPTLEVEL,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.Flags), 3);
|
||||
break;
|
||||
|
||||
case 2: /* Share Type - Default: exclusive (0) */
|
||||
|
||||
RsSetFlagBits (&Descriptor->Irq.Flags, InitializerNode, 4, 0);
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_INTERRUPTSHARE,
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_INTERRUPTSHARE,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.Flags), 4);
|
||||
break;
|
||||
|
||||
@ -465,8 +468,8 @@ RsDoIrqDescriptor (
|
||||
if (InitializerNode->ParseOpcode != DEFAULT_ARG)
|
||||
{
|
||||
IrqMask |= (1 << InitializerNode->Value.Integer8);
|
||||
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_INTERRUPT,
|
||||
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_INTERRUPT,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.IrqMask));
|
||||
}
|
||||
break;
|
||||
@ -493,16 +496,17 @@ RsDoIrqDescriptor (
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsDoIrqNoFlagsDescriptor
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Parent resource descriptor parse node
|
||||
* CurrentByteOffset - Offset into the resource template AML
|
||||
* buffer (to track references to the desc)
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: Completed resource node
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Construct a short "IRQNoFlags" descriptor
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -518,7 +522,6 @@ RsDoIrqNoFlagsDescriptor (
|
||||
UINT16 IrqMask = 0;
|
||||
|
||||
|
||||
|
||||
InitializerNode = Node->Child;
|
||||
Rnode = RsAllocateResourceNode (sizeof (ASL_IRQ_NOFLAGS_DESC));
|
||||
|
||||
@ -544,7 +547,7 @@ RsDoIrqNoFlagsDescriptor (
|
||||
{
|
||||
IrqMask |= (1 << InitializerNode->Value.Integer8);
|
||||
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_INTERRUPT,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_INTERRUPT,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (Irq.IrqMask));
|
||||
}
|
||||
break;
|
||||
@ -567,21 +570,22 @@ RsDoIrqNoFlagsDescriptor (
|
||||
/* Now we can set the interrupt mask */
|
||||
|
||||
Descriptor->Irq.IrqMask = IrqMask;
|
||||
|
||||
|
||||
return (Rnode);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsDoMemory24Descriptor
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Parent resource descriptor parse node
|
||||
* CurrentByteOffset - Offset into the resource template AML
|
||||
* buffer (to track references to the desc)
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: Completed resource node
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Construct a short "Memory24" descriptor
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -596,7 +600,6 @@ RsDoMemory24Descriptor (
|
||||
UINT32 i;
|
||||
|
||||
|
||||
|
||||
InitializerNode = Node->Child;
|
||||
Rnode = RsAllocateResourceNode (sizeof (ASL_MEMORY_24_DESC));
|
||||
|
||||
@ -615,35 +618,35 @@ RsDoMemory24Descriptor (
|
||||
case 0: /* Read/Write type */
|
||||
|
||||
RsSetFlagBits (&Descriptor->M24.Information, InitializerNode, 0, 1);
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_READWRITETYPE,
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_READWRITETYPE,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (M24.Information), 0);
|
||||
break;
|
||||
|
||||
case 1: /* Min Address */
|
||||
|
||||
Descriptor->M24.AddressMin = InitializerNode->Value.Integer16;
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_MINADDR,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_MINADDR,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (M24.AddressMin));
|
||||
break;
|
||||
|
||||
case 2: /* Max Address */
|
||||
|
||||
Descriptor->M24.AddressMax = InitializerNode->Value.Integer16;
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_MAXADDR,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_MAXADDR,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (M24.AddressMax));
|
||||
break;
|
||||
|
||||
case 3: /* Alignment */
|
||||
|
||||
Descriptor->M24.Alignment = InitializerNode->Value.Integer16;
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_ALIGNMENT,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_ALIGNMENT,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (M24.Alignment));
|
||||
break;
|
||||
|
||||
case 4: /* Length */
|
||||
|
||||
Descriptor->M24.RangeLength = InitializerNode->Value.Integer16;
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_LENGTH,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_LENGTH,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (M24.RangeLength));
|
||||
break;
|
||||
|
||||
@ -662,13 +665,15 @@ RsDoMemory24Descriptor (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsDoMemory32Descriptor
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Parent resource descriptor parse node
|
||||
* CurrentByteOffset - Offset into the resource template AML
|
||||
* buffer (to track references to the desc)
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: Completed resource node
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Construct a short "Memory32" descriptor
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -683,7 +688,6 @@ RsDoMemory32Descriptor (
|
||||
UINT32 i;
|
||||
|
||||
|
||||
|
||||
InitializerNode = Node->Child;
|
||||
Rnode = RsAllocateResourceNode (sizeof (ASL_MEMORY_32_DESC));
|
||||
|
||||
@ -702,35 +706,35 @@ RsDoMemory32Descriptor (
|
||||
case 0: /* Read/Write type */
|
||||
|
||||
RsSetFlagBits (&Descriptor->M32.Information, InitializerNode, 0, 1);
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_READWRITETYPE,
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_READWRITETYPE,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (M32.Information), 0);
|
||||
break;
|
||||
|
||||
case 1: /* Min Address */
|
||||
|
||||
Descriptor->M32.AddressMin = InitializerNode->Value.Integer32;
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_MINADDR,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_MINADDR,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (M32.AddressMin));
|
||||
break;
|
||||
|
||||
case 2: /* Max Address */
|
||||
|
||||
Descriptor->M32.AddressMax = InitializerNode->Value.Integer32;
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_MAXADDR,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_MAXADDR,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (M32.AddressMax));
|
||||
break;
|
||||
|
||||
case 3: /* Alignment */
|
||||
|
||||
Descriptor->M32.Alignment = InitializerNode->Value.Integer32;
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_ALIGNMENT,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_ALIGNMENT,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (M32.Alignment));
|
||||
break;
|
||||
|
||||
case 4: /* Length */
|
||||
|
||||
Descriptor->M32.RangeLength = InitializerNode->Value.Integer32;
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_LENGTH,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_LENGTH,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (M32.RangeLength));
|
||||
break;
|
||||
|
||||
@ -749,13 +753,15 @@ RsDoMemory32Descriptor (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsDoMemory32FixedDescriptor
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Parent resource descriptor parse node
|
||||
* CurrentByteOffset - Offset into the resource template AML
|
||||
* buffer (to track references to the desc)
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: Completed resource node
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Construct a short "Memory32Fixed" descriptor
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -770,7 +776,6 @@ RsDoMemory32FixedDescriptor (
|
||||
UINT32 i;
|
||||
|
||||
|
||||
|
||||
InitializerNode = Node->Child;
|
||||
Rnode = RsAllocateResourceNode (sizeof (ASL_FIXED_MEMORY_32_DESC));
|
||||
|
||||
@ -789,21 +794,21 @@ RsDoMemory32FixedDescriptor (
|
||||
case 0: /* Read/Write type */
|
||||
|
||||
RsSetFlagBits (&Descriptor->F32.Information, InitializerNode, 0, 1);
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_READWRITETYPE,
|
||||
RsCreateBitField (InitializerNode, ASL_RESNAME_READWRITETYPE,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (F32.Information), 0);
|
||||
break;
|
||||
|
||||
case 1: /* Address */
|
||||
|
||||
Descriptor->F32.BaseAddress = InitializerNode->Value.Integer32;
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_BASEADDRESS,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_BASEADDRESS,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (F32.BaseAddress));
|
||||
break;
|
||||
|
||||
case 2: /* Length */
|
||||
|
||||
Descriptor->F32.RangeLength = InitializerNode->Value.Integer32;
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_LENGTH,
|
||||
RsCreateByteField (InitializerNode, ASL_RESNAME_LENGTH,
|
||||
CurrentByteOffset + ASL_RESDESC_OFFSET (F32.RangeLength));
|
||||
break;
|
||||
|
||||
@ -820,16 +825,17 @@ RsDoMemory32FixedDescriptor (
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsDoStartDependentDescriptor
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Parent resource descriptor parse node
|
||||
* CurrentByteOffset - Offset into the resource template AML
|
||||
* buffer (to track references to the desc)
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: Completed resource node
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Construct a short "StartDependentFn" descriptor
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -846,10 +852,9 @@ RsDoStartDependentDescriptor (
|
||||
UINT32 i;
|
||||
|
||||
|
||||
|
||||
InitializerNode = Node->Child;
|
||||
Rnode = RsAllocateResourceNode (sizeof (ASL_START_DEPENDENT_DESC));
|
||||
|
||||
|
||||
PreviousRnode = Rnode;
|
||||
Descriptor = Rnode->Buffer;
|
||||
|
||||
@ -892,7 +897,7 @@ RsDoStartDependentDescriptor (
|
||||
/* Finished with the StartDependent descriptor, update buffer pointer */
|
||||
|
||||
//*DescriptorPtr = NEXT_RESOURCE_DESC (Descriptor, ASL_START_DEPENDENT_DESC);
|
||||
|
||||
|
||||
/* Fall through */
|
||||
|
||||
default:
|
||||
@ -919,13 +924,15 @@ RsDoStartDependentDescriptor (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsDoStartDependentNoPriDescriptor
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Parent resource descriptor parse node
|
||||
* CurrentByteOffset - Offset into the resource template AML
|
||||
* buffer (to track references to the desc)
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: Completed resource node
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Construct a short "StartDependentNoPri" descriptor
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -941,7 +948,6 @@ RsDoStartDependentNoPriDescriptor (
|
||||
ASL_RESOURCE_NODE *NextRnode;
|
||||
|
||||
|
||||
|
||||
InitializerNode = Node->Child;
|
||||
Rnode = RsAllocateResourceNode (sizeof (ASL_START_DEPENDENT_NOPRIO_DESC));
|
||||
|
||||
@ -974,13 +980,15 @@ RsDoStartDependentNoPriDescriptor (
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* FUNCTION:
|
||||
* FUNCTION: RsDoVendorSmallDescriptor
|
||||
*
|
||||
* PARAMETERS:
|
||||
* PARAMETERS: Node - Parent resource descriptor parse node
|
||||
* CurrentByteOffset - Offset into the resource template AML
|
||||
* buffer (to track references to the desc)
|
||||
*
|
||||
* RETURN:
|
||||
* RETURN: Completed resource node
|
||||
*
|
||||
* DESCRIPTION:
|
||||
* DESCRIPTION: Construct a short "VendorShort" descriptor
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
@ -995,7 +1003,6 @@ RsDoVendorSmallDescriptor (
|
||||
UINT32 i;
|
||||
|
||||
|
||||
|
||||
InitializerNode = Node->Child;
|
||||
Rnode = RsAllocateResourceNode (sizeof (ASL_SMALL_VENDOR_DESC));
|
||||
|
||||
@ -1003,7 +1010,6 @@ RsDoVendorSmallDescriptor (
|
||||
Descriptor->Std.DescriptorType = RESOURCE_DESC_SMALL_VENDOR;
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Process all child initialization nodes
|
||||
*/
|
||||
@ -1022,6 +1028,3 @@ RsDoVendorSmallDescriptor (
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user