OpenCores
URL https://opencores.org/ocsvn/hf-risc/hf-risc/trunk

Subversion Repositories hf-risc

[/] [hf-risc/] [trunk/] [tools/] [riscv-gnu-toolchain-master/] [linux-headers/] [include/] [linux/] [usbdevice_fs.h] - Blame information for rev 13

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 serginhofr
/*****************************************************************************/
2
 
3
/*
4
 *      usbdevice_fs.h  --  USB device file system.
5
 *
6
 *      Copyright (C) 2000
7
 *          Thomas Sailer (sailer@ife.ee.ethz.ch)
8
 *
9
 *      This program is free software; you can redistribute it and/or modify
10
 *      it under the terms of the GNU General Public License as published by
11
 *      the Free Software Foundation; either version 2 of the License, or
12
 *      (at your option) any later version.
13
 *
14
 *      This program is distributed in the hope that it will be useful,
15
 *      but WITHOUT ANY WARRANTY; without even the implied warranty of
16
 *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
 *      GNU General Public License for more details.
18
 *
19
 *      You should have received a copy of the GNU General Public License
20
 *      along with this program; if not, write to the Free Software
21
 *      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
22
 *
23
 *  History:
24
 *   0.1  04.01.2000  Created
25
 */
26
 
27
/*****************************************************************************/
28
 
29
#ifndef _LINUX_USBDEVICE_FS_H
30
#define _LINUX_USBDEVICE_FS_H
31
 
32
#include <linux/types.h>
33
#include <linux/magic.h>
34
 
35
/* --------------------------------------------------------------------- */
36
 
37
/* usbdevfs ioctl codes */
38
 
39
struct usbdevfs_ctrltransfer {
40
        __u8 bRequestType;
41
        __u8 bRequest;
42
        __u16 wValue;
43
        __u16 wIndex;
44
        __u16 wLength;
45
        __u32 timeout;  /* in milliseconds */
46
        void *data;
47
};
48
 
49
struct usbdevfs_bulktransfer {
50
        unsigned int ep;
51
        unsigned int len;
52
        unsigned int timeout; /* in milliseconds */
53
        void *data;
54
};
55
 
56
struct usbdevfs_setinterface {
57
        unsigned int interface;
58
        unsigned int altsetting;
59
};
60
 
61
struct usbdevfs_disconnectsignal {
62
        unsigned int signr;
63
        void *context;
64
};
65
 
66
#define USBDEVFS_MAXDRIVERNAME 255
67
 
68
struct usbdevfs_getdriver {
69
        unsigned int interface;
70
        char driver[USBDEVFS_MAXDRIVERNAME + 1];
71
};
72
 
73
struct usbdevfs_connectinfo {
74
        unsigned int devnum;
75
        unsigned char slow;
76
};
77
 
78
#define USBDEVFS_URB_SHORT_NOT_OK       0x01
79
#define USBDEVFS_URB_ISO_ASAP           0x02
80
#define USBDEVFS_URB_BULK_CONTINUATION  0x04
81
#define USBDEVFS_URB_NO_FSBR            0x20
82
#define USBDEVFS_URB_ZERO_PACKET        0x40
83
#define USBDEVFS_URB_NO_INTERRUPT       0x80
84
 
85
#define USBDEVFS_URB_TYPE_ISO              0
86
#define USBDEVFS_URB_TYPE_INTERRUPT        1
87
#define USBDEVFS_URB_TYPE_CONTROL          2
88
#define USBDEVFS_URB_TYPE_BULK             3
89
 
90
struct usbdevfs_iso_packet_desc {
91
        unsigned int length;
92
        unsigned int actual_length;
93
        unsigned int status;
94
};
95
 
96
struct usbdevfs_urb {
97
        unsigned char type;
98
        unsigned char endpoint;
99
        int status;
100
        unsigned int flags;
101
        void *buffer;
102
        int buffer_length;
103
        int actual_length;
104
        int start_frame;
105
        int number_of_packets;
106
        int error_count;
107
        unsigned int signr;     /* signal to be sent on completion,
108
                                  or 0 if none should be sent. */
109
        void *usercontext;
110
        struct usbdevfs_iso_packet_desc iso_frame_desc[0];
111
};
112
 
113
/* ioctls for talking directly to drivers */
114
struct usbdevfs_ioctl {
115
        int     ifno;           /* interface 0..N ; negative numbers reserved */
116
        int     ioctl_code;     /* MUST encode size + direction of data so the
117
                                 * macros in <asm/ioctl.h> give correct values */
118
        void *data;     /* param buffer (in, or out) */
119
};
120
 
