CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
Loading...
Searching...
No Matches
usb_msc.cpp File Reference
#include "usb_badge/usb_msc.h"
#include "cdc_log.h"
#include "tusb.h"
#include "class/msc/msc.h"
#include "class/msc/msc_device.h"
#include <cstring>

Go to the source code of this file.

Functions

void usb_msc_set_backend (const usb_msc_backend_t *backend)
 Installs or removes the MSC block backend.
void tud_msc_inquiry_cb (uint8_t lun, uint8_t vendor_id[8], uint8_t product_id[16], uint8_t product_rev[4])
bool tud_msc_test_unit_ready_cb (uint8_t lun)
void tud_msc_capacity_cb (uint8_t lun, uint32_t *block_count, uint16_t *block_size)
bool tud_msc_is_writable_cb (uint8_t lun)
int32_t tud_msc_read10_cb (uint8_t lun, uint32_t lba, uint32_t offset, void *buffer, uint32_t bufsize)
int32_t tud_msc_write10_cb (uint8_t lun, uint32_t lba, uint32_t offset, uint8_t *buffer, uint32_t bufsize)
bool tud_msc_start_stop_cb (uint8_t lun, uint8_t power_condition, bool start, bool load_eject)
int32_t tud_msc_scsi_cb (uint8_t lun, uint8_t const scsi_cmd[16], void *buffer, uint16_t bufsize)
void tud_umount_cb (void)

Variables

static const char * TAG = "USB_MSC"
 TinyUSB Mass Storage (MSC) class callbacks for the single vfat LUN.
static const usb_msc_backend_ts_backend = nullptr

Function Documentation

◆ tud_msc_capacity_cb()

void tud_msc_capacity_cb ( uint8_t lun,
uint32_t * block_count,
uint16_t * block_size )

Definition at line 50 of file usb_msc.cpp.

References s_backend.

◆ tud_msc_inquiry_cb()

void tud_msc_inquiry_cb ( uint8_t lun,
uint8_t vendor_id[8],
uint8_t product_id[16],
uint8_t product_rev[4] )

Definition at line 31 of file usb_msc.cpp.

◆ tud_msc_is_writable_cb()

bool tud_msc_is_writable_cb ( uint8_t lun)

Definition at line 62 of file usb_msc.cpp.

References s_backend.

◆ tud_msc_read10_cb()

int32_t tud_msc_read10_cb ( uint8_t lun,
uint32_t lba,
uint32_t offset,
void * buffer,
uint32_t bufsize )

Definition at line 67 of file usb_msc.cpp.

References s_backend.

◆ tud_msc_scsi_cb()

int32_t tud_msc_scsi_cb ( uint8_t lun,
uint8_t const scsi_cmd[16],
void * buffer,
uint16_t bufsize )

Definition at line 97 of file usb_msc.cpp.

◆ tud_msc_start_stop_cb()

bool tud_msc_start_stop_cb ( uint8_t lun,
uint8_t power_condition,
bool start,
bool load_eject )

Definition at line 86 of file usb_msc.cpp.

References s_backend.

◆ tud_msc_test_unit_ready_cb()

bool tud_msc_test_unit_ready_cb ( uint8_t lun)

Definition at line 45 of file usb_msc.cpp.

References s_backend.

◆ tud_msc_write10_cb()

int32_t tud_msc_write10_cb ( uint8_t lun,
uint32_t lba,
uint32_t offset,
uint8_t * buffer,
uint32_t bufsize )

Definition at line 77 of file usb_msc.cpp.

References s_backend.

◆ tud_umount_cb()

void tud_umount_cb ( void )

Definition at line 107 of file usb_msc.cpp.

References s_backend.

◆ usb_msc_set_backend()

void usb_msc_set_backend ( const usb_msc_backend_t * backend)

Installs or removes the MSC block backend.

Parameters
backendBackend to use, or NULL to detach (LUN reports not ready).

Definition at line 24 of file usb_msc.cpp.

References LOG_I, s_backend, and TAG.

Variable Documentation

◆ s_backend

◆ TAG

const char* TAG = "USB_MSC"
static

TinyUSB Mass Storage (MSC) class callbacks for the single vfat LUN.

The block device is provided at runtime by a backend (see usb_msc.h) so this file carries no storage dependency. All callbacks target LUN 0; reads/writes are bounds-checked inside the backend.

Definition at line 20 of file usb_msc.cpp.