1 /* ds_internal.h - internal header for 16-bit PCMCIA devices management */
5 /* Socket state information */
6 struct pcmcia_bus_socket
{
9 struct pcmcia_socket
*parent
;
11 /* the PCMCIA devices connected to this socket (normally one, more
12 * for multifunction devices: */
13 struct list_head devices_list
;
14 u8 device_count
; /* the number of devices, used
15 * only internally and subject
16 * to incorrectness and change */
18 u8 device_add_pending
;
19 struct work_struct device_add
;
22 #ifdef CONFIG_PCMCIA_IOCTL
23 struct user_info_t
*user
;
24 wait_queue_head_t queue
;
27 extern spinlock_t pcmcia_dev_list_lock
;
29 extern struct bus_type pcmcia_bus_type
;
32 #define DS_SOCKET_PRESENT 0x01
33 #define DS_SOCKET_BUSY 0x02
34 #define DS_SOCKET_DEAD 0x80
36 extern struct pcmcia_device
* pcmcia_get_dev(struct pcmcia_device
*p_dev
);
37 extern void pcmcia_put_dev(struct pcmcia_device
*p_dev
);
39 struct pcmcia_bus_socket
*pcmcia_get_bus_socket(struct pcmcia_bus_socket
*s
);
40 void pcmcia_put_bus_socket(struct pcmcia_bus_socket
*s
);
42 struct pcmcia_device
* pcmcia_device_add(struct pcmcia_bus_socket
*s
, unsigned int function
);
44 #ifdef CONFIG_PCMCIA_IOCTL
45 extern void __init
pcmcia_setup_ioctl(void);
46 extern void __exit
pcmcia_cleanup_ioctl(void);
47 extern void handle_event(struct pcmcia_bus_socket
*s
, event_t event
);
48 extern int handle_request(struct pcmcia_bus_socket
*s
, event_t event
);
50 static inline void __init
pcmcia_setup_ioctl(void) { return; }
51 static inline void __init
pcmcia_cleanup_ioctl(void) { return; }
52 static inline void handle_event(struct pcmcia_bus_socket
*s
, event_t event
) { return; }
53 static inline int handle_request(struct pcmcia_bus_socket
*s
, event_t event
) { return CS_SUCCESS
; }