beautypg.com

Intel Extensible Firmware Interface User Manual

Page 658

background image

Extensible Firmware Interface Specification

15-52

12/01/02

Version 1.10

ListenTimeout

The number of seconds a client should listen for an active
multicast session before requesting a new multicast session.

TransmitTimeout

The number of seconds a client should wait for a packet from the
server before retransmitting the previous open request or data
ack packet.

Description

This function is used to perform TFTP and MTFTP services. This includes the TFTP operations to
get the size of a file, read a directory, read a file, and write a file. It also includes the MTFTP
operations to get the size of a file, read a directory, and read a file. The type of operation is
specified by

Operation

. If the callback function that is invoked during the TFTP/MTFTP

operation does not return

EFI_PXE_BASE_CODE_CALLBACK_STATUS_CONTINUE

, then

EFI_ABORTED

will be returned.

For read operations, the return data will be placed in the buffer specified by

BufferPtr

. If

BufferSize

is too small to contain the entire downloaded file, then

EFI_BUFFER_TOO_SMALL

will be returned and

BufferSize

will be set to zero or the size of

the requested file (the size of the requested file is only returned if the TFTP server supports TFTP
options). If

BufferSize

is large enough for the read operation, then

BufferSize

will be set to

the size of the downloaded file, and

EFI_SUCCESS

will be returned. Applications using the

PxeBc.Mtftp()

services should use the get-file-size operations to determine the size of the

downloaded file prior to using the read-file operations—especially when downloading large
(greater than 64 MB) files—instead of making two calls to the read-file operation. Following this
recommendation will save time if the file is larger than expected and the TFTP server does not
support TFTP option extensions. Without TFTP option extension support, the client has to
download the entire file, counting and discarding the received packets, to determine the file size.

For write operations, the data to be sent is in the buffer specified by

BufferPtr

.

BufferSize

specifies the number of bytes to send. If the write operation completes successfully, then

EFI_SUCCESS

will be returned.

For TFTP “get file size” operations, the size of the requested file or directory is returned in

BufferSize

, and

EFI_SUCCESS

will be returned. If the TFTP server does not support options,

the file will be downloaded into a bit bucket and the length of the downloaded file will be returned.
For MTFTP “get file size” operations, if the MTFTP server does not support the “get file size”
option,

EFI_UNSUPPORTED

will be returned.