pure sdk for main
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
/*****************************************************************************
|
||||
* Module : usb
|
||||
* File : usb_dev_cdc_ncm.h
|
||||
* Author :
|
||||
* Function : USB CDC NCM驱动的一些定义
|
||||
*****************************************************************************/
|
||||
#ifndef USB_DEV_CDC_NCM_H
|
||||
#define USB_DEV_CDC_NCM_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*
|
||||
* CDC NCM transfer headers, CDC NCM subclass 3.2
|
||||
*/
|
||||
|
||||
#define USB_CDC_NCM_NTH16_SIGN 0x484D434E /* NCMH */
|
||||
#define USB_CDC_NCM_NTH32_SIGN 0x686D636E /* ncmh */
|
||||
|
||||
struct usb_cdc_ncm_nth16 {
|
||||
uint32 sign;
|
||||
uint16 hdr_len;
|
||||
uint16 seq;
|
||||
uint16 total_len;
|
||||
uint16 ndp_index;
|
||||
} __packed;
|
||||
|
||||
struct usb_cdc_ncm_nth32 {
|
||||
uint32 sign;
|
||||
uint16 hdr_len;
|
||||
uint16 seq;
|
||||
uint32 total_len;
|
||||
uint32 ndp_index;
|
||||
} __packed;
|
||||
|
||||
/*
|
||||
* CDC NCM datagram pointers, CDC NCM subclass 3.3
|
||||
*/
|
||||
|
||||
#define USB_CDC_NCM_NDP16_CRC_SIGN 0x314D434E /* NCM1 */
|
||||
#define USB_CDC_NCM_NDP16_NOCRC_SIGN 0x304D434E /* NCM0 */
|
||||
#define USB_CDC_NCM_NDP32_CRC_SIGN 0x316D636E /* ncm1 */
|
||||
#define USB_CDC_NCM_NDP32_NOCRC_SIGN 0x306D636E /* ncm0 */
|
||||
|
||||
/* 16-bit NCM Datagram Pointer Entry */
|
||||
struct usb_cdc_ncm_dpe16 {
|
||||
uint16 datagram_index;
|
||||
uint16 datagram_len;
|
||||
} __packed;
|
||||
|
||||
/* 16-bit NCM Datagram Pointer Table */
|
||||
struct usb_cdc_ncm_ndp16 {
|
||||
uint32 sign;
|
||||
uint16 hdr_len;
|
||||
uint16 next_ndp_index;
|
||||
struct usb_cdc_ncm_dpe16 dpe16[0];
|
||||
} __packed;
|
||||
|
||||
/* 32-bit NCM Datagram Pointer Entry */
|
||||
struct usb_cdc_ncm_dpe32 {
|
||||
uint32 datagram_index;
|
||||
uint32 datagram_len;
|
||||
} __packed;
|
||||
|
||||
/* 32-bit NCM Datagram Pointer Table */
|
||||
struct usb_cdc_ncm_ndp32 {
|
||||
uint32 sign;
|
||||
uint16 hdr_len;
|
||||
uint16 resv_0;
|
||||
uint32 next_ndp_index;
|
||||
uint32 resv_1;
|
||||
struct usb_cdc_ncm_dpe32 dpe32[0];
|
||||
} __packed;
|
||||
|
||||
/* CDC NCM subclass 3.2.1 and 3.2.2 */
|
||||
#define USB_CDC_NCM_NDP16_INDEX_MIN 0x000C
|
||||
#define USB_CDC_NCM_NDP32_INDEX_MIN 0x0010
|
||||
|
||||
/* CDC NCM subclass 3.3.3 Datagram Formatting */
|
||||
#define USB_CDC_NCM_DATAGRAM_FORMAT_CRC 0x30
|
||||
#define USB_CDC_NCM_DATAGRAM_FORMAT_NOCRC 0X31
|
||||
|
||||
struct usb_cdc_ncm_ntb_params {
|
||||
uint16 Length;
|
||||
uint16 NtbFormatsSupported;
|
||||
uint32 NtbInMaxSize;
|
||||
uint16 NdpInDivisor;
|
||||
uint16 NdpInPayloadRemainder;
|
||||
uint16 NdpInAlignment;
|
||||
uint16 Reserved;
|
||||
uint32 NtbOutMaxSize;
|
||||
uint16 NdpOutDivisor;
|
||||
uint16 NdpOutPayloadRemainder;
|
||||
uint16 NdpOutAlignment;
|
||||
uint16 NtbOutMaxDatagrams;
|
||||
} __packed;
|
||||
|
||||
extern int32 usb_device_cdc_ncm_open(struct usb_device *p_usb_d);
|
||||
extern int32 usb_device_cdc_ncm_close(struct usb_device *p_usb_d);
|
||||
extern int32 usb_device_cdc_ncm_auto_tx_null_pkt_disable(struct usb_device *p_usb_d);
|
||||
extern int32 usb_device_cdc_ncm_auto_tx_null_pkt_enable(struct usb_device *p_usb_d);
|
||||
extern int32 usb_device_cdc_ncm_write(struct usb_device *p_usb_d, uint8 *buff, uint32 len);
|
||||
extern int32 usb_device_cdc_ncm_write_scatter(struct usb_device *p_usb_d, scatter_data *data, int count);
|
||||
extern int32 usb_device_cdc_ncm_read(struct usb_device *p_usb_d, uint8 *buff, uint32 len);
|
||||
extern int32 usb_device_cdc_ncm_notify_network_connection(struct usb_device *p_usb_d, uint8 link_up);
|
||||
extern int32 usb_device_cdc_ncm_notify_connection_speed_change(struct usb_device *p_usb_d, uint32 down_speed, uint32 up_speed);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user