123
123
#define USBFS_CAP_NO_PACKET_SIZE_LIM 0x04
124
124
#define USBFS_CAP_BULK_SCATTER_GATHER 0x08
126
#define USBFS_DISCONNECT_CLAIM_IF_DRIVER 0x01
127
#define USBFS_DISCONNECT_CLAIM_EXCEPT_DRIVER 0x02
129
struct usbfs_disconnect_claim {
130
unsigned int interface;
132
char driver[USBFS_MAXDRIVERNAME + 1];
126
135
#define IOCTL_USBFS_CONTROL _IOWR('U', 0, struct usbfs_ctrltransfer)
127
136
#define IOCTL_USBFS_BULK _IOWR('U', 2, struct usbfs_bulktransfer)
128
137
#define IOCTL_USBFS_RESETEP _IOR('U', 3, unsigned int)
145
154
#define IOCTL_USBFS_CLAIM_PORT _IOR('U', 24, unsigned int)
146
155
#define IOCTL_USBFS_RELEASE_PORT _IOR('U', 25, unsigned int)
147
156
#define IOCTL_USBFS_GET_CAPABILITIES _IOR('U', 26, __u32)
157
#define IOCTL_USBFS_DISCONNECT_CLAIM _IOR('U', 27, struct usbfs_disconnect_claim)
159
extern usbi_mutex_static_t linux_hotplug_lock;
161
#if defined(HAVE_LIBUDEV)
162
int linux_udev_start_event_monitor(void);
163
int linux_udev_stop_event_monitor(void);
164
int linux_udev_scan_devices(struct libusb_context *ctx);
165
void linux_udev_hotplug_poll(void);
167
int linux_netlink_start_event_monitor(void);
168
int linux_netlink_stop_event_monitor(void);
169
void linux_netlink_hotplug_poll(void);
172
void linux_hotplug_enumerate(uint8_t busnum, uint8_t devaddr, const char *sys_name);
173
void linux_hotplug_disconnected(uint8_t busnum, uint8_t devaddr, const char *sys_name);
175
int linux_get_device_address (struct libusb_context *ctx, int detached,
176
uint8_t *busnum, uint8_t *devaddr, const char *dev_node,
177
const char *sys_name);
178
int linux_enumerate_device(struct libusb_context *ctx,
179
uint8_t busnum, uint8_t devaddr, const char *sysfs_dir);