iPXE
Data Structures | Defines | Typedefs | Functions | Variables
Mtftp4.h File Reference

EFI Multicast Trivial File Transfer Protocol Definition. More...

Go to the source code of this file.

Data Structures

struct  EFI_MTFTP4_REQ_HEADER
struct  EFI_MTFTP4_OACK_HEADER
struct  EFI_MTFTP4_DATA_HEADER
struct  EFI_MTFTP4_ACK_HEADER
struct  EFI_MTFTP4_DATA8_HEADER
struct  EFI_MTFTP4_ACK8_HEADER
struct  EFI_MTFTP4_ERROR_HEADER
union  EFI_MTFTP4_PACKET
struct  EFI_MTFTP4_OPTION
 MTFTP4 option definition. More...
struct  EFI_MTFTP4_CONFIG_DATA
struct  EFI_MTFTP4_MODE_DATA
struct  EFI_MTFTP4_OVERRIDE_DATA
struct  _EFI_MTFTP4_PROTOCOL
 The EFI_MTFTP4_PROTOCOL is designed to be used by UEFI drivers and applications to transmit and receive data files. More...
struct  _EFI_MTFTP4_TOKEN

Defines

#define EFI_MTFTP4_SERVICE_BINDING_PROTOCOL_GUID
#define EFI_MTFTP4_PROTOCOL_GUID
#define EFI_MTFTP4_OPCODE_RRQ   1
#define EFI_MTFTP4_OPCODE_WRQ   2
#define EFI_MTFTP4_OPCODE_DATA   3
#define EFI_MTFTP4_OPCODE_ACK   4
#define EFI_MTFTP4_OPCODE_ERROR   5
#define EFI_MTFTP4_OPCODE_OACK   6
#define EFI_MTFTP4_OPCODE_DIR   7
#define EFI_MTFTP4_OPCODE_DATA8   8
#define EFI_MTFTP4_OPCODE_ACK8   9
#define EFI_MTFTP4_ERRORCODE_NOT_DEFINED   0
#define EFI_MTFTP4_ERRORCODE_FILE_NOT_FOUND   1
#define EFI_MTFTP4_ERRORCODE_ACCESS_VIOLATION   2
#define EFI_MTFTP4_ERRORCODE_DISK_FULL   3
#define EFI_MTFTP4_ERRORCODE_ILLEGAL_OPERATION   4
#define EFI_MTFTP4_ERRORCODE_UNKNOWN_TRANSFER_ID   5
#define EFI_MTFTP4_ERRORCODE_FILE_ALREADY_EXISTS   6
#define EFI_MTFTP4_ERRORCODE_NO_SUCH_USER   7
#define EFI_MTFTP4_ERRORCODE_REQUEST_DENIED   8

Typedefs

typedef struct _EFI_MTFTP4_PROTOCOL EFI_MTFTP4_PROTOCOL
typedef struct _EFI_MTFTP4_TOKEN EFI_MTFTP4_TOKEN
typedef EFI_STATUS(EFIAPIEFI_MTFTP4_CHECK_PACKET )(IN EFI_MTFTP4_PROTOCOL *This, IN EFI_MTFTP4_TOKEN *Token, IN UINT16 PacketLen, IN EFI_MTFTP4_PACKET *Paket)
 A callback function that is provided by the caller to intercept the EFI_MTFTP4_OPCODE_DATA or EFI_MTFTP4_OPCODE_DATA8 packets processed in the EFI_MTFTP4_PROTOCOL.ReadFile() function, and alternatively to intercept EFI_MTFTP4_OPCODE_OACK or EFI_MTFTP4_OPCODE_ERROR packets during a call to EFI_MTFTP4_PROTOCOL.ReadFile(), WriteFile() or ReadDirectory().
typedef EFI_STATUS(EFIAPIEFI_MTFTP4_TIMEOUT_CALLBACK )(IN EFI_MTFTP4_PROTOCOL *This, IN EFI_MTFTP4_TOKEN *Token)
 Timeout callback function.
typedef EFI_STATUS(EFIAPIEFI_MTFTP4_PACKET_NEEDED )(IN EFI_MTFTP4_PROTOCOL *This, IN EFI_MTFTP4_TOKEN *Token, IN OUT UINT16 *Length, OUT VOID **Buffer)
 A callback function that the caller provides to feed data to the EFI_MTFTP4_PROTOCOL.WriteFile() function.
