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
0153 #ifndef __ACRESRC_H__
0154 #define __ACRESRC_H__
0155
0156
0157
0158 #include "amlresrc.h"
0159
0160
0161
0162
0163
0164
0165
0166
0167
0168
0169 #if (!defined(ACPI_MISALIGNMENT_NOT_SUPPORTED) && !defined(ACPI_PACKED_POINTERS_NOT_SUPPORTED))
0170 #pragma pack(1)
0171 #endif
0172
0173
0174
0175
0176 typedef const struct acpi_rsconvert_info
0177 {
0178 UINT8 Opcode;
0179 UINT8 ResourceOffset;
0180 UINT8 AmlOffset;
0181 UINT8 Value;
0182
0183 } ACPI_RSCONVERT_INFO;
0184
0185
0186
0187 typedef enum
0188 {
0189 ACPI_RSC_INITGET = 0,
0190 ACPI_RSC_INITSET,
0191 ACPI_RSC_FLAGINIT,
0192 ACPI_RSC_1BITFLAG,
0193 ACPI_RSC_2BITFLAG,
0194 ACPI_RSC_3BITFLAG,
0195 ACPI_RSC_6BITFLAG,
0196 ACPI_RSC_ADDRESS,
0197 ACPI_RSC_BITMASK,
0198 ACPI_RSC_BITMASK16,
0199 ACPI_RSC_COUNT,
0200 ACPI_RSC_COUNT16,
0201 ACPI_RSC_COUNT_GPIO_PIN,
0202 ACPI_RSC_COUNT_GPIO_RES,
0203 ACPI_RSC_COUNT_GPIO_VEN,
0204 ACPI_RSC_COUNT_SERIAL_RES,
0205 ACPI_RSC_COUNT_SERIAL_VEN,
0206 ACPI_RSC_DATA8,
0207 ACPI_RSC_EXIT_EQ,
0208 ACPI_RSC_EXIT_LE,
0209 ACPI_RSC_EXIT_NE,
0210 ACPI_RSC_LENGTH,
0211 ACPI_RSC_MOVE_GPIO_PIN,
0212 ACPI_RSC_MOVE_GPIO_RES,
0213 ACPI_RSC_MOVE_SERIAL_RES,
0214 ACPI_RSC_MOVE_SERIAL_VEN,
0215 ACPI_RSC_MOVE8,
0216 ACPI_RSC_MOVE16,
0217 ACPI_RSC_MOVE32,
0218 ACPI_RSC_MOVE64,
0219 ACPI_RSC_SET8,
0220 ACPI_RSC_SOURCE,
0221 ACPI_RSC_SOURCEX
0222
0223 } ACPI_RSCONVERT_OPCODES;
0224
0225
0226
0227 #define ACPI_RSC_COMPARE_AML_LENGTH 0
0228 #define ACPI_RSC_COMPARE_VALUE 1
0229
0230 #define ACPI_RSC_TABLE_SIZE(d) (sizeof (d) / sizeof (ACPI_RSCONVERT_INFO))
0231
0232 #define ACPI_RS_OFFSET(f) (UINT8) ACPI_OFFSET (ACPI_RESOURCE,f)
0233 #define AML_OFFSET(f) (UINT8) ACPI_OFFSET (AML_RESOURCE,f)
0234
0235
0236
0237
0238
0239 typedef const struct acpi_rsdump_info
0240 {
0241 UINT8 Opcode;
0242 UINT8 Offset;
0243 const char *Name;
0244 const char **Pointer;
0245
0246 } ACPI_RSDUMP_INFO;
0247
0248
0249
0250 typedef enum
0251 {
0252 ACPI_RSD_TITLE = 0,
0253 ACPI_RSD_1BITFLAG,
0254 ACPI_RSD_2BITFLAG,
0255 ACPI_RSD_3BITFLAG,
0256 ACPI_RSD_6BITFLAG,
0257 ACPI_RSD_ADDRESS,
0258 ACPI_RSD_DWORDLIST,
0259 ACPI_RSD_LITERAL,
0260 ACPI_RSD_LONGLIST,
0261 ACPI_RSD_SHORTLIST,
0262 ACPI_RSD_SHORTLISTX,
0263 ACPI_RSD_SOURCE,
0264 ACPI_RSD_STRING,
0265 ACPI_RSD_UINT8,
0266 ACPI_RSD_UINT16,
0267 ACPI_RSD_UINT32,
0268 ACPI_RSD_UINT64,
0269 ACPI_RSD_WORDLIST,
0270 ACPI_RSD_LABEL,
0271 ACPI_RSD_SOURCE_LABEL,
0272
0273 } ACPI_RSDUMP_OPCODES;
0274
0275
0276
0277 #pragma pack()
0278
0279
0280
0281
0282 extern const UINT8 AcpiGbl_AmlResourceSizes[];
0283 extern const UINT8 AcpiGbl_AmlResourceSerialBusSizes[];
0284 extern ACPI_RSCONVERT_INFO *AcpiGbl_SetResourceDispatch[];
0285
0286
0287
0288 extern const UINT8 AcpiGbl_ResourceStructSizes[];
0289 extern const UINT8 AcpiGbl_ResourceStructSerialBusSizes[];
0290 extern ACPI_RSCONVERT_INFO *AcpiGbl_GetResourceDispatch[];
0291
0292 extern ACPI_RSCONVERT_INFO *AcpiGbl_ConvertResourceSerialBusDispatch[];
0293
0294 typedef struct acpi_vendor_walk_info
0295 {
0296 ACPI_VENDOR_UUID *Uuid;
0297 ACPI_BUFFER *Buffer;
0298 ACPI_STATUS Status;
0299
0300 } ACPI_VENDOR_WALK_INFO;
0301
0302
0303
0304
0305
0306 ACPI_STATUS
0307 AcpiRsCreateResourceList (
0308 ACPI_OPERAND_OBJECT *AmlBuffer,
0309 ACPI_BUFFER *OutputBuffer);
0310
0311 ACPI_STATUS
0312 AcpiRsCreateAmlResources (
0313 ACPI_BUFFER *ResourceList,
0314 ACPI_BUFFER *OutputBuffer);
0315
0316 ACPI_STATUS
0317 AcpiRsCreatePciRoutingTable (
0318 ACPI_OPERAND_OBJECT *PackageObject,
0319 ACPI_BUFFER *OutputBuffer);
0320
0321
0322
0323
0324
0325 ACPI_STATUS
0326 AcpiRsGetPrtMethodData (
0327 ACPI_NAMESPACE_NODE *Node,
0328 ACPI_BUFFER *RetBuffer);
0329
0330 ACPI_STATUS
0331 AcpiRsGetCrsMethodData (
0332 ACPI_NAMESPACE_NODE *Node,
0333 ACPI_BUFFER *RetBuffer);
0334
0335 ACPI_STATUS
0336 AcpiRsGetPrsMethodData (
0337 ACPI_NAMESPACE_NODE *Node,
0338 ACPI_BUFFER *RetBuffer);
0339
0340 ACPI_STATUS
0341 AcpiRsGetMethodData (
0342 ACPI_HANDLE Handle,
0343 const char *Path,
0344 ACPI_BUFFER *RetBuffer);
0345
0346 ACPI_STATUS
0347 AcpiRsSetSrsMethodData (
0348 ACPI_NAMESPACE_NODE *Node,
0349 ACPI_BUFFER *RetBuffer);
0350
0351 ACPI_STATUS
0352 AcpiRsGetAeiMethodData (
0353 ACPI_NAMESPACE_NODE *Node,
0354 ACPI_BUFFER *RetBuffer);
0355
0356
0357
0358
0359 ACPI_STATUS
0360 AcpiRsGetListLength (
0361 UINT8 *AmlBuffer,
0362 UINT32 AmlBufferLength,
0363 ACPI_SIZE *SizeNeeded);
0364
0365 ACPI_STATUS
0366 AcpiRsGetAmlLength (
0367 ACPI_RESOURCE *ResourceList,
0368 ACPI_SIZE ResourceListSize,
0369 ACPI_SIZE *SizeNeeded);
0370
0371 ACPI_STATUS
0372 AcpiRsGetPciRoutingTableLength (
0373 ACPI_OPERAND_OBJECT *PackageObject,
0374 ACPI_SIZE *BufferSizeNeeded);
0375
0376 ACPI_STATUS
0377 AcpiRsConvertAmlToResources (
0378 UINT8 *Aml,
0379 UINT32 Length,
0380 UINT32 Offset,
0381 UINT8 ResourceIndex,
0382 void **Context);
0383
0384 ACPI_STATUS
0385 AcpiRsConvertResourcesToAml (
0386 ACPI_RESOURCE *Resource,
0387 ACPI_SIZE AmlSizeNeeded,
0388 UINT8 *OutputBuffer);
0389
0390
0391
0392
0393
0394 void
0395 AcpiRsSetAddressCommon (
0396 AML_RESOURCE *Aml,
0397 ACPI_RESOURCE *Resource);
0398
0399 BOOLEAN
0400 AcpiRsGetAddressCommon (
0401 ACPI_RESOURCE *Resource,
0402 AML_RESOURCE *Aml);
0403
0404
0405
0406
0407
0408 ACPI_STATUS
0409 AcpiRsConvertAmlToResource (
0410 ACPI_RESOURCE *Resource,
0411 AML_RESOURCE *Aml,
0412 ACPI_RSCONVERT_INFO *Info);
0413
0414 ACPI_STATUS
0415 AcpiRsConvertResourceToAml (
0416 ACPI_RESOURCE *Resource,
0417 AML_RESOURCE *Aml,
0418 ACPI_RSCONVERT_INFO *Info);
0419
0420
0421
0422
0423
0424 void
0425 AcpiRsMoveData (
0426 void *Destination,
0427 void *Source,
0428 UINT16 ItemCount,
0429 UINT8 MoveType);
0430
0431 UINT8
0432 AcpiRsDecodeBitmask (
0433 UINT16 Mask,
0434 UINT8 *List);
0435
0436 UINT16
0437 AcpiRsEncodeBitmask (
0438 UINT8 *List,
0439 UINT8 Count);
0440
0441 ACPI_RS_LENGTH
0442 AcpiRsGetResourceSource (
0443 ACPI_RS_LENGTH ResourceLength,
0444 ACPI_RS_LENGTH MinimumLength,
0445 ACPI_RESOURCE_SOURCE *ResourceSource,
0446 AML_RESOURCE *Aml,
0447 char *StringPtr);
0448
0449 ACPI_RSDESC_SIZE
0450 AcpiRsSetResourceSource (
0451 AML_RESOURCE *Aml,
0452 ACPI_RS_LENGTH MinimumLength,
0453 ACPI_RESOURCE_SOURCE *ResourceSource);
0454
0455 void
0456 AcpiRsSetResourceHeader (
0457 UINT8 DescriptorType,
0458 ACPI_RSDESC_SIZE TotalLength,
0459 AML_RESOURCE *Aml);
0460
0461 void
0462 AcpiRsSetResourceLength (
0463 ACPI_RSDESC_SIZE TotalLength,
0464 AML_RESOURCE *Aml);
0465
0466
0467
0468
0469
0470 #ifdef ACPI_DEBUGGER
0471 void
0472 AcpiRsDumpResourceList (
0473 ACPI_RESOURCE *Resource);
0474
0475 void
0476 AcpiRsDumpIrqList (
0477 UINT8 *RouteTable);
0478 #endif
0479
0480
0481
0482
0483
0484 extern ACPI_RSCONVERT_INFO AcpiRsConvertDma[];
0485 extern ACPI_RSCONVERT_INFO AcpiRsConvertEndDpf[];
0486 extern ACPI_RSCONVERT_INFO AcpiRsConvertIo[];
0487 extern ACPI_RSCONVERT_INFO AcpiRsConvertFixedIo[];
0488 extern ACPI_RSCONVERT_INFO AcpiRsConvertEndTag[];
0489 extern ACPI_RSCONVERT_INFO AcpiRsConvertMemory24[];
0490 extern ACPI_RSCONVERT_INFO AcpiRsConvertGenericReg[];
0491 extern ACPI_RSCONVERT_INFO AcpiRsConvertMemory32[];
0492 extern ACPI_RSCONVERT_INFO AcpiRsConvertFixedMemory32[];
0493 extern ACPI_RSCONVERT_INFO AcpiRsConvertAddress32[];
0494 extern ACPI_RSCONVERT_INFO AcpiRsConvertAddress16[];
0495 extern ACPI_RSCONVERT_INFO AcpiRsConvertExtIrq[];
0496 extern ACPI_RSCONVERT_INFO AcpiRsConvertAddress64[];
0497 extern ACPI_RSCONVERT_INFO AcpiRsConvertExtAddress64[];
0498 extern ACPI_RSCONVERT_INFO AcpiRsConvertGpio[];
0499 extern ACPI_RSCONVERT_INFO AcpiRsConvertFixedDma[];
0500 extern ACPI_RSCONVERT_INFO AcpiRsConvertCsi2SerialBus[];
0501 extern ACPI_RSCONVERT_INFO AcpiRsConvertI2cSerialBus[];
0502 extern ACPI_RSCONVERT_INFO AcpiRsConvertSpiSerialBus[];
0503 extern ACPI_RSCONVERT_INFO AcpiRsConvertUartSerialBus[];
0504 extern ACPI_RSCONVERT_INFO AcpiRsConvertPinFunction[];
0505 extern ACPI_RSCONVERT_INFO AcpiRsConvertPinConfig[];
0506 extern ACPI_RSCONVERT_INFO AcpiRsConvertPinGroup[];
0507 extern ACPI_RSCONVERT_INFO AcpiRsConvertPinGroupFunction[];
0508 extern ACPI_RSCONVERT_INFO AcpiRsConvertPinGroupConfig[];
0509 extern ACPI_RSCONVERT_INFO AcpiRsConvertClockInput[];
0510
0511
0512
0513 extern ACPI_RSCONVERT_INFO AcpiRsGetIrq[];
0514 extern ACPI_RSCONVERT_INFO AcpiRsGetStartDpf[];
0515 extern ACPI_RSCONVERT_INFO AcpiRsGetVendorSmall[];
0516 extern ACPI_RSCONVERT_INFO AcpiRsGetVendorLarge[];
0517
0518 extern ACPI_RSCONVERT_INFO AcpiRsSetIrq[];
0519 extern ACPI_RSCONVERT_INFO AcpiRsSetStartDpf[];
0520 extern ACPI_RSCONVERT_INFO AcpiRsSetVendor[];
0521
0522
0523 #if defined(ACPI_DEBUG_OUTPUT) || defined(ACPI_DEBUGGER)
0524
0525
0526
0527 extern ACPI_RSDUMP_INFO *AcpiGbl_DumpResourceDispatch[];
0528 extern ACPI_RSDUMP_INFO *AcpiGbl_DumpSerialBusDispatch[];
0529
0530
0531
0532
0533 extern ACPI_RSDUMP_INFO AcpiRsDumpIrq[];
0534 extern ACPI_RSDUMP_INFO AcpiRsDumpPrt[];
0535 extern ACPI_RSDUMP_INFO AcpiRsDumpDma[];
0536 extern ACPI_RSDUMP_INFO AcpiRsDumpStartDpf[];
0537 extern ACPI_RSDUMP_INFO AcpiRsDumpEndDpf[];
0538 extern ACPI_RSDUMP_INFO AcpiRsDumpIo[];
0539 extern ACPI_RSDUMP_INFO AcpiRsDumpIoFlags[];
0540 extern ACPI_RSDUMP_INFO AcpiRsDumpFixedIo[];
0541 extern ACPI_RSDUMP_INFO AcpiRsDumpVendor[];
0542 extern ACPI_RSDUMP_INFO AcpiRsDumpEndTag[];
0543 extern ACPI_RSDUMP_INFO AcpiRsDumpMemory24[];
0544 extern ACPI_RSDUMP_INFO AcpiRsDumpMemory32[];
0545 extern ACPI_RSDUMP_INFO AcpiRsDumpMemoryFlags[];
0546 extern ACPI_RSDUMP_INFO AcpiRsDumpFixedMemory32[];
0547 extern ACPI_RSDUMP_INFO AcpiRsDumpAddress16[];
0548 extern ACPI_RSDUMP_INFO AcpiRsDumpAddress32[];
0549 extern ACPI_RSDUMP_INFO AcpiRsDumpAddress64[];
0550 extern ACPI_RSDUMP_INFO AcpiRsDumpExtAddress64[];
0551 extern ACPI_RSDUMP_INFO AcpiRsDumpExtIrq[];
0552 extern ACPI_RSDUMP_INFO AcpiRsDumpGenericReg[];
0553 extern ACPI_RSDUMP_INFO AcpiRsDumpGpio[];
0554 extern ACPI_RSDUMP_INFO AcpiRsDumpPinFunction[];
0555 extern ACPI_RSDUMP_INFO AcpiRsDumpFixedDma[];
0556 extern ACPI_RSDUMP_INFO AcpiRsDumpCommonSerialBus[];
0557 extern ACPI_RSDUMP_INFO AcpiRsDumpCsi2SerialBus[];
0558 extern ACPI_RSDUMP_INFO AcpiRsDumpI2cSerialBus[];
0559 extern ACPI_RSDUMP_INFO AcpiRsDumpSpiSerialBus[];
0560 extern ACPI_RSDUMP_INFO AcpiRsDumpUartSerialBus[];
0561 extern ACPI_RSDUMP_INFO AcpiRsDumpGeneralFlags[];
0562 extern ACPI_RSDUMP_INFO AcpiRsDumpPinConfig[];
0563 extern ACPI_RSDUMP_INFO AcpiRsDumpPinGroup[];
0564 extern ACPI_RSDUMP_INFO AcpiRsDumpPinGroupFunction[];
0565 extern ACPI_RSDUMP_INFO AcpiRsDumpPinGroupConfig[];
0566 extern ACPI_RSDUMP_INFO AcpiRsDumpClockInput[];
0567 #endif
0568
0569 #endif