2005-04-17 02:20:36 +04:00
extern spinlock_t pnp_lock ;
void * pnp_alloc ( long size ) ;
2008-04-29 02:33:53 +04:00
# define PNP_EISA_ID_MASK 0x7fffffff
void pnp_eisa_id_to_string ( u32 id , char * str ) ;
2008-04-29 02:33:54 +04:00
struct pnp_dev * pnp_alloc_dev ( struct pnp_protocol * , int id , char * pnpid ) ;
2008-04-29 02:33:58 +04:00
struct pnp_card * pnp_alloc_card ( struct pnp_protocol * , int id , char * pnpid ) ;
2008-04-29 02:33:52 +04:00
struct pnp_id * pnp_add_id ( struct pnp_dev * dev , char * id ) ;
2008-04-29 02:33:56 +04:00
struct pnp_id * pnp_add_card_id ( struct pnp_card * card , char * id ) ;
2005-04-17 02:20:36 +04:00
int pnp_interface_attach_device ( struct pnp_dev * dev ) ;
void pnp_fixup_device ( struct pnp_dev * dev ) ;
void pnp_free_option ( struct pnp_option * option ) ;
int __pnp_add_device ( struct pnp_dev * dev ) ;
void __pnp_remove_device ( struct pnp_dev * dev ) ;
2008-04-29 02:34:22 +04:00
int pnp_check_port ( struct pnp_dev * dev , struct resource * res ) ;
int pnp_check_mem ( struct pnp_dev * dev , struct resource * res ) ;
int pnp_check_irq ( struct pnp_dev * dev , struct resource * res ) ;
int pnp_check_dma ( struct pnp_dev * dev , struct resource * res ) ;
2008-04-29 02:34:08 +04:00
void dbg_pnp_show_resources ( struct pnp_dev * dev , char * desc ) ;
2008-04-29 02:34:13 +04:00
void pnp_init_resource ( struct resource * res ) ;
2008-04-29 02:34:28 +04:00
2008-04-29 02:34:31 +04:00
struct pnp_resource * pnp_get_pnp_resource ( struct pnp_dev * dev ,
unsigned int type , unsigned int num ) ;
2008-04-29 02:34:28 +04:00
# define PNP_MAX_PORT 40
# define PNP_MAX_MEM 24
# define PNP_MAX_IRQ 2
# define PNP_MAX_DMA 2
2008-04-29 02:34:30 +04:00
struct pnp_resource {
struct resource res ;
2008-04-29 02:34:32 +04:00
unsigned int index ; /* ISAPNP config register index */
2008-04-29 02:34:30 +04:00
} ;
2008-04-29 02:34:28 +04:00
struct pnp_resource_table {
2008-04-29 02:34:30 +04:00
struct pnp_resource port [ PNP_MAX_PORT ] ;
struct pnp_resource mem [ PNP_MAX_MEM ] ;
struct pnp_resource dma [ PNP_MAX_DMA ] ;
struct pnp_resource irq [ PNP_MAX_IRQ ] ;
2008-04-29 02:34:28 +04:00
} ;
2008-04-29 02:34:34 +04:00
struct pnp_resource * pnp_add_irq_resource ( struct pnp_dev * dev , int irq ,
int flags ) ;
2008-04-29 02:34:35 +04:00
struct pnp_resource * pnp_add_dma_resource ( struct pnp_dev * dev , int dma ,
int flags ) ;