1/****************************************************************************
2 ****************************************************************************
3 ***
4 ***   This header was automatically generated from a Linux kernel header
5 ***   of the same name, to make information necessary for userspace to
6 ***   call into the kernel available to libc.  It contains only constants,
7 ***   structures, and macros generated from the original header, and thus,
8 ***   contains no copyrightable information.
9 ***
10 ***   To edit the content of this header, modify the corresponding
11 ***   source file (e.g. under external/kernel-headers/original/) then
12 ***   run bionic/libc/kernel/tools/update_all.py
13 ***
14 ***   Any manual change here will be lost the next time this script will
15 ***   be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef _UAPI_LINUX_USBDEVICE_FS_H
20#define _UAPI_LINUX_USBDEVICE_FS_H
21#include <linux/types.h>
22#include <linux/magic.h>
23struct usbdevfs_ctrltransfer {
24  __u8 bRequestType;
25  __u8 bRequest;
26  __u16 wValue;
27  __u16 wIndex;
28  __u16 wLength;
29  __u32 timeout;
30  void __user * data;
31};
32struct usbdevfs_bulktransfer {
33  unsigned int ep;
34  unsigned int len;
35  unsigned int timeout;
36  void __user * data;
37};
38struct usbdevfs_setinterface {
39  unsigned int interface;
40  unsigned int altsetting;
41};
42struct usbdevfs_disconnectsignal {
43  unsigned int signr;
44  void __user * context;
45};
46#define USBDEVFS_MAXDRIVERNAME 255
47struct usbdevfs_getdriver {
48  unsigned int interface;
49  char driver[USBDEVFS_MAXDRIVERNAME + 1];
50};
51struct usbdevfs_connectinfo {
52  unsigned int devnum;
53  unsigned char slow;
54};
55#define USBDEVFS_URB_SHORT_NOT_OK 0x01
56#define USBDEVFS_URB_ISO_ASAP 0x02
57#define USBDEVFS_URB_BULK_CONTINUATION 0x04
58#define USBDEVFS_URB_NO_FSBR 0x20
59#define USBDEVFS_URB_ZERO_PACKET 0x40
60#define USBDEVFS_URB_NO_INTERRUPT 0x80
61#define USBDEVFS_URB_TYPE_ISO 0
62#define USBDEVFS_URB_TYPE_INTERRUPT 1
63#define USBDEVFS_URB_TYPE_CONTROL 2
64#define USBDEVFS_URB_TYPE_BULK 3
65struct usbdevfs_iso_packet_desc {
66  unsigned int length;
67  unsigned int actual_length;
68  unsigned int status;
69};
70struct usbdevfs_urb {
71  unsigned char type;
72  unsigned char endpoint;
73  int status;
74  unsigned int flags;
75  void __user * buffer;
76  int buffer_length;
77  int actual_length;
78  int start_frame;
79  union {
80    int number_of_packets;
81    unsigned int stream_id;
82  };
83  int error_count;
84  unsigned int signr;
85  void __user * usercontext;
86  struct usbdevfs_iso_packet_desc iso_frame_desc[0];
87};
88struct usbdevfs_ioctl {
89  int ifno;
90  int ioctl_code;
91  void __user * data;
92};
93struct usbdevfs_hub_portinfo {
94  char nports;
95  char port[127];
96};
97#define USBDEVFS_CAP_ZERO_PACKET 0x01
98#define USBDEVFS_CAP_BULK_CONTINUATION 0x02
99#define USBDEVFS_CAP_NO_PACKET_SIZE_LIM 0x04
100#define USBDEVFS_CAP_BULK_SCATTER_GATHER 0x08
101#define USBDEVFS_CAP_REAP_AFTER_DISCONNECT 0x10
102#define USBDEVFS_CAP_MMAP 0x20
103#define USBDEVFS_CAP_DROP_PRIVILEGES 0x40
104#define USBDEVFS_DISCONNECT_CLAIM_IF_DRIVER 0x01
105#define USBDEVFS_DISCONNECT_CLAIM_EXCEPT_DRIVER 0x02
106struct usbdevfs_disconnect_claim {
107  unsigned int interface;
108  unsigned int flags;
109  char driver[USBDEVFS_MAXDRIVERNAME + 1];
110};
111struct usbdevfs_streams {
112  unsigned int num_streams;
113  unsigned int num_eps;
114  unsigned char eps[0];
115};
116#define USBDEVFS_CONTROL _IOWR('U', 0, struct usbdevfs_ctrltransfer)
117#define USBDEVFS_CONTROL32 _IOWR('U', 0, struct usbdevfs_ctrltransfer32)
118#define USBDEVFS_BULK _IOWR('U', 2, struct usbdevfs_bulktransfer)
119#define USBDEVFS_BULK32 _IOWR('U', 2, struct usbdevfs_bulktransfer32)
120#define USBDEVFS_RESETEP _IOR('U', 3, unsigned int)
121#define USBDEVFS_SETINTERFACE _IOR('U', 4, struct usbdevfs_setinterface)
122#define USBDEVFS_SETCONFIGURATION _IOR('U', 5, unsigned int)
123#define USBDEVFS_GETDRIVER _IOW('U', 8, struct usbdevfs_getdriver)
124#define USBDEVFS_SUBMITURB _IOR('U', 10, struct usbdevfs_urb)
125#define USBDEVFS_SUBMITURB32 _IOR('U', 10, struct usbdevfs_urb32)
126#define USBDEVFS_DISCARDURB _IO('U', 11)
127#define USBDEVFS_REAPURB _IOW('U', 12, void *)
128#define USBDEVFS_REAPURB32 _IOW('U', 12, __u32)
129#define USBDEVFS_REAPURBNDELAY _IOW('U', 13, void *)
130#define USBDEVFS_REAPURBNDELAY32 _IOW('U', 13, __u32)
131#define USBDEVFS_DISCSIGNAL _IOR('U', 14, struct usbdevfs_disconnectsignal)
132#define USBDEVFS_DISCSIGNAL32 _IOR('U', 14, struct usbdevfs_disconnectsignal32)
133#define USBDEVFS_CLAIMINTERFACE _IOR('U', 15, unsigned int)
134#define USBDEVFS_RELEASEINTERFACE _IOR('U', 16, unsigned int)
135#define USBDEVFS_CONNECTINFO _IOW('U', 17, struct usbdevfs_connectinfo)
136#define USBDEVFS_IOCTL _IOWR('U', 18, struct usbdevfs_ioctl)
137#define USBDEVFS_IOCTL32 _IOWR('U', 18, struct usbdevfs_ioctl32)
138#define USBDEVFS_HUB_PORTINFO _IOR('U', 19, struct usbdevfs_hub_portinfo)
139#define USBDEVFS_RESET _IO('U', 20)
140#define USBDEVFS_CLEAR_HALT _IOR('U', 21, unsigned int)
141#define USBDEVFS_DISCONNECT _IO('U', 22)
142#define USBDEVFS_CONNECT _IO('U', 23)
143#define USBDEVFS_CLAIM_PORT _IOR('U', 24, unsigned int)
144#define USBDEVFS_RELEASE_PORT _IOR('U', 25, unsigned int)
145#define USBDEVFS_GET_CAPABILITIES _IOR('U', 26, __u32)
146#define USBDEVFS_DISCONNECT_CLAIM _IOR('U', 27, struct usbdevfs_disconnect_claim)
147#define USBDEVFS_ALLOC_STREAMS _IOR('U', 28, struct usbdevfs_streams)
148#define USBDEVFS_FREE_STREAMS _IOR('U', 29, struct usbdevfs_streams)
149#define USBDEVFS_DROP_PRIVILEGES _IOW('U', 30, __u32)
150#define USBDEVFS_GET_SPEED _IO('U', 31)
151#endif
152