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