wusb_ca.h revision 9430:637732b28916
1/*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21/*
22 * Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
23 * Use is subject to license terms.
24 */
25
26/*
27 * Definitions and data structures for application to exchange request
28 * with driver
29 */
30#ifndef _SYS_USB_WUSB_CA_H
31#define	_SYS_USB_WUSB_CA_H
32
33#ifdef	__cplusplus
34extern "C" {
35#endif
36
37#include <sys/usb/usba/wusba_io.h>
38#include <sys/usb/usba/wusba.h>
39
40/* Refer to WUSB AM Spec 4.3 */
41#define	WUSB_CBAF_GET_ASSOCIATION_INFORMATION	0x01
42#define	WUSB_CBAF_GET_ASSOCIATION_REQUEST	0x02
43#define	WUSB_CBAF_SET_ASSOCIATION_RESPONSE	0x03
44
45#define	WUSB_CBAF_DEFAULT_STATE			0x01
46#define	WUSB_CBAF_ADDRESS_STATE			0x02
47#define	WUSB_CBAF_CONFIG_STATE			0x03
48
49#define	WUSB_CBAF_RETRIEVE_HOST_INFO		0x0000
50#define	WUSB_CBAF_ASSOCIATE_WUSB		0x0001
51
52#define	WUSB_ASSO_INFO_SIZE			5
53#define	WUSB_ASSO_REQUEST_SIZE			10
54#define	WUSB_HOST_INFO_SIZE			106
55#define	WUSB_DEVICE_INFO_SIZE			108
56#define	WUSB_CC_DATA_SIZE			78
57#define	WUSB_CC_FAILURE_SIZE			28
58
59typedef struct __association_information {
60	uint16_t		Length;
61	uint8_t			NumAssociationRequests;
62	uint16_t		Flag;
63} wusb_cbaf_asso_info_t;
64
65typedef struct __association_request {
66	uint8_t			AssociationDataIndex;
67	uint8_t			Reserved;
68	uint16_t		AssociationTypeId;
69	uint16_t		AssociationSubTypeId;
70	uint32_t		AssociationTypeInfoSize;
71} wusb_cbaf_asso_req_t;
72
73typedef struct __host_info {
74	uint16_t		AssociationTypeId;
75	uint16_t		AssociationSubTypeId;
76	uint8_t			CHID[16];
77	uint16_t		LangID;
78	char			HostFriendlyName[64];
79} wusb_cbaf_host_info_t;
80
81typedef struct __device_info {
82	uint32_t		Length;
83	uint8_t			CDID[16];
84	uint16_t		BandGroups;
85	uint16_t		LangID;
86	char			DeviceFriendlyName[64];
87} wusb_cbaf_device_info_t;
88
89typedef struct __cc_data {
90	uint16_t		AssociationTypeId;
91	uint16_t		AssociationSubTypeId;
92	uint32_t		Length;
93	wusb_cc_t		CC;
94	uint16_t		BandGroups;
95} wusb_cbaf_cc_data_t;
96
97typedef struct __cc_fail {
98	uint16_t		AssociationTypeId;
99	uint16_t		AssociationSubTypeId;
100	uint32_t		Length;
101	uint32_t		AssociationStatus;
102} wusb_cbaf_cc_fail_t;
103
104
105/* WUSB CBAF ioctl command */
106#define	CBAF_IOCTL_GET_ASSO_INFO		0x0001
107#define	CBAF_IOCTL_GET_ASSO_REQS		0x0002
108#define	CBAF_IOCTL_SET_HOST_INFO		0x0003
109#define	CBAF_IOCTL_GET_DEVICE_INFO		0x0004
110#define	CBAF_IOCTL_SET_CONNECTION		0x0005
111#define	CBAF_IOCTL_SET_FAILURE			0x0006
112
113#define	CBAF_ASSO_FAILURE_DEFAULT		0x0001
114#define	CBAF_ASSO_FAILURE_MALFORMED_REQUEST	0x0002
115#define	CBAF_ASSO_FAILURE_TYPE_NOT_SUPPORTED	0x0003
116
117#ifdef __cplusplus
118}
119#endif
120
121#endif	/* _SYS_USB_WUSB_CA_H */
122