root/dev/usb/usbcdc.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. usb_cdc_header_descriptor_t
  2. usb_cdc_cm_descriptor_t
  3. usb_cdc_acm_descriptor_t
  4. usb_cdc_union_descriptor_t
  5. usb_cdc_ethernet_descriptor_t
  6. usb_cdc_abstract_state_t
  7. usb_cdc_line_state_t
  8. usb_cdc_notification_t
  9. usb_cdc_connection_speed_t

    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_ */

/* [<][>][^][v][top][bottom][index][help] */