Global variable to give and record information of the setup request management.
This global variable allows to decode and response a setup request. It can be updated by udc_process_setup() from UDC or *setup() from UDIs.
#include <udd.h>
Data Fields | |
void(* | callback )(void) |
Callback called after reception of ZLP from setup request. More... | |
bool(* | over_under_run )(void) |
Callback called when the buffer given (.payload) is full or empty. More... | |
uint8_t * | payload |
Point to buffer to send or fill with data following SETUP packet This buffer must be word align for DATA IN phase (use prefix COMPILER_WORD_ALIGNED for buffer) More... | |
uint16_t | payload_size |
Size of buffer to send or fill, and content the number of byte transfered. More... | |
usb_setup_req_t | req |
Data received in USB SETUP packet Note: The swap of "req.wValues" from uin16_t to le16_t is done by UDD. More... | |
void(* udd_ctrl_request_t::callback)(void) |
Callback called after reception of ZLP from setup request.
Referenced by _usb_ep0_on_setup(), _usb_ep0_on_tansfer_ok(), udc_process_setup(), udc_req_std_dev_set_address(), udc_req_std_dev_set_feature(), udi_cdc_comm_setup(), udi_hid_generic_setreport(), and udi_hid_kbd_setreport().
bool(* udd_ctrl_request_t::over_under_run)(void) |
Callback called when the buffer given (.payload) is full or empty.
This one return false to abort data transfer, or true with a new buffer in .payload.
Referenced by udc_process_setup(), udd_ctrl_in_sent(), and udd_ctrl_out_received().
uint8_t* udd_ctrl_request_t::payload |
Point to buffer to send or fill with data following SETUP packet This buffer must be word align for DATA IN phase (use prefix COMPILER_WORD_ALIGNED for buffer)
Referenced by main_extra_string(), main_setup_in_received(), main_setup_out_received(), udc_req_std_dev_get_descriptor(), udd_ctrl_in_sent(), udd_ctrl_out_received(), udd_ctrl_send_zlp_in(), udd_set_setup_payload(), udi_cdc_comm_setup(), udi_hid_generic_setreport(), udi_hid_kbd_setreport(), udi_hid_multi_touch_setupreport(), udi_hid_reqstdifaceget_descriptor(), udi_hid_setup(), udi_msc_setup(), and udi_phdc_setup().
uint16_t udd_ctrl_request_t::payload_size |
Size of buffer to send or fill, and content the number of byte transfered.
Referenced by main_extra_string(), main_setup_in_received(), main_setup_out_received(), udc_process_setup(), udc_req_std_dev_get_descriptor(), udd_ctrl_in_sent(), udd_ctrl_out_received(), udd_set_setup_payload(), udi_cdc_comm_setup(), udi_hid_generic_setfeature_valid(), udi_hid_generic_setreport(), udi_hid_kbd_setreport(), udi_hid_multi_touch_setupreport(), udi_hid_reqstdifaceget_descriptor(), udi_hid_setup(), udi_msc_setup(), and udi_phdc_setup().
usb_setup_req_t udd_ctrl_request_t::req |
Data received in USB SETUP packet Note: The swap of "req.wValues" from uin16_t to le16_t is done by UDD.
Referenced by _usb_ep0_on_setup(), main_extra_string(), main_setup_in_received(), main_setup_out_received(), udc_process_setup(), udc_req_ep(), udc_req_iface(), udc_req_std_dev_clear_feature(), udc_req_std_dev_get_configuration(), udc_req_std_dev_get_descriptor(), udc_req_std_dev_get_status(), udc_req_std_dev_get_str_desc(), udc_req_std_dev_set_address(), udc_req_std_dev_set_configuration(), udc_req_std_dev_set_feature(), udc_req_std_iface_get_setting(), udc_req_std_iface_set_setting(), udc_reqstd(), udc_valid_address(), udd_ctrl_fetch_ram(), udd_ctrl_in_sent(), udd_ctrl_out_received(), udi_cdc_comm_setup(), udi_cdc_setup_to_port(), udi_hid_generic_setreport(), udi_hid_kbd_setreport(), udi_hid_multi_touch_setupreport(), udi_hid_reqstdifaceget_descriptor(), udi_hid_setup(), udi_msc_setup(), udi_phdc_setup(), and udi_vendor_setup().