[e16e8f2] | 1 | #ifndef _EFIPXEBC_H |
---|
| 2 | #define _EFIPXEBC_H |
---|
| 3 | |
---|
| 4 | /*++ |
---|
| 5 | |
---|
| 6 | Copyright (c) 1998 Intel Corporation |
---|
| 7 | |
---|
| 8 | Module Name: |
---|
| 9 | |
---|
| 10 | efipxebc.h |
---|
| 11 | |
---|
| 12 | Abstract: |
---|
| 13 | |
---|
| 14 | EFI PXE Base Code Protocol |
---|
| 15 | |
---|
| 16 | |
---|
| 17 | |
---|
| 18 | Revision History |
---|
| 19 | |
---|
| 20 | --*/ |
---|
| 21 | |
---|
| 22 | // |
---|
| 23 | // PXE Base Code protocol |
---|
| 24 | // |
---|
| 25 | |
---|
| 26 | #define EFI_PXE_BASE_CODE_PROTOCOL \ |
---|
| 27 | { 0x03c4e603, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} } |
---|
| 28 | |
---|
| 29 | INTERFACE_DECL(_EFI_PXE_BASE_CODE); |
---|
| 30 | |
---|
| 31 | #define DEFAULT_TTL 4 |
---|
| 32 | #define DEFAULT_ToS 0 |
---|
| 33 | // |
---|
| 34 | // Address definitions |
---|
| 35 | // |
---|
| 36 | |
---|
| 37 | typedef union { |
---|
| 38 | UINT32 Addr[4]; |
---|
| 39 | EFI_IPv4_ADDRESS v4; |
---|
| 40 | EFI_IPv6_ADDRESS v6; |
---|
| 41 | } EFI_IP_ADDRESS; |
---|
| 42 | |
---|
| 43 | typedef UINT16 EFI_PXE_BASE_CODE_UDP_PORT; |
---|
| 44 | |
---|
| 45 | // |
---|
| 46 | // Packet definitions |
---|
| 47 | // |
---|
| 48 | |
---|
| 49 | typedef struct { |
---|
| 50 | UINT8 BootpOpcode; |
---|
| 51 | UINT8 BootpHwType; |
---|
| 52 | UINT8 BootpHwAddrLen; |
---|
| 53 | UINT8 BootpGateHops; |
---|
| 54 | UINT32 BootpIdent; |
---|
| 55 | UINT16 BootpSeconds; |
---|
| 56 | UINT16 BootpFlags; |
---|
| 57 | UINT8 BootpCiAddr[4]; |
---|
| 58 | UINT8 BootpYiAddr[4]; |
---|
| 59 | UINT8 BootpSiAddr[4]; |
---|
| 60 | UINT8 BootpGiAddr[4]; |
---|
| 61 | UINT8 BootpHwAddr[16]; |
---|
| 62 | UINT8 BootpSrvName[64]; |
---|
| 63 | UINT8 BootpBootFile[128]; |
---|
| 64 | UINT32 DhcpMagik; |
---|
| 65 | UINT8 DhcpOptions[56]; |
---|
| 66 | } EFI_PXE_BASE_CODE_DHCPV4_PACKET; |
---|
| 67 | |
---|
| 68 | typedef struct { |
---|
| 69 | UINT32 MessageType:8; |
---|
| 70 | UINT32 TransactionId:24; |
---|
| 71 | UINT8 DhcpOptions[1024]; |
---|
| 72 | } EFI_PXE_BASE_CODE_DHCPV6_PACKET; |
---|
| 73 | |
---|
| 74 | typedef union { |
---|
| 75 | UINT8 Raw[1472]; |
---|
| 76 | EFI_PXE_BASE_CODE_DHCPV4_PACKET Dhcpv4; |
---|
| 77 | EFI_PXE_BASE_CODE_DHCPV6_PACKET Dhcpv6; |
---|
| 78 | } EFI_PXE_BASE_CODE_PACKET; |
---|
| 79 | |
---|
| 80 | typedef struct { |
---|
| 81 | UINT8 Type; |
---|
| 82 | UINT8 Code; |
---|
| 83 | UINT16 Checksum; |
---|
| 84 | union { |
---|
| 85 | UINT32 reserved; |
---|
| 86 | UINT32 Mtu; |
---|
| 87 | UINT32 Pointer; |
---|
| 88 | struct { |
---|
| 89 | UINT16 Identifier; |
---|
| 90 | UINT16 Sequence; |
---|
| 91 | } Echo; |
---|
| 92 | } u; |
---|
| 93 | UINT8 Data[494]; |
---|
| 94 | } EFI_PXE_BASE_CODE_ICMP_ERROR; |
---|
| 95 | |
---|
| 96 | typedef struct { |
---|
| 97 | UINT8 ErrorCode; |
---|
| 98 | CHAR8 ErrorString[127]; |
---|
| 99 | } EFI_PXE_BASE_CODE_TFTP_ERROR; |
---|
| 100 | |
---|
| 101 | // |
---|
| 102 | // IP Receive Filter definitions |
---|
| 103 | // |
---|
| 104 | #define EFI_PXE_BASE_CODE_MAX_IPCNT 8 |
---|
| 105 | typedef struct { |
---|
| 106 | UINT8 Filters; |
---|
| 107 | UINT8 IpCnt; |
---|
| 108 | UINT16 reserved; |
---|
| 109 | EFI_IP_ADDRESS IpList[EFI_PXE_BASE_CODE_MAX_IPCNT]; |
---|
| 110 | } EFI_PXE_BASE_CODE_IP_FILTER; |
---|
| 111 | |
---|
| 112 | #define EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP 0x0001 |
---|
| 113 | #define EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST 0x0002 |
---|
| 114 | #define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS 0x0004 |
---|
| 115 | #define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST 0x0008 |
---|
| 116 | |
---|
| 117 | // |
---|
| 118 | // ARP Cache definitions |
---|
| 119 | // |
---|
| 120 | |
---|
| 121 | typedef struct { |
---|
| 122 | EFI_IP_ADDRESS IpAddr; |
---|
| 123 | EFI_MAC_ADDRESS MacAddr; |
---|
| 124 | } EFI_PXE_BASE_CODE_ARP_ENTRY; |
---|
| 125 | |
---|
| 126 | typedef struct { |
---|
| 127 | EFI_IP_ADDRESS IpAddr; |
---|
| 128 | EFI_IP_ADDRESS SubnetMask; |
---|
| 129 | EFI_IP_ADDRESS GwAddr; |
---|
| 130 | } EFI_PXE_BASE_CODE_ROUTE_ENTRY; |
---|
| 131 | |
---|
| 132 | // |
---|
| 133 | // UDP definitions |
---|
| 134 | // |
---|
| 135 | |
---|
| 136 | #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_IP 0x0001 |
---|
| 137 | #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_SRC_PORT 0x0002 |
---|
| 138 | #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_IP 0x0004 |
---|
| 139 | #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_ANY_DEST_PORT 0x0008 |
---|
| 140 | #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_USE_FILTER 0x0010 |
---|
| 141 | #define EFI_PXE_BASE_CODE_UDP_OPFLAGS_MAY_FRAGMENT 0x0020 |
---|
| 142 | |
---|
| 143 | // |
---|
| 144 | // Discover() definitions |
---|
| 145 | // |
---|
| 146 | |
---|
| 147 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_BOOTSTRAP 0 |
---|
| 148 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_MS_WINNT_RIS 1 |
---|
| 149 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_INTEL_LCM 2 |
---|
| 150 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_DOSUNDI 3 |
---|
| 151 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_NEC_ESMPRO 4 |
---|
| 152 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_WSoD 5 |
---|
| 153 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_IBM_LCCM 6 |
---|
| 154 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_CA_UNICENTER_TNG 7 |
---|
| 155 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_HP_OPENVIEW 8 |
---|
| 156 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_9 9 |
---|
| 157 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_10 10 |
---|
| 158 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_ALTIRIS_11 11 |
---|
| 159 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_NOT_USED_12 12 |
---|
| 160 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_INSTALL 13 |
---|
| 161 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_REDHAT_BOOT 14 |
---|
| 162 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_REMBO 15 |
---|
| 163 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_BEOBOOT 16 |
---|
| 164 | // |
---|
| 165 | // 17 through 32767 are reserved |
---|
| 166 | // 32768 through 65279 are for vendor use |
---|
| 167 | // 65280 through 65534 are reserved |
---|
| 168 | // |
---|
| 169 | #define EFI_PXE_BASE_CODE_BOOT_TYPE_PXETEST 65535 |
---|
| 170 | |
---|
| 171 | #define EFI_PXE_BASE_CODE_BOOT_LAYER_MASK 0x7FFF |
---|
| 172 | #define EFI_PXE_BASE_CODE_BOOT_LAYER_INITIAL 0x0000 |
---|
| 173 | |
---|
| 174 | |
---|
| 175 | typedef struct { |
---|
| 176 | UINT16 Type; |
---|
| 177 | BOOLEAN AcceptAnyResponse; |
---|
| 178 | UINT8 Reserved; |
---|
| 179 | EFI_IP_ADDRESS IpAddr; |
---|
| 180 | } EFI_PXE_BASE_CODE_SRVLIST; |
---|
| 181 | |
---|
| 182 | typedef struct { |
---|
| 183 | BOOLEAN UseMCast; |
---|
| 184 | BOOLEAN UseBCast; |
---|
| 185 | BOOLEAN UseUCast; |
---|
| 186 | BOOLEAN MustUseList; |
---|
| 187 | EFI_IP_ADDRESS ServerMCastIp; |
---|
| 188 | UINT16 IpCnt; |
---|
| 189 | EFI_PXE_BASE_CODE_SRVLIST SrvList[1]; |
---|
| 190 | } EFI_PXE_BASE_CODE_DISCOVER_INFO; |
---|
| 191 | |
---|
| 192 | // |
---|
| 193 | // Mtftp() definitions |
---|
| 194 | // |
---|
| 195 | |
---|
| 196 | typedef enum { |
---|
| 197 | EFI_PXE_BASE_CODE_TFTP_FIRST, |
---|
| 198 | EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE, |
---|
| 199 | EFI_PXE_BASE_CODE_TFTP_READ_FILE, |
---|
| 200 | EFI_PXE_BASE_CODE_TFTP_WRITE_FILE, |
---|
| 201 | EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY, |
---|
| 202 | EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE, |
---|
| 203 | EFI_PXE_BASE_CODE_MTFTP_READ_FILE, |
---|
| 204 | EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY, |
---|
| 205 | EFI_PXE_BASE_CODE_MTFTP_LAST |
---|
| 206 | } EFI_PXE_BASE_CODE_TFTP_OPCODE; |
---|
| 207 | |
---|
| 208 | typedef struct { |
---|
| 209 | EFI_IP_ADDRESS MCastIp; |
---|
| 210 | EFI_PXE_BASE_CODE_UDP_PORT CPort; |
---|
| 211 | EFI_PXE_BASE_CODE_UDP_PORT SPort; |
---|
| 212 | UINT16 ListenTimeout; |
---|
| 213 | UINT16 TransmitTimeout; |
---|
| 214 | } EFI_PXE_BASE_CODE_MTFTP_INFO; |
---|
| 215 | |
---|
| 216 | // |
---|
| 217 | // PXE Base Code Mode structure |
---|
| 218 | // |
---|
| 219 | |
---|
| 220 | #define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8 |
---|
| 221 | #define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8 |
---|
| 222 | |
---|
| 223 | typedef struct { |
---|
| 224 | BOOLEAN Started; |
---|
| 225 | BOOLEAN Ipv6Available; |
---|
| 226 | BOOLEAN Ipv6Supported; |
---|
| 227 | BOOLEAN UsingIpv6; |
---|
| 228 | BOOLEAN BisSupported; |
---|
| 229 | BOOLEAN BisDetected; |
---|
| 230 | BOOLEAN AutoArp; |
---|
| 231 | BOOLEAN SendGUID; |
---|
| 232 | BOOLEAN DhcpDiscoverValid; |
---|
| 233 | BOOLEAN DhcpAckReceived; |
---|
| 234 | BOOLEAN ProxyOfferReceived; |
---|
| 235 | BOOLEAN PxeDiscoverValid; |
---|
| 236 | BOOLEAN PxeReplyReceived; |
---|
| 237 | BOOLEAN PxeBisReplyReceived; |
---|
| 238 | BOOLEAN IcmpErrorReceived; |
---|
| 239 | BOOLEAN TftpErrorReceived; |
---|
| 240 | BOOLEAN MakeCallbacks; |
---|
| 241 | UINT8 TTL; |
---|
| 242 | UINT8 ToS; |
---|
| 243 | EFI_IP_ADDRESS StationIp; |
---|
| 244 | EFI_IP_ADDRESS SubnetMask; |
---|
| 245 | EFI_PXE_BASE_CODE_PACKET DhcpDiscover; |
---|
| 246 | EFI_PXE_BASE_CODE_PACKET DhcpAck; |
---|
| 247 | EFI_PXE_BASE_CODE_PACKET ProxyOffer; |
---|
| 248 | EFI_PXE_BASE_CODE_PACKET PxeDiscover; |
---|
| 249 | EFI_PXE_BASE_CODE_PACKET PxeReply; |
---|
| 250 | EFI_PXE_BASE_CODE_PACKET PxeBisReply; |
---|
| 251 | EFI_PXE_BASE_CODE_IP_FILTER IpFilter; |
---|
| 252 | UINT32 ArpCacheEntries; |
---|
| 253 | EFI_PXE_BASE_CODE_ARP_ENTRY ArpCache[EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES]; |
---|
| 254 | UINT32 RouteTableEntries; |
---|
| 255 | EFI_PXE_BASE_CODE_ROUTE_ENTRY RouteTable[EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES]; |
---|
| 256 | EFI_PXE_BASE_CODE_ICMP_ERROR IcmpError; |
---|
| 257 | EFI_PXE_BASE_CODE_TFTP_ERROR TftpError; |
---|
| 258 | } EFI_PXE_BASE_CODE_MODE; |
---|
| 259 | |
---|
| 260 | // |
---|
| 261 | // PXE Base Code Interface Function definitions |
---|
| 262 | // |
---|
| 263 | |
---|
| 264 | typedef |
---|
| 265 | EFI_STATUS |
---|
| 266 | (EFIAPI *EFI_PXE_BASE_CODE_START) ( |
---|
| 267 | IN struct _EFI_PXE_BASE_CODE *This, |
---|
| 268 | IN BOOLEAN UseIpv6 |
---|
| 269 | ); |
---|
| 270 | |
---|
| 271 | typedef |
---|
| 272 | EFI_STATUS |
---|
| 273 | (EFIAPI *EFI_PXE_BASE_CODE_STOP) ( |
---|
| 274 | IN struct _EFI_PXE_BASE_CODE *This |
---|
| 275 | ); |
---|
| 276 | |
---|
| 277 | typedef |
---|
| 278 | EFI_STATUS |
---|
| 279 | (EFIAPI *EFI_PXE_BASE_CODE_DHCP) ( |
---|
| 280 | IN struct _EFI_PXE_BASE_CODE *This, |
---|
| 281 | IN BOOLEAN SortOffers |
---|
| 282 | ); |
---|
| 283 | |
---|
| 284 | typedef |
---|
| 285 | EFI_STATUS |
---|
| 286 | (EFIAPI *EFI_PXE_BASE_CODE_DISCOVER) ( |
---|
| 287 | IN struct _EFI_PXE_BASE_CODE *This, |
---|
| 288 | IN UINT16 Type, |
---|
| 289 | IN UINT16 *Layer, |
---|
| 290 | IN BOOLEAN UseBis, |
---|
| 291 | IN OUT EFI_PXE_BASE_CODE_DISCOVER_INFO *Info OPTIONAL |
---|
| 292 | ); |
---|
| 293 | |
---|
| 294 | typedef |
---|
| 295 | EFI_STATUS |
---|
| 296 | (EFIAPI *EFI_PXE_BASE_CODE_MTFTP) ( |
---|
| 297 | IN struct _EFI_PXE_BASE_CODE *This, |
---|
| 298 | IN EFI_PXE_BASE_CODE_TFTP_OPCODE Operation, |
---|
| 299 | IN OUT VOID *BufferPtr OPTIONAL, |
---|
| 300 | IN BOOLEAN Overwrite, |
---|
| 301 | IN OUT UINT64 *BufferSize, |
---|
| 302 | IN UINTN *BlockSize OPTIONAL, |
---|
| 303 | IN EFI_IP_ADDRESS *ServerIp, |
---|
| 304 | IN UINT8 *Filename, |
---|
| 305 | IN EFI_PXE_BASE_CODE_MTFTP_INFO *Info OPTIONAL, |
---|
| 306 | IN BOOLEAN DontUseBuffer |
---|
| 307 | ); |
---|
| 308 | |
---|
| 309 | typedef |
---|
| 310 | EFI_STATUS |
---|
| 311 | (EFIAPI *EFI_PXE_BASE_CODE_UDP_WRITE) ( |
---|
| 312 | IN struct _EFI_PXE_BASE_CODE *This, |
---|
| 313 | IN UINT16 OpFlags, |
---|
| 314 | IN EFI_IP_ADDRESS *DestIp, |
---|
| 315 | IN EFI_PXE_BASE_CODE_UDP_PORT *DestPort, |
---|
| 316 | IN EFI_IP_ADDRESS *GatewayIp, OPTIONAL |
---|
| 317 | IN EFI_IP_ADDRESS *SrcIp, OPTIONAL |
---|
| 318 | IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort, OPTIONAL |
---|
| 319 | IN UINTN *HeaderSize, OPTIONAL |
---|
| 320 | IN VOID *HeaderPtr, OPTIONAL |
---|
| 321 | IN UINTN *BufferSize, |
---|
| 322 | IN VOID *BufferPtr |
---|
| 323 | ); |
---|
| 324 | |
---|
| 325 | typedef |
---|
| 326 | EFI_STATUS |
---|
| 327 | (EFIAPI *EFI_PXE_BASE_CODE_UDP_READ) ( |
---|
| 328 | IN struct _EFI_PXE_BASE_CODE *This, |
---|
| 329 | IN UINT16 OpFlags, |
---|
| 330 | IN OUT EFI_IP_ADDRESS *DestIp, OPTIONAL |
---|
| 331 | IN OUT EFI_PXE_BASE_CODE_UDP_PORT *DestPort, OPTIONAL |
---|
| 332 | IN OUT EFI_IP_ADDRESS *SrcIp, OPTIONAL |
---|
| 333 | IN OUT EFI_PXE_BASE_CODE_UDP_PORT *SrcPort, OPTIONAL |
---|
| 334 | IN UINTN *HeaderSize, OPTIONAL |
---|
| 335 | IN VOID *HeaderPtr, OPTIONAL |
---|
| 336 | IN OUT UINTN *BufferSize, |
---|
| 337 | IN VOID *BufferPtr |
---|
| 338 | ); |
---|
| 339 | |
---|
| 340 | typedef |
---|
| 341 | EFI_STATUS |
---|
| 342 | (EFIAPI *EFI_PXE_BASE_CODE_SET_IP_FILTER) ( |
---|
| 343 | IN struct _EFI_PXE_BASE_CODE *This, |
---|
| 344 | IN EFI_PXE_BASE_CODE_IP_FILTER *NewFilter |
---|
| 345 | ); |
---|
| 346 | |
---|
| 347 | typedef |
---|
| 348 | EFI_STATUS |
---|
| 349 | (EFIAPI *EFI_PXE_BASE_CODE_ARP) ( |
---|
| 350 | IN struct _EFI_PXE_BASE_CODE *This, |
---|
| 351 | IN EFI_IP_ADDRESS *IpAddr, |
---|
| 352 | IN EFI_MAC_ADDRESS *MacAddr OPTIONAL |
---|
| 353 | ); |
---|
| 354 | |
---|
| 355 | typedef |
---|
| 356 | EFI_STATUS |
---|
| 357 | (EFIAPI *EFI_PXE_BASE_CODE_SET_PARAMETERS) ( |
---|
| 358 | IN struct _EFI_PXE_BASE_CODE *This, |
---|
| 359 | IN BOOLEAN *NewAutoArp, OPTIONAL |
---|
| 360 | IN BOOLEAN *NewSendGUID, OPTIONAL |
---|
| 361 | IN UINT8 *NewTTL, OPTIONAL |
---|
| 362 | IN UINT8 *NewToS, OPTIONAL |
---|
| 363 | IN BOOLEAN *NewMakeCallback OPTIONAL |
---|
| 364 | ); |
---|
| 365 | |
---|
| 366 | typedef |
---|
| 367 | EFI_STATUS |
---|
| 368 | (EFIAPI *EFI_PXE_BASE_CODE_SET_STATION_IP) ( |
---|
| 369 | IN struct _EFI_PXE_BASE_CODE *This, |
---|
| 370 | IN EFI_IP_ADDRESS *NewStationIp, OPTIONAL |
---|
| 371 | IN EFI_IP_ADDRESS *NewSubnetMask OPTIONAL |
---|
| 372 | ); |
---|
| 373 | |
---|
| 374 | typedef |
---|
| 375 | EFI_STATUS |
---|
| 376 | (EFIAPI *EFI_PXE_BASE_CODE_SET_PACKETS) ( |
---|
| 377 | IN struct _EFI_PXE_BASE_CODE *This, |
---|
| 378 | BOOLEAN *NewDhcpDiscoverValid, OPTIONAL |
---|
| 379 | BOOLEAN *NewDhcpAckReceived, OPTIONAL |
---|
| 380 | BOOLEAN *NewProxyOfferReceived, OPTIONAL |
---|
| 381 | BOOLEAN *NewPxeDiscoverValid, OPTIONAL |
---|
| 382 | BOOLEAN *NewPxeReplyReceived, OPTIONAL |
---|
| 383 | BOOLEAN *NewPxeBisReplyReceived,OPTIONAL |
---|
| 384 | IN EFI_PXE_BASE_CODE_PACKET *NewDhcpDiscover, OPTIONAL |
---|
| 385 | IN EFI_PXE_BASE_CODE_PACKET *NewDhcpAck, OPTIONAL |
---|
| 386 | IN EFI_PXE_BASE_CODE_PACKET *NewProxyOffer, OPTIONAL |
---|
| 387 | IN EFI_PXE_BASE_CODE_PACKET *NewPxeDiscover, OPTIONAL |
---|
| 388 | IN EFI_PXE_BASE_CODE_PACKET *NewPxeReply, OPTIONAL |
---|
| 389 | IN EFI_PXE_BASE_CODE_PACKET *NewPxeBisReply OPTIONAL |
---|
| 390 | ); |
---|
| 391 | |
---|
| 392 | // |
---|
| 393 | // PXE Base Code Protocol structure |
---|
| 394 | // |
---|
| 395 | |
---|
| 396 | #define EFI_PXE_BASE_CODE_INTERFACE_REVISION 0x00010000 |
---|
| 397 | |
---|
| 398 | typedef struct _EFI_PXE_BASE_CODE { |
---|
| 399 | UINT64 Revision; |
---|
| 400 | EFI_PXE_BASE_CODE_START Start; |
---|
| 401 | EFI_PXE_BASE_CODE_STOP Stop; |
---|
| 402 | EFI_PXE_BASE_CODE_DHCP Dhcp; |
---|
| 403 | EFI_PXE_BASE_CODE_DISCOVER Discover; |
---|
| 404 | EFI_PXE_BASE_CODE_MTFTP Mtftp; |
---|
| 405 | EFI_PXE_BASE_CODE_UDP_WRITE UdpWrite; |
---|
| 406 | EFI_PXE_BASE_CODE_UDP_READ UdpRead; |
---|
| 407 | EFI_PXE_BASE_CODE_SET_IP_FILTER SetIpFilter; |
---|
| 408 | EFI_PXE_BASE_CODE_ARP Arp; |
---|
| 409 | EFI_PXE_BASE_CODE_SET_PARAMETERS SetParameters; |
---|
| 410 | EFI_PXE_BASE_CODE_SET_STATION_IP SetStationIp; |
---|
| 411 | EFI_PXE_BASE_CODE_SET_PACKETS SetPackets; |
---|
| 412 | EFI_PXE_BASE_CODE_MODE *Mode; |
---|
| 413 | } EFI_PXE_BASE_CODE; |
---|
| 414 | |
---|
| 415 | // |
---|
| 416 | // Call Back Definitions |
---|
| 417 | // |
---|
| 418 | |
---|
| 419 | #define EFI_PXE_BASE_CODE_CALLBACK_PROTOCOL \ |
---|
| 420 | { 0x245dca21, 0xfb7b, 0x11d3, {0x8f, 0x01, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b} } |
---|
| 421 | |
---|
| 422 | // |
---|
| 423 | // Revision Number |
---|
| 424 | // |
---|
| 425 | |
---|
| 426 | #define EFI_PXE_BASE_CODE_CALLBACK_INTERFACE_REVISION 0x00010000 |
---|
| 427 | |
---|
| 428 | INTERFACE_DECL(_EFI_PXE_BASE_CODE_CALLBACK); |
---|
| 429 | |
---|
| 430 | typedef enum { |
---|
| 431 | EFI_PXE_BASE_CODE_FUNCTION_FIRST, |
---|
| 432 | EFI_PXE_BASE_CODE_FUNCTION_DHCP, |
---|
| 433 | EFI_PXE_BASE_CODE_FUNCTION_DISCOVER, |
---|
| 434 | EFI_PXE_BASE_CODE_FUNCTION_MTFTP, |
---|
| 435 | EFI_PXE_BASE_CODE_FUNCTION_UDP_WRITE, |
---|
| 436 | EFI_PXE_BASE_CODE_FUNCTION_UDP_READ, |
---|
| 437 | EFI_PXE_BASE_CODE_FUNCTION_ARP, |
---|
| 438 | EFI_PXE_BASE_CODE_FUNCTION_IGMP, |
---|
| 439 | EFI_PXE_BASE_CODE_PXE_FUNCTION_LAST |
---|
| 440 | } EFI_PXE_BASE_CODE_FUNCTION; |
---|
| 441 | |
---|
| 442 | typedef enum { |
---|
| 443 | EFI_PXE_BASE_CODE_CALLBACK_STATUS_FIRST, |
---|
| 444 | EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE, |
---|
| 445 | EFI_PXE_BASE_CODE_CALLBACK_STATUS_ABORT, |
---|
| 446 | EFI_PXE_BASE_CODE_CALLBACK_STATUS_LAST |
---|
| 447 | } EFI_PXE_BASE_CODE_CALLBACK_STATUS; |
---|
| 448 | |
---|
| 449 | typedef |
---|
| 450 | EFI_PXE_BASE_CODE_CALLBACK_STATUS |
---|
| 451 | (EFIAPI *EFI_PXE_CALLBACK) ( |
---|
| 452 | IN struct _EFI_PXE_BASE_CODE_CALLBACK *This, |
---|
| 453 | IN EFI_PXE_BASE_CODE_FUNCTION Function, |
---|
| 454 | IN BOOLEAN Received, |
---|
| 455 | IN UINT32 PacketLen, |
---|
| 456 | IN EFI_PXE_BASE_CODE_PACKET *Packet OPTIONAL |
---|
| 457 | ); |
---|
| 458 | |
---|
| 459 | typedef struct _EFI_PXE_BASE_CODE_CALLBACK { |
---|
| 460 | UINT64 Revision; |
---|
| 461 | EFI_PXE_CALLBACK Callback; |
---|
| 462 | } EFI_PXE_BASE_CODE_CALLBACK; |
---|
| 463 | |
---|
| 464 | #endif /* _EFIPXEBC_H */ |
---|