aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal
diff options
context:
space:
mode:
authormarcoveeneman <marco-veeneman@hotmail.com>2015-04-14 22:52:22 +0200
committermarcoveeneman <marco-veeneman@hotmail.com>2015-04-14 22:52:22 +0200
commitf4e68ad23a5b61a0a87e52afd1f71ae0d593229d (patch)
treeeb3e617d970d1f5fdbc2d64ebf753384b74421e1 /os/hal
parent1afe28e9bed89a455947f91f2059152bc047b815 (diff)
downloadChibiOS-Contrib-f4e68ad23a5b61a0a87e52afd1f71ae0d593229d.tar.gz
ChibiOS-Contrib-f4e68ad23a5b61a0a87e52afd1f71ae0d593229d.tar.bz2
ChibiOS-Contrib-f4e68ad23a5b61a0a87e52afd1f71ae0d593229d.zip
Tiva. EXT. Wrapped ext_serve_port_interrupt and ext_serve_pin_interrupt in a do{}while(0)
Diffstat (limited to 'os/hal')
-rw-r--r--os/hal/ports/TIVA/LLD/ext_lld.c68
1 files changed, 36 insertions, 32 deletions
diff --git a/os/hal/ports/TIVA/LLD/ext_lld.c b/os/hal/ports/TIVA/LLD/ext_lld.c
index 56857c2..c4c7163 100644
--- a/os/hal/ports/TIVA/LLD/ext_lld.c
+++ b/os/hal/ports/TIVA/LLD/ext_lld.c
@@ -34,43 +34,47 @@
* @brief Generic interrupt serving code for multiple pins per interrupt
* handler.
*/
-#define ext_serve_port_interrupt(gpiop, start) \
- uint32_t mis = gpiop->MIS; \
- \
- gpiop->ICR = mis; \
- \
- if (mis & (1 << 0)) { \
- EXTD1.config->channels[start + 0].cb(&EXTD1, start + 0);\
- } \
- if (mis & (1 << 1)) { \
- EXTD1.config->channels[start + 1].cb(&EXTD1, start + 1);\
- } \
- if (mis & (1 << 2)) { \
- EXTD1.config->channels[start + 2].cb(&EXTD1, start + 2);\
- } \
- if (mis & (1 << 3)) { \
- EXTD1.config->channels[start + 3].cb(&EXTD1, start + 3);\
- } \
- if (mis & (1 << 4)) { \
- EXTD1.config->channels[start + 4].cb(&EXTD1, start + 4);\
- } \
- if (mis & (1 << 5)) { \
- EXTD1.config->channels[start + 5].cb(&EXTD1, start + 5);\
- } \
- if (mis & (1 << 6)) { \
- EXTD1.config->channels[start + 6].cb(&EXTD1, start + 6);\
- } \
- if (mis & (1 << 7)) { \
- EXTD1.config->channels[start + 7].cb(&EXTD1, start + 7);\
- }
+#define ext_serve_port_interrupt(gpiop, start) \
+ do { \
+ uint32_t mis = gpiop->MIS; \
+ \
+ gpiop->ICR = mis; \
+ \
+ if (mis & (1 << 0)) { \
+ EXTD1.config->channels[start + 0].cb(&EXTD1, start + 0); \
+ } \
+ if (mis & (1 << 1)) { \
+ EXTD1.config->channels[start + 1].cb(&EXTD1, start + 1); \
+ } \
+ if (mis & (1 << 2)) { \
+ EXTD1.config->channels[start + 2].cb(&EXTD1, start + 2); \
+ } \
+ if (mis & (1 << 3)) { \
+ EXTD1.config->channels[start + 3].cb(&EXTD1, start + 3); \
+ } \
+ if (mis & (1 << 4)) { \
+ EXTD1.config->channels[start + 4].cb(&EXTD1, start + 4); \
+ } \
+ if (mis & (1 << 5)) { \
+ EXTD1.config->channels[start + 5].cb(&EXTD1, start + 5); \
+ } \
+ if (mis & (1 << 6)) { \
+ EXTD1.config->channels[start + 6].cb(&EXTD1, start + 6); \
+ } \
+ if (mis & (1 << 7)) { \
+ EXTD1.config->channels[start + 7].cb(&EXTD1, start + 7); \
+ } \
+ } while (0);
/**
* @brief Generic interrupt serving code for single pin per interrupt
* handler.
*/
-#define ext_server_pin_interrupt(gpiop, start, pin) \
- gpiop->ICR = (1 << pin); \
- EXTD1.config->channels[start].cb(&EXTD1, start);
+#define ext_server_pin_interrupt(gpiop, start, pin) \
+ do { \
+ gpiop->ICR = (1 << pin); \
+ EXTD1.config->channels[start].cb(&EXTD1, start); \
+ } while (0);
/*===========================================================================*/
/* Driver exported variables. */