]>
Commit | Line | Data |
---|---|---|
6c9f218b NOL |
1 | /**@file\r |
2 | Hardware info types' definitions.\r | |
3 | General hardware info types to parse the binary data\r | |
4 | \r | |
5 | Copyright 2021 - 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r | |
6 | SPDX-License-Identifier: BSD-2-Clause-Patent\r | |
7 | \r | |
8 | **/\r | |
9 | \r | |
10 | #ifndef __HARDWARE_INFO_TYPES_LIB_H__\r | |
11 | #define __HARDWARE_INFO_TYPES_LIB_H__\r | |
12 | \r | |
13 | // Specific hardware types:\r | |
14 | #include "HardwareInfoPciHostBridgeLib.h"\r | |
15 | \r | |
16 | //\r | |
17 | // Hardware info types enumeration listing the supported\r | |
18 | // types which have an associated type definition\r | |
19 | //\r | |
20 | typedef enum {\r | |
21 | HardwareInfoTypeUndefined = 0,\r | |
22 | HardwareInfoTypeHostBridge = 1,\r | |
23 | \r | |
24 | HardwareInfoTypeMax\r | |
25 | } HARDWARE_INFO_TYPE;\r | |
26 | \r | |
27 | //\r | |
28 | // Header format preceding and describing an associated hardware\r | |
29 | // info element\r | |
30 | //\r | |
31 | #pragma pack(1)\r | |
32 | typedef struct {\r | |
33 | union {\r | |
34 | UINT64 Uint64;\r | |
35 | HARDWARE_INFO_TYPE Value;\r | |
36 | } Type;\r | |
37 | UINT64 Size;\r | |
38 | } HARDWARE_INFO_HEADER;\r | |
39 | #pragma pack()\r | |
40 | \r | |
41 | //\r | |
42 | // Generic data structure to access any supported hardware type\r | |
43 | // resource definition\r | |
44 | //\r | |
45 | #pragma pack(1)\r | |
46 | typedef struct {\r | |
47 | LIST_ENTRY Link;\r | |
48 | HARDWARE_INFO_HEADER Header;\r | |
49 | union {\r | |
50 | UINT8 *Raw;\r | |
51 | HOST_BRIDGE_INFO *PciHostBridge;\r | |
52 | } Data;\r | |
53 | } HARDWARE_INFO;\r | |
54 | #pragma pack()\r | |
55 | \r | |
56 | #define HARDWARE_INFO_FROM_LINK(a) \\r | |
57 | BASE_CR (a, HARDWARE_INFO, Link)\r | |
58 | \r | |
59 | #endif // __HARDWARE_INFO_TYPES_LIB_H__\r |