Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
association.h
Go to the documentation of this file.
1 /*
2  * Wireless USB - Cable Based Association
3  *
4  * Copyright (C) 2006 Intel Corporation
5  * Inaky Perez-Gonzalez <[email protected]>
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License version
9  * 2 as published by the Free Software Foundation.
10  *
11  */
12 #ifndef __LINUX_USB_ASSOCIATION_H
13 #define __LINUX_USB_ASSOCIATION_H
14 
15 
16 /*
17  * Association attributes
18  *
19  * Association Models Supplement to WUSB 1.0 T[3-1]
20  *
21  * Each field in the structures has it's ID, it's length and then the
22  * value. This is the actual definition of the field's ID and its
23  * length.
24  */
25 struct wusb_am_attr {
28 };
29 
30 /* Different fields defined by the spec */
31 #define WUSB_AR_AssociationTypeId { .id = cpu_to_le16(0x0000), .len = cpu_to_le16(2) }
32 #define WUSB_AR_AssociationSubTypeId { .id = cpu_to_le16(0x0001), .len = cpu_to_le16(2) }
33 #define WUSB_AR_Length { .id = cpu_to_le16(0x0002), .len = cpu_to_le16(4) }
34 #define WUSB_AR_AssociationStatus { .id = cpu_to_le16(0x0004), .len = cpu_to_le16(4) }
35 #define WUSB_AR_LangID { .id = cpu_to_le16(0x0008), .len = cpu_to_le16(2) }
36 #define WUSB_AR_DeviceFriendlyName { .id = cpu_to_le16(0x000b), .len = cpu_to_le16(64) } /* max */
37 #define WUSB_AR_HostFriendlyName { .id = cpu_to_le16(0x000c), .len = cpu_to_le16(64) } /* max */
38 #define WUSB_AR_CHID { .id = cpu_to_le16(0x1000), .len = cpu_to_le16(16) }
39 #define WUSB_AR_CDID { .id = cpu_to_le16(0x1001), .len = cpu_to_le16(16) }
40 #define WUSB_AR_ConnectionContext { .id = cpu_to_le16(0x1002), .len = cpu_to_le16(48) }
41 #define WUSB_AR_BandGroups { .id = cpu_to_le16(0x1004), .len = cpu_to_le16(2) }
42 
43 /* CBAF Control Requests (AMS1.0[T4-1] */
44 enum {
48 };
49 
50 /*
51  * CBAF USB-interface defitions
52  *
53  * No altsettings, one optional interrupt endpoint.
54  */
55 enum {
59 };
60 
61 /* Association Information (AMS1.0[T4-3]) */
67 } __attribute__((packed));
68 
69 /* Association Request (AMS1.0[T4-4]) */
76 } __attribute__((packed));
77 
78 enum {
79  AR_TYPE_WUSB = 0x0001,
82 };
83 
84 /* Association Attribute header (AMS1.0[3.8]) */
88 } __attribute__((packed));
89 
90 /* Host Info (AMS1.0[T4-7]) (yeah, more headers and fields...) */
97  struct wusb_ckhdid CHID;
102 } __attribute__((packed));
104 /* Device Info (AMS1.0[T4-8])
105  *
106  * I still don't get this tag'n'header stuff for each goddamn
107  * field...
108  */
120 } __attribute__((packed));
122 /* Connection Context; CC_DATA - Success case (AMS1.0[T4-9]) */
133  struct wusb_ckhdid CK;
136 } __attribute__((packed));
137 
138 /* CC_DATA - Failure case (AMS1.0[T4-10]) */
148 } __attribute__((packed));
149 
150 #endif /* __LINUX_USB_ASSOCIATION_H */