111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   This header was automatically generated from a Linux kernel header
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   of the same name, to make information necessary for userspace to
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   call into the kernel available to libc.  It contains only constants,
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   structures, and macros generated from the original header, and thus,
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   contains no copyrightable information.
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _LINUX_USBDEVICE_FS_H
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _LINUX_USBDEVICE_FS_H
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h>
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVICE_SUPER_MAGIC 0x9fa2
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usbdevfs_ctrltransfer {
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bRequestType;
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 bRequest;
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wValue;
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wIndex;
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 wLength;
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 timeout;
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void __user *data;
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usbdevfs_bulktransfer {
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int ep;
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int len;
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int timeout;
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void __user *data;
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usbdevfs_setinterface {
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int interface;
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int altsetting;
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usbdevfs_disconnectsignal {
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int signr;
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void __user *context;
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_MAXDRIVERNAME 255
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usbdevfs_getdriver {
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int interface;
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char driver[USBDEVFS_MAXDRIVERNAME + 1];
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usbdevfs_connectinfo {
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int devnum;
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char slow;
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_URB_SHORT_NOT_OK 1
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_URB_ISO_ASAP 2
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_URB_TYPE_ISO 0
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_URB_TYPE_INTERRUPT 1
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_URB_TYPE_CONTROL 2
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_URB_TYPE_BULK 3
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usbdevfs_iso_packet_desc {
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int length;
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int actual_length;
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int status;
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usbdevfs_urb {
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char type;
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned char endpoint;
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int status;
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int flags;
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void __user *buffer;
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int buffer_length;
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int actual_length;
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int start_frame;
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int number_of_packets;
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int error_count;
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned int signr;
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void *usercontext;
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct usbdevfs_iso_packet_desc iso_frame_desc[0];
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usbdevfs_ioctl {
8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int ifno;
9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int ioctl_code;
9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void __user *data;
9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct usbdevfs_hub_portinfo {
9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char nports;
9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert char port [127];
9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_CONTROL _IOWR('U', 0, struct usbdevfs_ctrltransfer)
10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_BULK _IOWR('U', 2, struct usbdevfs_bulktransfer)
10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_RESETEP _IOR('U', 3, unsigned int)
10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_SETINTERFACE _IOR('U', 4, struct usbdevfs_setinterface)
10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_SETCONFIGURATION _IOR('U', 5, unsigned int)
10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_GETDRIVER _IOW('U', 8, struct usbdevfs_getdriver)
10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_SUBMITURB _IOR('U', 10, struct usbdevfs_urb)
10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_SUBMITURB32 _IOR('U', 10, struct usbdevfs_urb32)
10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_DISCARDURB _IO('U', 11)
10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_REAPURB _IOW('U', 12, void *)
10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_REAPURB32 _IOW('U', 12, u32)
11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_REAPURBNDELAY _IOW('U', 13, void *)
11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_REAPURBNDELAY32 _IOW('U', 13, u32)
11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_DISCSIGNAL _IOR('U', 14, struct usbdevfs_disconnectsignal)
11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_CLAIMINTERFACE _IOR('U', 15, unsigned int)
11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_RELEASEINTERFACE _IOR('U', 16, unsigned int)
11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_CONNECTINFO _IOW('U', 17, struct usbdevfs_connectinfo)
11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_IOCTL _IOWR('U', 18, struct usbdevfs_ioctl)
11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_IOCTL32 _IOWR('U', 18, struct usbdevfs_ioctl32)
11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_HUB_PORTINFO _IOR('U', 19, struct usbdevfs_hub_portinfo)
11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_RESET _IO('U', 20)
12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_CLEAR_HALT _IOR('U', 21, unsigned int)
12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_DISCONNECT _IO('U', 22)
12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define USBDEVFS_CONNECT _IO('U', 23)
12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
124