diff options
Diffstat (limited to 'source/compiler/aslresource.c')
-rw-r--r-- | source/compiler/aslresource.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/source/compiler/aslresource.c b/source/compiler/aslresource.c index 272f9b0..d7f829f 100644 --- a/source/compiler/aslresource.c +++ b/source/compiler/aslresource.c @@ -319,6 +319,7 @@ RsLargeAddressCheck ( case ACPI_RESOURCE_FLAG_MIF: case ACPI_RESOURCE_FLAG_MAF: default: + AslError (ASL_ERROR, ASL_MSG_INVALID_ADDR_FLAGS, LengthOp, NULL); } } @@ -364,6 +365,7 @@ RsLargeAddressCheck ( case (ACPI_RESOURCE_FLAG_MIF | ACPI_RESOURCE_FLAG_MAF): default: + AslError (ASL_ERROR, ASL_MSG_INVALID_ADDR_FLAGS, LengthOp, NULL); } } @@ -655,45 +657,54 @@ RsDoOneResourceDescriptor ( switch (DescriptorTypeOp->Asl.ParseOpcode) { case PARSEOP_DMA: + Rnode = RsDoDmaDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_FIXEDDMA: + Rnode = RsDoFixedDmaDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_DWORDIO: + Rnode = RsDoDwordIoDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_DWORDMEMORY: + Rnode = RsDoDwordMemoryDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_DWORDSPACE: + Rnode = RsDoDwordSpaceDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_ENDDEPENDENTFN: + switch (*State) { case ACPI_RSTATE_NORMAL: + AslError (ASL_ERROR, ASL_MSG_MISSING_STARTDEPENDENT, DescriptorTypeOp, NULL); break; case ACPI_RSTATE_START_DEPENDENT: + AslError (ASL_ERROR, ASL_MSG_DEPENDENT_NESTING, DescriptorTypeOp, NULL); break; case ACPI_RSTATE_DEPENDENT_LIST: default: + break; } @@ -703,89 +714,107 @@ RsDoOneResourceDescriptor ( break; case PARSEOP_ENDTAG: + Rnode = RsDoEndTagDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_EXTENDEDIO: + Rnode = RsDoExtendedIoDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_EXTENDEDMEMORY: + Rnode = RsDoExtendedMemoryDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_EXTENDEDSPACE: + Rnode = RsDoExtendedSpaceDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_FIXEDIO: + Rnode = RsDoFixedIoDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_INTERRUPT: + Rnode = RsDoInterruptDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_IO: + Rnode = RsDoIoDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_IRQ: + Rnode = RsDoIrqDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_IRQNOFLAGS: + Rnode = RsDoIrqNoFlagsDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_MEMORY24: + Rnode = RsDoMemory24Descriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_MEMORY32: + Rnode = RsDoMemory32Descriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_MEMORY32FIXED: + Rnode = RsDoMemory32FixedDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_QWORDIO: + Rnode = RsDoQwordIoDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_QWORDMEMORY: + Rnode = RsDoQwordMemoryDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_QWORDSPACE: + Rnode = RsDoQwordSpaceDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_REGISTER: + Rnode = RsDoGeneralRegisterDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_STARTDEPENDENTFN: + switch (*State) { case ACPI_RSTATE_START_DEPENDENT: + AslError (ASL_ERROR, ASL_MSG_DEPENDENT_NESTING, DescriptorTypeOp, NULL); break; @@ -793,6 +822,7 @@ RsDoOneResourceDescriptor ( case ACPI_RSTATE_NORMAL: case ACPI_RSTATE_DEPENDENT_LIST: default: + break; } @@ -803,9 +833,11 @@ RsDoOneResourceDescriptor ( break; case PARSEOP_STARTDEPENDENTFN_NOPRI: + switch (*State) { case ACPI_RSTATE_START_DEPENDENT: + AslError (ASL_ERROR, ASL_MSG_DEPENDENT_NESTING, DescriptorTypeOp, NULL); break; @@ -813,6 +845,7 @@ RsDoOneResourceDescriptor ( case ACPI_RSTATE_NORMAL: case ACPI_RSTATE_DEPENDENT_LIST: default: + break; } @@ -823,60 +856,72 @@ RsDoOneResourceDescriptor ( break; case PARSEOP_VENDORLONG: + Rnode = RsDoVendorLargeDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_VENDORSHORT: + Rnode = RsDoVendorSmallDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_WORDBUSNUMBER: + Rnode = RsDoWordBusNumberDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_WORDIO: + Rnode = RsDoWordIoDescriptor (DescriptorTypeOp, CurrentByteOffset); break; case PARSEOP_WORDSPACE: + Rnode = RsDoWordSpaceDescriptor (DescriptorTypeOp, 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; default: + printf ("Unknown resource descriptor type [%s]\n", DescriptorTypeOp->Asl.ParseOpName); break; |