It might be the case that we wish to chain to an NBP without
being "in the way". We now implement a hook in our exit path
for gPXE *.*pxe build targets. The hook is a pointer to a
SEG16:OFF16 which we try to jump to during exit. By default,
this pointer results in the usual exit path.
We also implement the "pxenv_file_exit_hook" PXE API routine
to allow the user to specify an alternate SEG16:OFF16 to jump
to during exit.
Unfortunately, this additional PXE extension has a cost
in code size. Fortunately, a look at the size difference
for a gPXE .rom build target shows zero size difference
after compression.
The routine is documented in doc/pxe_extensions as follows:
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.
Requested-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Shao Miller <shao.miller@yrdsb.edu.on.ca>
Signed-off-by: Marty Connor <mdc@etherboot.org>
tags/v1.0.0-rc1
|
|
||
| 67 |
|
67 |
|
| 68 |
|
68 |
|
| 69 |
|
69 |
|
|
70 |
|
|
| 70 |
|
71 |
|
| 71 |
|
72 |
|
| 72 |
|
73 |
|
|
|
||
| 1778 |
|
1778 |
|
| 1779 |
|
1779 |
|
| 1780 |
|
1780 |
|
|
1781 |
|
|
|
1782 |
|
|
|
1783 |
|
|
|
1784 |
|
|
|
1785 |
|
|
|
1786 |
|
|
|
1787 |
|
|
|
1788 |
|
|
|
1789 |
|
|
|
1790 |
|
|
|
1791 |
|
|
|
1792 |
|
|
|
1793 |
|
|
|
1794 |
|
|
|
1795 |
|
|
|
1796 |
|
|
|
1797 |
|
|
|
1798 |
|
|
|
1799 |
|
|
|
1800 |
|
|
|
1801 |
|
|
|
1802 |
|
|
| 1781 |
|
1803 |
|
| 1782 |
|
1804 |
|
| 1783 |
|
1805 |
|
|
|
||
| 104 |
|
104 |
|
| 105 |
|
105 |
|
| 106 |
|
106 |
|
|
107 |
|
|
| 107 |
|
108 |
|
| 108 |
|
109 |
|
| 109 |
|
110 |
|
|
|
||
| 310 |
|
311 |
|
| 311 |
|
312 |
|
| 312 |
|
313 |
|
|
314 |
|
|
|
315 |
|
|
|
316 |
|
|
|
317 |
|
|
| 313 |
|
318 |
|
| 314 |
|
319 |
|
| 315 |
|
320 |
|
|
|
||
| 12 |
|
12 |
|
| 13 |
|
13 |
|
| 14 |
|
14 |
|
|
15 |
|
|
| 15 |
|
16 |
|
| 16 |
|
17 |
|
| 17 |
|
18 |
|
|
19 |
|
|
|
20 |
|
|
| 18 |
|
21 |
|
| 19 |
|
22 |
|
| 20 |
|
23 |
|
|
|
||
| 230 |
|
233 |
|
| 231 |
|
234 |
|
| 232 |
|
235 |
|
|
236 |
|
|
|
237 |
|
|
|
238 |
|
|
| 233 |
|
239 |
|
| 234 |
|
240 |
|
| 235 |
|
241 |
|
|
|
||
| 260 |
|
266 |
|
| 261 |
|
267 |
|
| 262 |
|
268 |
|
|
269 |
|
|
|
270 |
|
|
|
271 |
|
|
|
272 |
|
|
| 263 |
|
273 |
|
| 264 |
|
274 |
|
| 265 |
|
275 |
|
| 266 |
|
276 |
|
|
277 |
|
|
|
278 |
|
|
|
279 |
|
|
|
280 |
|
|
|
281 |
|
|
|
282 |
|
|
|
283 |
|
|
|
284 |
|
|
|
285 |
|
|
|
286 |
|
|
|
287 |
|
|
|
288 |
|
|
|
289 |
|
|
|
290 |
|
|
|
291 |
|
|
|
292 |
|
|
|
293 |
|
|
|
294 |
|
|
|
295 |
|
|
|
296 |
|
|
|
297 |
|
|
|
298 |
|
|
|
299 |
|
|
|
300 |
|
|
|
301 |
|
|
|
302 |
|
|
|
303 |
|
|
|
304 |
|
|
|
305 |
|
|
|
306 |
|
|
|
||
| 718 |
|
718 |
|
| 719 |
|
719 |
|
| 720 |
|
720 |
|
|
721 |
|
|
|
722 |
|
|
|
723 |
|
|
|
724 |
|
|
|
725 |
|
|
|
726 |
|
|
|
727 |
|
|
| 721 |
|
728 |
|
| 722 |
|
729 |
|
| 723 |
|
730 |
|
|
|
||
| 731 |
|
738 |
|
| 732 |
|
739 |
|
| 733 |
|
740 |
|
| 734 |
|
|
|
|
741 |
|
|
|
742 |
|
|
|
743 |
|
|
|
744 |
|
|
| 735 |
|
745 |
|
| 736 |
|
746 |
|
| 737 |
|
747 |
|
|
|
||
| 277 |
|
277 |
|
| 278 |
|
278 |
|
| 279 |
|
279 |
|
|
280 |
|
|
|
281 |
|
|
|
282 |
|
|
|
283 |
|
|
|
284 |
|
|
|
285 |
|
|
|
286 |
|
|
|
287 |
|
|
|
288 |
|
|
|
289 |
|
|
|
290 |
|
|
|
291 |
|
|
|
292 |
|
|
|
293 |
|
|
|
294 |
|
|
|
295 |
|
|
|
296 |
|
|
|
297 |
|
|
|
298 |
|
|
|
299 |
|
|
|
300 |
|
|
|
301 |
|
|
|
302 |
|
|
|
303 |
|
|
|
304 |
|
|
|
305 |
|
|
|
306 |
|
|
|
307 |
|
|
|
308 |
|
|
|
309 |
|
|
|
310 |
|
|
|
311 |
|
|
|
312 |
|