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 );
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 */

Generated on Tue Apr 6 20:00:50 2010 for gPXE by  doxygen 1.5.7.1