]> git.proxmox.com Git - mirror_edk2.git/blame - MdePkg/Include/IndustryStandard/IScsiBootFirmwareTable.h
Revert all the #pramga(1) related patches to r6434, we need to review all the updates...
[mirror_edk2.git] / MdePkg / Include / IndustryStandard / IScsiBootFirmwareTable.h
CommitLineData
e3b1115e 1/** @file\r
766f4bc1 2 The definition for iSCSI Boot Firmware Table, it's defined in\r
3 Microsoft iBFT document. \r
000f6a28 4 \r
5 Copyright (c) 2006 - 2008, Intel Corporation\r
c311f86b 6 All rights reserved. This program and the accompanying materials \r
7 are licensed and made available under the terms and conditions of the BSD License \r
8 which accompanies this distribution. The full text of the license may be found at \r
9 http://opensource.org/licenses/bsd-license.php \r
10\r
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
13\r
e3b1115e 14**/\r
15\r
16#ifndef _ISCSI_BOOT_FIRMWARE_TABLE_H_\r
17#define _ISCSI_BOOT_FIRMWARE_TABLE_H_\r
18\r
732fb201 19#include "Acpi30.h"\r
e3b1115e 20\r
21#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_REVISION 0x01\r
22#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_ALIGNMENT 8\r
23\r
000f6a28 24///\r
25/// Structure Type/ID\r
26///\r
42eedea9 27typedef enum {\r
e3b1115e 28 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_RESERVED_STRUCTURE_ID = 0,\r
29 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_ID,\r
30 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_ID,\r
31 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_ID,\r
32 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_ID,\r
1b2afeaa 33 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_EXTERNSIONS_STRUCTURE_ID\r
42eedea9 34} EFI_ACPI_ISCSI_ID_DEFINITIONS;\r
e3b1115e 35\r
000f6a28 36///\r
37/// from the definition of IP_PREFIX_ORIGIN Enumeration in MSDN,\r
38/// not defined in Microsoft iBFT document.\r
39///\r
42eedea9 40typedef enum {\r
e3b1115e 41 IpPrefixOriginOther = 0,\r
42 IpPrefixOriginManual,\r
43 IpPrefixOriginWellKnown,\r
44 IpPrefixOriginDhcp,\r
45 IpPrefixOriginRouterAdvertisement,\r
46 IpPrefixOriginUnchanged = 16\r
42eedea9 47} IP_PREFIX_VALUE;\r
e3b1115e 48\r
766f4bc1 49#pragma pack(1)\r
50\r
000f6a28 51///\r
52/// iBF Table Header\r
53///\r
e3b1115e 54typedef struct {\r
55 UINT32 Signature;\r
56 UINT32 Length;\r
57 UINT8 Revision;\r
58 UINT8 Checksum;\r
59 UINT8 OemId[6];\r
60 UINT64 OemTableId;\r
61 UINT8 Reserved[24];\r
62} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_HEADER;\r
63\r
000f6a28 64///\r
65/// Common Header of Boot Firmware Table Structure \r
66///\r
e3b1115e 67typedef struct {\r
68 UINT8 StructureId;\r
69 UINT8 Version;\r
70 UINT16 Length;\r
71 UINT8 Index;\r
72 UINT8 Flags;\r
73} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER;\r
74\r
000f6a28 75///\r
76/// Control Structure\r
77///\r
e3b1115e 78typedef struct {\r
79 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header;\r
80 UINT16 Extensions;\r
81 UINT16 InitiatorOffset;\r
82 UINT16 NIC0Offset;\r
83 UINT16 Target0Offset;\r
84 UINT16 NIC1Offset;\r
85 UINT16 Target1Offset; \r
86} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE;\r
87\r
766f4bc1 88#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_VERSION 0x1\r
89#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_CONTROL_STRUCTURE_FLAG_BOOT_FAILOVER 0x1\r
e3b1115e 90\r
000f6a28 91///\r
92/// Initiator Structure\r
93///\r
e3b1115e 94typedef struct {\r
95 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header;\r
96 EFI_IPv6_ADDRESS ISnsServer;\r
97 EFI_IPv6_ADDRESS SlpServer;\r
98 EFI_IPv6_ADDRESS PrimaryRadiusServer;\r
99 EFI_IPv6_ADDRESS SecondaryRadiusServer;\r
100 UINT16 IScsiNameLength;\r
101 UINT16 IScsiNameOffset;\r
102} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE;\r
103\r
766f4bc1 104#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_VERSION 0x1\r
105#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_FLAG_BLOCK_VALID 0x1 \r
106#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_INITIATOR_STRUCTURE_FLAG_BOOT_SELECTED 0x2 \r
e3b1115e 107\r
000f6a28 108///\r
109/// NIC Structure\r
110///\r
e3b1115e 111typedef struct {\r
112 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header;\r
113 EFI_IPv6_ADDRESS Ip;\r
114 UINT8 SubnetMaskPrefixLength;\r
115 UINT8 Origin;\r
116 EFI_IPv6_ADDRESS Gateway;\r
117 EFI_IPv6_ADDRESS PrimaryDns;\r
118 EFI_IPv6_ADDRESS SecondaryDns;\r
119 EFI_IPv6_ADDRESS DhcpServer;\r
120 UINT16 VLanTag;\r
121 UINT8 Mac[6];\r
122 UINT16 PciLocation;\r
123 UINT16 HostNameLength;\r
124 UINT16 HostNameOffset;\r
125} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE;\r
126\r
766f4bc1 127#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_VERSION 0x1\r
128#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_BLOCK_VALID 0x1\r
129#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_BOOT_SELECTED 0x2\r
130#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_NIC_STRUCTURE_FLAG_GLOBAL 0x4\r
e3b1115e 131\r
000f6a28 132///\r
133/// Target Structure\r
134///\r
e3b1115e 135typedef struct {\r
136 EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_STRUCTURE_HEADER Header;\r
137 EFI_IPv6_ADDRESS Ip;\r
138 UINT16 Port;\r
139 UINT8 BootLun[8];\r
140 UINT8 CHAPType;\r
141 UINT8 NicIndex;\r
142 UINT16 IScsiNameLength;\r
143 UINT16 IScsiNameOffset;\r
144 UINT16 CHAPNameLength;\r
145 UINT16 CHAPNameOffset;\r
146 UINT16 CHAPSecretLength;\r
147 UINT16 CHAPSecretOffset;\r
148 UINT16 ReverseCHAPNameLength;\r
149 UINT16 ReverseCHAPNameOffset;\r
150 UINT16 ReverseCHAPSecretLength;\r
151 UINT16 ReverseCHAPSecretOffset;\r
152} EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE;\r
153\r
766f4bc1 154#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_VERSION 0x1\r
155#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_BLOCK_VALID 0x1\r
156#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_BOOT_SELECTED 0x2\r
157#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_RADIUS_CHAP 0x4\r
158#define EFI_ACPI_ISCSI_BOOT_FIRMWARE_TABLE_TARGET_STRUCTURE_FLAG_RADIUS_RCHAP 0x8\r
000f6a28 159\r
766f4bc1 160#pragma pack()\r
e3b1115e 161\r
162#endif\r
163\r