Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
include
linux
usb
ch9.h
Go to the documentation of this file.
1
/*
2
* This file holds USB constants and structures that are needed for
3
* USB device APIs. These are used by the USB device model, which is
4
* defined in chapter 9 of the USB 2.0 specification and in the
5
* Wireless USB 1.0 (spread around). Linux has several APIs in C that
6
* need these:
7
*
8
* - the master/host side Linux-USB kernel driver API;
9
* - the "usbfs" user space API; and
10
* - the Linux "gadget" slave/device/peripheral side driver API.
11
*
12
* USB 2.0 adds an additional "On The Go" (OTG) mode, which lets systems
13
* act either as a USB master/host or as a USB slave/device. That means
14
* the master and slave side APIs benefit from working well together.
15
*
16
* There's also "Wireless USB", using low power short range radios for
17
* peripheral interconnection but otherwise building on the USB framework.
18
*
19
* Note all descriptors are declared '__attribute__((packed))' so that:
20
*
21
* [a] they never get padded, either internally (USB spec writers
22
* probably handled that) or externally;
23
*
24
* [b] so that accessing bigger-than-a-bytes fields will never
25
* generate bus errors on any platform, even when the location of
26
* its descriptor inside a bundle isn't "naturally aligned", and
27
*
28
* [c] for consistency, removing all doubt even when it appears to
29
* someone that the two other points are non-issues for that
30
* particular descriptor type.
31
*/
32
#ifndef __LINUX_USB_CH9_H
33
#define __LINUX_USB_CH9_H
34
35
#include <
uapi/linux/usb/ch9.h
>
36
37
44
extern
const
char
*
usb_speed_string
(
enum
usb_device_speed
speed);
45
46
#endif
/* __LINUX_USB_CH9_H */
Generated on Thu Jan 10 2013 14:52:43 for Linux Kernel by
1.8.2