diff options
author | Michael Brown | 2009-02-17 01:47:35 +0100 |
---|---|---|
committer | Michael Brown | 2009-02-17 01:47:35 +0100 |
commit | 8904cd55f128941d53d9a8beef71fb32a920a92d (patch) | |
tree | a2ce11209520f09931d23ccae2682297ada99288 /src/arch/i386/include/bits/errfile.h | |
parent | [uri] Allow use of relative URIs when calling churi() (diff) | |
download | ipxe-8904cd55f128941d53d9a8beef71fb32a920a92d.tar.gz ipxe-8904cd55f128941d53d9a8beef71fb32a920a92d.tar.xz ipxe-8904cd55f128941d53d9a8beef71fb32a920a92d.zip |
[comboot] Allow for tail recursion of COMBOOT images
Multi-level menus via COMBOOT rely on the COMBOOT program being able
to exit and invoke a new COMBOOT program (the next menu). This works,
but rapidly (within about five iterations) runs out of space in gPXE's
internal stack, since each new image is executed in a new function
context.
Fix by allowing tail recursion between images; an image can now
specify a replacement image for itself, and image_exec() will perform
the necessary tail recursion.
Diffstat (limited to 'src/arch/i386/include/bits/errfile.h')
-rw-r--r-- | src/arch/i386/include/bits/errfile.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/arch/i386/include/bits/errfile.h b/src/arch/i386/include/bits/errfile.h index 1723063b..5ea8a318 100644 --- a/src/arch/i386/include/bits/errfile.h +++ b/src/arch/i386/include/bits/errfile.h @@ -23,6 +23,7 @@ #define ERRFILE_comboot ( ERRFILE_ARCH | ERRFILE_IMAGE | 0x00070000 ) #define ERRFILE_com32 ( ERRFILE_ARCH | ERRFILE_IMAGE | 0x00080000 ) #define ERRFILE_comboot_resolv ( ERRFILE_ARCH | ERRFILE_IMAGE | 0x00090000 ) +#define ERRFILE_comboot_call ( ERRFILE_ARCH | ERRFILE_IMAGE | 0x000a0000 ) #define ERRFILE_undi ( ERRFILE_ARCH | ERRFILE_NET | 0x00000000 ) #define ERRFILE_undiload ( ERRFILE_ARCH | ERRFILE_NET | 0x00010000 ) |