blob: 4d1656c05ac6fe38e71529afad61347b770849da [file] [log] [blame]
Christina Quastb123d742014-12-23 13:03:36 +01001/* ----------------------------------------------------------------------------
2 * ATMEL Microcontroller Software Support
3 * ----------------------------------------------------------------------------
4 * Copyright (c) 2008, Atmel Corporation
5 *
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions are met:
10 *
11 * - Redistributions of source code must retain the above copyright notice,
12 * this list of conditions and the disclaimer below.
13 *
14 * Atmel's name may not be used to endorse or promote products derived from
15 * this software without specific prior written permission.
16 *
17 * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
20 * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
23 * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
24 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
25 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
26 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 * ----------------------------------------------------------------------------
28 */
29
30/**
31 * \file
32 *
33 * Single CDC Serial Port Function for USB device & composite driver.
34 */
35
36#ifndef CDCDSERIAL_H
37#define CDCDSERIAL_H
38
39/** \addtogroup usbd_cdc
40 *@{
41 */
42
43/*------------------------------------------------------------------------------
44 * Headers
45 *------------------------------------------------------------------------------*/
46
47/* These headers were introduced in C99
48 by working group ISO/IEC JTC1/SC22/WG14. */
49#include <stdint.h>
50
51#include <USBRequests.h>
52
53#include <USBDDriver.h>
54#include <CDCDSerialPort.h>
55
56/*------------------------------------------------------------------------------
57 * Definitions
58 *------------------------------------------------------------------------------*/
59
60/*------------------------------------------------------------------------------
61 * Types
62 *------------------------------------------------------------------------------*/
63
64/*------------------------------------------------------------------------------
65 * Exported functions
66 *------------------------------------------------------------------------------*/
67
68extern void CDCDSerial_Initialize(
69 USBDDriver * pUsbd, uint8_t bInterfaceNb);
70
71extern uint32_t CDCDSerial_RequestHandler(
72 const USBGenericRequest *request);
73
74extern void CDCDSerial_ConfigureFunction(
75 USBGenericDescriptor * pDescriptors, uint16_t wLength);
76
77extern uint32_t CDCDSerial_Write(
78 void *data,
79 uint32_t size,
80 TransferCallback callback,
81 void *argument);
82
83extern uint32_t CDCDSerial_Read(
84 void *data,
85 uint32_t size,
86 TransferCallback callback,
87 void *argument);
88
89extern void CDCDSerial_GetLineCoding(CDCLineCoding * pLineCoding);
90
91extern uint8_t CDCDSerial_GetControlLineState(void);
92
93extern uint16_t CDCDSerial_GetSerialState(void);
94
95extern void CDCDSerial_SetSerialState(uint16_t serialState);
96
97extern uint8_t CDCDSerial_LineCodingIsToChange(
98 CDCLineCoding * pLineCoding);
99
100extern void CDCDSerial_ControlLineStateChanged(
101 uint8_t DTR,uint8_t RTS);
102
103/**@}*/
104
105#endif /*#ifndef CDCSERIAL_H*/
106