blob: f77ebe33ee9d51d57e6052c418a0f0fbe6890fc2 [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Ben Cheng655a7c02013-10-16 16:09:24 -07007#ifndef _UAPI_LINUX_USBDEVICE_FS_H
8#define _UAPI_LINUX_USBDEVICE_FS_H
9#include <linux/types.h>
10#include <linux/magic.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070011struct usbdevfs_ctrltransfer {
Tao Baod7db5942015-01-28 10:07:51 -080012 __u8 bRequestType;
13 __u8 bRequest;
14 __u16 wValue;
Tao Baod7db5942015-01-28 10:07:51 -080015 __u16 wIndex;
16 __u16 wLength;
17 __u32 timeout;
Elliott Hughes0f0c18f2023-03-29 15:53:31 -070018 void * data;
Ben Cheng655a7c02013-10-16 16:09:24 -070019};
20struct usbdevfs_bulktransfer {
Tao Baod7db5942015-01-28 10:07:51 -080021 unsigned int ep;
22 unsigned int len;
Tao Baod7db5942015-01-28 10:07:51 -080023 unsigned int timeout;
Elliott Hughes0f0c18f2023-03-29 15:53:31 -070024 void * data;
Ben Cheng655a7c02013-10-16 16:09:24 -070025};
26struct usbdevfs_setinterface {
Tao Baod7db5942015-01-28 10:07:51 -080027 unsigned int interface;
28 unsigned int altsetting;
Ben Cheng655a7c02013-10-16 16:09:24 -070029};
30struct usbdevfs_disconnectsignal {
Tao Baod7db5942015-01-28 10:07:51 -080031 unsigned int signr;
Elliott Hughes0f0c18f2023-03-29 15:53:31 -070032 void * context;
Ben Cheng655a7c02013-10-16 16:09:24 -070033};
34#define USBDEVFS_MAXDRIVERNAME 255
Ben Cheng655a7c02013-10-16 16:09:24 -070035struct usbdevfs_getdriver {
Tao Baod7db5942015-01-28 10:07:51 -080036 unsigned int interface;
37 char driver[USBDEVFS_MAXDRIVERNAME + 1];
Ben Cheng655a7c02013-10-16 16:09:24 -070038};
Ben Cheng655a7c02013-10-16 16:09:24 -070039struct usbdevfs_connectinfo {
Tao Baod7db5942015-01-28 10:07:51 -080040 unsigned int devnum;
41 unsigned char slow;
Ben Cheng655a7c02013-10-16 16:09:24 -070042};
Christopher Ferrisb8a95e22019-10-02 18:29:20 -070043struct usbdevfs_conninfo_ex {
44 __u32 size;
45 __u32 busnum;
46 __u32 devnum;
47 __u32 speed;
48 __u8 num_ports;
49 __u8 ports[7];
50};
Ben Cheng655a7c02013-10-16 16:09:24 -070051#define USBDEVFS_URB_SHORT_NOT_OK 0x01
52#define USBDEVFS_URB_ISO_ASAP 0x02
53#define USBDEVFS_URB_BULK_CONTINUATION 0x04
54#define USBDEVFS_URB_NO_FSBR 0x20
Ben Cheng655a7c02013-10-16 16:09:24 -070055#define USBDEVFS_URB_ZERO_PACKET 0x40
56#define USBDEVFS_URB_NO_INTERRUPT 0x80
57#define USBDEVFS_URB_TYPE_ISO 0
58#define USBDEVFS_URB_TYPE_INTERRUPT 1
Ben Cheng655a7c02013-10-16 16:09:24 -070059#define USBDEVFS_URB_TYPE_CONTROL 2
60#define USBDEVFS_URB_TYPE_BULK 3
61struct usbdevfs_iso_packet_desc {
Tao Baod7db5942015-01-28 10:07:51 -080062 unsigned int length;
Tao Baod7db5942015-01-28 10:07:51 -080063 unsigned int actual_length;
64 unsigned int status;
Ben Cheng655a7c02013-10-16 16:09:24 -070065};
66struct usbdevfs_urb {
Tao Baod7db5942015-01-28 10:07:51 -080067 unsigned char type;
68 unsigned char endpoint;
69 int status;
70 unsigned int flags;
Elliott Hughes0f0c18f2023-03-29 15:53:31 -070071 void * buffer;
Tao Baod7db5942015-01-28 10:07:51 -080072 int buffer_length;
73 int actual_length;
74 int start_frame;
Tao Baod7db5942015-01-28 10:07:51 -080075 union {
76 int number_of_packets;
77 unsigned int stream_id;
78 };
Tao Baod7db5942015-01-28 10:07:51 -080079 int error_count;
80 unsigned int signr;
Elliott Hughes0f0c18f2023-03-29 15:53:31 -070081 void * usercontext;
Christopher Ferris7447a1c2022-10-04 18:24:44 -070082 struct usbdevfs_iso_packet_desc iso_frame_desc[];
Ben Cheng655a7c02013-10-16 16:09:24 -070083};
84struct usbdevfs_ioctl {
Tao Baod7db5942015-01-28 10:07:51 -080085 int ifno;
86 int ioctl_code;
Elliott Hughes0f0c18f2023-03-29 15:53:31 -070087 void * data;
Ben Cheng655a7c02013-10-16 16:09:24 -070088};
89struct usbdevfs_hub_portinfo {
Tao Baod7db5942015-01-28 10:07:51 -080090 char nports;
Tao Baod7db5942015-01-28 10:07:51 -080091 char port[127];
Ben Cheng655a7c02013-10-16 16:09:24 -070092};
93#define USBDEVFS_CAP_ZERO_PACKET 0x01
Ben Cheng655a7c02013-10-16 16:09:24 -070094#define USBDEVFS_CAP_BULK_CONTINUATION 0x02
95#define USBDEVFS_CAP_NO_PACKET_SIZE_LIM 0x04
96#define USBDEVFS_CAP_BULK_SCATTER_GATHER 0x08
Christopher Ferris915bf812015-09-02 17:23:31 -070097#define USBDEVFS_CAP_REAP_AFTER_DISCONNECT 0x10
Christopher Ferris106b3a82016-08-24 12:15:38 -070098#define USBDEVFS_CAP_MMAP 0x20
Christopher Ferris106b3a82016-08-24 12:15:38 -070099#define USBDEVFS_CAP_DROP_PRIVILEGES 0x40
Christopher Ferrisb8a95e22019-10-02 18:29:20 -0700100#define USBDEVFS_CAP_CONNINFO_EX 0x80
Christopher Ferris9584fa42019-12-09 15:36:13 -0800101#define USBDEVFS_CAP_SUSPEND 0x100
Christopher Ferris106b3a82016-08-24 12:15:38 -0700102#define USBDEVFS_DISCONNECT_CLAIM_IF_DRIVER 0x01
Christopher Ferris915bf812015-09-02 17:23:31 -0700103#define USBDEVFS_DISCONNECT_CLAIM_EXCEPT_DRIVER 0x02
Ben Cheng655a7c02013-10-16 16:09:24 -0700104struct usbdevfs_disconnect_claim {
Tao Baod7db5942015-01-28 10:07:51 -0800105 unsigned int interface;
106 unsigned int flags;
Christopher Ferris915bf812015-09-02 17:23:31 -0700107 char driver[USBDEVFS_MAXDRIVERNAME + 1];
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700108};
109struct usbdevfs_streams {
Tao Baod7db5942015-01-28 10:07:51 -0800110 unsigned int num_streams;
Christopher Ferris915bf812015-09-02 17:23:31 -0700111 unsigned int num_eps;
Christopher Ferris7447a1c2022-10-04 18:24:44 -0700112 unsigned char eps[];
Ben Cheng655a7c02013-10-16 16:09:24 -0700113};
114#define USBDEVFS_CONTROL _IOWR('U', 0, struct usbdevfs_ctrltransfer)
Christopher Ferris915bf812015-09-02 17:23:31 -0700115#define USBDEVFS_CONTROL32 _IOWR('U', 0, struct usbdevfs_ctrltransfer32)
Ben Cheng655a7c02013-10-16 16:09:24 -0700116#define USBDEVFS_BULK _IOWR('U', 2, struct usbdevfs_bulktransfer)
117#define USBDEVFS_BULK32 _IOWR('U', 2, struct usbdevfs_bulktransfer32)
118#define USBDEVFS_RESETEP _IOR('U', 3, unsigned int)
Christopher Ferris915bf812015-09-02 17:23:31 -0700119#define USBDEVFS_SETINTERFACE _IOR('U', 4, struct usbdevfs_setinterface)
Ben Cheng655a7c02013-10-16 16:09:24 -0700120#define USBDEVFS_SETCONFIGURATION _IOR('U', 5, unsigned int)
121#define USBDEVFS_GETDRIVER _IOW('U', 8, struct usbdevfs_getdriver)
122#define USBDEVFS_SUBMITURB _IOR('U', 10, struct usbdevfs_urb)
Christopher Ferris915bf812015-09-02 17:23:31 -0700123#define USBDEVFS_SUBMITURB32 _IOR('U', 10, struct usbdevfs_urb32)
Ben Cheng655a7c02013-10-16 16:09:24 -0700124#define USBDEVFS_DISCARDURB _IO('U', 11)
125#define USBDEVFS_REAPURB _IOW('U', 12, void *)
126#define USBDEVFS_REAPURB32 _IOW('U', 12, __u32)
Christopher Ferris915bf812015-09-02 17:23:31 -0700127#define USBDEVFS_REAPURBNDELAY _IOW('U', 13, void *)
Ben Cheng655a7c02013-10-16 16:09:24 -0700128#define USBDEVFS_REAPURBNDELAY32 _IOW('U', 13, __u32)
129#define USBDEVFS_DISCSIGNAL _IOR('U', 14, struct usbdevfs_disconnectsignal)
130#define USBDEVFS_DISCSIGNAL32 _IOR('U', 14, struct usbdevfs_disconnectsignal32)
Christopher Ferris915bf812015-09-02 17:23:31 -0700131#define USBDEVFS_CLAIMINTERFACE _IOR('U', 15, unsigned int)
Ben Cheng655a7c02013-10-16 16:09:24 -0700132#define USBDEVFS_RELEASEINTERFACE _IOR('U', 16, unsigned int)
133#define USBDEVFS_CONNECTINFO _IOW('U', 17, struct usbdevfs_connectinfo)
134#define USBDEVFS_IOCTL _IOWR('U', 18, struct usbdevfs_ioctl)
Christopher Ferris915bf812015-09-02 17:23:31 -0700135#define USBDEVFS_IOCTL32 _IOWR('U', 18, struct usbdevfs_ioctl32)
Ben Cheng655a7c02013-10-16 16:09:24 -0700136#define USBDEVFS_HUB_PORTINFO _IOR('U', 19, struct usbdevfs_hub_portinfo)
137#define USBDEVFS_RESET _IO('U', 20)
138#define USBDEVFS_CLEAR_HALT _IOR('U', 21, unsigned int)
Christopher Ferris915bf812015-09-02 17:23:31 -0700139#define USBDEVFS_DISCONNECT _IO('U', 22)
Ben Cheng655a7c02013-10-16 16:09:24 -0700140#define USBDEVFS_CONNECT _IO('U', 23)
141#define USBDEVFS_CLAIM_PORT _IOR('U', 24, unsigned int)
142#define USBDEVFS_RELEASE_PORT _IOR('U', 25, unsigned int)
Christopher Ferris915bf812015-09-02 17:23:31 -0700143#define USBDEVFS_GET_CAPABILITIES _IOR('U', 26, __u32)
Ben Cheng655a7c02013-10-16 16:09:24 -0700144#define USBDEVFS_DISCONNECT_CLAIM _IOR('U', 27, struct usbdevfs_disconnect_claim)
Christopher Ferrisba8d4f42014-09-03 19:56:49 -0700145#define USBDEVFS_ALLOC_STREAMS _IOR('U', 28, struct usbdevfs_streams)
146#define USBDEVFS_FREE_STREAMS _IOR('U', 29, struct usbdevfs_streams)
Christopher Ferris106b3a82016-08-24 12:15:38 -0700147#define USBDEVFS_DROP_PRIVILEGES _IOW('U', 30, __u32)
Christopher Ferris1308ad32017-11-14 17:32:13 -0800148#define USBDEVFS_GET_SPEED _IO('U', 31)
Christopher Ferrisb8a95e22019-10-02 18:29:20 -0700149#define USBDEVFS_CONNINFO_EX(len) _IOC(_IOC_READ, 'U', 32, len)
Christopher Ferris9584fa42019-12-09 15:36:13 -0800150#define USBDEVFS_FORBID_SUSPEND _IO('U', 33)
151#define USBDEVFS_ALLOW_SUSPEND _IO('U', 34)
152#define USBDEVFS_WAIT_FOR_RESUME _IO('U', 35)
Christopher Ferris915bf812015-09-02 17:23:31 -0700153#endif