typedef EFI_STATUS(EFIAPIEFI_MTFTP4_GET_MODE_DATA )(IN EFI_MTFTP4_PROTOCOL *This, OUT EFI_MTFTP4_MODE_DATA *ModeData)
 Submits an asynchronous interrupt transfer to an interrupt endpoint of a USB device.
typedef EFI_STATUS(EFIAPIEFI_MTFTP4_CONFIGURE )(IN EFI_MTFTP4_PROTOCOL *This, IN EFI_MTFTP4_CONFIG_DATA *MtftpConfigData OPTIONAL)
 Initializes, changes, or resets the default operational setting for this EFI MTFTPv4 Protocol driver instance.
typedef EFI_STATUS(EFIAPIEFI_MTFTP4_GET_INFO )(IN EFI_MTFTP4_PROTOCOL *This, IN EFI_MTFTP4_OVERRIDE_DATA *OverrideData OPTIONAL, IN UINT8 *Filename, IN UINT8 *ModeStr OPTIONAL, IN UINT8 OptionCount, IN EFI_MTFTP4_OPTION *OptionList, OUT UINT32 *PacketLength, OUT EFI_MTFTP4_PACKET **Packet OPTIONAL)
 Gets information about a file from an MTFTPv4 server.
typedef EFI_STATUS(EFIAPIEFI_MTFTP4_PARSE_OPTIONS )(IN EFI_MTFTP4_PROTOCOL *This, IN UINT32 PacketLen, IN EFI_MTFTP4_PACKET *Packet, OUT UINT32 *OptionCount, OUT EFI_MTFTP4_OPTION **OptionList OPTIONAL)
 Parses the options in an MTFTPv4 OACK packet.
typedef EFI_STATUS(EFIAPIEFI_MTFTP4_READ_FILE )(IN EFI_MTFTP4_PROTOCOL *This, IN EFI_MTFTP4_TOKEN *Token)
 Downloads a file from an MTFTPv4 server.
typedef EFI_STATUS(EFIAPIEFI_MTFTP4_WRITE_FILE )(IN EFI_MTFTP4_PROTOCOL *This, IN EFI_MTFTP4_TOKEN *Token)
 Sends a file to an MTFTPv4 server.
typedef EFI_STATUS(EFIAPIEFI_MTFTP4_READ_DIRECTORY )(IN EFI_MTFTP4_PROTOCOL *This, IN EFI_MTFTP4_TOKEN *Token)
 Downloads a data file "directory" from an MTFTPv4 server.
typedef EFI_STATUS(EFIAPIEFI_MTFTP4_POLL )(IN EFI_MTFTP4_PROTOCOL *This)
 Polls for incoming data packets and processes outgoing data packets.

Functions

 FILE_LICENCE (BSD3)

Variables

EFI_GUID gEfiMtftp4ServiceBindingProtocolGuid
EFI_GUID gEfiMtftp4ProtocolGuid

Detailed Description

EFI Multicast Trivial File Transfer Protocol Definition.

Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License that accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php.

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Revision Reference:
This Protocol is introduced in UEFI Specification 2.0

Definition in file Mtftp4.h.


Define Documentation

Value:
{ \
    0x2FE800BE, 0x8F01, 0x4aa6, {0x94, 0x6B, 0xD7, 0x13, 0x88, 0xE1, 0x83, 0x3F } \
  }

Definition at line 23 of file Mtftp4.h.

Value:
{ \
    0x78247c57, 0x63db, 0x4708, {0x99, 0xc2, 0xa8, 0xb4, 0xa9, 0xa6, 0x1f, 0x6b } \
  }

Definition at line 28 of file Mtftp4.h.

#define EFI_MTFTP4_OPCODE_RRQ   1

Definition at line 39 of file Mtftp4.h.

#define EFI_MTFTP4_OPCODE_WRQ   2

Definition at line 40 of file Mtftp4.h.

#define EFI_MTFTP4_OPCODE_DATA   3

Definition at line 41 of file Mtftp4.h.

#define EFI_MTFTP4_OPCODE_ACK   4

Definition at line 42 of file Mtftp4.h.

#define EFI_MTFTP4_OPCODE_ERROR   5

Definition at line 43 of file Mtftp4.h.

#define EFI_MTFTP4_OPCODE_OACK   6

Definition at line 44 of file Mtftp4.h.

#define EFI_MTFTP4_OPCODE_DIR   7

Definition at line 45 of file Mtftp4.h.

#define EFI_MTFTP4_OPCODE_DATA8   8

