27#ifndef _TUSB_MSC_DEVICE_H_
28#define _TUSB_MSC_DEVICE_H_
41#if !defined(CFG_TUD_MSC_EP_BUFSIZE) & defined(CFG_TUD_MSC_BUFSIZE)
44 #define CFG_TUD_MSC_EP_BUFSIZE CFG_TUD_MSC_BUFSIZE
47#ifndef CFG_TUD_MSC_EP_BUFSIZE
48 #error CFG_TUD_MSC_EP_BUFSIZE must be defined, value of a block size should work well, the more the better
58bool tud_msc_set_sense(uint8_t lun, uint8_t sense_key, uint8_t add_sense_code, uint8_t add_sense_qualifier);
96void tud_msc_inquiry_cb(uint8_t lun, uint8_t vendor_id[8], uint8_t product_id[16], uint8_t product_rev[4]);
TU_VERIFY_STATIC(sizeof(cdc_acm_capability_t)==1, "mostly problem with compiler")
bool mscd_xfer_cb(uint8_t rhport, uint8_t ep_addr, xfer_result_t event, uint32_t xferred_bytes)
int32_t tud_msc_read10_cb(uint8_t lun, uint32_t lba, uint32_t offset, void *buffer, uint32_t bufsize)
void mscd_reset(uint8_t rhport)
int32_t tud_msc_write10_cb(uint8_t lun, uint32_t lba, uint32_t offset, uint8_t *buffer, uint32_t bufsize)
bool tud_msc_set_sense(uint8_t lun, uint8_t sense_key, uint8_t add_sense_code, uint8_t add_sense_qualifier)
TU_ATTR_WEAK bool tud_msc_is_writable_cb(uint8_t lun)
TU_ATTR_WEAK void tud_msc_read10_complete_cb(uint8_t lun)
TU_ATTR_WEAK int32_t tud_msc_request_sense_cb(uint8_t lun, void *buffer, uint16_t bufsize)
uint16_t mscd_open(uint8_t rhport, tusb_desc_interface_t const *itf_desc, uint16_t max_len)
int32_t tud_msc_scsi_cb(uint8_t lun, uint8_t const scsi_cmd[16], void *buffer, uint16_t bufsize)
TU_ATTR_WEAK void tud_msc_write10_complete_cb(uint8_t lun)
TU_ATTR_WEAK bool tud_msc_start_stop_cb(uint8_t lun, uint8_t power_condition, bool start, bool load_eject)
TU_ATTR_WEAK uint8_t tud_msc_get_maxlun_cb(void)
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)
TU_ATTR_WEAK void tud_msc_scsi_complete_cb(uint8_t lun, uint8_t const scsi_cmd[16])
bool mscd_control_xfer_cb(uint8_t rhport, uint8_t stage, tusb_control_request_t const *p_request)
void tud_msc_inquiry_cb(uint8_t lun, uint8_t vendor_id[8], uint8_t product_id[16], uint8_t product_rev[4])
TU_ATTR_WEAK bool tud_msc_prevent_allow_medium_removal_cb(uint8_t lun, uint8_t prohibit_removal, uint8_t control)
AUDIO Channel Cluster Descriptor (4.1)