Added USB Device library sources
[fw/stlink] / example / stm32f4 / STM32_USB_Device_Library / Class / cdc / inc / usbd_cdc_core.h
1 /**
2   ******************************************************************************
3   * @file    usbd_cdc_core.h
4   * @author  MCD Application Team
5   * @version V1.0.0
6   * @date    22-July-2011
7   * @brief   header file for the usbd_cdc_core.c file.
8   ******************************************************************************
9   * @attention
10   *
11   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
12   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
13   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
14   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
15   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
16   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
17   *
18   * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>
19   ******************************************************************************
20   */ 
21
22 /* Includes ------------------------------------------------------------------*/
23
24 #ifndef __USB_CDC_CORE_H_
25 #define __USB_CDC_CORE_H_
26
27 #include  "usbd_ioreq.h"
28
29 /** @addtogroup STM32_USB_OTG_DEVICE_LIBRARY
30   * @{
31   */
32   
33 /** @defgroup usbd_cdc
34   * @brief This file is the Header file for USBD_cdc.c
35   * @{
36   */ 
37
38
39 /** @defgroup usbd_cdc_Exported_Defines
40   * @{
41   */ 
42 #define USB_CDC_CONFIG_DESC_SIZ                (67)
43 #define USB_CDC_DESC_SIZ                       (67-9)
44
45 #define CDC_DESCRIPTOR_TYPE                     0x21
46
47 #define DEVICE_CLASS_CDC                        0x02
48 #define DEVICE_SUBCLASS_CDC                     0x00
49
50
51 #define USB_DEVICE_DESCRIPTOR_TYPE              0x01
52 #define USB_CONFIGURATION_DESCRIPTOR_TYPE       0x02
53 #define USB_STRING_DESCRIPTOR_TYPE              0x03
54 #define USB_INTERFACE_DESCRIPTOR_TYPE           0x04
55 #define USB_ENDPOINT_DESCRIPTOR_TYPE            0x05
56
57 #define STANDARD_ENDPOINT_DESC_SIZE             0x09
58
59 #define CDC_DATA_IN_PACKET_SIZE                 *(uint16_t *)(((USB_OTG_CORE_HANDLE *)pdev)->dev.pConfig_descriptor + 57)
60         
61 #define CDC_DATA_OUT_PACKET_SIZE                *(uint16_t *)(((USB_OTG_CORE_HANDLE *)pdev)->dev.pConfig_descriptor + 64)
62
63 /*---------------------------------------------------------------------*/
64 /*  CDC definitions                                                    */
65 /*---------------------------------------------------------------------*/
66
67 /**************************************************/
68 /* CDC Requests                                   */
69 /**************************************************/
70 #define SEND_ENCAPSULATED_COMMAND               0x00
71 #define GET_ENCAPSULATED_RESPONSE               0x01
72 #define SET_COMM_FEATURE                        0x02
73 #define GET_COMM_FEATURE                        0x03
74 #define CLEAR_COMM_FEATURE                      0x04
75 #define SET_LINE_CODING                         0x20
76 #define GET_LINE_CODING                         0x21
77 #define SET_CONTROL_LINE_STATE                  0x22
78 #define SEND_BREAK                              0x23
79 #define NO_CMD                                  0xFF
80
81 /**
82   * @}
83   */ 
84
85
86 /** @defgroup USBD_CORE_Exported_TypesDefinitions
87   * @{
88   */
89 typedef struct _CDC_IF_PROP
90 {
91   uint16_t (*pIf_Init)     (void);   
92   uint16_t (*pIf_DeInit)   (void);   
93   uint16_t (*pIf_Ctrl)     (uint32_t Cmd, uint8_t* Buf, uint32_t Len);
94   uint16_t (*pIf_DataTx)   (uint8_t* Buf, uint32_t Len);
95   uint16_t (*pIf_DataRx)   (uint8_t* Buf, uint32_t Len);
96 }
97 CDC_IF_Prop_TypeDef;
98 /**
99   * @}
100   */ 
101
102
103
104 /** @defgroup USBD_CORE_Exported_Macros
105   * @{
106   */ 
107   
108 /**
109   * @}
110   */ 
111
112 /** @defgroup USBD_CORE_Exported_Variables
113   * @{
114   */ 
115
116 extern USBD_Class_cb_TypeDef  USBD_CDC_cb;
117 /**
118   * @}
119   */ 
120
121 /** @defgroup USB_CORE_Exported_Functions
122   * @{
123   */
124 /**
125   * @}
126   */ 
127
128 #endif  // __USB_CDC_CORE_H_
129 /**
130   * @}
131   */ 
132
133 /**
134   * @}
135   */ 
136   
137 /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/