From 4b892724cf74085cfe208c756853fff56ca9b531 Mon Sep 17 00:00:00 2001 From: Kuldeep Singh Dhaka Date: Wed, 27 May 2015 03:42:09 +0530 Subject: [PATCH] usb: provide typedefs for all the function callbacks. This makes it easier to read for most people, and makes it substantially easier to review changes in the function signatures themselves at a later date. --- include/libopencm3/usb/usbd.h | 20 ++++++++++++++------ lib/usb/usb.c | 3 +-- lib/usb/usb_msc.c | 2 +- lib/usb/usb_private.h | 14 +++++--------- lib/usb/usb_standard.c | 6 ++---- 5 files changed, 23 insertions(+), 22 deletions(-) diff --git a/include/libopencm3/usb/usbd.h b/include/libopencm3/usb/usbd.h index a884f9ce..274710c2 100644 --- a/include/libopencm3/usb/usbd.h +++ b/include/libopencm3/usb/usbd.h @@ -75,10 +75,19 @@ extern void usbd_register_resume_callback(usbd_device *usbd_dev, extern void usbd_register_sof_callback(usbd_device *usbd_dev, void (*callback)(void)); +typedef int (*usbd_control_complete_callback)(usbd_device *usbd_dev, + struct usb_setup_data *req); + typedef int (*usbd_control_callback)(usbd_device *usbd_dev, struct usb_setup_data *req, uint8_t **buf, uint16_t *len, - void (**complete)(usbd_device *usbd_dev, - struct usb_setup_data *req)); + usbd_control_complete_callback *complete); + +typedef void (*usbd_set_config_callback)(usbd_device *usbd_dev, uint16_t wValue); + +typedef void (*usbd_set_altsetting_callback)(usbd_device *usbd_dev, + uint16_t wIndex, uint16_t wValue); + +typedef void (*usbd_endpoint_callback)(usbd_device *usbd_dev, uint8_t ep); /* */ extern int usbd_register_control_callback(usbd_device *usbd_dev, uint8_t type, @@ -87,18 +96,17 @@ extern int usbd_register_control_callback(usbd_device *usbd_dev, uint8_t type, /* */ extern int usbd_register_set_config_callback(usbd_device *usbd_dev, - void (*callback)(usbd_device *usbd_dev, uint16_t wValue)); + usbd_set_config_callback callback); extern void usbd_register_set_altsetting_callback(usbd_device *usbd_dev, - void (*callback)(usbd_device *usbd_dev, uint16_t wIndex, uint16_t wValue)); + usbd_set_altsetting_callback callback); /* Functions to be provided by the hardware abstraction layer */ extern void usbd_poll(usbd_device *usbd_dev); extern void usbd_disconnect(usbd_device *usbd_dev, bool disconnected); extern void usbd_ep_setup(usbd_device *usbd_dev, uint8_t addr, uint8_t type, - uint16_t max_size, - void (*callback)(usbd_device *usbd_dev, uint8_t ep)); + uint16_t max_size, usbd_endpoint_callback callback); extern uint16_t usbd_ep_write_packet(usbd_device *usbd_dev, uint8_t addr, const void *buf, uint16_t len); diff --git a/lib/usb/usb.c b/lib/usb/usb.c index fc16d421..f2ed2772 100644 --- a/lib/usb/usb.c +++ b/lib/usb/usb.c @@ -143,8 +143,7 @@ void usbd_disconnect(usbd_device *usbd_dev, bool disconnected) } void usbd_ep_setup(usbd_device *usbd_dev, uint8_t addr, uint8_t type, - uint16_t max_size, - void (*callback)(usbd_device *usbd_dev, uint8_t ep)) + uint16_t max_size, usbd_endpoint_callback callback) { usbd_dev->driver->ep_setup(usbd_dev, addr, type, max_size, callback); } diff --git a/lib/usb/usb_msc.c b/lib/usb/usb_msc.c index 573590dc..98cb87ad 100644 --- a/lib/usb/usb_msc.c +++ b/lib/usb/usb_msc.c @@ -708,7 +708,7 @@ static void msc_data_tx_cb(usbd_device *usbd_dev, uint8_t ep) */ static int msc_control_request(usbd_device *usbd_dev, struct usb_setup_data *req, uint8_t **buf, uint16_t *len, - void (**complete)(usbd_device *usbd_dev, struct usb_setup_data *req)) + usbd_control_complete_callback *complete) { (void)complete; (void)usbd_dev; diff --git a/lib/usb/usb_private.h b/lib/usb/usb_private.h index 4d8f7ed4..b38c1d67 100644 --- a/lib/usb/usb_private.h +++ b/lib/usb/usb_private.h @@ -73,8 +73,7 @@ struct _usbd_device { struct usb_setup_data req __attribute__((aligned(4))); uint8_t *ctrl_buf; uint16_t ctrl_len; - void (*complete)(usbd_device *usbd_dev, - struct usb_setup_data *req); + usbd_control_complete_callback complete; } control_state; struct user_control_callback { @@ -83,14 +82,12 @@ struct _usbd_device { uint8_t type_mask; } user_control_callback[MAX_USER_CONTROL_CALLBACK]; - void (*user_callback_ctr[8][3])(usbd_device *usbd_dev, uint8_t ea); + usbd_endpoint_callback user_callback_ctr[8][3]; /* User callback function for some standard USB function hooks */ - void (*user_callback_set_config[MAX_USER_SET_CONFIG_CALLBACK]) - (usbd_device *usbd_dev, uint16_t wValue); + usbd_set_config_callback user_callback_set_config[MAX_USER_SET_CONFIG_CALLBACK]; - void (*user_callback_set_altsetting)(usbd_device *usbd_dev, - uint16_t wIndex, uint16_t wValue); + usbd_set_altsetting_callback user_callback_set_altsetting; const struct _usbd_driver *driver; @@ -144,8 +141,7 @@ struct _usbd_driver { usbd_device *(*init)(void); void (*set_address)(usbd_device *usbd_dev, uint8_t addr); void (*ep_setup)(usbd_device *usbd_dev, uint8_t addr, uint8_t type, - uint16_t max_size, - void (*cb)(usbd_device *usbd_dev, uint8_t ep)); + uint16_t max_size, usbd_endpoint_callback cb); void (*ep_reset)(usbd_device *usbd_dev); void (*ep_stall_set)(usbd_device *usbd_dev, uint8_t addr, uint8_t stall); diff --git a/lib/usb/usb_standard.c b/lib/usb/usb_standard.c index 8bdc5c9d..92c89460 100644 --- a/lib/usb/usb_standard.c +++ b/lib/usb/usb_standard.c @@ -40,8 +40,7 @@ LGPL License Terms @ref lgpl_license #include "usb_private.h" int usbd_register_set_config_callback(usbd_device *usbd_dev, - void (*callback)(usbd_device *usbd_dev, - uint16_t wValue)) + usbd_set_config_callback callback) { int i; @@ -57,8 +56,7 @@ int usbd_register_set_config_callback(usbd_device *usbd_dev, } void usbd_register_set_altsetting_callback(usbd_device *usbd_dev, - void (*callback)(usbd_device *usbd_dev, - uint16_t wIndex, uint16_t wValue)) + usbd_set_altsetting_callback callback) { usbd_dev->user_callback_set_altsetting = callback; }