iPXE
pxe_call.h
Go to the documentation of this file.
00001 #ifndef _PXE_CALL_H
00002 #define _PXE_CALL_H
00003 
00004 /** @file
00005  *
00006  * PXE API entry point
00007  */
00008 
00009 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
00010 
00011 #include <pxe_api.h>
00012 #include <realmode.h>
00013 #include <rmsetjmp.h>
00014 
00015 struct net_device;
00016 
00017 /** PXE load address segment */
00018 #define PXE_LOAD_SEGMENT 0
00019 
00020 /** PXE load address offset */
00021 #define PXE_LOAD_OFFSET 0x7c00
00022 
00023 /** PXE physical load address */
00024 #define PXE_LOAD_PHYS ( ( PXE_LOAD_SEGMENT << 4 ) + PXE_LOAD_OFFSET )
00025 
00026 /** !PXE structure */
00027 extern struct s_PXE __text16 ( ppxe );
00028 #define ppxe __use_text16 ( ppxe )
00029 
00030 /** PXENV+ structure */
00031 extern struct s_PXENV __text16 ( pxenv );
00032 #define pxenv __use_text16 ( pxenv )
00033 
00034 /** PXENV_RESTART_TFTP jump buffer */
00035 extern rmjmp_buf pxe_restart_nbp;
00036 
00037 extern void pxe_activate ( struct net_device *netdev );
00038 extern int pxe_deactivate ( void );
00039 extern int pxe_start_nbp ( void );
00040 extern __asmcall void pxe_api_call ( struct i386_all_regs *ix86 );
00041 extern int pxe_api_call_weak ( struct i386_all_regs *ix86 );
00042 
00043 #endif /* _PXE_CALL_H */