| 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. |