diff options
| author | hathach <[email protected]> | 2013-09-27 22:38:23 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2013-09-27 22:38:23 +0700 |
| commit | eb1a101667f183db6781d5f7f73f360a508b13bc (patch) | |
| tree | 953c6b09a13eb3b32101662bb7391c00e1092a7a /tinyusb/class | |
| parent | 26f75d6cac91f0525627ca2086175007614632f8 (diff) | |
house keeping
Diffstat (limited to 'tinyusb/class')
| -rw-r--r-- | tinyusb/class/hid.h | 2 | ||||
| -rw-r--r-- | tinyusb/class/msc_host.c | 30 | ||||
| -rw-r--r-- | tinyusb/class/msc_host.h | 6 |
3 files changed, 22 insertions, 16 deletions
diff --git a/tinyusb/class/hid.h b/tinyusb/class/hid.h index 3c550cd3e..7d8d1b047 100644 --- a/tinyusb/class/hid.h +++ b/tinyusb/class/hid.h @@ -84,7 +84,7 @@ enum { HID_REQUEST_CONTROL_SET_PROTOCOL = 0x0b }; -typedef ATTR_PREPACKED struct ATTR_PACKED { +typedef ATTR_PACKED_STRUCT(struct) { uint8_t bLength; /**< Numeric expression that is the total size of the HID descriptor */ uint8_t bDescriptorType; /**< Constant name specifying type of HID descriptor. */ diff --git a/tinyusb/class/msc_host.c b/tinyusb/class/msc_host.c index 25518a757..26beeae13 100644 --- a/tinyusb/class/msc_host.c +++ b/tinyusb/class/msc_host.c @@ -74,19 +74,33 @@ bool tusbh_msc_is_mounted(uint8_t dev_addr) msch_data[dev_addr-1].is_initialized; } +bool tusbh_msc_is_busy(uint8_t dev_addr) +{ + return msch_data[dev_addr-1].is_initialized && + hcd_pipe_is_busy(msch_data[dev_addr-1].bulk_in); +} + +bool tusbh_msc_is_failed(uint8_t dev_addr) +{ + return msch_data[dev_addr-1].is_initialized && + hcd_pipe_is_error(msch_data[dev_addr-1].bulk_in); +} + +// TODO tusbh_msc_is_stalled + uint8_t const* tusbh_msc_get_vendor_name(uint8_t dev_addr) { - return tusbh_msc_is_mounted(dev_addr) ? msch_data[dev_addr-1].vendor_id : NULL; + return msch_data[dev_addr-1].is_initialized ? msch_data[dev_addr-1].vendor_id : NULL; } uint8_t const* tusbh_msc_get_product_name(uint8_t dev_addr) { - return tusbh_msc_is_mounted(dev_addr) ? msch_data[dev_addr-1].product_id : NULL; + return msch_data[dev_addr-1].is_initialized ? msch_data[dev_addr-1].product_id : NULL; } tusb_error_t tusbh_msc_get_capacity(uint8_t dev_addr, uint32_t* p_last_lba, uint32_t* p_block_size) { - if ( !tusbh_msc_is_mounted(dev_addr) ) return TUSB_ERROR_MSCH_DEVICE_NOT_MOUNTED; + if ( !msch_data[dev_addr-1].is_initialized ) return TUSB_ERROR_MSCH_DEVICE_NOT_MOUNTED; ASSERT(p_last_lba != NULL && p_block_size != NULL, TUSB_ERROR_INVALID_PARA); (*p_last_lba) = msch_data[dev_addr-1].last_lba; @@ -95,16 +109,6 @@ tusb_error_t tusbh_msc_get_capacity(uint8_t dev_addr, uint32_t* p_last_lba, uint return TUSB_ERROR_NONE; } -tusb_interface_status_t tusbh_msc_status(uint8_t dev_addr) -{ - if ( !tusbh_msc_is_mounted(dev_addr) ) return TUSB_INTERFACE_STATUS_INVALID_PARA; - - if ( hcd_pipe_is_busy(msch_data[dev_addr-1].bulk_in) ) return TUSB_INTERFACE_STATUS_BUSY; - if ( hcd_pipe_is_stalled(msch_data[dev_addr-1].bulk_in) ) return TUSB_INTERFACE_STATUS_ERROR; - - return TUSB_INTERFACE_STATUS_READY; -} - static inline void msc_cbw_add_signature(msc_cmd_block_wrapper_t *p_cbw, uint8_t lun) ATTR_ALWAYS_INLINE; static inline void msc_cbw_add_signature(msc_cmd_block_wrapper_t *p_cbw, uint8_t lun) { diff --git a/tinyusb/class/msc_host.h b/tinyusb/class/msc_host.h index b51b9f515..83409f859 100644 --- a/tinyusb/class/msc_host.h +++ b/tinyusb/class/msc_host.h @@ -59,7 +59,9 @@ // MASS STORAGE Application API //--------------------------------------------------------------------+ bool tusbh_msc_is_mounted(uint8_t dev_addr) ATTR_PURE ATTR_WARN_UNUSED_RESULT; -tusb_interface_status_t tusbh_msc_status(uint8_t dev_addr) ATTR_WARN_UNUSED_RESULT; +bool tusbh_msc_is_busy(uint8_t dev_addr) ATTR_PURE ATTR_WARN_UNUSED_RESULT; +bool tusbh_msc_is_failed(uint8_t dev_addr) ATTR_PURE ATTR_WARN_UNUSED_RESULT; + uint8_t const* tusbh_msc_get_vendor_name(uint8_t dev_addr); uint8_t const* tusbh_msc_get_product_name(uint8_t dev_addr); tusb_error_t tusbh_msc_get_capacity(uint8_t dev_addr, uint32_t* p_last_lba, uint32_t* p_block_size); @@ -95,7 +97,7 @@ typedef struct { uint16_t block_size; uint32_t last_lba; // last logical block address - bool is_initialized; + volatile bool is_initialized; uint8_t vendor_id[8]; uint8_t product_id[16]; |
