summaryrefslogtreecommitdiffstats
path: root/src/interface
diff options
context:
space:
mode:
authorMichael Brown2007-06-30 15:56:35 +0200
committerMichael Brown2007-06-30 15:56:35 +0200
commit8130443f9ffd64f48a756d440e11d0265925765e (patch)
treeb92c33226b361b83513fbbc1af2dc4e3d1d8c727 /src/interface
parentDon't build option-overloaded packets; they just confuse people (ISC (diff)
downloadipxe-8130443f9ffd64f48a756d440e11d0265925765e.tar.gz
ipxe-8130443f9ffd64f48a756d440e11d0265925765e.tar.xz
ipxe-8130443f9ffd64f48a756d440e11d0265925765e.zip
Separate out pxe_start_nbp() from pxe_image.c into pxe_call.c
Implement PXENV_RESTART_TFTP.
Diffstat (limited to 'src/interface')
-rw-r--r--src/interface/pxe/pxe_preboot.c21
1 files changed, 10 insertions, 11 deletions
diff --git a/src/interface/pxe/pxe_preboot.c b/src/interface/pxe/pxe_preboot.c
index a1b16360..b1cc39c0 100644
--- a/src/interface/pxe/pxe_preboot.c
+++ b/src/interface/pxe/pxe_preboot.c
@@ -30,7 +30,7 @@
#include <gpxe/dhcp.h>
#include <dhcp_basemem.h>
#include "pxe.h"
-#include "pxe_callbacks.h"
+#include "pxe_call.h"
/**
* UNLOAD BASE CODE STACK
@@ -146,22 +146,21 @@ PXENV_EXIT_t pxenv_get_cached_info ( struct s_PXENV_GET_CACHED_INFO
*/
PXENV_EXIT_t pxenv_restart_tftp ( struct s_PXENV_TFTP_READ_FILE
*restart_tftp ) {
- DBG ( "PXENV_RESTART_TFTP" );
+ PXENV_EXIT_t tftp_exit;
+
+ DBG ( "PXENV_RESTART_TFTP " );
-#if 0
/* Words cannot describe the complete mismatch between the PXE
* specification and any possible version of reality...
*/
- restart_tftp->Buffer = PXE_LOAD_ADDRESS; /* Fixed by spec, apparently */
- restart_tftp->BufferSize = get_free_base_memory() - PXE_LOAD_ADDRESS; /* Near enough */
- DBG ( "(" );
- tftp_exit = pxe_api_call ( PXENV_TFTP_READ_FILE, (union u_PXENV_ANY*)restart_tftp );
- DBG ( ")" );
- if ( tftp_exit != PXENV_EXIT_SUCCESS ) return tftp_exit;
+ restart_tftp->Buffer = PXE_LOAD_PHYS; /* Fixed by spec, apparently */
+ restart_tftp->BufferSize = ( 0xa0000 - PXE_LOAD_PHYS ); /* Near enough */
+ tftp_exit = pxenv_tftp_read_file ( restart_tftp );
+ if ( tftp_exit != PXENV_EXIT_SUCCESS )
+ return tftp_exit;
/* Fire up the new NBP */
- restart_tftp->Status = xstartpxe();
-#endif
+ restart_tftp->Status = pxe_start_nbp();
/* Not sure what "SUCCESS" actually means, since we can only
* return if the new NBP failed to boot...