ds_internal.h 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /* ds_internal.h - internal header for 16-bit PCMCIA devices management */
  2. struct user_info_t;
  3. /* Socket state information */
  4. struct pcmcia_bus_socket {
  5. struct kref refcount;
  6. struct pcmcia_socket *parent;
  7. /* the PCMCIA devices connected to this socket (normally one, more
  8. * for multifunction devices: */
  9. struct list_head devices_list;
  10. u8 device_count; /* the number of devices, used
  11. * only internally and subject
  12. * to incorrectness and change */
  13. struct {
  14. u8 present:1,
  15. busy:1,
  16. dead:1,
  17. device_add_pending:1,
  18. reserved:4;
  19. } pcmcia_state;
  20. struct work_struct device_add;
  21. #ifdef CONFIG_PCMCIA_IOCTL
  22. struct user_info_t *user;
  23. wait_queue_head_t queue;
  24. #endif
  25. };
  26. extern spinlock_t pcmcia_dev_list_lock;
  27. extern struct bus_type pcmcia_bus_type;
  28. extern struct pcmcia_device * pcmcia_get_dev(struct pcmcia_device *p_dev);
  29. extern void pcmcia_put_dev(struct pcmcia_device *p_dev);
  30. struct pcmcia_bus_socket *pcmcia_get_bus_socket(struct pcmcia_bus_socket *s);
  31. void pcmcia_put_bus_socket(struct pcmcia_bus_socket *s);
  32. struct pcmcia_device * pcmcia_device_add(struct pcmcia_bus_socket *s, unsigned int function);
  33. #ifdef CONFIG_PCMCIA_IOCTL
  34. extern void __init pcmcia_setup_ioctl(void);
  35. extern void __exit pcmcia_cleanup_ioctl(void);
  36. extern void handle_event(struct pcmcia_bus_socket *s, event_t event);
  37. extern int handle_request(struct pcmcia_bus_socket *s, event_t event);
  38. #else
  39. static inline void __init pcmcia_setup_ioctl(void) { return; }
  40. static inline void __init pcmcia_cleanup_ioctl(void) { return; }
  41. static inline void handle_event(struct pcmcia_bus_socket *s, event_t event) { return; }
  42. static inline int handle_request(struct pcmcia_bus_socket *s, event_t event) { return CS_SUCCESS; }
  43. #endif