Event enable check API added to PAL driver.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@12530 110e8d01-0319-4d1e-a829-52ad28d1bb01
This commit is contained in:
Giovanni Di Sirio 2019-01-05 19:24:22 +00:00
parent b470e1ae0f
commit cd33832ea3
5 changed files with 79 additions and 0 deletions

View File

@ -912,6 +912,42 @@ typedef struct {
osalSysUnlock(); \
} while (false)
/**
* @brief Pad event enable check.
*
* @param[in] port port identifier
* @param[in] pad pad number within the port
* @return Pad event status.
* @retval false if the pad event is disabled.
* @retval true if the pad event is enabled.
*
* @xclass
*/
#if !defined(pal_lld_ispadeventenabled) || defined(__DOXYGEN__)
#define palIsPadEventEnabledX(port, pad) false
#else
#define palIsPadEventEnabledX(port, pad) \
pal_lld_ispadeventenabled(port, pad)
#endif
/**
* @brief Line event enable check.
*
* @param[in] line line identifier
* @return Line event status.
* @retval false if the line event is disabled.
* @retval true if the line event is enabled.
*
* @xclass
*/
#if !defined(pal_lld_islineeventenabled) || defined(__DOXYGEN__)
#define palIsLineEventEnabledX(line) \
pal_lld_ispadeventenabled(PAL_PORT(line), PAL_PAD(line))
#else
#define palIsLineEventEnabledX(line) \
pal_lld_islineeventenabled(line)
#endif
#endif /* PAL_USE_CALLBACKS || PAL_USE_WAIT */
#if (PAL_USE_CALLBACKS == TRUE) || defined(__DOXYGEN__)

View File

@ -414,6 +414,20 @@ typedef uint32_t iopadid_t;
#define pal_lld_get_line_event(line) \
&_pal_events[PAL_PAD(line)]
/**
* @brief Pad event enable check.
*
* @param[in] port port identifier
* @param[in] pad pad number within the port
* @return Pad event status.
* @retval false if the pad event is disabled.
* @retval true if the pad event is enabled.
*
* @notapi
*/
#define pal_lld_ispadeventenabled(port, pad) \
(bool)((EXTI->IMR & (1U << (uint32_t)pad)) != 0U)
#if !defined(__DOXYGEN__)
extern const PALConfig pal_default_config;
extern palevent_t _pal_events[16];

View File

@ -472,6 +472,20 @@ typedef uint32_t iopadid_t;
#define pal_lld_get_line_event(line) \
&_pal_events[PAL_PAD(line)]
/**
* @brief Pad event enable check.
*
* @param[in] port port identifier
* @param[in] pad pad number within the port
* @return Pad event status.
* @retval false if the pad event is disabled.
* @retval true if the pad event is enabled.
*
* @notapi
*/
#define pal_lld_ispadeventenabled(port, pad) \
(bool)((EXTI->IMR & (1U << (uint32_t)pad)) != 0U)
#if !defined(__DOXYGEN__)
extern palevent_t _pal_events[16];
#endif

View File

@ -512,6 +512,20 @@ typedef uint32_t iopadid_t;
#define pal_lld_get_line_event(line) \
&_pal_events[PAL_PAD(line)]
/**
* @brief Pad event enable check.
*
* @param[in] port port identifier
* @param[in] pad pad number within the port
* @return Pad event status.
* @retval false if the pad event is disabled.
* @retval true if the pad event is enabled.
*
* @notapi
*/
#define pal_lld_ispadeventenabled(port, pad) \
(bool)((EXTI->IMR & (1U << (uint32_t)pad)) != 0U)
#if !defined(__DOXYGEN__)
extern palevent_t _pal_events[16];
#endif

View File

@ -75,6 +75,7 @@
*****************************************************************************
*** Next ***
- NEW: Event enable check API added to PAL driver.
- NEW: Now it is possible to define separate directories for each
configuration file.
- NEW: Added option to enable bypass on SDIOv1 driver allowing to use a