| #ifndef _PXE_CALL_H |
| #define _PXE_CALL_H |
| |
| /** @file |
| * |
| * PXE API entry point |
| */ |
| |
| FILE_LICENCE ( GPL2_OR_LATER ); |
| |
| #include <pxe_api.h> |
| #include <realmode.h> |
| |
| struct net_device; |
| |
| /** PXE load address segment */ |
| #define PXE_LOAD_SEGMENT 0 |
| |
| /** PXE load address offset */ |
| #define PXE_LOAD_OFFSET 0x7c00 |
| |
| /** PXE physical load address */ |
| #define PXE_LOAD_PHYS ( ( PXE_LOAD_SEGMENT << 4 ) + PXE_LOAD_OFFSET ) |
| |
| /** !PXE structure */ |
| extern struct s_PXE __text16 ( ppxe ); |
| #define ppxe __use_text16 ( ppxe ) |
| |
| /** PXENV+ structure */ |
| extern struct s_PXENV __text16 ( pxenv ); |
| #define pxenv __use_text16 ( pxenv ) |
| |
| extern void pxe_activate ( struct net_device *netdev ); |
| extern int pxe_deactivate ( void ); |
| extern int pxe_start_nbp ( void ); |
| extern __asmcall void pxe_api_call ( struct i386_all_regs *ix86 ); |
| extern int _pxe_api_call_weak ( struct i386_all_regs *ix86 ) |
| __attribute__ (( weak )); |
| |
| /** |
| * Dispatch PXE API call weakly |
| * |
| * @v ix86 Registers for PXE call |
| * @ret present Zero if the PXE stack is present, nonzero if not |
| * |
| * A successful return only indicates that the PXE stack was available |
| * for dispatching the call; it says nothing about the success of |
| * whatever the call asked for. |
| */ |
| static inline int pxe_api_call_weak ( struct i386_all_regs *ix86 ) |
| { |
| if ( _pxe_api_call_weak != NULL ) |
| return _pxe_api_call_weak ( ix86 ); |
| return -1; |
| } |
| |
| #endif /* _PXE_CALL_H */ |