1 /* Functions local to drivers/usb/core/ */ 2 3 extern void usb_create_sysfs_dev_files (struct usb_device *dev); 4 extern void usb_remove_sysfs_dev_files (struct usb_device *dev); 5 extern void usb_create_sysfs_intf_files (struct usb_interface *intf); 6 extern void usb_remove_sysfs_intf_files (struct usb_interface *intf); 7 extern void usb_create_ep_files(struct device *parent, struct usb_host_endpoint *endpoint, 8 struct usb_device *udev); 9 extern void usb_remove_ep_files(struct usb_host_endpoint *endpoint); 10 11 extern void usb_disable_endpoint (struct usb_device *dev, unsigned int epaddr); 12 extern void usb_disable_interface (struct usb_device *dev, 13 struct usb_interface *intf); 14 extern void usb_release_interface_cache(struct kref *ref); 15 extern void usb_disable_device (struct usb_device *dev, int skip_ep0); 16 17 extern int usb_get_device_descriptor(struct usb_device *dev, 18 unsigned int size); 19 extern char *usb_cache_string(struct usb_device *udev, int index); 20 extern int usb_set_configuration(struct usb_device *dev, int configuration); 21 22 extern void usb_kick_khubd(struct usb_device *dev); 23 extern void usb_suspend_root_hub(struct usb_device *hdev); 24 extern void usb_resume_root_hub(struct usb_device *dev); 25 26 extern int usb_hub_init(void); 27 extern void usb_hub_cleanup(void); 28 extern int usb_major_init(void); 29 extern void usb_major_cleanup(void); 30 extern int usb_host_init(void); 31 extern void usb_host_cleanup(void); 32 33 extern int usb_suspend_device(struct usb_device *dev); 34 extern int usb_resume_device(struct usb_device *dev); 35 36 extern struct device_driver usb_generic_driver; 37 extern int usb_generic_driver_data; 38 extern int usb_device_match(struct device *dev, struct device_driver *drv); 39 40 /* Interfaces and their "power state" are owned by usbcore */ 41 42 static inline void mark_active(struct usb_interface *f) 43 { 44 f->dev.power.power_state.event = PM_EVENT_ON; 45 } 46 47 static inline void mark_quiesced(struct usb_interface *f) 48 { 49 f->dev.power.power_state.event = PM_EVENT_FREEZE; 50 } 51 52 static inline int is_active(struct usb_interface *f) 53 { 54 return f->dev.power.power_state.event == PM_EVENT_ON; 55 } 56 57 58 /* for labeling diagnostics */ 59 extern const char *usbcore_name; 60 61 /* usbfs stuff */ 62 extern struct usb_driver usbfs_driver; 63 extern struct file_operations usbfs_devices_fops; 64 extern struct file_operations usbfs_device_file_operations; 65 extern void usbfs_conn_disc_event(void); 66 67 extern int usbdev_init(void); 68 extern void usbdev_cleanup(void); 69 70 struct dev_state { 71 struct list_head list; /* state list */ 72 struct usb_device *dev; 73 struct file *file; 74 spinlock_t lock; /* protects the async urb lists */ 75 struct list_head async_pending; 76 struct list_head async_completed; 77 wait_queue_head_t wait; /* wake up if a request completed */ 78 unsigned int discsignr; 79 pid_t disc_pid; 80 uid_t disc_uid, disc_euid; 81 void __user *disccontext; 82 unsigned long ifclaimed; 83 }; 84 85 /* internal notify stuff */ 86 extern void usb_notify_add_device(struct usb_device *udev); 87 extern void usb_notify_remove_device(struct usb_device *udev); 88 extern void usb_notify_add_bus(struct usb_bus *ubus); 89 extern void usb_notify_remove_bus(struct usb_bus *ubus); 90 91