[pxe] Treat PXENV_RESTART_TFTP as unreturnable
[gpxe.git] / src / arch / i386 / include / pxe_call.h
1 #ifndef _PXE_CALL_H
2 #define _PXE_CALL_H
3
4 /** @file
5  *
6  * PXE API entry point
7  */
8
9 FILE_LICENCE ( GPL2_OR_LATER );
10
11 #include <pxe_api.h>
12 #include <realmode.h>
13 #include <setjmp.h>
14
15 struct net_device;
16
17 /** PXE load address segment */
18 #define PXE_LOAD_SEGMENT 0
19
20 /** PXE load address offset */
21 #define PXE_LOAD_OFFSET 0x7c00
22
23 /** PXE physical load address */
24 #define PXE_LOAD_PHYS ( ( PXE_LOAD_SEGMENT << 4 ) + PXE_LOAD_OFFSET )
25
26 /** !PXE structure */
27 extern struct s_PXE __text16 ( ppxe );
28 #define ppxe __use_text16 ( ppxe )
29
30 /** PXENV+ structure */
31 extern struct s_PXENV __text16 ( pxenv );
32 #define pxenv __use_text16 ( pxenv )
33
34 /** PXENV_RESTART_TFTP jump buffer */
35 extern rmjmp_buf pxe_restart_nbp;
36
37 extern void pxe_activate ( struct net_device *netdev );
38 extern int pxe_deactivate ( void );
39 extern int pxe_start_nbp ( void );
40 extern __asmcall void pxe_api_call ( struct i386_all_regs *ix86 );
41 extern int pxe_api_call_weak ( struct i386_all_regs *ix86 );
42
43 #endif /* _PXE_CALL_H */