Definition at line 46 of file Mtftp4.h.

#define EFI_MTFTP4_OPCODE_ACK8   9

Definition at line 47 of file Mtftp4.h.

Definition at line 52 of file Mtftp4.h.

Definition at line 53 of file Mtftp4.h.

Definition at line 54 of file Mtftp4.h.

Definition at line 55 of file Mtftp4.h.

Definition at line 56 of file Mtftp4.h.

Definition at line 57 of file Mtftp4.h.

Definition at line 58 of file Mtftp4.h.

Definition at line 59 of file Mtftp4.h.

Definition at line 60 of file Mtftp4.h.


Typedef Documentation

Definition at line 33 of file Mtftp4.h.

Definition at line 34 of file Mtftp4.h.

A callback function that is provided by the caller to intercept the EFI_MTFTP4_OPCODE_DATA or EFI_MTFTP4_OPCODE_DATA8 packets processed in the EFI_MTFTP4_PROTOCOL.ReadFile() function, and alternatively to intercept EFI_MTFTP4_OPCODE_OACK or EFI_MTFTP4_OPCODE_ERROR packets during a call to EFI_MTFTP4_PROTOCOL.ReadFile(), WriteFile() or ReadDirectory().

Parameters:
ThisThe pointer to the EFI_MTFTP4_PROTOCOL instance.
TokenThe token that the caller provided in the EFI_MTFTP4_PROTOCOL.ReadFile(), WriteFile() or ReadDirectory() function.
PacketLenIndicates the length of the packet.
PacketThe pointer to an MTFTPv4 packet.
Return values:
EFI_SUCCESSThe operation was successful.
OthersAborts the transfer process.

Definition at line 209 of file Mtftp4.h.

Timeout callback function.

Parameters:
ThisThe pointer to the EFI_MTFTP4_PROTOCOL instance.
TokenThe token that is provided in the EFI_MTFTP4_PROTOCOL.ReadFile() or EFI_MTFTP4_PROTOCOL.WriteFile() or EFI_MTFTP4_PROTOCOL.ReadDirectory() functions by the caller.
Return values:
EFI_SUCCESSThe operation was successful.
OthersAborts download process.

Definition at line 232 of file Mtftp4.h.

A callback function that the caller provides to feed data to the EFI_MTFTP4_PROTOCOL.WriteFile() function.

Parameters:
ThisThe pointer to the EFI_MTFTP4_PROTOCOL instance.
TokenThe token provided in the EFI_MTFTP4_PROTOCOL.WriteFile() by the caller.
LengthIndicates the length of the raw data wanted on input, and the length the data available on output.
BufferThe pointer to the buffer where the data is stored.
Return values:
EFI_SUCCESSThe operation was successful.
OthersAborts session.

Definition at line 254 of file Mtftp4.h.

Submits an asynchronous interrupt transfer to an interrupt endpoint of a USB device.

Parameters:
ThisThe pointer to the EFI_MTFTP4_PROTOCOL instance.
ModeDataThe pointer to storage for the EFI MTFTPv4 Protocol driver mode data.
Return values:
EFI_SUCCESSThe configuration data was successfully returned.
EFI_OUT_OF_RESOURCESThe required mode data could not be allocated.
EFI_INVALID_PARAMETERThis is NULL or ModeData is NULL.

Definition at line 275 of file Mtftp4.h.

Initializes, changes, or resets the default operational setting for this EFI MTFTPv4 Protocol driver instance.

Parameters:
ThisThe pointer to the EFI_MTFTP4_PROTOCOL instance.
MtftpConfigDataThe pointer to the configuration data structure.
Return values:
EFI_SUCCESSThe EFI MTFTPv4 Protocol driver was configured successfully.
EFI_INVALID_PARAMETEROne or more parameters are invalid.
EFI_ACCESS_DENIEDThe EFI configuration could not be changed at this time because there is one MTFTP background operation in progress.
EFI_NO_MAPPINGWhen using a default address, configuration (DHCP, BOOTP, RARP, etc.) has not finished yet.
EFI_UNSUPPORTEDA configuration protocol (DHCP, BOOTP, RARP, etc.) could not be located when clients choose to use the default address settings.
EFI_OUT_OF_RESOURCESThe EFI MTFTPv4 Protocol driver instance data could not be allocated.
EFI_DEVICE_ERRORAn unexpected system or network error occurred. The EFI MTFTPv4 Protocol driver instance is not configured.

