Annotation of src/sys/dev/usb/usbcdc.h, Revision 1.2
1.2 ! augustss 1: /* $NetBSD: usbcdc.h,v 1.1 1999/01/01 07:43:13 augustss Exp $ */
1.1 augustss 2:
3: /*
4: * Copyright (c) 1998 The NetBSD Foundation, Inc.
5: * All rights reserved.
6: *
7: * This code is derived from software contributed to The NetBSD Foundation
8: * by Lennart Augustsson (augustss@carlstedt.se) at
9: * Carlstedt Research & Technology.
10: *
11: * Redistribution and use in source and binary forms, with or without
12: * modification, are permitted provided that the following conditions
13: * are met:
14: * 1. Redistributions of source code must retain the above copyright
15: * notice, this list of conditions and the following disclaimer.
16: * 2. Redistributions in binary form must reproduce the above copyright
17: * notice, this list of conditions and the following disclaimer in the
18: * documentation and/or other materials provided with the distribution.
19: * 3. All advertising materials mentioning features or use of this software
20: * must display the following acknowledgement:
21: * This product includes software developed by the NetBSD
22: * Foundation, Inc. and its contributors.
23: * 4. Neither the name of The NetBSD Foundation nor the names of its
24: * contributors may be used to endorse or promote products derived
25: * from this software without specific prior written permission.
26: *
27: * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
28: * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
29: * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
30: * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
31: * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
32: * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
33: * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
35: * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
36: * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
37: * POSSIBILITY OF SUCH DAMAGE.
38: */
39:
40: #ifndef _USBCDC_H_
41: #define _USBCDC_H_
42:
43: #define UDESCSUB_CDC_HEADER 0
44: #define UDESCSUB_CDC_CM 1 /* Call Management */
45: #define UDESCSUB_CDC_ACM 2 /* Abstract Control Model */
46: #define UDESCSUB_CDC_DLM 3 /* Direct Line Management */
47: #define UDESCSUB_CDC_TRF 4 /* Telephone Ringer */
48: #define UDESCSUB_CDC_TCLSR 5 /* Telephone Call ... */
49: #define UDESCSUB_CDC_UNION 6
50: #define UDESCSUB_CDC_CS 7 /* Country Selection */
51: #define UDESCSUB_CDC_TOM 8 /* Telephone Operational Modes */
52: #define UDESCSUB_CDC_USBT 9 /* USB Terminal */
53:
1.2 ! augustss 54: typedef struct {
1.1 augustss 55: uByte bLength;
56: uByte bDescriptorType;
57: uByte bDescriptorSubtype;
58: uWord bcdCDC;
1.2 ! augustss 59: } usb_cdc_header_descriptor_t;
1.1 augustss 60:
1.2 ! augustss 61: typedef struct {
1.1 augustss 62: uByte bLength;
63: uByte bDescriptorType;
64: uByte bDescriptorSubtype;
65: uByte bmCapabilities;
66: #define USB_CDC_CM_DOES_CM 0x01
67: #define USB_CDC_CM_CM_OVER_DATA 0x02
68: uByte bDataInterface;
1.2 ! augustss 69: } usb_cdc_cm_descriptor_t;
1.1 augustss 70:
1.2 ! augustss 71: typedef struct {
1.1 augustss 72: uByte bLength;
73: uByte bDescriptorType;
74: uByte bDescriptorSubtype;
75: uByte bmCapabilities;
76: #define USB_CDC_ACM_HAS_FEATURE 0x01
77: #define USB_CDC_ACM_HAS_LINE 0x02
78: #define USB_CDC_ACM_HAS_BREAK 0x04
79: #define USB_CDC_ACM_HAS_NETWORK_CONN 0x08
1.2 ! augustss 80: } usb_cdc_acm_descriptor_t;
1.1 augustss 81:
1.2 ! augustss 82: typedef struct {
1.1 augustss 83: uByte bLength;
84: uByte bDescriptorType;
85: uByte bDescriptorSubtype;
86: uByte bMasterInterface;
87: uByte bSlaveInterface[1];
1.2 ! augustss 88: } usb_cdc_union_descriptor_t;
1.1 augustss 89:
90: #define UCDC_SEND_ENCAPSULATED_COMMAND 0x00
91: #define UCDC_GET_ENCAPSULATED_RESPONSE 0x01
92: #define UCDC_SET_COMM_FEATURE 0x02
93: #define UCDC_GET_COMM_FEATURE 0x03
94: #define UCDC_ABSTRACT_STATE 0x01
95: #define UCDC_COUNTRY_SETTING 0x02
96: #define UCDC_CLEAR_COMM_FEATURE 0x04
97: #define UCDC_SET_LINE_CODING 0x20
98: #define UCDC_GET_LINE_CODING 0x21
1.2 ! augustss 99:
! 100: typedef struct {
! 101: uWord wFeatures;
! 102: #define UCDC_DATA_MULTIPLEXED 0x0001
! 103: #define UCDC_IDLE_SETTING 0x0002
! 104: } usb_cdc_abstract_state_t;
! 105:
! 106: typedef struct {
! 107: uDWord dwDTERate;
! 108: uByte bCharFormat;
! 109: #define UCDC_STOP_BIT_1 0
! 110: #define UCDC_STOP_BIT_1_5 1
! 111: #define UCDC_STOP_BIT_2 2
! 112: uByte bParityType;
! 113: #define UCDC_PARITY_NONE 0
! 114: #define UCDC_PARITY_ODD 1
! 115: #define UCDC_PARITY_EVEN 2
! 116: #define UCDC_PARITY_MARK 3
! 117: #define UCDC_PARITY_SPACE 4
! 118: uByte bDataBits;
! 119: } usb_cdc_line_state_t;
1.1 augustss 120:
121: #endif /* _USBCDC_H_ */
CVSweb <webmaster@jp.NetBSD.org>