diff options
author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2013-08-26 13:01:28 +0000 |
---|---|---|
committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2013-08-26 13:01:28 +0000 |
commit | 611c3138873b38fd26c19c43ce3436fe0528604a (patch) | |
tree | 3c277815a727c52170d2ca76555ffaa53810a4be /os/hal/osal | |
parent | 5901a354ef4dbc849a3f6ed9539597c27cdb3810 (diff) | |
download | ChibiOS-611c3138873b38fd26c19c43ce3436fe0528604a.tar.gz ChibiOS-611c3138873b38fd26c19c43ce3436fe0528604a.tar.bz2 ChibiOS-611c3138873b38fd26c19c43ce3436fe0528604a.zip |
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@6225 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/osal')
-rw-r--r-- | os/hal/osal/chibios/osal.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/os/hal/osal/chibios/osal.h b/os/hal/osal/chibios/osal.h index 937b0f38e..55141960b 100644 --- a/os/hal/osal/chibios/osal.h +++ b/os/hal/osal/chibios/osal.h @@ -119,6 +119,13 @@ #if 0
/**
+ * @brief Type of a system status word.
+ */
+typedef uint32_t syssts_t;
+#endif
+
+#if 0
+/**
* @brief Type of a message.
*/
typedef int32_t msg_t;
@@ -390,6 +397,35 @@ static inline void osalSysUnlockFromISR(void) { }
/**
+ * @brief Returns the execution context and enters the kernel lock mode.
+ * @details This functions enters into a critical zone and can be called
+ * from any context. Because its flexibility it is less efficient
+ * than @p chSysLock() which is preferable when the calling context
+ * is known.
+ *
+ * @return The previous system status, the encoding of this
+ * status word is architecture-dependent and opaque.
+ *
+ * @xclass
+ */
+static inline syssts_t osalSysGetAndLockX(void) {
+
+ return chSysGetAndLockX();
+}
+
+/**
+ * @brief Restores the specified execution status.
+ *
+ * @param[in] sts the system status to be restored.
+ *
+ * @xclass
+ */
+static inline void osalSysRestoreLockX(syssts_t sts) {
+
+ chSysRestoreLockX(sts);
+}
+
+/**
* @brief Polled delay.
* @note The real delay is always few cycles in excess of the specified
* value.
|