File syn_usb_msc.c¶
FileList > drivers > syn_usb_msc.c
Go to the source code of this file
Zero-Heap USB 2.0 Mass Storage Class (MSC) Device Driver Implementation.
#include "syn_usb_msc.h"#include <string.h>
Public Functions¶
| Type | Name |
|---|---|
| SYN_Status | syn_usb_msc_init (SYN_USB_MSC * msc) Initialize USB MSC Instance. |
| SYN_Status | syn_usb_msc_process_cbw (SYN_USB_MSC * msc, const uint8_t cbw_raw) Process incoming BOT Command Block Wrapper (CBW). |
| SYN_Status | syn_usb_msc_register (SYN_USB_Device * dev, SYN_USB_MSC * msc) Register USB MSC class driver with USB core. |
| SYN_Status | syn_usb_msc_set_media (SYN_USB_MSC * msc, const SYN_USB_MSC_Media * media) Bind block storage media callbacks. |
Public Static Functions¶
| Type | Name |
|---|---|
| SYN_Status | usb_msc_configured_handler (void * ctx, uint8_t config) Configured callback for USB MSC class interface activation. |
| void | usb_msc_data_in_handler (void * ctx, uint8_t ep) Data IN handler callback for USB MSC IN endpoint completion. |
| void | usb_msc_data_out_handler (void * ctx, uint8_t ep, const uint8_t * data, uint16_t len) Data OUT handler callback for USB MSC OUT endpoint data. |
| SYN_Status | usb_msc_setup_handler (void * ctx, const SYN_USB_SetupPacket * pkt, uint8_t * resp, uint16_t * rlen) Setup handler callback for USB MSC class setup requests. |
Macros¶
| Type | Name |
|---|---|
| define | SYN_USB_MSC_CBW_SIGNATURE 0x43425355U |
| define | SYN_USB_MSC_CSW_SIGNATURE 0x53425355U |
Public Functions Documentation¶
function syn_usb_msc_init¶
Initialize USB MSC Instance.
Parameters:
mscPointer to USB MSC instance.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if NULL.
function syn_usb_msc_process_cbw¶
Process incoming BOT Command Block Wrapper (CBW).
Parameters:
mscPointer to USB MSC instance.cbw_rawPointer to 31-byte raw CBW buffer.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if NULL or corrupt.
function syn_usb_msc_register¶
Register USB MSC class driver with USB core.
Parameters:
devPointer to USB device context.mscPointer to USB MSC instance.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if NULL.
function syn_usb_msc_set_media¶
Bind block storage media callbacks.
Parameters:
mscPointer to USB MSC instance.mediaPointer to storage media interface.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if NULL.
Public Static Functions Documentation¶
function usb_msc_configured_handler¶
Configured callback for USB MSC class interface activation.
Parameters:
ctxClass driver context (SYN_USB_MSC pointer).configConfiguration index.
Returns:
SYN_OK on success.
function usb_msc_data_in_handler¶
Data IN handler callback for USB MSC IN endpoint completion.
Parameters:
ctxClass driver context (SYN_USB_MSC pointer).epEndpoint address.
function usb_msc_data_out_handler¶
Data OUT handler callback for USB MSC OUT endpoint data.
Parameters:
ctxClass driver context (SYN_USB_MSC pointer).epEndpoint address.dataReceived payload bytes.lenByte length of received payload.
function usb_msc_setup_handler¶
Setup handler callback for USB MSC class setup requests.
static SYN_Status usb_msc_setup_handler (
void * ctx,
const SYN_USB_SetupPacket * pkt,
uint8_t * resp,
uint16_t * rlen
)
Parameters:
ctxClass driver context (SYN_USB_MSC pointer).pktSetup packet pointer.respResponse payload buffer.rlenOutput response payload byte length pointer.
Returns:
SYN_OK on success, SYN_INVALID_PARAM if NULL.
Macro Definition Documentation¶
define SYN_USB_MSC_CBW_SIGNATURE¶
BOT CBW Magic Signature "USBC"
define SYN_USB_MSC_CSW_SIGNATURE¶
BOT CSW Magic Signature "USBS"
The documentation for this class was generated from the following file src/syntropic/drivers/syn_usb_msc.c