]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - sys/dev/usb/usb_if.m
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / sys / dev / usb / usb_if.m
1 #-
2 # Copyright (c) 2008 Hans Petter Selasky. All rights reserved.
3 #
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions
6 # are met:
7 # 1. Redistributions of source code must retain the above copyright
8 #    notice, this list of conditions and the following disclaimer,
9 #    without modification, immediately at the beginning of the file.
10 # 2. Redistributions in binary form must reproduce the above copyright
11 #    notice, this list of conditions and the following disclaimer in the
12 #    documentation and/or other materials provided with the distribution.
13 # 3. The name of the author may not be used to endorse or promote products
14 #    derived from this software without specific prior written permission.
15 #
16 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17 # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18 # OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19 # IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21 # NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 #
27 # $FreeBSD$
28 #
29
30 # USB interface description
31 #
32
33 #include <sys/bus.h>
34
35 INTERFACE usb;
36
37 # The device received a control request
38 #
39 # The value pointed to by "pstate" can be updated to
40 # "USB_HR_COMPLETE_OK" to indicate that the control
41 # read transfer is complete, in case of short USB
42 # control transfers.
43 #
44 # Return values:
45 # 0: Success
46 # ENOTTY: Transaction stalled
47 # Else: Use builtin request handler
48 #
49 METHOD int handle_request {
50         device_t dev;
51         const void *req; /* pointer to the device request */
52         void **pptr; /* data pointer */
53         uint16_t *plen; /* maximum transfer length */
54         uint16_t offset; /* data offset */
55         uint8_t *pstate; /* set if transfer is complete, see USB_HR_XXX */
56 };
57
58 # Take controller from BIOS
59 #
60 # Return values:
61 # 0: Success
62 # Else: Failure
63 #
64 METHOD int take_controller {
65         device_t dev;
66 };