aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/include
diff options
context:
space:
mode:
authorGiovanni Di Sirio <gdisirio@gmail.com>2017-08-31 14:04:24 +0000
committerGiovanni Di Sirio <gdisirio@gmail.com>2017-08-31 14:04:24 +0000
commit424f88606831bf8645716b9cfce831b468cfca75 (patch)
treea9ec0ecab43e2ca267176cdd35d77134be33c6aa /os/hal/include
parentf400137e6fb5992253f884faf59e39e831766b0e (diff)
downloadChibiOS-424f88606831bf8645716b9cfce831b468cfca75.tar.gz
ChibiOS-424f88606831bf8645716b9cfce831b468cfca75.tar.bz2
ChibiOS-424f88606831bf8645716b9cfce831b468cfca75.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10514 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/include')
-rw-r--r--os/hal/include/hal_pal.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/os/hal/include/hal_pal.h b/os/hal/include/hal_pal.h
index 6e305340e..ede48c470 100644
--- a/os/hal/include/hal_pal.h
+++ b/os/hal/include/hal_pal.h
@@ -608,6 +608,42 @@ typedef struct {
#endif
/**
+ * @brief Pad event enable.
+ * @details This function programs an event callback in the specified mode.
+ * @note Programming an unknown or unsupported mode is silently ignored.
+ *
+ * @param[in] port port identifier
+ * @param[in] pad pad number within the port
+ * @param[in] mode pad event mode
+ * @param[in] callback event callback function
+ * @param[in] arg callback argument
+ *
+ * @api
+ */
+#define palPadEnableEvent(port, pad, mode, callback, arg) \
+ do { \
+ osalSysLock(); \
+ palPadEnableEventI(port, pad, mode, callback, arg); \
+ osalSysUnlock(); \
+ } while (false)
+
+/**
+ * @brief Pad event disable.
+ * @details This function disables previously programmed event callbacks.
+ *
+ * @param[in] port port identifier
+ * @param[in] pad pad number within the port
+ *
+ * @api
+ */
+#define palPadDisableEvent(port, pad) \
+ do { \
+ osalSysLock(); \
+ palPadDisableEventI(port, pad); \
+ osalSysUnlock(); \
+ } while (false)
+
+/**
* @brief Reads an input line logic state.
* @note The function can be called from any context.
*
@@ -750,6 +786,36 @@ typedef struct {
#define palLineDisableEventI(line) pal_lld_linedisableevent(line)
#endif
+/**
+ * @brief Line event enable.
+ *
+ * @param[in] line line identifier
+ * @param[in] mode line event mode
+ * @param[in] callback event callback function
+ * @param[in] arg callback argument
+ *
+ * @api
+ */
+#define palLineEnableEvent(line, mode, callback, arg) \
+ do { \
+ osalSysLock(); \
+ palLineEnableEventI(line, mode, callback, arg); \
+ osalSysUnlock(); \
+ } while (false)
+
+/**
+ * @brief Line event disable.
+ *
+ * @param[in] line line identifier
+ *
+ * @api
+ */
+#define palLineDisableEvent(line) \
+ do { \
+ osalSysLock(); \
+ palLineDisableEventI(line); \
+ osalSysUnlock(); \
+ } while (false)
/** @} */
/*===========================================================================*/