aboutsummaryrefslogtreecommitdiffstats
path: root/roms/ipxe/src/doc/pxe_extensions
diff options
context:
space:
mode:
Diffstat (limited to 'roms/ipxe/src/doc/pxe_extensions')
-rw-r--r--roms/ipxe/src/doc/pxe_extensions312
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.