diff options
| author | fishsoupisgood <github@madingley.org> | 2019-04-29 01:17:54 +0100 | 
|---|---|---|
| committer | fishsoupisgood <github@madingley.org> | 2019-05-27 03:43:43 +0100 | 
| commit | 3f2546b2ef55b661fd8dd69682b38992225e86f6 (patch) | |
| tree | 65ca85f13617aee1dce474596800950f266a456c /roms/ipxe/src/doc/pxe_extensions | |
| download | qemu-master.tar.gz qemu-master.tar.bz2 qemu-master.zip | |
Diffstat (limited to 'roms/ipxe/src/doc/pxe_extensions')
| -rw-r--r-- | roms/ipxe/src/doc/pxe_extensions | 312 | 
1 files changed, 312 insertions, 0 deletions
| diff --git a/roms/ipxe/src/doc/pxe_extensions b/roms/ipxe/src/doc/pxe_extensions new file mode 100644 index 00000000..2411486d --- /dev/null +++ b/roms/ipxe/src/doc/pxe_extensions @@ -0,0 +1,312 @@ +FILE OPEN + +Op-Code:	PXENV_FILE_OPEN (00e0h) + +Input:		Far pointer to a t_PXENV_FILE_OPEN parameter structure +		that has been initialised by the caller. + +Output:		PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be +		returned in AX.  The status field in the parameter +		structure must be set to one of the values represented +		by the PXENV_STATUS_xxx constants. + +Description:	Opens a file specified by a URL for reading.  Multiple +		files may be opened and used concurrently. + + +typedef struct s_PXENV_FILE_OPEN { +	PXENV_STATUS Status; +	UINT16 FileHandle; +	SEGOFF16 FileName; +	UINT32 Reserved; +} t_PXENV_FILE_OPEN; + + +Set before calling API service: + +FileName:	URL of file to be opened.  Null terminated. + +Reserved:	Must be zero. + + +Returned from API service: + +FileHandle:	Handle for use in subsequent PXE FILE API calls. + +Status:		See PXENV_STATUS_xxx constants. + + + + +FILE CLOSE + +Op-Code:	PXENV_FILE_CLOSE (00e1h) + +Input:		Far pointer to a t_PXENV_FILE_CLOSE parameter structure +		that has been initialised by the caller. + +Output:		PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be +		returned in AX.  The status field in the parameter +		structure must be set to one of the values represented +		by the PXENV_STATUS_xxx constants. + +Description:	Closes a previously opened file. + + +typedef struct s_PXENV_FILE_CLOSE { +	PXENV_STATUS Status; +	UINT16 FileHandle; +} t_PXENV_FILE_CLOSE; + + +Set before calling API service: + +FileHandle:	Handle obtained when file was opened. + + +Returned from API service: + +Status:		See PXENV_STATUS_xxx constants. + + + + +FILE SELECT + +Op-Code:	PXENV_FILE_SELECT (00e2h) + +Input:		Far pointer to a t_PXENV_FILE_SELECT parameter structure +		that has been initialised by the caller. + +Output:		PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be +		returned in AX.  The status field in the parameter +		structure must be set to one of the values represented +		by the PXENV_STATUS_xxx constants. + +Description:	Check a previously opened file's readiness for I/O. + + +typedef struct s_PXENV_FILE_SELECT { +	PXENV_STATUS Status; +	UINT16 FileHandle; +	UINT16 Ready; +#define RDY_READ 0x0001 +} t_PXENV_FILE_SELECT; + + +Set before calling API service: + +FileHandle:	Handle obtained when file was opened. + + +Returned from API service: + +Ready:		Indication of readiness.  This can be zero, or more, +		of the RDY_xxx constants.  Multiple values are +		arithmetically or-ed together. + +Status:		See PXENV_STATUS_xxx constants. + + + + +FILE READ + +Op-Code:	PXENV_FILE_READ (00e3h) + +Input:		Far pointer to a t_PXENV_FILE_READ parameter structure +		that has been initialised by the caller. + +Output:		PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be +		returned in AX.  The status field in the parameter +		structure must be set to one of the values represented +		by the PXENV_STATUS_xxx constants. + +		This API function is non-blocking.  PXENV_EXIT_SUCCESS +		and PXENV_STATUS_SUCCESS is returned if a data block +		has been transferred into the caller's buffer. +		PXENV_EXIT_FAILURE and PXENV_STATUS_TFTP_OPEN is +		returned if no data is available to transfer; any +		other status code reflects an error. + +Description:	Read from a previously opened file. + + +typedef struct s_PXENV_FILE_READ { +	PXENV_STATUS Status; +	UINT16 FileHandle; +	UINT16 BufferSize; +	SEGOFF16 Buffer; +} t_PXENV_FILE_READ; + + +Set before calling API service: + +FileHandle:	Handle obtained when file was opened. + +BufferSize:	Maximum number of data bytes that can be copied into +		Buffer. + +Buffer:		Segment:Offset address of data buffer. + + +Returned from API service: + +BufferSize:	Number of bytes written to the data buffer.  End of +		file if this is zero. + +Status:		See PXENV_STATUS_xxx constants. + + + + +GET FILE SIZE + +Op-Code:	PXENV_GET_FILE_SIZE (00e4h) + +Input:		Far pointer to a t_PXENV_GET_FILE_SIZE parameter +		structure that has been initialised by the caller. + +Output:		PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be +		returned in AX.  The status field in the parameter +		structure must be set to one of the values represented +		by the PXENV_STATUS_xxx constants. + +Description:	Determine size of a previously opened file. + + +typedef struct s_PXENV_GET_FILE_SIZE { +	PXENV_STATUS Status; +	UINT16 FileHandle; +	UINT32 FileSize; +} t_PXENV_GET_FILE_SIZE; + + +Set before calling API service: + +FileHandle:	Handle obtained when file was opened. + + +Returned from API service: + +FileSize:	Size of the file in bytes. + +Status:		See PXENV_STATUS_xxx constants. + + + + +FILE EXEC + +Op-Code:	PXENV_FILE_EXEC (00e5h) + +Input:		Far pointer to a t_PXENV_FILE_EXEC parameter +		structure that has been initialized by the caller. + +Output:		PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be +		returned in AX.  The Status field in the parameter +		structure must be set to one of the values represented +		by the PXENV_STATUS_xxx constants. + +Description:	Execute a iPXE command. + +typedef struct s_PXENV_FILE_EXEC { +        PXENV_STATUS_t Status; +        SEGOFF16_t Command; +} t_PXENV_FILE_EXEC; + + +Set before calling API service: + +Command:	Command to execute.  Null terminated. + + +Returned from API service: + +Status:		See PXENV_STATUS_xxx constants. + + + + +FILE API CHECK + +Op-Code:	PXENV_FILE_API_CHECK (00e6h) + +Input:		Far pointer to a t_PXENV_FILE_CHECK_API parameter +		structure that has been initialized by the caller. + +		On entry, the Magic field should contain the number +		0x91d447b2 or the call will fail. + +Output:		PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be +		returned in AX.  The Status field in the parameter +		structure must be set to one of the values represented +		by the PXENV_STATUS_xxx constants. + +		If this API is present and the Magic field contains the +		proper value on entry, AX will contain PXENV_EXIT_SUCCESS, +		the Status field PXENV_STATUS_SUCCESS, and the Magic field +		the number 0xe9c17b20.  Any other combination should be +		considered a failure. + +Description:	Detect presence of this API. + + +typedef struct s_PXENV_FILE_CHECK_API { +	PXENV_STATUS Status; +	UINT16 Size; +	UINT32 Magic; +	UINT32 Provider; +	UINT32 APIMask; +	UINT32 Flags; +} t_PXENV_FILE_CHECK_API; + +Set before calling API service: + +Size:		Set to sizeof(t_PXENV_FILE_CHECK_API) (20). +Magic:		Set to 0x91d447b2. + + +Returned from API service: + +Size:		Set to the number of bytes filled in (20). +Magic:		Set to 0xe9c17b20. +Provider:	Set to 0x45585067 ("iPXE").  Another implementation of this +		API can use another value, e.g. to indicate a different +		command set supported by FILE EXEC. +APIMask:	Bitmask of supported API functions (one bit for each function +		in the range 00e0h to 00ffh). +Flags:		Set to zero, reserved for future use. + + + + +FILE EXIT HOOK + +Op-Code:	PXENV_FILE_EXIT_HOOK (00e7h) + +Input:		Far pointer to a t_PXENV_FILE_EXIT_HOOK parameter +		structure that has been initialized by the caller. + +Output:		PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be +		returned in AX.  The Status field in the parameter +		structure must be set to one of the values represented +		by the PXENV_STATUS_xxx constants. + +Description:	Modify the exit path to jump to the specified code. +		Only valid for pxeprefix-based builds. + +typedef struct s_PXENV_FILE_EXIT_HOOK { +        PXENV_STATUS_t Status; +        SEGOFF16_t Hook; +} t_PXENV_FILE_EXIT_HOOK; + + +Set before calling API service: + +Hook:		The SEG16:OFF16 of the code to jump to. + + +Returned from API service: + +Status:		See PXENV_STATUS_xxx constants. | 
