Home | History | Annotate | Download | only in doc
      1 FILE OPEN
      2 
      3 Op-Code:	PXENV_FILE_OPEN (00e0h)
      4 
      5 Input:		Far pointer to a t_PXENV_FILE_OPEN parameter structure
      6 		that has been initialised by the caller.
      7 
      8 Output:		PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be
      9 		returned in AX.  The status field in the parameter
     10 		structure must be set to one of the values represented
     11 		by the PXENV_STATUS_xxx constants.
     12 
     13 Description:	Opens a file specified by a URL for reading.  Multiple
     14 		files may be opened and used concurrently.
     15 
     16 
     17 typedef struct s_PXENV_FILE_OPEN {
     18 	PXENV_STATUS Status;
     19 	UINT16 FileHandle;
     20 	SEGOFF16 FileName;
     21 	UINT32 Reserved;
     22 } t_PXENV_FILE_OPEN;
     23 
     24 
     25 Set before calling API service:
     26 
     27 FileName:	URL of file to be opened.  Null terminated.
     28 
     29 Reserved:	Must be zero.
     30 
     31 
     32 Returned from API service:
     33 
     34 FileHandle:	Handle for use in subsequent PXE FILE API calls.
     35 
     36 Status:		See PXENV_STATUS_xxx constants.
     37 
     38 
     39 
     40 
     41 FILE CLOSE
     42 
     43 Op-Code:	PXENV_FILE_CLOSE (00e1h)
     44 
     45 Input:		Far pointer to a t_PXENV_FILE_CLOSE parameter structure
     46 		that has been initialised by the caller.
     47 
     48 Output:		PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be
     49 		returned in AX.  The status field in the parameter
     50 		structure must be set to one of the values represented
     51 		by the PXENV_STATUS_xxx constants.
     52 
     53 Description:	Closes a previously opened file.
     54 
     55 
     56 typedef struct s_PXENV_FILE_CLOSE {
     57 	PXENV_STATUS Status;
     58 	UINT16 FileHandle;
     59 } t_PXENV_FILE_CLOSE;
     60 
     61 
     62 Set before calling API service:
     63 
     64 FileHandle:	Handle obtained when file was opened.
     65 
     66 
     67 Returned from API service:
     68 
     69 Status:		See PXENV_STATUS_xxx constants.
     70 
     71 
     72 
     73 
     74 FILE SELECT
     75 
     76 Op-Code:	PXENV_FILE_SELECT (00e2h)
     77 
     78 Input:		Far pointer to a t_PXENV_FILE_SELECT parameter structure
     79 		that has been initialised by the caller.
     80 
     81 Output:		PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be
     82 		returned in AX.  The status field in the parameter
     83 		structure must be set to one of the values represented
     84 		by the PXENV_STATUS_xxx constants.
     85 
     86 Description:	Check a previously opened file's readiness for I/O.
     87 
     88 
     89 typedef struct s_PXENV_FILE_SELECT {
     90 	PXENV_STATUS Status;
     91 	UINT16 FileHandle;
     92 	UINT16 Ready;
     93 #define RDY_READ 0x0001
     94 } t_PXENV_FILE_SELECT;
     95 
     96 
     97 Set before calling API service:
     98 
     99 FileHandle:	Handle obtained when file was opened.
    100 
    101 
    102 Returned from API service:
    103 
    104 Ready:		Indication of readiness.  This can be zero, or more,
    105 		of the RDY_xxx constants.  Multiple values are
    106 		arithmetically or-ed together.
    107 
    108 Status:		See PXENV_STATUS_xxx constants.
    109 
    110 
    111 
    112 
    113 FILE READ
    114 
    115 Op-Code:	PXENV_FILE_READ (00e3h)
    116 
    117 Input:		Far pointer to a t_PXENV_FILE_READ parameter structure
    118 		that has been initialised by the caller.
    119 
    120 Output:		PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be
    121 		returned in AX.  The status field in the parameter
    122 		structure must be set to one of the values represented
    123 		by the PXENV_STATUS_xxx constants.
    124 
    125 		This API function is non-blocking.  PXENV_EXIT_SUCCESS
    126 		and PXENV_STATUS_SUCCESS is returned if a data block
    127 		has been transferred into the caller's buffer.
    128 		PXENV_EXIT_FAILURE and PXENV_STATUS_TFTP_OPEN is
    129 		returned if no data is available to transfer; any
    130 		other status code reflects an error.
    131 
    132 Description:	Read from a previously opened file.
    133 
    134 
    135 typedef struct s_PXENV_FILE_READ {
    136 	PXENV_STATUS Status;
    137 	UINT16 FileHandle;
    138 	UINT16 BufferSize;
    139 	SEGOFF16 Buffer;
    140 } t_PXENV_FILE_READ;
    141 
    142 
    143 Set before calling API service:
    144 
    145 FileHandle:	Handle obtained when file was opened.
    146 
    147 BufferSize:	Maximum number of data bytes that can be copied into
    148 		Buffer.
    149 
    150 Buffer:		Segment:Offset address of data buffer.
    151 
    152 
    153 Returned from API service:
    154 
    155 BufferSize:	Number of bytes written to the data buffer.  End of
    156 		file if this is zero.
    157 
    158 Status:		See PXENV_STATUS_xxx constants.
    159 
    160 
    161 
    162 
    163 GET FILE SIZE
    164 
    165 Op-Code:	PXENV_GET_FILE_SIZE (00e4h)
    166 
    167 Input:		Far pointer to a t_PXENV_GET_FILE_SIZE parameter
    168 		structure that has been initialised by the caller.
    169 
    170 Output:		PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be
    171 		returned in AX.  The status field in the parameter
    172 		structure must be set to one of the values represented
    173 		by the PXENV_STATUS_xxx constants.
    174 
    175 Description:	Determine size of a previously opened file.
    176 
    177 
    178 typedef struct s_PXENV_GET_FILE_SIZE {
    179 	PXENV_STATUS Status;
    180 	UINT16 FileHandle;
    181 	UINT32 FileSize;
    182 } t_PXENV_GET_FILE_SIZE;
    183 
    184 
    185 Set before calling API service:
    186 
    187 FileHandle:	Handle obtained when file was opened.
    188 
    189 
    190 Returned from API service:
    191 
    192 FileSize:	Size of the file in bytes.
    193 
    194 Status:		See PXENV_STATUS_xxx constants.
    195 
    196 
    197 
    198 
    199 FILE EXEC
    200 
    201 Op-Code:	PXENV_FILE_EXEC (00e5h)
    202 
    203 Input:		Far pointer to a t_PXENV_FILE_EXEC parameter
    204 		structure that has been initialized by the caller.
    205 
    206 Output:		PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be
    207 		returned in AX.  The Status field in the parameter
    208 		structure must be set to one of the values represented
    209 		by the PXENV_STATUS_xxx constants.
    210 
    211 Description:	Execute a gPXE command.
    212 
    213 typedef struct s_PXENV_FILE_EXEC {
    214         PXENV_STATUS_t Status;
    215         SEGOFF16_t Command;
    216 } t_PXENV_FILE_EXEC;
    217 
    218 
    219 Set before calling API service:
    220 
    221 Command:	Command to execute.  Null terminated.
    222 
    223 
    224 Returned from API service:
    225 
    226 Status:		See PXENV_STATUS_xxx constants.
    227 
    228 
    229 
    230 
    231 FILE API CHECK
    232 
    233 Op-Code:	PXENV_FILE_API_CHECK (00e6h)
    234 
    235 Input:		Far pointer to a t_PXENV_FILE_CHECK_API parameter
    236 		structure that has been initialized by the caller.
    237 
    238 		On entry, the Magic field should contain the number
    239 		0x91d447b2 or the call will fail.
    240 
    241 Output:		PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be
    242 		returned in AX.  The Status field in the parameter
    243 		structure must be set to one of the values represented
    244 		by the PXENV_STATUS_xxx constants.
    245 
    246 		If this API is present and the Magic field contains the
    247 		proper value on entry, AX will contain PXENV_EXIT_SUCCESS,
    248 		the Status field PXENV_STATUS_SUCCESS, and the Magic field
    249 		the number 0xe9c17b20.  Any other combination should be
    250 		considered a failure.
    251 
    252 Description:	Detect presence of this API.
    253 
    254 
    255 typedef struct s_PXENV_FILE_CHECK_API {
    256 	PXENV_STATUS Status;
    257 	UINT16 Size;
    258 	UINT32 Magic;
    259 	UINT32 Provider;
    260 	UINT32 APIMask;
    261 	UINT32 Flags;
    262 } t_PXENV_FILE_CHECK_API;
    263 
    264 Set before calling API service:
    265 
    266 Size:		Set to sizeof(t_PXENV_FILE_CHECK_API) (20).
    267 Magic:		Set to 0x91d447b2.
    268 
    269 
    270 Returned from API service:
    271 
    272 Size:		Set to the number of bytes filled in (20).
    273 Magic:		Set to 0xe9c17b20.
    274 Provider:	Set to 0x45585067 ("gPXE").  Another implementation of this
    275 		API can use another value, e.g. to indicate a different
    276 		command set supported by FILE EXEC.
    277 APIMask:	Bitmask of supported API functions (one bit for each function
    278 		in the range 00e0h to 00ffh).
    279 Flags:		Set to zero, reserved for future use.
    280 
    281 
    282 
    283 
    284 FILE EXIT HOOK
    285 
    286 Op-Code:	PXENV_FILE_EXIT_HOOK (00e7h)
    287 
    288 Input:		Far pointer to a t_PXENV_FILE_EXIT_HOOK parameter
    289 		structure that has been initialized by the caller.
    290 
    291 Output:		PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be
    292 		returned in AX.  The Status field in the parameter
    293 		structure must be set to one of the values represented
    294 		by the PXENV_STATUS_xxx constants.
    295 
    296 Description:	Modify the exit path to jump to the specified code.
    297 		Only valid for pxeprefix-based builds.
    298 
    299 typedef struct s_PXENV_FILE_EXIT_HOOK {
    300         PXENV_STATUS_t Status;
    301         SEGOFF16_t Hook;
    302 } t_PXENV_FILE_EXIT_HOOK;
    303 
    304 
    305 Set before calling API service:
    306 
    307 Hook:		The SEG16:OFF16 of the code to jump to.
    308 
    309 
    310 Returned from API service:
    311 
    312 Status:		See PXENV_STATUS_xxx constants.
    313