Atmel Software Framework

udd_ctrl_request_t Struct Reference

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...
 

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(), udd_ctrl_init(), udd_ctrl_out_received(), udi_dfu_atmel_mem_write(), udi_dfu_atmel_program(), udi_dfu_atmel_reset_protocol(), and udi_dfu_atmel_setup().

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 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_setreport(), udi_hid_kbd_setreport(), udi_hid_reqstdifaceget_descriptor(), udi_hid_setup(), udi_msc_setup(), and udi_phdc_setup().