diff options
Diffstat (limited to 'os/kernel/include/sys.h')
-rw-r--r-- | os/kernel/include/sys.h | 130 |
1 files changed, 62 insertions, 68 deletions
diff --git a/os/kernel/include/sys.h b/os/kernel/include/sys.h index beea84754..a6409d3bf 100644 --- a/os/kernel/include/sys.h +++ b/os/kernel/include/sys.h @@ -18,8 +18,9 @@ */
/**
- * @file sys.h
- * @brief System related macros and structures.
+ * @file sys.h
+ * @brief System related macros and structures.
+ *
* @addtogroup system
* @{
*/
@@ -28,63 +29,61 @@ #define _SYS_H_
/**
- * @brief Halts the system.
+ * @brief Halts the system.
* @details This function is invoked by the operating system when an
- * unrecoverable error is detected (as example because a programming error in
- * the application code that triggers an assertion while in debug mode).
+ * unrecoverable error is detected, as example because a programming
+ * error in the application code that triggers an assertion while
+ * in debug mode.
*/
#define chSysHalt() port_halt()
/**
- * @brief Performs a context switch.
+ * @brief Performs a context switch.
*
- * @param otp the thread to be switched out
- * @param ntp the thread to be switched in
+ * @param[in] otp the thread to be switched out
+ * @param[in] ntp the thread to be switched in
*/
#define chSysSwitchI(otp, ntp) port_switch(otp, ntp)
/**
- * @brief Raises the system interrupt priority mask to the maximum level.
+ * @brief Raises the system interrupt priority mask to the maximum level.
* @details All the maskable interrupt sources are disabled regardless their
- * hardware priority.
- *
- * @note The implementation is architecture dependent, it may just disable the
- * interrupts or be exactly equivalent to @p chSysDisable().
- * @note Do not invoke this API from within a kernel lock.
+ * hardware priority.
+ * @note The implementation is architecture dependent, it may just disable
+ * the interrupts or be exactly equivalent to @p chSysDisable().
+ * @note Do not invoke this API from within a kernel lock.
*/
#define chSysDisable() port_disable()
/**
- * @brief Raises the system interrupt priority mask to system level.
+ * @brief Raises the system interrupt priority mask to system level.
* @details The interrupt sources that should not be able to preempt the kernel
- * are disabled, interrupt sources with higher priority are still enabled.
- *
- * @note The implementation is architecture dependent, it may just disable the
- * interrupts.
- * @note Do not invoke this API from within a kernel lock.
- * @note This API is no replacement for @p chSysLock(), the @p chSysLock()
- * could do more than just disable the interrupts.
+ * are disabled, interrupt sources with higher priority are still
+ * enabled.
+ * @note The implementation is architecture dependent, it may just disable
+ * the interrupts.
+ * @note Do not invoke this API from within a kernel lock.
+ * @note This API is no replacement for @p chSysLock(), the @p chSysLock()
+ * could do more than just disable the interrupts.
*/
#define chSysSuspend() port_suspend()
/**
- * @brief Lowers the system interrupt priority mask to user level.
+ * @brief Lowers the system interrupt priority mask to user level.
* @details All the interrupt sources are enabled.
- *
- * @note The implementation is architecture dependent, it may just enable the
- * interrupts.
- * @note Do not invoke this API from within a kernel lock.
- * @note This API is no replacement for @p chSysUnlock(), the @p chSysUnlock()
- * could do more than just enable the interrupts.
+ * @note The implementation is architecture dependent, it may just enable
+ * the interrupts.
+ * @note Do not invoke this API from within a kernel lock.
+ * @note This API is no replacement for @p chSysUnlock(), the
+ * @p chSysUnlock() could do more than just enable the interrupts.
*/
#define chSysEnable() port_enable()
/**
- * @brief Enters the kernel lock mode.
- *
- * @note The use of kernel lock mode is not recommended in the user code, it is
- * a better idea to use the semaphores or mutexes instead.
- * @see CH_USE_NESTED_LOCKS
+ * @brief Enters the kernel lock mode.
+ * @note The use of kernel lock mode is not recommended in the user code,
+ * it is a better idea to use the semaphores or mutexes instead.
+ * @see CH_USE_NESTED_LOCKS
*/
#if CH_USE_NESTED_LOCKS || defined(__DOXYGEN__)
#if CH_OPTIMIZE_SPEED || defined(__DOXYGEN__)
@@ -98,11 +97,10 @@ #endif /* !CH_USE_NESTED_LOCKS */
/**
- * @brief Leaves the kernel lock mode.
- *
- * @note The use of kernel lock mode is not recommended in the user code, it is
- * a better idea to use the semaphores or mutexes instead.
- * @see CH_USE_NESTED_LOCKS
+ * @brief Leaves the kernel lock mode.
+ * @note The use of kernel lock mode is not recommended in the user code,
+ * it is a better idea to use the semaphores or mutexes instead.
+ * @see CH_USE_NESTED_LOCKS
*/
#if CH_USE_NESTED_LOCKS || defined(__DOXYGEN__)
#if CH_OPTIMIZE_SPEED || defined(__DOXYGEN__)
@@ -116,53 +114,49 @@ #endif /* !CH_USE_NESTED_LOCKS */
/**
- * @brief Enters the kernel lock mode from within an interrupt handler.
- *
- * @note This API may do nothing on some architectures, it is required because
- * on ports that support preemptable interrupt handlers it is required to
- * raise the interrupt mask to the same level of the system mutual
- * exclusion zone.<br>
- * It is good practice to invoke this API before invoking any I-class
- * syscall from an interrupt handler.
- * @note This API must be invoked exclusively from interrupt handlers.
+ * @brief Enters the kernel lock mode from within an interrupt handler.
+ * @note This API may do nothing on some architectures, it is required
+ * because on ports that support preemptable interrupt handlers
+ * it is required to raise the interrupt mask to the same level of
+ * the system mutual exclusion zone.<br>
+ * It is good practice to invoke this API before invoking any I-class
+ * syscall from an interrupt handler.
+ * @note This API must be invoked exclusively from interrupt handlers.
*/
#define chSysLockFromIsr() port_lock_from_isr()
/**
- * @brief Leaves the kernel lock mode from within an interrupt handler.
+ * @brief Leaves the kernel lock mode from within an interrupt handler.
*
- * @note This API may do nothing on some architectures, it is required because
- * on ports that support preemptable interrupt handlers it is required to
- * raise the interrupt mask to the same level of the system mutual
- * exclusion zone.<br>
- * It is good practice to invoke this API after invoking any I-class
- * syscall from an interrupt handler.
+ * @note This API may do nothing on some architectures, it is required
+ * because on ports that support preemptable interrupt handlers
+ * it is required to raise the interrupt mask to the same level of
+ * the system mutual exclusion zone.<br>
+ * It is good practice to invoke this API after invoking any I-class
+ * syscall from an interrupt handler.
* @note This API must be invoked exclusively from interrupt handlers.
*/
#define chSysUnlockFromIsr() port_unlock_from_isr()
/**
- * @brief IRQ handler enter code.
- *
- * @note Usually IRQ handlers functions are also declared naked.
- * @note On some architectures this macro can be empty.
+ * @brief IRQ handler enter code.
+ * @note Usually IRQ handlers functions are also declared naked.
+ * @note On some architectures this macro can be empty.
*/
#define CH_IRQ_PROLOGUE() PORT_IRQ_PROLOGUE()
/**
- * @brief IRQ handler exit code.
- *
- * @note Usually IRQ handlers function are also declared naked.
- * @note This macro usually performs the final reschedulation by using
- * @p chSchRescRequiredI() and @p chSchDoRescheduleI().
+ * @brief IRQ handler exit code.
+ * @note Usually IRQ handlers function are also declared naked.
+ * @note This macro usually performs the final reschedulation by using
+ * @p chSchRescRequiredI() and @p chSchDoRescheduleI().
*/
#define CH_IRQ_EPILOGUE() PORT_IRQ_EPILOGUE()
/**
- * @brief Standard IRQ handler declaration.
- * - * @note @p id can be a function name or a vector number depending on the
- * port implementation.
+ * @brief Standard IRQ handler declaration. + * @note @p id can be a function name or a vector number depending on the
+ * port implementation.
*/
#define CH_IRQ_HANDLER(id) PORT_IRQ_HANDLER(id)
|