The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/usb/usbcdc.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: 2e92ad197cad23ba6238e0cf9faa2a72


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.