mikroSDK Reference Manual
usbd_rndis.h
Go to the documentation of this file.
1
31#ifndef _USB_RNDIS_H
32#define _USB_RNDIS_H
33
34//Dependencies
35#include "usbd_ioreq.h"
36
37//USB endpoints
38#define RNDIS_NOTIFICATION_EP 0x81
39#define RNDIS_DATA_IN_EP 0x82
40#define RNDIS_DATA_OUT_EP 0x03
41
42//Endpoint maximum packet size
43#define RNDIS_NOTIFICATION_EP_MPS 64
44#define RNDIS_DATA_IN_EP_MPS_FS 64
45#define RNDIS_DATA_OUT_EP_MPS_FS 64
46#define RNDIS_DATA_IN_EP_MPS_HS 512
47#define RNDIS_DATA_OUT_EP_MPS_HS 512
48
49//RNDIS Class specific requests
50#define RNDIS_SEND_ENCAPSULATED_COMMAND 0x00
51#define RNDIS_GET_ENCAPSULATED_RESPONSE 0x01
52
53//Global variables
54extern USBD_HandleTypeDef USBD_Device;
55extern USBD_ClassTypeDef usbdRndisClass;
56#define USBD_RNDIS_CLASS &usbdRndisClass
57
58//RNDIS related functions
59uint8_t usbdRndisInit(USBD_HandleTypeDef *pdev, uint8_t cfgidx);
60uint8_t usbdRndisDeInit(USBD_HandleTypeDef *pdev, uint8_t cfgidx);
61uint8_t usbdRndisSetup(USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req);
62uint8_t usbdRndisEp0RxReady(USBD_HandleTypeDef *pdev);
63uint8_t usbdRndisDataIn(USBD_HandleTypeDef *pdev, uint8_t epnum);
64uint8_t usbdRndisDataOut(USBD_HandleTypeDef *pdev, uint8_t epnum);
65uint8_t *usbdRndisGetHighSpeedConfigDesc(uint16_t *length);
66uint8_t *usbdRndisGetFullSpeedConfigDesc(uint16_t *length);
67uint8_t *usbdRndisGetOtherSpeedConfigDesc(uint16_t *length);
68uint8_t *usbdRndisGetDeviceQualifierDesc(uint16_t *length);
69
70#endif