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