signal: move some of the API documentation in signal.h
[bertos.git] / bertos / kern / signal.h
index 2c51f9e8aff07c8e562d6260909e4ee90c693c66..c613604134b6af8174b97f70a71fe618e42a146d 100644 (file)
@@ -84,6 +84,11 @@ INLINE sigmask_t sig_checkSignal(Signal *s, sigmask_t sigs)
        return result;
 }
 
+/**
+ * Check if any of the signals in \a sigs has occurred and clear them.
+ *
+ * \return the signals that have occurred.
+ */
 INLINE sigmask_t sig_check(sigmask_t sigs)
 {
        Process *proc = proc_current();
@@ -92,6 +97,16 @@ INLINE sigmask_t sig_check(sigmask_t sigs)
 
 void sig_sendSignal(Signal *s, Process *proc, sigmask_t sig);
 
+/**
+ * Send the signals \a sigs to the process \a proc and immeditaly dispatch it
+ * for execution.
+ *
+ * The process will be awoken if it was waiting for any of them and immediately
+ * dispatched for execution.
+ *
+ * \note This function can't be called from IRQ context, use sig_post()
+ * instead.
+ */
 INLINE void sig_send(Process *proc, sigmask_t sig)
 {
        sig_sendSignal(&proc->sig, proc, sig);
@@ -99,6 +114,12 @@ INLINE void sig_send(Process *proc, sigmask_t sig)
 
 void sig_postSignal(Signal *s, Process *proc, sigmask_t sig);
 
+/**
+ * Send the signals \a sigs to the process \a proc.
+ * The process will be awoken if it was waiting for any of them.
+ *
+ * \note This call is interrupt safe.
+ */
 INLINE void sig_post(Process *proc, sigmask_t sig)
 {
        sig_postSignal(&proc->sig, proc, sig);
@@ -115,6 +136,11 @@ INLINE void sig_signal(Process *proc, sigmask_t sig)
 
 sigmask_t sig_waitSignal(Signal *s, sigmask_t sigs);
 
+/**
+ * Sleep until any of the signals in \a sigs occurs.
+ *
+ * \return the signal(s) that have awoken the process.
+ */
 INLINE sigmask_t sig_wait(sigmask_t sigs)
 {
        Process *proc = proc_current();