aboutsummaryrefslogtreecommitdiff
path: root/compiler/aslresource.c
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2011-11-23 18:05:37 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2011-11-23 18:05:37 +0000
commit50796274dc74454ca64a6e120552adb2620c3e65 (patch)
tree91526f3e19920a98573c3d04bbef39cd71a7c0ce /compiler/aslresource.c
parent33c583d0c71a12a703f849679505114e27bba011 (diff)
downloadsrc-50796274dc74454ca64a6e120552adb2620c3e65.tar.gz
src-50796274dc74454ca64a6e120552adb2620c3e65.zip
Import ACPICA 20111123.vendor/acpica/20111123
Notes
Notes: svn path=/vendor-sys/acpica/dist/; revision=227896 svn path=/vendor-sys/acpica/20111123/; revision=227897; tag=vendor/acpica/20111123
Diffstat (limited to 'compiler/aslresource.c')
-rw-r--r--compiler/aslresource.c58
1 files changed, 56 insertions, 2 deletions
diff --git a/compiler/aslresource.c b/compiler/aslresource.c
index 0954b8460d5d..d614f1ad4e04 100644
--- a/compiler/aslresource.c
+++ b/compiler/aslresource.c
@@ -513,6 +513,29 @@ RsSetFlagBits (
}
+void
+RsSetFlagBits16 (
+ UINT16 *Flags,
+ ACPI_PARSE_OBJECT *Op,
+ UINT8 Position,
+ UINT8 DefaultBit)
+{
+
+ if (Op->Asl.ParseOpcode == PARSEOP_DEFAULT_ARG)
+ {
+ /* Use the default bit */
+
+ *Flags |= (DefaultBit << Position);
+ }
+ else
+ {
+ /* Use the bit specified in the initialization node */
+
+ *Flags |= (((UINT16) Op->Asl.Value.Integer) << Position);
+ }
+}
+
+
/*******************************************************************************
*
* FUNCTION: RsCompleteNodeAndGetNext
@@ -637,6 +660,11 @@ RsDoOneResourceDescriptor (
CurrentByteOffset);
break;
+ case PARSEOP_FIXEDDMA:
+ Rnode = RsDoFixedDmaDescriptor (DescriptorTypeOp,
+ CurrentByteOffset);
+ break;
+
case PARSEOP_DWORDIO:
Rnode = RsDoDwordIoDescriptor (DescriptorTypeOp,
CurrentByteOffset);
@@ -820,6 +848,31 @@ RsDoOneResourceDescriptor (
CurrentByteOffset);
break;
+ case PARSEOP_GPIO_INT:
+ Rnode = RsDoGpioIntDescriptor (DescriptorTypeOp,
+ CurrentByteOffset);
+ break;
+
+ case PARSEOP_GPIO_IO:
+ Rnode = RsDoGpioIoDescriptor (DescriptorTypeOp,
+ CurrentByteOffset);
+ break;
+
+ case PARSEOP_I2C_SERIALBUS:
+ Rnode = RsDoI2cSerialBusDescriptor (DescriptorTypeOp,
+ CurrentByteOffset);
+ break;
+
+ case PARSEOP_SPI_SERIALBUS:
+ Rnode = RsDoSpiSerialBusDescriptor (DescriptorTypeOp,
+ CurrentByteOffset);
+ break;
+
+ case PARSEOP_UART_SERIALBUS:
+ Rnode = RsDoUartSerialBusDescriptor (DescriptorTypeOp,
+ CurrentByteOffset);
+ break;
+
case PARSEOP_DEFAULT_ARG:
/* Just ignore any of these, they are used as fillers/placeholders */
break;
@@ -994,10 +1047,12 @@ RsDoResourceTemplate (
Op->Asl.ParseOpcode = PARSEOP_BUFFER;
Op->Asl.AmlOpcode = AML_BUFFER_OP;
Op->Asl.CompileFlags = NODE_AML_PACKAGE | NODE_IS_RESOURCE_DESC;
+ UtSetParseOpName (Op);
BufferLengthOp->Asl.ParseOpcode = PARSEOP_INTEGER;
BufferLengthOp->Asl.Value.Integer = CurrentByteOffset;
(void) OpcSetOptimalIntegerSize (BufferLengthOp);
+ UtSetParseOpName (BufferLengthOp);
BufferOp->Asl.ParseOpcode = PARSEOP_RAW_DATA;
BufferOp->Asl.AmlOpcode = AML_RAW_DATA_CHAIN;
@@ -1005,8 +1060,7 @@ RsDoResourceTemplate (
BufferOp->Asl.AmlLength = CurrentByteOffset;
BufferOp->Asl.Value.Buffer = (UINT8 *) HeadRnode.Next;
BufferOp->Asl.CompileFlags |= NODE_IS_RESOURCE_DATA;
+ UtSetParseOpName (BufferOp);
return;
}
-
-