|
|
1.1 root 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 iPXE 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 ("iPXE"). 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.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.