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 ); 00010 00011 #include <pxe_api.h> 00012 #include <realmode.h> 00013 00014 struct net_device; 00015 00016 /** PXE load address segment */ 00017 #define PXE_LOAD_SEGMENT 0 00018 00019 /** PXE load address offset */ 00020 #define PXE_LOAD_OFFSET 0x7c00 00021 00022 /** PXE physical load address */ 00023 #define PXE_LOAD_PHYS ( ( PXE_LOAD_SEGMENT << 4 ) + PXE_LOAD_OFFSET ) 00024 00025 /** !PXE structure */ 00026 extern struct s_PXE __text16 ( ppxe ); 00027 #define ppxe __use_text16 ( ppxe ) 00028 00029 /** PXENV+ structure */ 00030 extern struct s_PXENV __text16 ( pxenv ); 00031 #define pxenv __use_text16 ( pxenv ) 00032 00033 extern void pxe_activate ( struct net_device *netdev ); 00034 extern int pxe_deactivate ( void ); 00035 extern int pxe_start_nbp ( void ); 00036 extern __asmcall void pxe_api_call ( struct i386_all_regs *ix86 ); 00037 extern int _pxe_api_call_weak ( struct i386_all_regs *ix86 ) 00038 __attribute__ (( weak )); 00039 00040 /** 00041 * Dispatch PXE API call weakly 00042 * 00043 * @v ix86 Registers for PXE call 00044 * @ret present Zero if the PXE stack is present, nonzero if not 00045 * 00046 * A successful return only indicates that the PXE stack was available 00047 * for dispatching the call; it says nothing about the success of 00048 * whatever the call asked for. 00049 */ 00050 static inline int pxe_api_call_weak ( struct i386_all_regs *ix86 ) 00051 { 00052 if ( _pxe_api_call_weak != NULL ) 00053 return _pxe_api_call_weak ( ix86 ); 00054 return -1; 00055 } 00056 00057 #endif /* _PXE_CALL_H */
1.5.7.1