diff options
Diffstat (limited to 'drivers/pcmcia/ds_internal.h')
-rw-r--r-- | drivers/pcmcia/ds_internal.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/drivers/pcmcia/ds_internal.h b/drivers/pcmcia/ds_internal.h new file mode 100644 index 00000000000..0de90e5e67a --- /dev/null +++ b/drivers/pcmcia/ds_internal.h @@ -0,0 +1,55 @@ +/* ds_internal.h - internal header for 16-bit PCMCIA devices management */ + +struct user_info_t; + +/* Socket state information */ +struct pcmcia_bus_socket { + struct kref refcount; + struct pcmcia_callback callback; + int state; + struct pcmcia_socket *parent; + + /* the PCMCIA devices connected to this socket (normally one, more + * for multifunction devices: */ + struct list_head devices_list; + u8 device_count; /* the number of devices, used + * only internally and subject + * to incorrectness and change */ + + u8 device_add_pending; + struct work_struct device_add; + + +#ifdef CONFIG_PCMCIA_IOCTL + struct user_info_t *user; + wait_queue_head_t queue; +#endif +}; +extern spinlock_t pcmcia_dev_list_lock; + +extern struct bus_type pcmcia_bus_type; + + +#define DS_SOCKET_PRESENT 0x01 +#define DS_SOCKET_BUSY 0x02 +#define DS_SOCKET_DEAD 0x80 + +extern struct pcmcia_device * pcmcia_get_dev(struct pcmcia_device *p_dev); +extern void pcmcia_put_dev(struct pcmcia_device *p_dev); + +struct pcmcia_bus_socket *pcmcia_get_bus_socket(struct pcmcia_bus_socket *s); +void pcmcia_put_bus_socket(struct pcmcia_bus_socket *s); + +struct pcmcia_device * pcmcia_device_add(struct pcmcia_bus_socket *s, unsigned int function); + +#ifdef CONFIG_PCMCIA_IOCTL +extern void __init pcmcia_setup_ioctl(void); +extern void __exit pcmcia_cleanup_ioctl(void); +extern void handle_event(struct pcmcia_bus_socket *s, event_t event); +extern int handle_request(struct pcmcia_bus_socket *s, event_t event); +#else +static inline void __init pcmcia_setup_ioctl(void) { return; } +static inline void __init pcmcia_cleanup_ioctl(void) { return; } +static inline void handle_event(struct pcmcia_bus_socket *s, event_t event) { return; } +static inline int handle_request(struct pcmcia_bus_socket *s, event_t event) { return CS_SUCCESS; } +#endif |