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