aboutsummaryrefslogtreecommitdiff
path: root/include/linux/usb/ch9.h
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-26 11:41:08 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-26 11:41:08 -0800
commit92320cec611d4ed44a9bd635727d61f6caa669a7 (patch)
treee5cfe51e7134ea62cc82e59aaf28f191ef4a2543 /include/linux/usb/ch9.h
parent63ae0e5be34cb7593fc5f1135422129f765ac3ef (diff)
parent19c262391c4741b012a5031fc438fb694e77c385 (diff)
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6: USB: export autosuspend delay in sysfs sysfs: allow attributes to be added to groups USB: make autosuspend delay a module parameter USB: minor cleanups for sysfs.c USB: add a blacklist for devices that can't handle some things we throw at them. USB: refactor usb device matching and create usb_device_match USB: Wacom driver updates gadgetfs: Fixed bug in ep_aio_read_retry. USB: Use USB defines in usbmouse.c and usbkbd.c USB: add rationale on why usb descriptor structures have to be packed USB: ftdi_sio: Adding VID and PID for Tellstick UHCI: Eliminate asynchronous skeleton Queue Headers UHCI: Add macros for computing DMA values USB: Davicom DM9601 usbnet driver USB: asix.c - Add JVC-PRX1 ids usbmon: Remove erroneous __exit USB: add driver for iowarrior devices. USB: option: add a bunch of new device ids USB: option: remove duplicate device id table
Diffstat (limited to 'include/linux/usb/ch9.h')
-rw-r--r--include/linux/usb/ch9.h22
1 files changed, 18 insertions, 4 deletions
diff --git a/include/linux/usb/ch9.h b/include/linux/usb/ch9.h
index 245c7253122..1122a6c2c1a 100644
--- a/include/linux/usb/ch9.h
+++ b/include/linux/usb/ch9.h
@@ -1,8 +1,9 @@
/*
- * This file holds USB constants and structures that are needed for USB
- * device APIs. These are used by the USB device model, which is defined
- * in chapter 9 of the USB 2.0 specification. Linux has several APIs in C
- * that need these:
+ * This file holds USB constants and structures that are needed for
+ * USB device APIs. These are used by the USB device model, which is
+ * defined in chapter 9 of the USB 2.0 specification and in the
+ * Wireless USB 1.0 (spread around). Linux has several APIs in C that
+ * need these:
*
* - the master/host side Linux-USB kernel driver API;
* - the "usbfs" user space API; and
@@ -14,6 +15,19 @@
*
* There's also "Wireless USB", using low power short range radios for
* peripheral interconnection but otherwise building on the USB framework.
+ *
+ * Note all descriptors are declared '__attribute__((packed))' so that:
+ *
+ * [a] they never get padded, either internally (USB spec writers
+ * probably handled that) or externally;
+ *
+ * [b] so that accessing bigger-than-a-bytes fields will never
+ * generate bus errors on any platform, even when the location of
+ * its descriptor inside a bundle isn't "naturally aligned", and
+ *
+ * [c] for consistency, removing all doubt even when it appears to
+ * someone that the two other points are non-issues for that
+ * particular descriptor type.
*/
#ifndef __LINUX_USB_CH9_H