Definition at line 305 of file Mtftp4.h.

typedef EFI_STATUS(EFIAPI * EFI_MTFTP4_GET_INFO)(IN EFI_MTFTP4_PROTOCOL *This, IN EFI_MTFTP4_OVERRIDE_DATA *OverrideData OPTIONAL, IN UINT8 *Filename, IN UINT8 *ModeStr OPTIONAL, IN UINT8 OptionCount, IN EFI_MTFTP4_OPTION *OptionList, OUT UINT32 *PacketLength, OUT EFI_MTFTP4_PACKET **Packet OPTIONAL)

Gets information about a file from an MTFTPv4 server.

Parameters:
ThisThe pointer to the EFI_MTFTP4_PROTOCOL instance.
OverrideDataData that is used to override the existing parameters. If NULL, the default parameters that were set in the EFI_MTFTP4_PROTOCOL.Configure() function are used.
FilenameThe pointer to null-terminated ASCII file name string.
ModeStrThe pointer to null-terminated ASCII mode string. If NULL, "octet" will be used.
OptionCountNumber of option/value string pairs in OptionList.
OptionListThe pointer to array of option/value string pairs. Ignored if OptionCount is zero.
PacketLengthThe number of bytes in the returned packet.
PacketThe pointer to the received packet. This buffer must be freed by the caller.
Return values:
EFI_SUCCESSAn MTFTPv4 OACK packet was received and is in the Packet.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE:
  • This is NULL.
  • Filename is NULL.
  • OptionCount is not zero and OptionList is NULL.
  • One or more options in OptionList have wrong format.
  • PacketLength is NULL.
  • One or more IPv4 addresses in OverrideData are not valid unicast IPv4 addresses if OverrideData is not NULL.
EFI_UNSUPPORTEDOne or more options in the OptionList are in the unsupported list of structure EFI_MTFTP4_MODE_DATA.
EFI_NOT_STARTEDThe EFI MTFTPv4 Protocol driver has not been started.
EFI_NO_MAPPINGWhen using a default address, configuration (DHCP, BOOTP, RARP, etc.) has not finished yet.
EFI_ACCESS_DENIEDThe previous operation has not completed yet.
EFI_OUT_OF_RESOURCESRequired system resources could not be allocated.
EFI_TFTP_ERRORAn MTFTPv4 ERROR packet was received and is in the Packet.
EFI_NETWORK_UNREACHABLEAn ICMP network unreachable error packet was received and the Packet is set to NULL.
EFI_HOST_UNREACHABLEAn ICMP host unreachable error packet was received and the Packet is set to NULL.
EFI_PROTOCOL_UNREACHABLEAn ICMP protocol unreachable error packet was received and the Packet is set to NULL.
EFI_PORT_UNREACHABLEAn ICMP port unreachable error packet was received and the Packet is set to NULL.
EFI_ICMP_ERRORSome other ICMP ERROR packet was received and is in the Buffer.
EFI_PROTOCOL_ERRORAn unexpected MTFTPv4 packet was received and is in the Packet.
EFI_TIMEOUTNo responses were received from the MTFTPv4 server.
EFI_DEVICE_ERRORAn unexpected network error or system error occurred.
EFI_NO_MEDIAThere was a media error.

Definition at line 357 of file Mtftp4.h.

Parses the options in an MTFTPv4 OACK packet.

Parameters:
ThisThe pointer to the EFI_MTFTP4_PROTOCOL instance.
PacketLenLength of the OACK packet to be parsed.
PacketThe pointer to the OACK packet to be parsed.
OptionCountThe pointer to the number of options in following OptionList.
OptionListThe pointer to EFI_MTFTP4_OPTION storage. Call the EFI Boot Service FreePool() to release the OptionList if the options in this OptionList are not needed any more.
Return values:
EFI_SUCCESSThe OACK packet was valid and the OptionCount and OptionList parameters have been updated.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE:
  • PacketLen is 0.
  • Packet is NULL or Packet is not a valid MTFTPv4 packet.
  • OptionCount is NULL.
EFI_NOT_FOUNDNo options were found in the OACK packet.
EFI_OUT_OF_RESOURCESStorage for the OptionList array cannot be allocated.
EFI_PROTOCOL_ERROROne or more of the option fields is invalid.

Definition at line 392 of file Mtftp4.h.

Downloads a file from an MTFTPv4 server.

