blob: 42343fc753bab9edccd1aa60acb9f268b1fea74c [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * pnpbios.h - contains local definitions
3 */
4
5#pragma pack(1)
6union 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
27extern int pnp_bios_present(void);
28extern int pnpbios_dont_use_current_config;
Linus Torvalds1da177e2005-04-16 15:20:36 -070029
30extern int pnpbios_parse_data_stream(struct pnp_dev *dev, struct pnp_bios_node * node);
Bjorn Helgaas4ab55d82008-04-28 16:34:06 -060031extern int pnpbios_read_resources_from_node(struct pnp_dev *dev, struct pnp_bios_node *node);
32extern int pnpbios_write_resources_to_node(struct pnp_dev *dev, struct pnp_bios_node *node);
Linus Torvalds1da177e2005-04-16 15:20:36 -070033extern void pnpid32_to_pnpid(u32 id, char *str);
34
35extern void pnpbios_print_status(const char * module, u16 status);
36extern void pnpbios_calls_init(union pnp_bios_install_struct * header);
37
38#ifdef CONFIG_PNPBIOS_PROC_FS
39extern int pnpbios_interface_attach_device(struct pnp_bios_node * node);
40extern int pnpbios_proc_init (void);
41extern void pnpbios_proc_exit (void);
42#else
43static inline int pnpbios_interface_attach_device(struct pnp_bios_node * node) { return 0; }
44static inline int pnpbios_proc_init (void) { return 0; }
45static inline void pnpbios_proc_exit (void) { ; }
46#endif /* CONFIG_PNPBIOS_PROC_FS */