5#ifndef __USBD_CDC_ACM_H
6#define __USBD_CDC_ACM_H
12#define PORT_FLAGS_RDAVAIL_SHIFT (0)
13#define PORT_FLAGS_WRAVAIL_SHIFT (8)
14#define PORT_FLAGS_ERROR_SHIFT (16)
16class dCDC_ACM :
public nbrtos::USB::Device {
34 IoExpandStruct ioStruct;
36 static int fd_read(
int fd,
char *buf,
int nbytes);
37 static int fd_write(
int fd,
const char *buf,
int nbytes);
38 static int fd_close(
int fd);
39 static int fd_peek(
int fd,
char *buf);
41 int ProcessTxnBuffer(uint8_t epnum,
PoolPtr pp, uint16_t bufLen);
43 virtual int Do_SetLineCoding(uint8_t epnum, CDC_LineCoding_t coding);
44 virtual int Do_SetCtlLineState(usb_setup_pkt_t msg);
47 friend void UserMain(
void *pd);
50 dCDC_ACM(nbrtos::USB::Ctlr *parent,
const usb_dev_t *desc,
51 const usb_cfg_t *cfg,
const nbrtos::USB::StrDescTbl *strTbl);
53 virtual void Event_BusReset();
54 virtual void Event_Suspend();
55 virtual void Event_Resume();
56 virtual int Event_ControlMsg(nbrtos::USB::bufPtr_t ctlMsg, uint8_t bufLen);
57 virtual int SetConfiguration(uint16_t wValue);
58 virtual int SetAltSetting(uint16_t wIndex, uint16_t wValue);
60 virtual int ProcessBuffer(uint8_t ep,
PoolPtr pp, uint16_t bufLen);
61 static int sProcessBuffer(Device *dev, uint8_t ep,
PoolPtr pp, uint16_t bufLen);
63 virtual uint16_t GetStatus(eReqTarget_t target, uint16_t wIndex,
int *err);
64 virtual uint8_t GetActiveConfig(
int *err);
65 virtual uint8_t GetAltSetting(uint8_t intfNum,
int *err);
66 virtual uint16_t GetMaxPktSize(uint8_t epnum, eDir_t dir);
67 nbrtos::USB::eBusState_t GetUSBState();
68 void SetUSBState(nbrtos::USB::eBusState_t newState);
70 int ReadData(uint8_t *pData,
int rdLen);
71 int ReadWTimeout(uint8_t *pData,
int rdLen, TickTimeout timeout);
73 int WriteData(uint8_t *pData,
int wrLen);
74 int WriteWTimeout(uint8_t *pData,
int wrLen, TickTimeout timeout);
78 int Peek(uint8_t *buf);
80 virtual int ProcessSetupPkt(uint8_t epnum, usb_setup_pkt_t msg);
FIFO buffer storage using linked pool buffers.
Definition buffers.h:443
Main buffer structure for network and serial communication.
Definition buffers.h:90