diff options
Diffstat (limited to 'os/hal/include')
-rw-r--r-- | os/hal/include/i2c.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/os/hal/include/i2c.h b/os/hal/include/i2c.h index b70767609..dfae26e64 100644 --- a/os/hal/include/i2c.h +++ b/os/hal/include/i2c.h @@ -93,6 +93,32 @@ typedef enum { /*===========================================================================*/
/**
+ * @brief Wakes up the waiting thread notifying no errors.
+ *
+ * @param[in] i2cp pointer to the @p I2CDriver object
+ *
+ * @notapi
+ */
+#define _i2c_wakeup_isr(i2cp) do { \
+ osalSysLockFromISR(); \
+ osalThreadResumeI(&(i2cp)->thread, MSG_OK); \
+ osalSysUnlockFromISR(); \
+} while(0)
+
+/**
+ * @brief Wakes up the waiting thread notifying errors.
+ *
+ * @param[in] i2cp pointer to the @p I2CDriver object
+ *
+ * @notapi
+ */
+#define _i2c_wakeup_error_isr(i2cp) do { \
+ osalSysLockFromISR(); \
+ osalThreadResumeI(&(i2cp)->thread, MSG_RESET); \
+ osalSysUnlockFromISR(); \
+} while(0)
+
+/**
* @brief Wrap i2cMasterTransmitTimeout function with TIME_INFINITE timeout.
* @api
*/
|