Loading...
Searching...
No Matches

Interface and definitions for USB CDC ECM type interfaces. More...

Detailed Description

Interface and definitions for USB CDC ECM type interfaces.

Author
Koen Zandberg koen@.nosp@m.berg.nosp@m.zand..nosp@m.net

Definition in file ecm.h.

#include <stdint.h>
#include <stdlib.h>
#include "net/ethernet.h"
#include "net/ethernet/hdr.h"
#include "usb/descriptor.h"
#include "usb/usbus.h"
#include "usb/usbus/control.h"
#include "macros/math.h"
#include "net/netdev.h"
#include "mutex.h"
+ Include dependency graph for ecm.h:

Go to the source code of this file.

Data Structures

struct  usbus_cdcecm_device
 USBUS CDC ECM device interface context. More...
 

Macros

#define CONFIG_USBUS_CDC_ECM_CONFIG_SPEED   1000000
 Link throughput as reported by the peripheral.
 
#define CONFIG_USBUS_CDC_ECM_CONFIG_SPEED_DOWNSTREAM   CONFIG_USBUS_CDC_ECM_CONFIG_SPEED
 Link download speed as reported by the peripheral.
 
#define CONFIG_USBUS_CDC_ECM_CONFIG_SPEED_UPSTREAM   CONFIG_USBUS_CDC_ECM_CONFIG_SPEED
 Link upload speed as reported by the peripheral.
 
#define USBUS_CDCECM_EP_CTRL_SIZE   16
 CDC ECM interrupt endpoint size.
 
#define USBUS_CDCECM_EP_DATA_SIZE   64
 CDC ECM bulk data endpoint size.
 
#define USBUS_ETHERNET_FRAME_BUF   MATH_ALIGN(ETHERNET_FRAME_LEN, USBUS_CDCECM_EP_DATA_SIZE)
 Full ethernet frame rounded up to a whole number of transfers.
 
#define USBUS_CDC_ECM_EP_IN_REQUIRED_NUMOF   2
 Number of IN EPs required for the CDC ECM interface.
 
#define USBUS_CDC_ECM_EP_OUT_REQUIRED_NUMOF   1
 Number of Out EPs required for the CDC ECM interface.
 

Typedefs

typedef struct usbus_cdcecm_device usbus_cdcecm_device_t
 USBUS CDC ECM device interface context.
 

Enumerations

enum  usbus_cdcecm_notif_t { USBUS_CDCECM_NOTIF_NONE , USBUS_CDCECM_NOTIF_LINK_UP , USBUS_CDCECM_NOTIF_SPEED }
 notification state, used to track which information must be send to the host More...
 

Functions

void usbus_cdcecm_init (usbus_t *usbus, usbus_cdcecm_device_t *handler)
 CDC ECM initialization function.