Skip to content

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.

SYN_Status syn_usb_msc_init (
    SYN_USB_MSC * msc
) 

Parameters:

  • msc Pointer 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).

SYN_Status syn_usb_msc_process_cbw (
    SYN_USB_MSC * msc,
    const uint8_t cbw_raw
) 

Parameters:

  • msc Pointer to USB MSC instance.
  • cbw_raw Pointer 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.

SYN_Status syn_usb_msc_register (
    SYN_USB_Device * dev,
    SYN_USB_MSC * msc
) 

Parameters:

  • dev Pointer to USB device context.
  • msc Pointer 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.

SYN_Status syn_usb_msc_set_media (
    SYN_USB_MSC * msc,
    const SYN_USB_MSC_Media * media
) 

Parameters:

  • msc Pointer to USB MSC instance.
  • media Pointer 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.

static SYN_Status usb_msc_configured_handler (
    void * ctx,
    uint8_t config
) 

Parameters:

  • ctx Class driver context (SYN_USB_MSC pointer).
  • config Configuration index.

Returns:

SYN_OK on success.


function usb_msc_data_in_handler

Data IN handler callback for USB MSC IN endpoint completion.

static void usb_msc_data_in_handler (
    void * ctx,
    uint8_t ep
) 

Parameters:

  • ctx Class driver context (SYN_USB_MSC pointer).
  • ep Endpoint address.

function usb_msc_data_out_handler

Data OUT handler callback for USB MSC OUT endpoint data.

static void usb_msc_data_out_handler (
    void * ctx,
    uint8_t ep,
    const uint8_t * data,
    uint16_t len
) 

Parameters:

  • ctx Class driver context (SYN_USB_MSC pointer).
  • ep Endpoint address.
  • data Received payload bytes.
  • len Byte 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:

  • ctx Class driver context (SYN_USB_MSC pointer).
  • pkt Setup packet pointer.
  • resp Response payload buffer.
  • rlen Output response payload byte length pointer.

Returns:

SYN_OK on success, SYN_INVALID_PARAM if NULL.


Macro Definition Documentation

define SYN_USB_MSC_CBW_SIGNATURE

#define SYN_USB_MSC_CBW_SIGNATURE `0x43425355U`

BOT CBW Magic Signature "USBC"


define SYN_USB_MSC_CSW_SIGNATURE

#define SYN_USB_MSC_CSW_SIGNATURE `0x53425355U`

BOT CSW Magic Signature "USBS"



The documentation for this class was generated from the following file src/syntropic/drivers/syn_usb_msc.c