[http] gPXE is a HTTP/1.0 client, not a HTTP/1.1 client
[people/lynusvaz/gpxe.git] / src / doc / pxe_extensions
index ae03b39..92269cf 100644 (file)
@@ -17,8 +17,8 @@ Description:  Opens a file specified by a URL for reading.  Multiple
 typedef struct s_PXENV_FILE_OPEN {
        PXENV_STATUS Status;
        UINT16 FileHandle;
+       SEGOFF16 FileName;
        UINT32 Reserved;
-       UINT8 FileName[256];
 } t_PXENV_FILE_OPEN;
 
 
@@ -122,6 +122,13 @@ Output:            PXENV_EXIT_SUCCESS or PXENV_EXIT_FAILURE must be
                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.
 
 
@@ -149,3 +156,124 @@ 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 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.