File indexing completed on 2025-05-11 08:23:42
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117
0118
0119
0120
0121
0122
0123
0124
0125
0126
0127
0128
0129
0130
0131
0132
0133
0134
0135
0136
0137
0138
0139
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152 #ifndef __ACRESTYP_H__
0153 #define __ACRESTYP_H__
0154
0155
0156
0157
0158
0159 typedef UINT16 ACPI_RS_LENGTH;
0160 typedef UINT32 ACPI_RSDESC_SIZE;
0161
0162
0163
0164
0165 #define ACPI_READ_ONLY_MEMORY (UINT8) 0x00
0166 #define ACPI_READ_WRITE_MEMORY (UINT8) 0x01
0167
0168 #define ACPI_NON_CACHEABLE_MEMORY (UINT8) 0x00
0169 #define ACPI_CACHABLE_MEMORY (UINT8) 0x01
0170 #define ACPI_WRITE_COMBINING_MEMORY (UINT8) 0x02
0171 #define ACPI_PREFETCHABLE_MEMORY (UINT8) 0x03
0172
0173
0174
0175
0176
0177
0178
0179
0180
0181 #define ACPI_NON_ISA_ONLY_RANGES (UINT8) 0x01
0182 #define ACPI_ISA_ONLY_RANGES (UINT8) 0x02
0183 #define ACPI_ENTIRE_RANGE (ACPI_NON_ISA_ONLY_RANGES | ACPI_ISA_ONLY_RANGES)
0184
0185
0186
0187 #define ACPI_SPARSE_TRANSLATION (UINT8) 0x01
0188
0189
0190
0191
0192 #define ACPI_DECODE_10 (UINT8) 0x00
0193 #define ACPI_DECODE_16 (UINT8) 0x01
0194
0195
0196
0197
0198
0199
0200
0201 #define ACPI_LEVEL_SENSITIVE (UINT8) 0x00
0202 #define ACPI_EDGE_SENSITIVE (UINT8) 0x01
0203
0204
0205
0206 #define ACPI_ACTIVE_HIGH (UINT8) 0x00
0207 #define ACPI_ACTIVE_LOW (UINT8) 0x01
0208 #define ACPI_ACTIVE_BOTH (UINT8) 0x02
0209
0210
0211
0212 #define ACPI_EXCLUSIVE (UINT8) 0x00
0213 #define ACPI_SHARED (UINT8) 0x01
0214
0215
0216
0217 #define ACPI_NOT_WAKE_CAPABLE (UINT8) 0x00
0218 #define ACPI_WAKE_CAPABLE (UINT8) 0x01
0219
0220
0221
0222
0223 #define ACPI_COMPATIBILITY (UINT8) 0x00
0224 #define ACPI_TYPE_A (UINT8) 0x01
0225 #define ACPI_TYPE_B (UINT8) 0x02
0226 #define ACPI_TYPE_F (UINT8) 0x03
0227
0228 #define ACPI_NOT_BUS_MASTER (UINT8) 0x00
0229 #define ACPI_BUS_MASTER (UINT8) 0x01
0230
0231 #define ACPI_TRANSFER_8 (UINT8) 0x00
0232 #define ACPI_TRANSFER_8_16 (UINT8) 0x01
0233 #define ACPI_TRANSFER_16 (UINT8) 0x02
0234
0235
0236
0237
0238 #define ACPI_GOOD_CONFIGURATION (UINT8) 0x00
0239 #define ACPI_ACCEPTABLE_CONFIGURATION (UINT8) 0x01
0240 #define ACPI_SUB_OPTIMAL_CONFIGURATION (UINT8) 0x02
0241
0242
0243
0244
0245 #define ACPI_MEMORY_RANGE (UINT8) 0x00
0246 #define ACPI_IO_RANGE (UINT8) 0x01
0247 #define ACPI_BUS_NUMBER_RANGE (UINT8) 0x02
0248
0249 #define ACPI_ADDRESS_NOT_FIXED (UINT8) 0x00
0250 #define ACPI_ADDRESS_FIXED (UINT8) 0x01
0251
0252 #define ACPI_POS_DECODE (UINT8) 0x00
0253 #define ACPI_SUB_DECODE (UINT8) 0x01
0254
0255
0256
0257 #define ACPI_PRODUCER (UINT8) 0x00
0258 #define ACPI_CONSUMER (UINT8) 0x01
0259
0260
0261
0262
0263
0264 #ifndef ACPI_MISALIGNMENT_NOT_SUPPORTED
0265 #pragma pack(1)
0266 #endif
0267
0268
0269
0270 typedef struct acpi_uuid
0271 {
0272 UINT8 Data[ACPI_UUID_LENGTH];
0273 } ACPI_UUID;
0274
0275 typedef struct acpi_vendor_uuid
0276 {
0277 UINT8 Subtype;
0278 UINT8 Data[ACPI_UUID_LENGTH];
0279
0280 } ACPI_VENDOR_UUID;
0281
0282
0283
0284
0285 typedef struct acpi_resource_irq
0286 {
0287 UINT8 DescriptorLength;
0288 UINT8 Triggering;
0289 UINT8 Polarity;
0290 UINT8 Shareable;
0291 UINT8 WakeCapable;
0292 UINT8 InterruptCount;
0293 union {
0294 UINT8 Interrupt;
0295 ACPI_FLEX_ARRAY(UINT8, Interrupts);
0296 };
0297
0298 } ACPI_RESOURCE_IRQ;
0299
0300 typedef struct acpi_resource_dma
0301 {
0302 UINT8 Type;
0303 UINT8 BusMaster;
0304 UINT8 Transfer;
0305 UINT8 ChannelCount;
0306 union {
0307 UINT8 Channel;
0308 ACPI_FLEX_ARRAY(UINT8, Channels);
0309 };
0310
0311 } ACPI_RESOURCE_DMA;
0312
0313 typedef struct acpi_resource_start_dependent
0314 {
0315 UINT8 DescriptorLength;
0316 UINT8 CompatibilityPriority;
0317 UINT8 PerformanceRobustness;
0318
0319 } ACPI_RESOURCE_START_DEPENDENT;
0320
0321
0322
0323
0324
0325
0326
0327
0328 typedef struct acpi_resource_io
0329 {
0330 UINT8 IoDecode;
0331 UINT8 Alignment;
0332 UINT8 AddressLength;
0333 UINT16 Minimum;
0334 UINT16 Maximum;
0335
0336 } ACPI_RESOURCE_IO;
0337
0338 typedef struct acpi_resource_fixed_io
0339 {
0340 UINT16 Address;
0341 UINT8 AddressLength;
0342
0343 } ACPI_RESOURCE_FIXED_IO;
0344
0345 typedef struct acpi_resource_fixed_dma
0346 {
0347 UINT16 RequestLines;
0348 UINT16 Channels;
0349 UINT8 Width;
0350
0351 } ACPI_RESOURCE_FIXED_DMA;
0352
0353
0354
0355 #define ACPI_DMA_WIDTH8 0
0356 #define ACPI_DMA_WIDTH16 1
0357 #define ACPI_DMA_WIDTH32 2
0358 #define ACPI_DMA_WIDTH64 3
0359 #define ACPI_DMA_WIDTH128 4
0360 #define ACPI_DMA_WIDTH256 5
0361
0362
0363 typedef struct acpi_resource_vendor
0364 {
0365 UINT16 ByteLength;
0366 UINT8 ByteData[];
0367
0368 } ACPI_RESOURCE_VENDOR;
0369
0370
0371
0372 typedef struct acpi_resource_vendor_typed
0373 {
0374 UINT16 ByteLength;
0375 UINT8 UuidSubtype;
0376 UINT8 Uuid[ACPI_UUID_LENGTH];
0377 UINT8 ByteData[];
0378
0379 } ACPI_RESOURCE_VENDOR_TYPED;
0380
0381 typedef struct acpi_resource_end_tag
0382 {
0383 UINT8 Checksum;
0384
0385 } ACPI_RESOURCE_END_TAG;
0386
0387 typedef struct acpi_resource_memory24
0388 {
0389 UINT8 WriteProtect;
0390 UINT16 Minimum;
0391 UINT16 Maximum;
0392 UINT16 Alignment;
0393 UINT16 AddressLength;
0394
0395 } ACPI_RESOURCE_MEMORY24;
0396
0397 typedef struct acpi_resource_memory32
0398 {
0399 UINT8 WriteProtect;
0400 UINT32 Minimum;
0401 UINT32 Maximum;
0402 UINT32 Alignment;
0403 UINT32 AddressLength;
0404
0405 } ACPI_RESOURCE_MEMORY32;
0406
0407 typedef struct acpi_resource_fixed_memory32
0408 {
0409 UINT8 WriteProtect;
0410 UINT32 Address;
0411 UINT32 AddressLength;
0412
0413 } ACPI_RESOURCE_FIXED_MEMORY32;
0414
0415 typedef struct acpi_memory_attribute
0416 {
0417 UINT8 WriteProtect;
0418 UINT8 Caching;
0419 UINT8 RangeType;
0420 UINT8 Translation;
0421
0422 } ACPI_MEMORY_ATTRIBUTE;
0423
0424 typedef struct acpi_io_attribute
0425 {
0426 UINT8 RangeType;
0427 UINT8 Translation;
0428 UINT8 TranslationType;
0429 UINT8 Reserved1;
0430
0431 } ACPI_IO_ATTRIBUTE;
0432
0433 typedef union acpi_resource_attribute
0434 {
0435 ACPI_MEMORY_ATTRIBUTE Mem;
0436 ACPI_IO_ATTRIBUTE Io;
0437
0438
0439
0440 UINT8 TypeSpecific;
0441
0442 } ACPI_RESOURCE_ATTRIBUTE;
0443
0444 typedef struct acpi_resource_label
0445 {
0446 UINT16 StringLength;
0447 char *StringPtr;
0448
0449 } ACPI_RESOURCE_LABEL;
0450
0451 typedef struct acpi_resource_source
0452 {
0453 UINT8 Index;
0454 UINT16 StringLength;
0455 char *StringPtr;
0456
0457 } ACPI_RESOURCE_SOURCE;
0458
0459
0460
0461 #define ACPI_RESOURCE_ADDRESS_COMMON \
0462 UINT8 ResourceType; \
0463 UINT8 ProducerConsumer; \
0464 UINT8 Decode; \
0465 UINT8 MinAddressFixed; \
0466 UINT8 MaxAddressFixed; \
0467 ACPI_RESOURCE_ATTRIBUTE Info;
0468
0469 typedef struct acpi_address16_attribute
0470 {
0471 UINT16 Granularity;
0472 UINT16 Minimum;
0473 UINT16 Maximum;
0474 UINT16 TranslationOffset;
0475 UINT16 AddressLength;
0476
0477 } ACPI_ADDRESS16_ATTRIBUTE;
0478
0479 typedef struct acpi_address32_attribute
0480 {
0481 UINT32 Granularity;
0482 UINT32 Minimum;
0483 UINT32 Maximum;
0484 UINT32 TranslationOffset;
0485 UINT32 AddressLength;
0486
0487 } ACPI_ADDRESS32_ATTRIBUTE;
0488
0489 typedef struct acpi_address64_attribute
0490 {
0491 UINT64 Granularity;
0492 UINT64 Minimum;
0493 UINT64 Maximum;
0494 UINT64 TranslationOffset;
0495 UINT64 AddressLength;
0496
0497 } ACPI_ADDRESS64_ATTRIBUTE;
0498
0499 typedef struct acpi_resource_address
0500 {
0501 ACPI_RESOURCE_ADDRESS_COMMON
0502
0503 } ACPI_RESOURCE_ADDRESS;
0504
0505 typedef struct acpi_resource_address16
0506 {
0507 ACPI_RESOURCE_ADDRESS_COMMON
0508 ACPI_ADDRESS16_ATTRIBUTE Address;
0509 ACPI_RESOURCE_SOURCE ResourceSource;
0510
0511 } ACPI_RESOURCE_ADDRESS16;
0512
0513 typedef struct acpi_resource_address32
0514 {
0515 ACPI_RESOURCE_ADDRESS_COMMON
0516 ACPI_ADDRESS32_ATTRIBUTE Address;
0517 ACPI_RESOURCE_SOURCE ResourceSource;
0518
0519 } ACPI_RESOURCE_ADDRESS32;
0520
0521 typedef struct acpi_resource_address64
0522 {
0523 ACPI_RESOURCE_ADDRESS_COMMON
0524 ACPI_ADDRESS64_ATTRIBUTE Address;
0525 ACPI_RESOURCE_SOURCE ResourceSource;
0526
0527 } ACPI_RESOURCE_ADDRESS64;
0528
0529 typedef struct acpi_resource_extended_address64
0530 {
0531 ACPI_RESOURCE_ADDRESS_COMMON
0532 UINT8 RevisionID;
0533 ACPI_ADDRESS64_ATTRIBUTE Address;
0534 UINT64 TypeSpecific;
0535
0536 } ACPI_RESOURCE_EXTENDED_ADDRESS64;
0537
0538 typedef struct acpi_resource_extended_irq
0539 {
0540 UINT8 ProducerConsumer;
0541 UINT8 Triggering;
0542 UINT8 Polarity;
0543 UINT8 Shareable;
0544 UINT8 WakeCapable;
0545 UINT8 InterruptCount;
0546 ACPI_RESOURCE_SOURCE ResourceSource;
0547 union {
0548 UINT32 Interrupt;
0549 ACPI_FLEX_ARRAY(UINT32, Interrupts);
0550 };
0551
0552 } ACPI_RESOURCE_EXTENDED_IRQ;
0553
0554 typedef struct acpi_resource_generic_register
0555 {
0556 UINT8 SpaceId;
0557 UINT8 BitWidth;
0558 UINT8 BitOffset;
0559 UINT8 AccessSize;
0560 UINT64 Address;
0561
0562 } ACPI_RESOURCE_GENERIC_REGISTER;
0563
0564 typedef struct acpi_resource_gpio
0565 {
0566 UINT8 RevisionId;
0567 UINT8 ConnectionType;
0568 UINT8 ProducerConsumer;
0569 UINT8 PinConfig;
0570 UINT8 Shareable;
0571 UINT8 WakeCapable;
0572 UINT8 IoRestriction;
0573 UINT8 Triggering;
0574 UINT8 Polarity;
0575 UINT16 DriveStrength;
0576 UINT16 DebounceTimeout;
0577 UINT16 PinTableLength;
0578 UINT16 VendorLength;
0579 ACPI_RESOURCE_SOURCE ResourceSource;
0580 UINT16 *PinTable;
0581 UINT8 *VendorData;
0582
0583 } ACPI_RESOURCE_GPIO;
0584
0585
0586
0587 #define ACPI_RESOURCE_GPIO_TYPE_INT 0
0588 #define ACPI_RESOURCE_GPIO_TYPE_IO 1
0589
0590
0591
0592 #define ACPI_PIN_CONFIG_DEFAULT 0
0593 #define ACPI_PIN_CONFIG_PULLUP 1
0594 #define ACPI_PIN_CONFIG_PULLDOWN 2
0595 #define ACPI_PIN_CONFIG_NOPULL 3
0596
0597
0598
0599 #define ACPI_IO_RESTRICT_NONE 0
0600 #define ACPI_IO_RESTRICT_INPUT 1
0601 #define ACPI_IO_RESTRICT_OUTPUT 2
0602 #define ACPI_IO_RESTRICT_NONE_PRESERVE 3
0603
0604
0605
0606
0607 #define ACPI_RESOURCE_SERIAL_COMMON \
0608 UINT8 RevisionId; \
0609 UINT8 Type; \
0610 UINT8 ProducerConsumer; \
0611 UINT8 SlaveMode; \
0612 UINT8 ConnectionSharing; \
0613 UINT8 TypeRevisionId; \
0614 UINT16 TypeDataLength; \
0615 UINT16 VendorLength; \
0616 ACPI_RESOURCE_SOURCE ResourceSource; \
0617 UINT8 *VendorData;
0618
0619 typedef struct acpi_resource_common_serialbus
0620 {
0621 ACPI_RESOURCE_SERIAL_COMMON
0622
0623 } ACPI_RESOURCE_COMMON_SERIALBUS;
0624
0625
0626
0627 #define ACPI_RESOURCE_SERIAL_TYPE_I2C 1
0628 #define ACPI_RESOURCE_SERIAL_TYPE_SPI 2
0629 #define ACPI_RESOURCE_SERIAL_TYPE_UART 3
0630 #define ACPI_RESOURCE_SERIAL_TYPE_CSI2 4
0631
0632
0633
0634 #define ACPI_CONTROLLER_INITIATED 0
0635 #define ACPI_DEVICE_INITIATED 1
0636
0637
0638 typedef struct acpi_resource_i2c_serialbus
0639 {
0640 ACPI_RESOURCE_SERIAL_COMMON
0641 UINT8 AccessMode;
0642 UINT16 SlaveAddress;
0643 UINT32 ConnectionSpeed;
0644
0645 } ACPI_RESOURCE_I2C_SERIALBUS;
0646
0647
0648
0649 #define ACPI_I2C_7BIT_MODE 0
0650 #define ACPI_I2C_10BIT_MODE 1
0651
0652
0653 typedef struct acpi_resource_spi_serialbus
0654 {
0655 ACPI_RESOURCE_SERIAL_COMMON
0656 UINT8 WireMode;
0657 UINT8 DevicePolarity;
0658 UINT8 DataBitLength;
0659 UINT8 ClockPhase;
0660 UINT8 ClockPolarity;
0661 UINT16 DeviceSelection;
0662 UINT32 ConnectionSpeed;
0663
0664 } ACPI_RESOURCE_SPI_SERIALBUS;
0665
0666
0667
0668 #define ACPI_SPI_4WIRE_MODE 0
0669 #define ACPI_SPI_3WIRE_MODE 1
0670
0671
0672
0673 #define ACPI_SPI_ACTIVE_LOW 0
0674 #define ACPI_SPI_ACTIVE_HIGH 1
0675
0676
0677
0678 #define ACPI_SPI_FIRST_PHASE 0
0679 #define ACPI_SPI_SECOND_PHASE 1
0680
0681
0682
0683 #define ACPI_SPI_START_LOW 0
0684 #define ACPI_SPI_START_HIGH 1
0685
0686
0687 typedef struct acpi_resource_uart_serialbus
0688 {
0689 ACPI_RESOURCE_SERIAL_COMMON
0690 UINT8 Endian;
0691 UINT8 DataBits;
0692 UINT8 StopBits;
0693 UINT8 FlowControl;
0694 UINT8 Parity;
0695 UINT8 LinesEnabled;
0696 UINT16 RxFifoSize;
0697 UINT16 TxFifoSize;
0698 UINT32 DefaultBaudRate;
0699
0700 } ACPI_RESOURCE_UART_SERIALBUS;
0701
0702
0703
0704 #define ACPI_UART_LITTLE_ENDIAN 0
0705 #define ACPI_UART_BIG_ENDIAN 1
0706
0707
0708
0709 #define ACPI_UART_5_DATA_BITS 0
0710 #define ACPI_UART_6_DATA_BITS 1
0711 #define ACPI_UART_7_DATA_BITS 2
0712 #define ACPI_UART_8_DATA_BITS 3
0713 #define ACPI_UART_9_DATA_BITS 4
0714
0715
0716
0717 #define ACPI_UART_NO_STOP_BITS 0
0718 #define ACPI_UART_1_STOP_BIT 1
0719 #define ACPI_UART_1P5_STOP_BITS 2
0720 #define ACPI_UART_2_STOP_BITS 3
0721
0722
0723
0724 #define ACPI_UART_FLOW_CONTROL_NONE 0
0725 #define ACPI_UART_FLOW_CONTROL_HW 1
0726 #define ACPI_UART_FLOW_CONTROL_XON_XOFF 2
0727
0728
0729
0730 #define ACPI_UART_PARITY_NONE 0
0731 #define ACPI_UART_PARITY_EVEN 1
0732 #define ACPI_UART_PARITY_ODD 2
0733 #define ACPI_UART_PARITY_MARK 3
0734 #define ACPI_UART_PARITY_SPACE 4
0735
0736
0737
0738 #define ACPI_UART_CARRIER_DETECT (1<<2)
0739 #define ACPI_UART_RING_INDICATOR (1<<3)
0740 #define ACPI_UART_DATA_SET_READY (1<<4)
0741 #define ACPI_UART_DATA_TERMINAL_READY (1<<5)
0742 #define ACPI_UART_CLEAR_TO_SEND (1<<6)
0743 #define ACPI_UART_REQUEST_TO_SEND (1<<7)
0744
0745 typedef struct acpi_resource_csi2_serialbus
0746 {
0747 ACPI_RESOURCE_SERIAL_COMMON
0748 UINT8 LocalPortInstance;
0749 UINT8 PhyType;
0750
0751 } ACPI_RESOURCE_CSI2_SERIALBUS;
0752
0753 typedef struct acpi_resource_pin_function
0754 {
0755 UINT8 RevisionId;
0756 UINT8 PinConfig;
0757 UINT8 Shareable;
0758 UINT16 FunctionNumber;
0759 UINT16 PinTableLength;
0760 UINT16 VendorLength;
0761 ACPI_RESOURCE_SOURCE ResourceSource;
0762 UINT16 *PinTable;
0763 UINT8 *VendorData;
0764
0765 } ACPI_RESOURCE_PIN_FUNCTION;
0766
0767 typedef struct acpi_resource_pin_config
0768 {
0769 UINT8 RevisionId;
0770 UINT8 ProducerConsumer;
0771 UINT8 Shareable;
0772 UINT8 PinConfigType;
0773 UINT32 PinConfigValue;
0774 UINT16 PinTableLength;
0775 UINT16 VendorLength;
0776 ACPI_RESOURCE_SOURCE ResourceSource;
0777 UINT16 *PinTable;
0778 UINT8 *VendorData;
0779
0780 } ACPI_RESOURCE_PIN_CONFIG;
0781
0782 typedef struct acpi_resource_clock_input
0783 {
0784 UINT8 RevisionId;
0785 UINT8 Mode;
0786 UINT8 Scale;
0787 UINT16 FrequencyDivisor;
0788 UINT32 FrequencyNumerator;
0789 ACPI_RESOURCE_SOURCE ResourceSource;
0790 } ACPI_RESOURCE_CLOCK_INPUT;
0791
0792
0793
0794 #define ACPI_PIN_CONFIG_DEFAULT 0
0795 #define ACPI_PIN_CONFIG_BIAS_PULL_UP 1
0796 #define ACPI_PIN_CONFIG_BIAS_PULL_DOWN 2
0797 #define ACPI_PIN_CONFIG_BIAS_DEFAULT 3
0798 #define ACPI_PIN_CONFIG_BIAS_DISABLE 4
0799 #define ACPI_PIN_CONFIG_BIAS_HIGH_IMPEDANCE 5
0800 #define ACPI_PIN_CONFIG_BIAS_BUS_HOLD 6
0801 #define ACPI_PIN_CONFIG_DRIVE_OPEN_DRAIN 7
0802 #define ACPI_PIN_CONFIG_DRIVE_OPEN_SOURCE 8
0803 #define ACPI_PIN_CONFIG_DRIVE_PUSH_PULL 9
0804 #define ACPI_PIN_CONFIG_DRIVE_STRENGTH 10
0805 #define ACPI_PIN_CONFIG_SLEW_RATE 11
0806 #define ACPI_PIN_CONFIG_INPUT_DEBOUNCE 12
0807 #define ACPI_PIN_CONFIG_INPUT_SCHMITT_TRIGGER 13
0808
0809 typedef struct acpi_resource_pin_group
0810 {
0811 UINT8 RevisionId;
0812 UINT8 ProducerConsumer;
0813 UINT16 PinTableLength;
0814 UINT16 VendorLength;
0815 UINT16 *PinTable;
0816 ACPI_RESOURCE_LABEL ResourceLabel;
0817 UINT8 *VendorData;
0818
0819 } ACPI_RESOURCE_PIN_GROUP;
0820
0821 typedef struct acpi_resource_pin_group_function
0822 {
0823 UINT8 RevisionId;
0824 UINT8 ProducerConsumer;
0825 UINT8 Shareable;
0826 UINT16 FunctionNumber;
0827 UINT16 VendorLength;
0828 ACPI_RESOURCE_SOURCE ResourceSource;
0829 ACPI_RESOURCE_LABEL ResourceSourceLabel;
0830 UINT8 *VendorData;
0831
0832 } ACPI_RESOURCE_PIN_GROUP_FUNCTION;
0833
0834 typedef struct acpi_resource_pin_group_config
0835 {
0836 UINT8 RevisionId;
0837 UINT8 ProducerConsumer;
0838 UINT8 Shareable;
0839 UINT8 PinConfigType;
0840 UINT32 PinConfigValue;
0841 UINT16 VendorLength;
0842 ACPI_RESOURCE_SOURCE ResourceSource;
0843 ACPI_RESOURCE_LABEL ResourceSourceLabel;
0844 UINT8 *VendorData;
0845
0846 } ACPI_RESOURCE_PIN_GROUP_CONFIG;
0847
0848
0849
0850 #define ACPI_RESOURCE_TYPE_IRQ 0
0851 #define ACPI_RESOURCE_TYPE_DMA 1
0852 #define ACPI_RESOURCE_TYPE_START_DEPENDENT 2
0853 #define ACPI_RESOURCE_TYPE_END_DEPENDENT 3
0854 #define ACPI_RESOURCE_TYPE_IO 4
0855 #define ACPI_RESOURCE_TYPE_FIXED_IO 5
0856 #define ACPI_RESOURCE_TYPE_VENDOR 6
0857 #define ACPI_RESOURCE_TYPE_END_TAG 7
0858 #define ACPI_RESOURCE_TYPE_MEMORY24 8
0859 #define ACPI_RESOURCE_TYPE_MEMORY32 9
0860 #define ACPI_RESOURCE_TYPE_FIXED_MEMORY32 10
0861 #define ACPI_RESOURCE_TYPE_ADDRESS16 11
0862 #define ACPI_RESOURCE_TYPE_ADDRESS32 12
0863 #define ACPI_RESOURCE_TYPE_ADDRESS64 13
0864 #define ACPI_RESOURCE_TYPE_EXTENDED_ADDRESS64 14
0865 #define ACPI_RESOURCE_TYPE_EXTENDED_IRQ 15
0866 #define ACPI_RESOURCE_TYPE_GENERIC_REGISTER 16
0867 #define ACPI_RESOURCE_TYPE_GPIO 17
0868 #define ACPI_RESOURCE_TYPE_FIXED_DMA 18
0869 #define ACPI_RESOURCE_TYPE_SERIAL_BUS 19
0870 #define ACPI_RESOURCE_TYPE_PIN_FUNCTION 20
0871 #define ACPI_RESOURCE_TYPE_PIN_CONFIG 21
0872 #define ACPI_RESOURCE_TYPE_PIN_GROUP 22
0873 #define ACPI_RESOURCE_TYPE_PIN_GROUP_FUNCTION 23
0874 #define ACPI_RESOURCE_TYPE_PIN_GROUP_CONFIG 24
0875 #define ACPI_RESOURCE_TYPE_CLOCK_INPUT 25
0876 #define ACPI_RESOURCE_TYPE_MAX 25
0877
0878
0879
0880 typedef union acpi_resource_data
0881 {
0882 ACPI_RESOURCE_IRQ Irq;
0883 ACPI_RESOURCE_DMA Dma;
0884 ACPI_RESOURCE_START_DEPENDENT StartDpf;
0885 ACPI_RESOURCE_IO Io;
0886 ACPI_RESOURCE_FIXED_IO FixedIo;
0887 ACPI_RESOURCE_FIXED_DMA FixedDma;
0888 ACPI_RESOURCE_VENDOR Vendor;
0889 ACPI_RESOURCE_VENDOR_TYPED VendorTyped;
0890 ACPI_RESOURCE_END_TAG EndTag;
0891 ACPI_RESOURCE_MEMORY24 Memory24;
0892 ACPI_RESOURCE_MEMORY32 Memory32;
0893 ACPI_RESOURCE_FIXED_MEMORY32 FixedMemory32;
0894 ACPI_RESOURCE_ADDRESS16 Address16;
0895 ACPI_RESOURCE_ADDRESS32 Address32;
0896 ACPI_RESOURCE_ADDRESS64 Address64;
0897 ACPI_RESOURCE_EXTENDED_ADDRESS64 ExtAddress64;
0898 ACPI_RESOURCE_EXTENDED_IRQ ExtendedIrq;
0899 ACPI_RESOURCE_GENERIC_REGISTER GenericReg;
0900 ACPI_RESOURCE_GPIO Gpio;
0901 ACPI_RESOURCE_I2C_SERIALBUS I2cSerialBus;
0902 ACPI_RESOURCE_SPI_SERIALBUS SpiSerialBus;
0903 ACPI_RESOURCE_UART_SERIALBUS UartSerialBus;
0904 ACPI_RESOURCE_CSI2_SERIALBUS Csi2SerialBus;
0905 ACPI_RESOURCE_COMMON_SERIALBUS CommonSerialBus;
0906 ACPI_RESOURCE_PIN_FUNCTION PinFunction;
0907 ACPI_RESOURCE_PIN_CONFIG PinConfig;
0908 ACPI_RESOURCE_PIN_GROUP PinGroup;
0909 ACPI_RESOURCE_PIN_GROUP_FUNCTION PinGroupFunction;
0910 ACPI_RESOURCE_PIN_GROUP_CONFIG PinGroupConfig;
0911 ACPI_RESOURCE_CLOCK_INPUT ClockInput;
0912
0913
0914
0915 ACPI_RESOURCE_ADDRESS Address;
0916
0917 } ACPI_RESOURCE_DATA;
0918
0919
0920
0921
0922 typedef struct acpi_resource
0923 {
0924 UINT32 Type;
0925 UINT32 Length;
0926 ACPI_RESOURCE_DATA Data;
0927
0928 } ACPI_RESOURCE;
0929
0930
0931
0932 #pragma pack()
0933
0934
0935 #define ACPI_RS_SIZE_NO_DATA 8
0936 #define ACPI_RS_SIZE_MIN (UINT32) ACPI_ROUND_UP_TO_NATIVE_WORD (12)
0937 #define ACPI_RS_SIZE(Type) (UINT32) (ACPI_RS_SIZE_NO_DATA + sizeof (Type))
0938
0939
0940
0941 #define ACPI_NEXT_RESOURCE(Res) \
0942 ACPI_ADD_PTR (ACPI_RESOURCE, (Res), (Res)->Length)
0943
0944
0945 typedef struct acpi_pci_routing_table
0946 {
0947 UINT32 Length;
0948 UINT32 Pin;
0949 UINT64 Address;
0950 UINT32 SourceIndex;
0951 union {
0952 char Pad[4];
0953 ACPI_FLEX_ARRAY(char, Source);
0954 };
0955 } ACPI_PCI_ROUTING_TABLE;
0956
0957 #endif