Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef _PXE_CALL_H
  2. #define _PXE_CALL_H
  3. /** @file
  4. *
  5. * PXE API entry point
  6. */
  7. FILE_LICENCE ( GPL2_OR_LATER );
  8. #include <pxe_api.h>
  9. #include <realmode.h>
  10. struct net_device;
  11. /** PXE load address segment */
  12. #define PXE_LOAD_SEGMENT 0
  13. /** PXE load address offset */
  14. #define PXE_LOAD_OFFSET 0x7c00
  15. /** PXE physical load address */
  16. #define PXE_LOAD_PHYS ( ( PXE_LOAD_SEGMENT << 4 ) + PXE_LOAD_OFFSET )
  17. /** !PXE structure */
  18. extern struct s_PXE __text16 ( ppxe );
  19. #define ppxe __use_text16 ( ppxe )
  20. /** PXENV+ structure */
  21. extern struct s_PXENV __text16 ( pxenv );
  22. #define pxenv __use_text16 ( pxenv )
  23. extern void pxe_activate ( struct net_device *netdev );
  24. extern int pxe_deactivate ( void );
  25. extern int pxe_start_nbp ( void );
  26. extern __asmcall void pxe_api_call ( struct i386_all_regs *ix86 );
  27. extern int _pxe_api_call_weak ( struct i386_all_regs *ix86 )
  28. __attribute__ (( weak ));
  29. /**
  30. * Dispatch PXE API call weakly
  31. *
  32. * @v ix86 Registers for PXE call
  33. * @ret present Zero if the PXE stack is present, nonzero if not
  34. *
  35. * A successful return only indicates that the PXE stack was available
  36. * for dispatching the call; it says nothing about the success of
  37. * whatever the call asked for.
  38. */
  39. static inline int pxe_api_call_weak ( struct i386_all_regs *ix86 )
  40. {
  41. if ( _pxe_api_call_weak != NULL )
  42. return _pxe_api_call_weak ( ix86 );
  43. return -1;
  44. }
  45. #endif /* _PXE_CALL_H */