X-Git-Url: http://git.etherboot.org/people/pcmattman/gpxe.git/blobdiff_plain/bfc335faa8c20661d2a69e56436b51344936b475..112a3f2de281a2afb23ced2082d555720de7c9b0:/src/doc/pxe_extensions diff --git a/src/doc/pxe_extensions b/src/doc/pxe_extensions index 0d04fcdc..8ff14a95 100644 --- a/src/doc/pxe_extensions +++ b/src/doc/pxe_extensions @@ -125,8 +125,9 @@ Output: PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be 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_FAILURE is - returned if no data is available to transfer. + 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. @@ -191,3 +192,121 @@ 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 gPXE 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 ("gPXE"). 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.