From deab8c276a41577eef3d4f4bd3663a5e1860a76a Mon Sep 17 00:00:00 2001 From: hathach Date: Thu, 17 Mar 2022 16:53:54 +0700 Subject: [PATCH] remove const in xfer callback --- src/class/hid/hid_host.c | 8 ++++---- src/class/msc/msc_host.c | 4 ++-- src/host/hub.c | 20 ++++++++++---------- src/host/usbh.c | 11 +++++++---- src/host/usbh.h | 4 ++-- 5 files changed, 25 insertions(+), 22 deletions(-) diff --git a/src/class/hid/hid_host.c b/src/class/hid/hid_host.c index 564b927e..45090d19 100644 --- a/src/class/hid/hid_host.c +++ b/src/class/hid/hid_host.c @@ -103,7 +103,7 @@ uint8_t tuh_hid_get_protocol(uint8_t dev_addr, uint8_t instance) return hid_itf->protocol_mode; } -static bool set_protocol_complete(uint8_t dev_addr, tuh_control_xfer_t const * xfer) +static bool set_protocol_complete(uint8_t dev_addr, tuh_control_xfer_t* xfer) { uint8_t const itf_num = (uint8_t) xfer->setup->wIndex; uint8_t const instance = get_instance_id_by_itfnum(dev_addr, itf_num); @@ -159,7 +159,7 @@ bool tuh_hid_set_protocol(uint8_t dev_addr, uint8_t instance, uint8_t protocol) return _hidh_set_protocol(dev_addr, hid_itf->itf_num, protocol, set_protocol_complete, 0); } -static bool set_report_complete(uint8_t dev_addr, tuh_control_xfer_t const * xfer) +static bool set_report_complete(uint8_t dev_addr, tuh_control_xfer_t* xfer) { TU_LOG2("HID Set Report complete\r\n"); @@ -390,7 +390,7 @@ enum { }; static void config_driver_mount_complete(uint8_t dev_addr, uint8_t instance, uint8_t const* desc_report, uint16_t desc_len); -static bool process_set_config(uint8_t dev_addr, tuh_control_xfer_t const * xfer); +static bool process_set_config(uint8_t dev_addr, tuh_control_xfer_t* xfer); bool hidh_set_config(uint8_t dev_addr, uint8_t itf_num) { @@ -406,7 +406,7 @@ bool hidh_set_config(uint8_t dev_addr, uint8_t itf_num) return process_set_config(dev_addr, &xfer); } -static bool process_set_config(uint8_t dev_addr, tuh_control_xfer_t const * xfer) +static bool process_set_config(uint8_t dev_addr, tuh_control_xfer_t* xfer) { // Stall is a valid response for SET_IDLE, therefore we could ignore its result if ( xfer->setup->bRequest != HID_REQ_CONTROL_SET_IDLE ) diff --git a/src/class/msc/msc_host.c b/src/class/msc/msc_host.c index ca1080eb..0a3deb2c 100644 --- a/src/class/msc/msc_host.c +++ b/src/class/msc/msc_host.c @@ -358,7 +358,7 @@ bool msch_xfer_cb(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t event, uint32 // MSC Enumeration //--------------------------------------------------------------------+ -static bool config_get_maxlun_complete (uint8_t dev_addr, tuh_control_xfer_t const * xfer); +static bool config_get_maxlun_complete (uint8_t dev_addr, tuh_control_xfer_t* xfer); static bool config_test_unit_ready_complete(uint8_t dev_addr, msc_cbw_t const* cbw, msc_csw_t const* csw); static bool config_request_sense_complete(uint8_t dev_addr, msc_cbw_t const* cbw, msc_csw_t const* csw); static bool config_read_capacity_complete(uint8_t dev_addr, msc_cbw_t const* cbw, msc_csw_t const* csw); @@ -432,7 +432,7 @@ bool msch_set_config(uint8_t dev_addr, uint8_t itf_num) return true; } -static bool config_get_maxlun_complete (uint8_t dev_addr, tuh_control_xfer_t const * xfer) +static bool config_get_maxlun_complete (uint8_t dev_addr, tuh_control_xfer_t* xfer) { msch_interface_t* p_msc = get_itf(dev_addr); diff --git a/src/host/hub.c b/src/host/hub.c index 5255fdf7..75596d74 100644 --- a/src/host/hub.c +++ b/src/host/hub.c @@ -225,8 +225,8 @@ bool hub_edpt_status_xfer(uint8_t dev_addr) // Set Configure //--------------------------------------------------------------------+ -static bool config_set_port_power (uint8_t dev_addr, tuh_control_xfer_t const * xfer); -static bool config_port_power_complete (uint8_t dev_addr, tuh_control_xfer_t const * xfer); +static bool config_set_port_power (uint8_t dev_addr, tuh_control_xfer_t* xfer); +static bool config_port_power_complete (uint8_t dev_addr, tuh_control_xfer_t* xfer); bool hub_set_config(uint8_t dev_addr, uint8_t itf_num) { @@ -262,7 +262,7 @@ bool hub_set_config(uint8_t dev_addr, uint8_t itf_num) return true; } -static bool config_set_port_power (uint8_t dev_addr, tuh_control_xfer_t const * xfer) +static bool config_set_port_power (uint8_t dev_addr, tuh_control_xfer_t* xfer) { TU_ASSERT(XFER_RESULT_SUCCESS == xfer->result); @@ -279,7 +279,7 @@ static bool config_set_port_power (uint8_t dev_addr, tuh_control_xfer_t const * return hub_port_set_feature(dev_addr, hub_port, HUB_FEATURE_PORT_POWER, config_port_power_complete, 0); } -static bool config_port_power_complete (uint8_t dev_addr, tuh_control_xfer_t const * xfer) +static bool config_port_power_complete (uint8_t dev_addr, tuh_control_xfer_t* xfer) { TU_ASSERT(XFER_RESULT_SUCCESS == xfer->result); hub_interface_t* p_hub = get_itf(dev_addr); @@ -305,9 +305,9 @@ static bool config_port_power_complete (uint8_t dev_addr, tuh_control_xfer_t con // Connection Changes //--------------------------------------------------------------------+ -static bool connection_get_status_complete (uint8_t dev_addr, tuh_control_xfer_t const * xfer); -static bool connection_clear_conn_change_complete (uint8_t dev_addr, tuh_control_xfer_t const * xfer); -static bool connection_port_reset_complete (uint8_t dev_addr, tuh_control_xfer_t const * xfer); +static bool connection_get_status_complete (uint8_t dev_addr, tuh_control_xfer_t* xfer); +static bool connection_clear_conn_change_complete (uint8_t dev_addr, tuh_control_xfer_t* xfer); +static bool connection_port_reset_complete (uint8_t dev_addr, tuh_control_xfer_t* xfer); // callback as response of interrupt endpoint polling bool hub_xfer_cb(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t result, uint32_t xferred_bytes) @@ -335,7 +335,7 @@ bool hub_xfer_cb(uint8_t dev_addr, uint8_t ep_addr, xfer_result_t result, uint32 return true; } -static bool connection_get_status_complete (uint8_t dev_addr, tuh_control_xfer_t const * xfer) +static bool connection_get_status_complete (uint8_t dev_addr, tuh_control_xfer_t* xfer) { TU_ASSERT(xfer->result == XFER_RESULT_SUCCESS); @@ -363,7 +363,7 @@ static bool connection_get_status_complete (uint8_t dev_addr, tuh_control_xfer_t return true; } -static bool connection_clear_conn_change_complete (uint8_t dev_addr, tuh_control_xfer_t const * xfer) +static bool connection_clear_conn_change_complete (uint8_t dev_addr, tuh_control_xfer_t* xfer) { TU_ASSERT(xfer->result == XFER_RESULT_SUCCESS); @@ -394,7 +394,7 @@ static bool connection_clear_conn_change_complete (uint8_t dev_addr, tuh_control return true; } -static bool connection_port_reset_complete (uint8_t dev_addr, tuh_control_xfer_t const * xfer) +static bool connection_port_reset_complete (uint8_t dev_addr, tuh_control_xfer_t* xfer) { TU_ASSERT(xfer->result == XFER_RESULT_SUCCESS); diff --git a/src/host/usbh.c b/src/host/usbh.c index 00afe609..09b4c048 100644 --- a/src/host/usbh.c +++ b/src/host/usbh.c @@ -882,7 +882,7 @@ bool usbh_edpt_busy(uint8_t dev_addr, uint8_t ep_addr) // Control transfer //--------------------------------------------------------------------+ -static bool _control_blocking_complete_cb(uint8_t daddr, tuh_control_xfer_t const * xfer) +static bool _control_blocking_complete_cb(uint8_t daddr, tuh_control_xfer_t* xfer) { (void) daddr; @@ -943,12 +943,15 @@ bool tuh_control_xfer (uint8_t daddr, tuh_control_xfer_t const* xfer) // TODO probably some timeout to prevent hanged } + + // update result + //xfer->result = result; } return true; } -uint8_t tuh_control_xfer_sync(uint8_t daddr, tuh_control_xfer_t const* xfer, uint32_t timeout_ms) +bool tuh_control_xfer_sync(uint8_t daddr, tuh_control_xfer_t* xfer, uint32_t timeout_ms) { (void) timeout_ms; @@ -977,7 +980,7 @@ static void _xfer_complete(uint8_t dev_addr, xfer_result_t result) // duplicate xfer since user can execute control transfer within callback tusb_control_request_t const request = _ctrl_xfer.request; - tuh_control_xfer_t const xfer_temp = + tuh_control_xfer_t xfer_temp = { .ep_addr = 0, .result = result, @@ -1119,7 +1122,7 @@ static bool parse_configuration_descriptor (uint8_t dev_addr, tusb_desc_configur static void enum_full_complete(void); // process device enumeration -static bool process_enumeration(uint8_t dev_addr, tuh_control_xfer_t const * xfer) +static bool process_enumeration(uint8_t dev_addr, tuh_control_xfer_t* xfer) { if (XFER_RESULT_SUCCESS != xfer->result) { diff --git a/src/host/usbh.h b/src/host/usbh.h index a2372ad0..e5f86d73 100644 --- a/src/host/usbh.h +++ b/src/host/usbh.h @@ -42,7 +42,7 @@ struct tuh_control_xfer_s; typedef struct tuh_control_xfer_s tuh_control_xfer_t; -typedef bool (*tuh_control_xfer_cb_t)(uint8_t daddr, tuh_control_xfer_t const * xfer); +typedef bool (*tuh_control_xfer_cb_t)(uint8_t daddr, tuh_control_xfer_t* xfer); struct tuh_control_xfer_s { @@ -135,7 +135,7 @@ bool tuh_configuration_set(uint8_t daddr, uint8_t config_num, // Sync (blocking) version of tuh_control_xfer() // return transfer result -uint8_t tuh_control_xfer_sync(uint8_t daddr, tuh_control_xfer_t const* xfer, uint32_t timeout_ms); +bool tuh_control_xfer_sync(uint8_t daddr, tuh_control_xfer_t * xfer, uint32_t timeout_ms); //--------------------------------------------------------------------+ // Descriptors Asynchronous (non-blocking)