VSF Documented
vsf_usbh_CDC.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2022 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18#ifndef __VSF_USBH_CDC_H__
19#define __VSF_USBH_CDC_H__
20
21/*============================ INCLUDES ======================================*/
23
24#if VSF_USE_USB_HOST == ENABLED && VSF_USBH_USE_CDC == ENABLED
25
27#include "../../vsf_usbh.h"
28
29#if defined(__VSF_USBH_CDC_CLASS_IMPLEMENT)
30# define __VSF_CLASS_IMPLEMENT__
31#elif defined(__VSF_USBH_CDC_CLASS_INHERIT__)
32# define __VSF_CLASS_INHERIT__
33#endif
34
35#include "utilities/ooc_class.h"
36
37#ifdef __cplusplus
38extern "C" {
39#endif
40
41/*============================ MACROS ========================================*/
42/*============================ MACROFIED FUNCTIONS ===========================*/
43/*============================ TYPES =========================================*/
44
46
47typedef enum vk_usbh_cdc_evt_t {
54
56 vk_usbh_cdc_evt_t evt, void *param);
57
59
60 protected_member(
61 vk_usbh_t *usbh;
62 vk_usbh_dev_t *dev;
63 vk_usbh_ifs_t *ifs;
64
65 vk_usbh_cdc_evthandler_t evthandler;
66 uint8_t *evt_buffer;
67 uint32_t evt_size;
68
69 int8_t ctrl_ifs;
70 int8_t data_ifs;
71
72 vsf_eda_t eda;
73 )
74
75 private_member(
76 vk_usbh_urb_t urb_evt;
77 vk_usbh_pipe_t pipe_tx;
78 vk_usbh_pipe_t pipe_rx;
79 )
80};
81
82/*============================ GLOBAL VARIABLES ==============================*/
83/*============================ PROTOTYPES ====================================*/
84
85#if defined(__VSF_USBH_CDC_CLASS_IMPLEMENT) || defined(__VSF_USBH_CDC_CLASS_INHERIT__)
87 vk_usbh_dev_t *dev, vk_usbh_ifs_parser_t *parser_ifs);
88extern void vk_usbh_cdc_fini(vk_usbh_cdc_t *pthis);
89extern void vk_usbh_cdc_evthandler(vsf_eda_t *eda, vsf_evt_t evt);
93#endif
94
95#ifdef __cplusplus
96}
97#endif
98
99#undef __VSF_USBH_CDC_CLASS_IMPLEMENT
100#undef __VSF_USBH_CDC_CLASS_INHERIT__
101
102#endif // VSF_USE_USB_HOST && VSF_USBH_USE_CDC
103#endif // __VSF_USBH_CDC_H__
vsf_err_t
Definition __type.h:42
Definition vsf_usbh_CDC.h:58
Definition vsf_usbh.h:478
Definition vsf_usbh.h:523
Definition vsf_usbh.h:450
Definition vsf_eda.h:766
#define vsf_dcl_class
Definition ooc_class.h:46
#define vsf_class(__name)
Definition ooc_class.h:48
unsigned uint32_t
Definition stdint.h:9
unsigned char uint8_t
Definition stdint.h:5
signed char int8_t
Definition stdint.h:4
Definition usb.h:152
Definition vsf_usbh.h:228
Definition vsf_usbh.h:179
Definition vsf_usbh.h:299
int16_t vsf_evt_t
Definition vsf_eda.h:654
void vk_usbh_cdc_fini(vk_usbh_cdc_t *pthis)
Definition vsf_usbh_CDC.c:197
vsf_err_t vk_usbh_cdc_prepare_urb(vk_usbh_cdc_t *pthis, bool tx, vk_usbh_urb_t *urb)
Definition vsf_usbh_CDC.c:202
void vk_usbh_cdc_free_urb(vk_usbh_cdc_t *pthis, vk_usbh_urb_t *urb)
Definition vsf_usbh_CDC.c:221
vsf_err_t vk_usbh_cdc_init(vk_usbh_cdc_t *pthis, vk_usbh_t *usbh, vk_usbh_dev_t *dev, vk_usbh_ifs_parser_t *parser_ifs)
Definition vsf_usbh_CDC.c:96
vsf_err_t vk_usbh_cdc_submit_urb(vk_usbh_cdc_t *pthis, vk_usbh_urb_t *urb)
Definition vsf_usbh_CDC.c:216
void vk_usbh_cdc_evthandler(vsf_eda_t *eda, vsf_evt_t evt)
Definition vsf_usbh_CDC.c:38
vk_usbh_cdc_evt_t
Definition vsf_usbh_CDC.h:47
@ VSF_USBH_CDC_ON_INIT
Definition vsf_usbh_CDC.h:48
@ VSF_USBH_CDC_ON_RX
Definition vsf_usbh_CDC.h:51
@ VSF_USBH_CDC_ON_DESC
Definition vsf_usbh_CDC.h:49
@ VSF_USBH_CDC_ON_EVENT
Definition vsf_usbh_CDC.h:50
@ VSF_USBH_CDC_ON_TX
Definition vsf_usbh_CDC.h:52
vsf_err_t(* vk_usbh_cdc_evthandler_t)(vk_usbh_cdc_t *cdc, vk_usbh_cdc_evt_t evt, void *param)
Definition vsf_usbh_CDC.h:55