ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.git] / drivers / pnp / pnpbios / pnpbios.h
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 extern void *pnpbios_kmalloc(size_t size, int f);
30
31 extern int pnpbios_parse_data_stream(struct pnp_dev *dev, struct pnp_bios_node * node);
32 extern int pnpbios_read_resources_from_node(struct pnp_resource_table *res, struct pnp_bios_node * node);
33 extern int pnpbios_write_resources_to_node(struct pnp_resource_table *res, struct pnp_bios_node * node);
34 extern void pnpid32_to_pnpid(u32 id, char *str);
35
36 extern void pnpbios_print_status(const char * module, u16 status);
37 extern void pnpbios_calls_init(union pnp_bios_install_struct * header);
38
39 #ifdef CONFIG_PNPBIOS_PROC_FS
40 extern int pnpbios_interface_attach_device(struct pnp_bios_node * node);
41 extern int pnpbios_proc_init (void);
42 extern void pnpbios_proc_exit (void);
43 #else
44 static inline int pnpbios_interface_attach_device(struct pnp_bios_node * node) { return 0; }
45 static inline int pnpbios_proc_init (void) { return 0; }
46 static inline void pnpbios_proc_exit (void) { ; }
47 #endif /* CONFIG_PNPBIOS_PROC_FS */