Parameters:
ThisThe pointer to the EFI_MTFTP4_PROTOCOL instance.
TokenThe pointer to the token structure to provide the parameters that are used in this operation.
Return values:
EFI_SUCCESSThe data file has been transferred successfully.
EFI_OUT_OF_RESOURCESRequired system resources could not be allocated.
EFI_BUFFER_TOO_SMALLBufferSize is not zero but not large enough to hold the downloaded data in downloading process.
EFI_ABORTEDCurrent operation is aborted by user.
EFI_NETWORK_UNREACHABLEAn ICMP network unreachable error packet was received.
EFI_HOST_UNREACHABLEAn ICMP host unreachable error packet was received.
EFI_PROTOCOL_UNREACHABLEAn ICMP protocol unreachable error packet was received.
EFI_PORT_UNREACHABLEAn ICMP port unreachable error packet was received.
EFI_ICMP_ERRORSome other ICMP ERROR packet was received.
EFI_TIMEOUTNo responses were received from the MTFTPv4 server.
EFI_TFTP_ERRORAn MTFTPv4 ERROR packet was received.
EFI_DEVICE_ERRORAn unexpected network error or system error occurred.
EFI_NO_MEDIAThere was a media error.

Definition at line 426 of file Mtftp4.h.

Sends a file to an MTFTPv4 server.

Parameters:
ThisThe pointer to the EFI_MTFTP4_PROTOCOL instance.
TokenThe pointer to the token structure to provide the parameters that are used in this operation.
Return values:
EFI_SUCCESSThe upload session has started.
EFI_UNSUPPORTEDThe operation is not supported by this implementation.
EFI_INVALID_PARAMETEROne or more parameters are invalid.
EFI_UNSUPPORTEDOne or more options in the Token.OptionList are in the unsupported list of structure EFI_MTFTP4_MODE_DATA.
EFI_NOT_STARTEDThe EFI MTFTPv4 Protocol driver has not been started.
EFI_NO_MAPPINGWhen using a default address, configuration (DHCP, BOOTP, RARP, etc.) is not finished yet.
EFI_ALREADY_STARTEDThis Token is already being used in another MTFTPv4 session.
EFI_OUT_OF_RESOURCESRequired system resources could not be allocated.
EFI_ACCESS_DENIEDThe previous operation has not completed yet.
EFI_DEVICE_ERRORAn unexpected network error or system error occurred.

Definition at line 456 of file Mtftp4.h.

Downloads a data file "directory" from an MTFTPv4 server.

May be unsupported in some EFI implementations.

Parameters:
ThisThe pointer to the EFI_MTFTP4_PROTOCOL instance.
TokenThe pointer to the token structure to provide the parameters that are used in this operation.
Return values:
EFI_SUCCESSThe MTFTPv4 related file "directory" has been downloaded.
EFI_UNSUPPORTEDThe operation is not supported by this implementation.
EFI_INVALID_PARAMETEROne or more parameters are invalid.
EFI_UNSUPPORTEDOne or more options in the Token.OptionList are in the unsupported list of structure EFI_MTFTP4_MODE_DATA.
EFI_NOT_STARTEDThe EFI MTFTPv4 Protocol driver has not been started.
EFI_NO_MAPPINGWhen using a default address, configuration (DHCP, BOOTP, RARP, etc.) is not finished yet.
EFI_ALREADY_STARTEDThis Token is already being used in another MTFTPv4 session.
EFI_OUT_OF_RESOURCESRequired system resources could not be allocated.
EFI_ACCESS_DENIEDThe previous operation has not completed yet.
EFI_DEVICE_ERRORAn unexpected network error or system error occurred.

Definition at line 486 of file Mtftp4.h.

Polls for incoming data packets and processes outgoing data packets.

Parameters:
ThisThe pointer to the EFI_MTFTP4_PROTOCOL instance.
Return values:
EFI_SUCCESSIncoming or outgoing data was processed.
EFI_NOT_STARTEDThis EFI MTFTPv4 Protocol instance has not been started.
EFI_NO_MAPPINGWhen using a default address, configuration (DHCP, BOOTP, RARP, etc.) is not finished yet.
EFI_INVALID_PARAMETERThis is NULL.
EFI_DEVICE_ERRORAn unexpected system or network error occurred.
EFI_TIMEOUTData was dropped out of the transmit and/or receive queue. Consider increasing the polling rate.

Definition at line 508 of file Mtftp4.h.


Function Documentation

FILE_LICENCE ( BSD3  )

Variable Documentation