linux/drivers/usb/core/usb.h
<<
>>
Prefs
   1/* Functions local to drivers/usb/core/ */
   2
   3extern int usb_create_sysfs_dev_files(struct usb_device *dev);
   4extern void usb_remove_sysfs_dev_files(struct usb_device *dev);
   5extern int usb_create_sysfs_intf_files(struct usb_interface *intf);
   6extern void usb_remove_sysfs_intf_files(struct usb_interface *intf);
   7extern int usb_create_ep_files(struct device *parent,
   8                                struct usb_host_endpoint *endpoint,
   9                                struct usb_device *udev);
  10extern void usb_remove_ep_files(struct usb_host_endpoint *endpoint);
  11
  12extern void usb_enable_endpoint(struct usb_device *dev,
  13                struct usb_host_endpoint *ep);
  14extern void usb_disable_endpoint(struct usb_device *dev, unsigned int epaddr);
  15extern void usb_disable_interface(struct usb_device *dev,
  16                struct usb_interface *intf);
  17extern void usb_release_interface_cache(struct kref *ref);
  18extern void usb_disable_device(struct usb_device *dev, int skip_ep0);
  19extern int usb_deauthorize_device(struct usb_device *);
  20extern int usb_authorize_device(struct usb_device *);
  21extern void usb_detect_quirks(struct usb_device *udev);
  22
  23extern int usb_get_device_descriptor(struct usb_device *dev,
  24                unsigned int size);
  25extern char *usb_cache_string(struct usb_device *udev, int index);
  26extern int usb_set_configuration(struct usb_device *dev, int configuration);
  27extern int usb_choose_configuration(struct usb_device *udev);
  28
  29extern void usb_kick_khubd(struct usb_device *dev);
  30extern int usb_match_device(struct usb_device *dev,
  31                            const struct usb_device_id *id);
  32extern void usb_forced_unbind_intf(struct usb_interface *intf);
  33extern void usb_rebind_intf(struct usb_interface *intf);
  34
  35extern int  usb_hub_init(void);
  36extern void usb_hub_cleanup(void);
  37extern int usb_major_init(void);
  38extern void usb_major_cleanup(void);
  39extern int usb_host_init(void);
  40extern void usb_host_cleanup(void);
  41
  42#ifdef  CONFIG_PM
  43
  44extern int usb_suspend(struct device *dev, pm_message_t msg);
  45extern int usb_resume(struct device *dev);
  46
  47extern void usb_autosuspend_work(struct work_struct *work);
  48extern int usb_port_suspend(struct usb_device *dev);
  49extern int usb_port_resume(struct usb_device *dev);
  50extern int usb_external_suspend_device(struct usb_device *udev,
  51                pm_message_t msg);
  52extern int usb_external_resume_device(struct usb_device *udev);
  53
  54static inline void usb_pm_lock(struct usb_device *udev)
  55{
  56        mutex_lock_nested(&udev->pm_mutex, udev->level);
  57}
  58
  59static inline void usb_pm_unlock(struct usb_device *udev)
  60{
  61        mutex_unlock(&udev->pm_mutex);
  62}
  63
  64#else
  65
  66static inline int usb_port_suspend(struct usb_device *udev)
  67{
  68        return 0;
  69}
  70
  71static inline int usb_port_resume(struct usb_device *udev)
  72{
  73        return 0;
  74}
  75
  76static inline void usb_pm_lock(struct usb_device *udev) {}
  77static inline void usb_pm_unlock(struct usb_device *udev) {}
  78
  79#endif
  80
  81#ifdef CONFIG_USB_SUSPEND
  82
  83extern void usb_autosuspend_device(struct usb_device *udev);
  84extern void usb_try_autosuspend_device(struct usb_device *udev);
  85extern int usb_autoresume_device(struct usb_device *udev);
  86
  87#else
  88
  89#define usb_autosuspend_device(udev)            do {} while (0)
  90#define usb_try_autosuspend_device(udev)        do {} while (0)
  91static inline int usb_autoresume_device(struct usb_device *udev)
  92{
  93        return 0;
  94}
  95
  96#endif
  97
  98extern struct workqueue_struct *ksuspend_usb_wq;
  99extern struct bus_type usb_bus_type;
 100extern struct device_type usb_device_type;
 101extern struct device_type usb_if_device_type;
 102extern struct usb_device_driver usb_generic_driver;
 103
 104static inline int is_usb_device(const struct device *dev)
 105{
 106        return dev->type == &usb_device_type;
 107}
 108
 109/* Do the same for device drivers and interface drivers. */
 110
 111static inline int is_usb_device_driver(struct device_driver *drv)
 112{
 113        return container_of(drv, struct usbdrv_wrap, driver)->
 114                        for_devices;
 115}
 116
 117/* Interfaces and their "power state" are owned by usbcore */
 118
 119static inline void mark_active(struct usb_interface *f)
 120{
 121        f->is_active = 1;
 122}
 123
 124static inline void mark_quiesced(struct usb_interface *f)
 125{
 126        f->is_active = 0;
 127}
 128
 129static inline int is_active(const struct usb_interface *f)
 130{
 131        return f->is_active;
 132}
 133
 134
 135/* for labeling diagnostics */
 136extern const char *usbcore_name;
 137
 138/* sysfs stuff */
 139extern struct attribute_group *usb_device_groups[];
 140extern struct attribute_group *usb_interface_groups[];
 141
 142/* usbfs stuff */
 143extern struct mutex usbfs_mutex;
 144extern struct usb_driver usbfs_driver;
 145extern const struct file_operations usbfs_devices_fops;
 146extern const struct file_operations usbdev_file_operations;
 147extern void usbfs_conn_disc_event(void);
 148extern void usb_fs_classdev_common_remove(struct usb_device *udev);
 149
 150extern int usb_devio_init(void);
 151extern void usb_devio_cleanup(void);
 152
 153/* internal notify stuff */
 154extern void usb_notify_add_device(struct usb_device *udev);
 155extern void usb_notify_remove_device(struct usb_device *udev);
 156extern void usb_notify_add_bus(struct usb_bus *ubus);
 157extern void usb_notify_remove_bus(struct usb_bus *ubus);
 158
 159
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.