16ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh/****************************************************************************
26ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ****************************************************************************
36ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***
46ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   This header was automatically generated from a Linux kernel header
56ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   of the same name, to make information necessary for userspace to
66ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   call into the kernel available to libc.  It contains only constants,
76ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   structures, and macros generated from the original header, and thus,
86ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***   contains no copyrightable information.
96ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ***
106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ****************************************************************************
116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh ****************************************************************************/
126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#ifndef _LINUX_USBDEVICE_FS_H
136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define _LINUX_USBDEVICE_FS_H
146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#include <linux/types.h>
166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVICE_SUPER_MAGIC 0x9fa2
186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct usbdevfs_ctrltransfer {
206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u8 bRequestType;
216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u8 bRequest;
226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 wValue;
236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 wIndex;
246ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u16 wLength;
256ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh __u32 timeout;
266ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh void __user *data;
276ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
286ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
296ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct usbdevfs_bulktransfer {
306ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned int ep;
316ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned int len;
326ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned int timeout;
336ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh void __user *data;
346ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
356ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
366ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct usbdevfs_setinterface {
376ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned int interface;
386ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned int altsetting;
396ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
406ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
416ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct usbdevfs_disconnectsignal {
426ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned int signr;
436ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh void __user *context;
446ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
456ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
466ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_MAXDRIVERNAME 255
476ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
486ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct usbdevfs_getdriver {
496ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned int interface;
506ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh char driver[USBDEVFS_MAXDRIVERNAME + 1];
516ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
526ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
536ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct usbdevfs_connectinfo {
546ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned int devnum;
556ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned char slow;
566ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
576ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
586ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_URB_SHORT_NOT_OK 1
596ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_URB_ISO_ASAP 2
606ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
616ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_URB_TYPE_ISO 0
626ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_URB_TYPE_INTERRUPT 1
636ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_URB_TYPE_CONTROL 2
646ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_URB_TYPE_BULK 3
656ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
666ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct usbdevfs_iso_packet_desc {
676ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned int length;
686ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned int actual_length;
696ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned int status;
706ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
716ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
726ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct usbdevfs_urb {
736ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned char type;
746ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned char endpoint;
756ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh int status;
766ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned int flags;
776ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh void __user *buffer;
786ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh int buffer_length;
796ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh int actual_length;
806ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh int start_frame;
816ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh int number_of_packets;
826ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh int error_count;
836ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh unsigned int signr;
846ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh void *usercontext;
856ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh struct usbdevfs_iso_packet_desc iso_frame_desc[0];
866ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
876ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
886ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct usbdevfs_ioctl {
896ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh int ifno;
906ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh int ioctl_code;
916ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh void __user *data;
926ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
936ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
946ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsiehstruct usbdevfs_hub_portinfo {
956ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh char nports;
966ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh char port [127];
976ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh};
986ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh
996ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_CONTROL _IOWR('U', 0, struct usbdevfs_ctrltransfer)
1006ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_BULK _IOWR('U', 2, struct usbdevfs_bulktransfer)
1016ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_RESETEP _IOR('U', 3, unsigned int)
1026ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_SETINTERFACE _IOR('U', 4, struct usbdevfs_setinterface)
1036ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_SETCONFIGURATION _IOR('U', 5, unsigned int)
1046ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_GETDRIVER _IOW('U', 8, struct usbdevfs_getdriver)
1056ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_SUBMITURB _IOR('U', 10, struct usbdevfs_urb)
1066ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_SUBMITURB32 _IOR('U', 10, struct usbdevfs_urb32)
1076ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_DISCARDURB _IO('U', 11)
1086ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_REAPURB _IOW('U', 12, void *)
1096ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_REAPURB32 _IOW('U', 12, u32)
1106ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_REAPURBNDELAY _IOW('U', 13, void *)
1116ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_REAPURBNDELAY32 _IOW('U', 13, u32)
1126ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_DISCSIGNAL _IOR('U', 14, struct usbdevfs_disconnectsignal)
1136ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_CLAIMINTERFACE _IOR('U', 15, unsigned int)
1146ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_RELEASEINTERFACE _IOR('U', 16, unsigned int)
1156ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_CONNECTINFO _IOW('U', 17, struct usbdevfs_connectinfo)
1166ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_IOCTL _IOWR('U', 18, struct usbdevfs_ioctl)
1176ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_IOCTL32 _IOWR('U', 18, struct usbdevfs_ioctl32)
1186ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_HUB_PORTINFO _IOR('U', 19, struct usbdevfs_hub_portinfo)
1196ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_RESET _IO('U', 20)
1206ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_CLEAR_HALT _IOR('U', 21, unsigned int)
1216ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_DISCONNECT _IO('U', 22)
1226ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#define USBDEVFS_CONNECT _IO('U', 23)
1236ecc1bfab1621eaf5a17f82020a26468c537cdeaAndrew Hsieh#endif
124