[BACK]Return to usbcdc.h CVS log [TXT][DIR] Up to [local] / sys / dev / usb

Annotation of sys/dev/usb/usbcdc.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: usbcdc.h,v 1.7 2007/07/23 16:41:15 mbalmer Exp $ */
        !             2: /*     $NetBSD: usbcdc.h,v 1.8 2001/02/16 20:15:57 kenh Exp $  */
        !             3: /*     $FreeBSD: src/sys/dev/usb/usbcdc.h,v 1.7 1999/11/17 22:33:48 n_hibma Exp $      */
        !             4:
        !             5: /*
        !             6:  * Copyright (c) 1998 The NetBSD Foundation, Inc.
        !             7:  * All rights reserved.
        !             8:  *
        !             9:  * This code is derived from software contributed to The NetBSD Foundation
        !            10:  * by Lennart Augustsson (lennart@augustsson.net) at
        !            11:  * Carlstedt Research & Technology.
        !            12:  *
        !            13:  * Redistribution and use in source and binary forms, with or without
        !            14:  * modification, are permitted provided that the following conditions
        !            15:  * are met:
        !            16:  * 1. Redistributions of source code must retain the above copyright
        !            17:  *    notice, this list of conditions and the following disclaimer.
        !            18:  * 2. Redistributions in binary form must reproduce the above copyright
        !            19:  *    notice, this list of conditions and the following disclaimer in the
        !            20:  *    documentation and/or other materials provided with the distribution.
        !            21:  * 3. All advertising materials mentioning features or use of this software
        !            22:  *    must display the following acknowledgement:
        !            23:  *        This product includes software developed by the NetBSD
        !            24:  *        Foundation, Inc. and its contributors.
        !            25:  * 4. Neither the name of The NetBSD Foundation nor the names of its
        !            26:  *    contributors may be used to endorse or promote products derived
        !            27:  *    from this software without specific prior written permission.
        !            28:  *
        !            29:  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
        !            30:  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
        !            31:  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
        !            32:  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
        !            33:  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
        !            34:  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
        !            35:  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
        !            36:  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
        !            37:  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
        !            38:  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
        !            39:  * POSSIBILITY OF SUCH DAMAGE.
        !            40:  */
        !            41:
        !            42: #ifndef _USBCDC_H_
        !            43: #define _USBCDC_H_
        !            44:
        !            45: #define UDESCSUB_CDC_HEADER    0
        !            46: #define UDESCSUB_CDC_CM                1 /* Call Management */
        !            47: #define UDESCSUB_CDC_ACM       2 /* Abstract Control Model */
        !            48: #define UDESCSUB_CDC_DLM       3 /* Direct Line Management */
        !            49: #define UDESCSUB_CDC_TRF       4 /* Telephone Ringer */
        !            50: #define UDESCSUB_CDC_TCLSR     5 /* Telephone Call ... */
        !            51: #define UDESCSUB_CDC_UNION     6
        !            52: #define UDESCSUB_CDC_CS                7 /* Country Selection */
        !            53: #define UDESCSUB_CDC_TOM       8 /* Telephone Operational Modes */
        !            54: #define UDESCSUB_CDC_USBT      9 /* USB Terminal */
        !            55: #define UDESCSUB_CDC_NCT       10 /* Network Channel Terminal */
        !            56: #define UDESCSUB_CDC_PUF       11 /* Protocol Unit */
        !            57: #define UDESCSUB_CDC_EUF       12 /* Extension Unit */
        !            58: #define UDESCSUB_CDC_MCMF      13 /* Multi-Channel Management */
        !            59: #define UDESCSUB_CDC_CCMF      14 /* CAPI Control Management */
        !            60: #define UDESCSUB_CDC_ENF       15 /* Ethernet Networking */
        !            61: #define UDESCSUB_CDC_ANF       16 /* ATM Networking */
        !            62:
        !            63: typedef struct {
        !            64:        uByte           bLength;
        !            65:        uByte           bDescriptorType;
        !            66:        uByte           bDescriptorSubtype;
        !            67:        uWord           bcdCDC;
        !            68: } __packed usb_cdc_header_descriptor_t;
        !            69:
        !            70: typedef struct {
        !            71:        uByte           bLength;
        !            72:        uByte           bDescriptorType;
        !            73:        uByte           bDescriptorSubtype;
        !            74:        uByte           bmCapabilities;
        !            75: #define USB_CDC_CM_DOES_CM             0x01
        !            76: #define USB_CDC_CM_OVER_DATA           0x02
        !            77:        uByte           bDataInterface;
        !            78: } __packed usb_cdc_cm_descriptor_t;
        !            79:
        !            80: typedef struct {
        !            81:        uByte           bLength;
        !            82:        uByte           bDescriptorType;
        !            83:        uByte           bDescriptorSubtype;
        !            84:        uByte           bmCapabilities;
        !            85: #define USB_CDC_ACM_HAS_FEATURE                0x01
        !            86: #define USB_CDC_ACM_HAS_LINE           0x02
        !            87: #define USB_CDC_ACM_HAS_BREAK          0x04
        !            88: #define USB_CDC_ACM_HAS_NETWORK_CONN   0x08
        !            89: } __packed usb_cdc_acm_descriptor_t;
        !            90:
        !            91: typedef struct {
        !            92:        uByte           bLength;
        !            93:        uByte           bDescriptorType;
        !            94:        uByte           bDescriptorSubtype;
        !            95:        uByte           bMasterInterface;
        !            96:        uByte           bSlaveInterface[1];
        !            97: } __packed usb_cdc_union_descriptor_t;
        !            98:
        !            99: typedef struct {
        !           100:        uByte           bLength;
        !           101:        uByte           bDescriptorType;
        !           102:        uByte           bDescriptorSubtype;
        !           103:        uByte           iMacAddress;
        !           104:        uDWord          bmEthernetStatistics;
        !           105:        uWord           wMaxSegmentSize;
        !           106:        uWord           wNumberMCFilters;
        !           107:        uByte           bNumberPowerFilters;
        !           108: } __packed usb_cdc_ethernet_descriptor_t;
        !           109:
        !           110: #define UCDC_SEND_ENCAPSULATED_COMMAND 0x00
        !           111: #define UCDC_GET_ENCAPSULATED_RESPONSE 0x01
        !           112: #define UCDC_SET_COMM_FEATURE          0x02
        !           113: #define UCDC_GET_COMM_FEATURE          0x03
        !           114: #define  UCDC_ABSTRACT_STATE           0x01
        !           115: #define  UCDC_COUNTRY_SETTING          0x02
        !           116: #define UCDC_CLEAR_COMM_FEATURE                0x04
        !           117: #define UCDC_SET_LINE_CODING           0x20
        !           118: #define UCDC_GET_LINE_CODING           0x21
        !           119: #define UCDC_SET_CONTROL_LINE_STATE    0x22
        !           120: #define  UCDC_LINE_DTR                 0x0001
        !           121: #define  UCDC_LINE_RTS                 0x0002
        !           122: #define UCDC_SEND_BREAK                        0x23
        !           123: #define  UCDC_BREAK_ON                 0xffff
        !           124: #define  UCDC_BREAK_OFF                        0x0000
        !           125:
        !           126: typedef struct {
        !           127:        uWord   wState;
        !           128: #define UCDC_IDLE_SETTING              0x0001
        !           129: #define UCDC_DATA_MULTIPLEXED          0x0002
        !           130: } __packed usb_cdc_abstract_state_t;
        !           131: #define UCDC_ABSTRACT_STATE_LENGTH 2
        !           132:
        !           133: typedef struct {
        !           134:        uDWord  dwDTERate;
        !           135:        uByte   bCharFormat;
        !           136: #define UCDC_STOP_BIT_1                        0
        !           137: #define UCDC_STOP_BIT_1_5              1
        !           138: #define UCDC_STOP_BIT_2                        2
        !           139:        uByte   bParityType;
        !           140: #define UCDC_PARITY_NONE               0
        !           141: #define UCDC_PARITY_ODD                        1
        !           142: #define UCDC_PARITY_EVEN               2
        !           143: #define UCDC_PARITY_MARK               3
        !           144: #define UCDC_PARITY_SPACE              4
        !           145:        uByte   bDataBits;
        !           146: } __packed usb_cdc_line_state_t;
        !           147: #define UCDC_LINE_STATE_LENGTH 7
        !           148:
        !           149: typedef struct {
        !           150:        uByte   bmRequestType;
        !           151: #define UCDC_NOTIFICATION              0xa1
        !           152:        uByte   bNotification;
        !           153: #define UCDC_N_NETWORK_CONNECTION      0x00
        !           154: #define UCDC_N_RESPONSE_AVAILABLE      0x01
        !           155: #define UCDC_N_AUX_JACK_HOOK_STATE     0x08
        !           156: #define UCDC_N_RING_DETECT             0x09
        !           157: #define UCDC_N_SERIAL_STATE            0x20
        !           158: #define UCDC_N_CALL_STATE_CHANGED      0x28
        !           159: #define UCDC_N_LINE_STATE_CHANGED      0x29
        !           160: #define UCDC_N_CONNECTION_SPEED_CHANGE 0x2a
        !           161:        uWord   wValue;
        !           162:        uWord   wIndex;
        !           163:        uWord   wLength;
        !           164:        uByte   data[16];
        !           165: } __packed usb_cdc_notification_t;
        !           166: #define UCDC_NOTIFICATION_LENGTH 8
        !           167:
        !           168: typedef struct {
        !           169:        uDWord  dwUSBitRate;
        !           170:        uDWord  dwDSBitRate;
        !           171: } __packed usb_cdc_connection_speed_t;
        !           172: #define UCDC_CONNECTION_SPEED_LENGTH 8
        !           173:
        !           174: /*
        !           175:  * Bits set in the SERIAL STATE notifcation (first byte of data)
        !           176:  */
        !           177:
        !           178: #define UCDC_N_SERIAL_OVERRUN          0x40
        !           179: #define UCDC_N_SERIAL_PARITY           0x20
        !           180: #define UCDC_N_SERIAL_FRAMING          0x10
        !           181: #define UCDC_N_SERIAL_RI               0x08
        !           182: #define UCDC_N_SERIAL_BREAK            0x04
        !           183: #define UCDC_N_SERIAL_DSR              0x02
        !           184: #define UCDC_N_SERIAL_DCD              0x01
        !           185:
        !           186: #endif /* _USBCDC_H_ */

CVSweb