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