summaryrefslogtreecommitdiff
path: root/tinyusb/class
diff options
context:
space:
mode:
authorhathach <[email protected]>2013-09-27 22:38:23 +0700
committerhathach <[email protected]>2013-09-27 22:38:23 +0700
commiteb1a101667f183db6781d5f7f73f360a508b13bc (patch)
tree953c6b09a13eb3b32101662bb7391c00e1092a7a /tinyusb/class
parent26f75d6cac91f0525627ca2086175007614632f8 (diff)
house keeping
Diffstat (limited to 'tinyusb/class')
-rw-r--r--tinyusb/class/hid.h2
-rw-r--r--tinyusb/class/msc_host.c30
-rw-r--r--tinyusb/class/msc_host.h6
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];