pnpbios.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. /*
  2. * pnpbios.h - contains local definitions
  3. */
  4. #pragma pack(1)
  5. union pnp_bios_install_struct {
  6. struct {
  7. u32 signature; /* "$PnP" */
  8. u8 version; /* in BCD */
  9. u8 length; /* length in bytes, currently 21h */
  10. u16 control; /* system capabilities */
  11. u8 checksum; /* all bytes must add up to 0 */
  12. u32 eventflag; /* phys. address of the event flag */
  13. u16 rmoffset; /* real mode entry point */
  14. u16 rmcseg;
  15. u16 pm16offset; /* 16 bit protected mode entry */
  16. u32 pm16cseg;
  17. u32 deviceID; /* EISA encoded system ID or 0 */
  18. u16 rmdseg; /* real mode data segment */
  19. u32 pm16dseg; /* 16 bit pm data segment base */
  20. } fields;
  21. char chars[0x21]; /* To calculate the checksum */
  22. };
  23. #pragma pack()
  24. extern int pnp_bios_present(void);
  25. extern int pnpbios_dont_use_current_config;
  26. extern int pnpbios_parse_data_stream(struct pnp_dev *dev, struct pnp_bios_node * node);
  27. extern int pnpbios_read_resources_from_node(struct pnp_resource_table *res, struct pnp_bios_node * node);
  28. extern int pnpbios_write_resources_to_node(struct pnp_resource_table *res, struct pnp_bios_node * node);
  29. extern void pnpid32_to_pnpid(u32 id, char *str);
  30. extern void pnpbios_print_status(const char * module, u16 status);
  31. extern void pnpbios_calls_init(union pnp_bios_install_struct * header);
  32. #ifdef CONFIG_PNPBIOS_PROC_FS
  33. extern int pnpbios_interface_attach_device(struct pnp_bios_node * node);
  34. extern int pnpbios_proc_init (void);
  35. extern void pnpbios_proc_exit (void);
  36. #else
  37. static inline int pnpbios_interface_attach_device(struct pnp_bios_node * node) { return 0; }
  38. static inline int pnpbios_proc_init (void) { return 0; }
  39. static inline void pnpbios_proc_exit (void) { ; }
  40. #endif /* CONFIG_PNPBIOS_PROC_FS */