50667e62df2fb7ac608864383f2bd2eb1d02b65c
[people/cooldavid/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
14 struct net_device;
15
16 /** PXE load address segment */
17 #define PXE_LOAD_SEGMENT 0
18
19 /** PXE load address offset */
20 #define PXE_LOAD_OFFSET 0x7c00
21
22 /** PXE physical load address */
23 #define PXE_LOAD_PHYS ( ( PXE_LOAD_SEGMENT << 4 ) + PXE_LOAD_OFFSET )
24
25 /** !PXE structure */
26 extern struct s_PXE __text16 ( ppxe );
27 #define ppxe __use_text16 ( ppxe )
28
29 /** PXENV+ structure */
30 extern struct s_PXENV __text16 ( pxenv );
31 #define pxenv __use_text16 ( pxenv )
32
33 extern void pxe_activate ( struct net_device *netdev );
34 extern int pxe_deactivate ( void );
35 extern int pxe_start_nbp ( void );
36 extern __asmcall void pxe_api_call ( struct i386_all_regs *ix86 );
37
38 #endif /* _PXE_CALL_H */