mirror of
https://gitea.osmocom.org/sim-card/simtrace2.git
synced 2026-03-17 13:48:32 +03:00
Renamed main folder to firmware
This commit is contained in:
275
firmware/atmel_softpack_libraries/usb/include/CDCDescriptors.h
Normal file
275
firmware/atmel_softpack_libraries/usb/include/CDCDescriptors.h
Normal file
@@ -0,0 +1,275 @@
|
||||
/* ----------------------------------------------------------------------------
|
||||
* ATMEL Microcontroller Software Support
|
||||
* ----------------------------------------------------------------------------
|
||||
* Copyright (c) 2010, Atmel Corporation
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the disclaimer below.
|
||||
*
|
||||
* Atmel's name may not be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
|
||||
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
|
||||
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
||||
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
||||
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
* ----------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/** \file
|
||||
*
|
||||
* Definitions and classes for USB CDC class descriptors.
|
||||
*/
|
||||
|
||||
#ifndef _CDCDESCRIPTORS_H_
|
||||
#define _CDCDESCRIPTORS_H_
|
||||
/** \addtogroup usb_cdc
|
||||
*@{
|
||||
*/
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* Includes
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* Definitions
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
/** \addtogroup usb_cdc_ver USB CDC Specification Release Numbers
|
||||
* @{
|
||||
* This section list the CDC Spec. Release Numbers.
|
||||
* - \ref CDCGenericDescriptor_CDC1_10
|
||||
*/
|
||||
|
||||
/** Identify CDC specification version 1.10. */
|
||||
#define CDCGenericDescriptor_CDC1_10 0x0110
|
||||
/** @}*/
|
||||
|
||||
/** \addtogroup usb_cdc_desc_type CDC Descriptro Types
|
||||
* @{
|
||||
* This section lists CDC descriptor types.
|
||||
* - \ref CDCGenericDescriptor_INTERFACE
|
||||
* - \ref CDCGenericDescriptor_ENDPOINT
|
||||
*/
|
||||
/**Indicates that a CDC descriptor applies to an interface. */
|
||||
#define CDCGenericDescriptor_INTERFACE 0x24
|
||||
/** Indicates that a CDC descriptor applies to an endpoint. */
|
||||
#define CDCGenericDescriptor_ENDPOINT 0x25
|
||||
/** @}*/
|
||||
|
||||
/** \addtogroup usb_cdc_desc_subtype CDC Descriptor Subtypes
|
||||
* @{
|
||||
* This section lists CDC descriptor sub types
|
||||
* - \ref CDCGenericDescriptor_HEADER
|
||||
* - \ref CDCGenericDescriptor_CALLMANAGEMENT
|
||||
* - \ref CDCGenericDescriptor_ABSTRACTCONTROLMANAGEMENT
|
||||
* - \ref CDCGenericDescriptor_UNION
|
||||
*/
|
||||
|
||||
/** Header functional descriptor subtype. */
|
||||
#define CDCGenericDescriptor_HEADER 0x00
|
||||
/** Call management functional descriptor subtype. */
|
||||
#define CDCGenericDescriptor_CALLMANAGEMENT 0x01
|
||||
/** Abstract control management descriptor subtype. */
|
||||
#define CDCGenericDescriptor_ABSTRACTCONTROLMANAGEMENT 0x02
|
||||
/** Union descriptor subtype. */
|
||||
#define CDCGenericDescriptor_UNION 0x06
|
||||
/** @}*/
|
||||
|
||||
/** \addtogroup usb_cdc_descriptor USB CDC Device Descriptor Values
|
||||
* @{
|
||||
* This section lists the values for CDC Device Descriptor.
|
||||
* - \ref CDCDeviceDescriptor_CLASS
|
||||
* - \ref CDCDeviceDescriptor_SUBCLASS
|
||||
* - \ref CDCDeviceDescriptor_PROTOCOL
|
||||
*/
|
||||
/** Device class code when using the CDC class. */
|
||||
#define CDCDeviceDescriptor_CLASS 0x02
|
||||
/** Device subclass code when using the CDC class. */
|
||||
#define CDCDeviceDescriptor_SUBCLASS 0x00
|
||||
/** Device protocol code when using the CDC class. */
|
||||
#define CDCDeviceDescriptor_PROTOCOL 0x00
|
||||
/** @}*/
|
||||
|
||||
/** \addtogroup usb_cdc_if_desc USB CDC Communication Interface Descriptor
|
||||
* @{
|
||||
* This section lists the values for CDC Communication Interface Descriptor.
|
||||
* - \ref CDCCommunicationInterfaceDescriptor_CLASS
|
||||
* - \ref CDCCommunicationInterfaceDescriptor_ABSTRACTCONTROLMODEL
|
||||
* - \ref CDCCommunicationInterfaceDescriptor_NOPROTOCOL
|
||||
*/
|
||||
/** Interface class code for a CDC communication class interface. */
|
||||
#define CDCCommunicationInterfaceDescriptor_CLASS 0x02
|
||||
/** Interface subclass code for an Abstract Control Model interface descriptor.
|
||||
*/
|
||||
#define CDCCommunicationInterfaceDescriptor_ABSTRACTCONTROLMODEL 0x02
|
||||
/** Interface protocol code when a CDC communication interface does not
|
||||
implemenent any particular protocol. */
|
||||
#define CDCCommunicationInterfaceDescriptor_NOPROTOCOL 0x00
|
||||
/** @}*/
|
||||
|
||||
/** \addtogroup usb_cdc_data_if USB CDC Data Interface Values
|
||||
* @{
|
||||
* This section lists the values for CDC Data Interface Descriptor.
|
||||
* - \ref CDCDataInterfaceDescriptor_CLASS
|
||||
* - \ref CDCDataInterfaceDescriptor_SUBCLASS
|
||||
* - \ref CDCDataInterfaceDescriptor_NOPROTOCOL
|
||||
*/
|
||||
|
||||
/** Interface class code for a data class interface. */
|
||||
#define CDCDataInterfaceDescriptor_CLASS 0x0A
|
||||
/** Interface subclass code for a data class interface. */
|
||||
#define CDCDataInterfaceDescriptor_SUBCLASS 0x00
|
||||
/** Protocol code for a data class interface which does not implement any
|
||||
particular protocol. */
|
||||
#define CDCDataInterfaceDescriptor_NOPROTOCOL 0x00
|
||||
/** @}*/
|
||||
|
||||
/** \addtogroup usb_cdc_cb_man_desc USB CDC CallManagement Capabilities
|
||||
* @{
|
||||
* This section lists CDC CallManagement Capabilities.
|
||||
* - \ref CDCCallManagementDescriptor_SELFCALLMANAGEMENT
|
||||
* - \ref CDCCallManagementDescriptor_DATACALLMANAGEMENT
|
||||
*/
|
||||
/** Device handles call management itself. */
|
||||
#define CDCCallManagementDescriptor_SELFCALLMANAGEMENT (1 << 0)
|
||||
/** Device can exchange call management information over a Data class interface.
|
||||
*/
|
||||
#define CDCCallManagementDescriptor_DATACALLMANAGEMENT (1 << 1)
|
||||
/** @}*/
|
||||
|
||||
/** \addtogroup usb_cdc_acm USB CDC ACM Capabilities
|
||||
* @{
|
||||
*
|
||||
* This section lists the capabilities of the CDC ACM.
|
||||
* - \ref CDCAbstractControlManagementDescriptor_COMMFEATURE
|
||||
* - \ref CDCAbstractControlManagementDescriptor_LINE
|
||||
* - \ref CDCAbstractControlManagementDescriptor_SENDBREAK
|
||||
* - \ref CDCAbstractControlManagementDescriptor_NETWORKCONNECTION
|
||||
*/
|
||||
|
||||
/** Device supports the request combination of SetCommFeature, ClearCommFeature
|
||||
and GetCommFeature. */
|
||||
#define CDCAbstractControlManagementDescriptor_COMMFEATURE (1 << 0)
|
||||
/** Device supports the request combination of SetLineCoding, GetLineCoding and
|
||||
SetControlLineState. */
|
||||
#define CDCAbstractControlManagementDescriptor_LINE (1 << 1)
|
||||
/** Device supports the SendBreak request. */
|
||||
#define CDCAbstractControlManagementDescriptor_SENDBREAK (1 << 2)
|
||||
/** Device supports the NetworkConnection notification. */
|
||||
#define CDCAbstractControlManagementDescriptor_NETWORKCONNECTION (1 << 3)
|
||||
/** @}*/
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* Types
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef __ICCARM__ /* IAR */
|
||||
#pragma pack(1) /* IAR */
|
||||
#define __attribute__(...) /* IAR */
|
||||
#endif /* IAR */
|
||||
|
||||
/**
|
||||
* \typedef CDCHeaderDescriptor
|
||||
* \brief Marks the beginning of the concatenated set of functional descriptors
|
||||
* for the interface.
|
||||
*/
|
||||
typedef struct _CDCHeaderDescriptor {
|
||||
|
||||
/** Size of this descriptor in bytes. */
|
||||
uint8_t bFunctionLength;
|
||||
/** Descriptor type . */
|
||||
uint8_t bDescriptorType;
|
||||
/** Descriptor sub-type . */
|
||||
uint8_t bDescriptorSubtype;
|
||||
/** USB CDC specification release number. */
|
||||
uint16_t bcdCDC;
|
||||
|
||||
} __attribute__ ((packed)) CDCHeaderDescriptor; /* GCC */
|
||||
|
||||
/**
|
||||
* \typedef CDCUnionDescriptor
|
||||
* \brief Describes the relationship between a group of interfaces that can
|
||||
* be considered to form a functional unit.
|
||||
*/
|
||||
typedef struct _CDCUnionDescriptor {
|
||||
|
||||
/** Size of the descriptor in bytes. */
|
||||
uint8_t bFunctionLength;
|
||||
/** Descriptor type . */
|
||||
uint8_t bDescriptorType;
|
||||
/** Descriptor subtype . */
|
||||
uint8_t bDescriptorSubtype;
|
||||
/** Number of the master interface for this union. */
|
||||
uint8_t bMasterInterface;
|
||||
/** Number of the first slave interface for this union. */
|
||||
uint8_t bSlaveInterface0;
|
||||
|
||||
} __attribute__ ((packed)) CDCUnionDescriptor; /* GCC */
|
||||
|
||||
/**
|
||||
* \typedef CDCCallManagementDescriptor
|
||||
* \brief Describes the processing of calls for the communication class
|
||||
* interface.
|
||||
*/
|
||||
typedef struct _CDCCallManagementDescriptor {
|
||||
|
||||
/** Size of this descriptor in bytes. */
|
||||
uint8_t bFunctionLength;
|
||||
/** Descriptor type . */
|
||||
uint8_t bDescriptorType;
|
||||
/** Descriptor sub-type . */
|
||||
uint8_t bDescriptorSubtype;
|
||||
/** Configuration capabilities
|
||||
\sa usb_cdc_cb_man_desc CDC CallManagement Capabilities. */
|
||||
uint8_t bmCapabilities;
|
||||
/** Interface number of the data class interface used for call management
|
||||
(optional). */
|
||||
uint8_t bDataInterface;
|
||||
|
||||
} __attribute__ ((packed)) CDCCallManagementDescriptor; /* GCC */
|
||||
|
||||
/**
|
||||
* \typedef CDCAbstractControlManagementDescriptor
|
||||
* \brief Describes the command supported by the communication interface class
|
||||
* with the Abstract Control Model subclass code.
|
||||
*/
|
||||
typedef struct _CDCAbstractControlManagementDescriptor {
|
||||
|
||||
/** Size of this descriptor in bytes. */
|
||||
uint8_t bFunctionLength;
|
||||
/** Descriptor type . */
|
||||
uint8_t bDescriptorType;
|
||||
/** Descriptor subtype . */
|
||||
uint8_t bDescriptorSubtype;
|
||||
/** Configuration capabilities.
|
||||
\sa usb_cdc_acm CDC ACM Capabilities. */
|
||||
uint8_t bmCapabilities;
|
||||
|
||||
} __attribute__ ((packed)) CDCAbstractControlManagementDescriptor; /* GCC */
|
||||
|
||||
#ifdef __ICCARM__ /* IAR */
|
||||
#pragma pack() /* IAR */
|
||||
#endif /* IAR */
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* Functions
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
|
||||
/**@}*/
|
||||
#endif /* #ifndef _CDCDESCRIPTORS_H_ */
|
||||
|
||||
Reference in New Issue
Block a user