121
/* You can do most things with hubs just through control messages,
122
 * except find out what device connects to what port. */
123
struct usbdevfs_hub_portinfo {
124
        char nports;            /* number of downstream ports in this hub */
125
        char port [127];        /* e.g. port 3 connects to device 27 */
126
};
127
 
128
/* Device capability flags */
129
#define USBDEVFS_CAP_ZERO_PACKET                0x01
130
#define USBDEVFS_CAP_BULK_CONTINUATION          0x02
131
#define USBDEVFS_CAP_NO_PACKET_SIZE_LIM         0x04
132
#define USBDEVFS_CAP_BULK_SCATTER_GATHER        0x08
133
 
134
/* USBDEVFS_DISCONNECT_CLAIM flags & struct */
135
 
136
/* disconnect-and-claim if the driver matches the driver field */
137
#define USBDEVFS_DISCONNECT_CLAIM_IF_DRIVER     0x01
138
/* disconnect-and-claim except when the driver matches the driver field */
139
#define USBDEVFS_DISCONNECT_CLAIM_EXCEPT_DRIVER 0x02
140
 
141
struct usbdevfs_disconnect_claim {
142
        unsigned int interface;
143
        unsigned int flags;
144
        char driver[USBDEVFS_MAXDRIVERNAME + 1];
145
};
146
 
147
 
148
#define USBDEVFS_CONTROL           _IOWR('U', 0, struct usbdevfs_ctrltransfer)
149
#define USBDEVFS_CONTROL32           _IOWR('U', 0, struct usbdevfs_ctrltransfer32)
150
#define USBDEVFS_BULK              _IOWR('U', 2, struct usbdevfs_bulktransfer)
151
#define USBDEVFS_BULK32              _IOWR('U', 2, struct usbdevfs_bulktransfer32)
152
#define USBDEVFS_RESETEP           _IOR('U', 3, unsigned int)
153
#define USBDEVFS_SETINTERFACE      _IOR('U', 4, struct usbdevfs_setinterface)
154
#define USBDEVFS_SETCONFIGURATION  _IOR('U', 5, unsigned int)
155
#define USBDEVFS_GETDRIVER         _IOW('U', 8, struct usbdevfs_getdriver)
156
#define USBDEVFS_SUBMITURB         _IOR('U', 10, struct usbdevfs_urb)
157
#define USBDEVFS_SUBMITURB32       _IOR('U', 10, struct usbdevfs_urb32)
158
#define USBDEVFS_DISCARDURB        _IO('U', 11)
159
#define USBDEVFS_REAPURB           _IOW('U', 12, void *)
160
#define USBDEVFS_REAPURB32         _IOW('U', 12, __u32)
161
#define USBDEVFS_REAPURBNDELAY     _IOW('U', 13, void *)
162
#define USBDEVFS_REAPURBNDELAY32   _IOW('U', 13, __u32)
163
#define USBDEVFS_DISCSIGNAL        _IOR('U', 14, struct usbdevfs_disconnectsignal)
164
#define USBDEVFS_DISCSIGNAL32      _IOR('U', 14, struct usbdevfs_disconnectsignal32)
165
#define USBDEVFS_CLAIMINTERFACE    _IOR('U', 15, unsigned int)
166
#define USBDEVFS_RELEASEINTERFACE  _IOR('U', 16, unsigned int)
167
#define USBDEVFS_CONNECTINFO       _IOW('U', 17, struct usbdevfs_connectinfo)
168
#define USBDEVFS_IOCTL             _IOWR('U', 18, struct usbdevfs_ioctl)
169
#define USBDEVFS_IOCTL32           _IOWR('U', 18, struct usbdevfs_ioctl32)
170
#define USBDEVFS_HUB_PORTINFO      _IOR('U', 19, struct usbdevfs_hub_portinfo)
171
#define USBDEVFS_RESET             _IO('U', 20)
172
#define USBDEVFS_CLEAR_HALT        _IOR('U', 21, unsigned int)
173
#define USBDEVFS_DISCONNECT        _IO('U', 22)
174
#define USBDEVFS_CONNECT           _IO('U', 23)
175
#define USBDEVFS_CLAIM_PORT        _IOR('U', 24, unsigned int)
176
#define USBDEVFS_RELEASE_PORT      _IOR('U', 25, unsigned int)
177
#define USBDEVFS_GET_CAPABILITIES  _IOR('U', 26, __u32)
178
#define USBDEVFS_DISCONNECT_CLAIM  _IOR('U', 27, struct usbdevfs_disconnect_claim)
179
 
180
#endif /* _LINUX_USBDEVICE_FS_H */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.