diff options
Diffstat (limited to 'chip/stm32/usb_endpoints.c')
-rw-r--r-- | chip/stm32/usb_endpoints.c | 130 |
1 files changed, 48 insertions, 82 deletions
diff --git a/chip/stm32/usb_endpoints.c b/chip/stm32/usb_endpoints.c index 7cdff25a6a..b435a88846 100644 --- a/chip/stm32/usb_endpoints.c +++ b/chip/stm32/usb_endpoints.c @@ -1,4 +1,4 @@ -/* Copyright 2014 The Chromium OS Authors. All rights reserved. +/* Copyright 2014 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. * @@ -12,7 +12,7 @@ #include "usb_hw.h" typedef void (*xfer_func)(void); -typedef void (*evt_func) (enum usb_ep_event evt); +typedef void (*evt_func)(enum usb_ep_event evt); #if defined(CHIP_FAMILY_STM32F4) #define iface_arguments struct usb_setup_packet *req @@ -44,18 +44,18 @@ int iface_undefined(iface_arguments) #define table(type, name, x) x -#define endpoint_tx(number) \ +#define endpoint_tx(number) \ extern void __attribute__((used, weak, alias("ep_undefined"))) \ - ep_ ## number ## _tx(void); -#define endpoint_rx(number) \ + ep_##number##_tx(void); +#define endpoint_rx(number) \ extern void __attribute__((used, weak, alias("ep_undefined"))) \ - ep_ ## number ## _rx(void); -#define endpoint_evt(number) \ + ep_##number##_rx(void); +#define endpoint_evt(number) \ extern void __attribute__((used, weak, alias("ep_evt_undefined"))) \ - ep_ ## number ## _evt(enum usb_ep_event evt); -#define interface(number) \ + ep_##number##_evt(enum usb_ep_event evt); +#define interface(number) \ extern int __attribute__((used, weak, alias("iface_undefined"))) \ - iface_ ## number ## _request(iface_arguments); + iface_##number##_request(iface_arguments); #define null @@ -79,20 +79,23 @@ int iface_undefined(iface_arguments) #endif /* __clang__ */ /* align function pointers on a 32-bit boundary */ -#define table(type, name, x) type name[] __attribute__((aligned(4), section(".rodata.usb_ep." #name ",\"a\" @"))) = { x }; -#define null (void*)0 +#define table(type, name, x) \ + type name[] __attribute__((aligned(4), section(".rodata.usb_ep." #name \ + ",\"a\" @"))) = { x }; +#define null (void *)0 #define ep_(num, suf) CONCAT3(ep_, num, suf) #define ep(num, suf) ep_(num, suf) #define endpoint_tx(number) \ - [number < USB_EP_COUNT ? number : USB_EP_COUNT - 1] = ep_ ## number ## _tx, + [number < USB_EP_COUNT ? number : USB_EP_COUNT - 1] = ep_##number##_tx, #define endpoint_rx(number) \ - [number < USB_EP_COUNT ? number : USB_EP_COUNT - 1] = ep_ ## number ## _rx, + [number < USB_EP_COUNT ? number : USB_EP_COUNT - 1] = ep_##number##_rx, #define endpoint_evt(number) \ - [number < USB_EP_COUNT ? number : USB_EP_COUNT - 1] = ep_ ## number ## _evt, -#define interface(number) \ - [number < USB_IFACE_COUNT ? number : USB_IFACE_COUNT - 1] = iface_ ## number ## _request, + [number < USB_EP_COUNT ? number : USB_EP_COUNT - 1] = ep_##number##_evt, +#define interface(number) \ + [number < USB_IFACE_COUNT ? number : USB_IFACE_COUNT - 1] = \ + iface_##number##_request, #endif /* PASS 2 */ /* @@ -102,73 +105,36 @@ int iface_undefined(iface_arguments) * It all sorts out nicely */ table(xfer_func, usb_ep_tx, - endpoint_tx(15) - endpoint_tx(14) - endpoint_tx(13) - endpoint_tx(12) - endpoint_tx(11) - endpoint_tx(10) - endpoint_tx(9) - endpoint_tx(8) - endpoint_tx(7) - endpoint_tx(6) - endpoint_tx(5) - endpoint_tx(4) - endpoint_tx(3) - endpoint_tx(2) - endpoint_tx(1) - endpoint_tx(0) -) - -table(xfer_func, usb_ep_rx, - endpoint_rx(15) - endpoint_rx(14) - endpoint_rx(13) - endpoint_rx(12) - endpoint_rx(11) - endpoint_rx(10) - endpoint_rx(9) - endpoint_rx(8) - endpoint_rx(7) - endpoint_rx(6) - endpoint_rx(5) - endpoint_rx(4) - endpoint_rx(3) - endpoint_rx(2) - endpoint_rx(1) - endpoint_rx(0) -) - -table(evt_func, usb_ep_event, - endpoint_evt(15) - endpoint_evt(14) - endpoint_evt(13) - endpoint_evt(12) - endpoint_evt(11) - endpoint_evt(10) - endpoint_evt(9) - endpoint_evt(8) - endpoint_evt(7) - endpoint_evt(6) - endpoint_evt(5) - endpoint_evt(4) - endpoint_evt(3) - endpoint_evt(2) - endpoint_evt(1) - endpoint_evt(0) -) + endpoint_tx(15) endpoint_tx(14) endpoint_tx(13) endpoint_tx(12) + endpoint_tx(11) endpoint_tx(10) endpoint_tx(9) endpoint_tx(8) + endpoint_tx(7) endpoint_tx(6) endpoint_tx(5) + endpoint_tx(4) endpoint_tx(3) endpoint_tx(2) + endpoint_tx(1) endpoint_tx(0)) + + table(xfer_func, usb_ep_rx, + endpoint_rx(15) endpoint_rx(14) endpoint_rx(13) endpoint_rx(12) + endpoint_rx(11) endpoint_rx(10) endpoint_rx(9) + endpoint_rx(8) endpoint_rx(7) endpoint_rx(6) + endpoint_rx(5) endpoint_rx(4) + endpoint_rx(3) endpoint_rx(2) + endpoint_rx(1) + endpoint_rx(0)) + + table(evt_func, usb_ep_event, + endpoint_evt(15) endpoint_evt(14) endpoint_evt( + 13) endpoint_evt(12) endpoint_evt(11) + endpoint_evt(10) endpoint_evt(9) endpoint_evt( + 8) endpoint_evt(7) endpoint_evt(6) + endpoint_evt(5) endpoint_evt(4) + endpoint_evt(3) endpoint_evt(2) + endpoint_evt(1) + endpoint_evt(0)) #if USB_IFACE_COUNT > 0 -table(iface_func, usb_iface_request, - interface(7) - interface(6) - interface(5) - interface(4) - interface(3) - interface(2) - interface(1) - interface(0) -) + table(iface_func, usb_iface_request, + interface(7) interface(6) interface(5) + interface(4) interface(3) interface(2) + interface(1) interface(0)) #endif #if PASS == 2 |