summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorXzcUbuntu <[email protected]>2023-05-23 22:01:23 +0800
committerMan, Jianting (Meco) <[email protected]>2023-05-25 02:09:42 -0400
commitb27f910cadbd5138a37b1e5203a1daeb27a0aa7b (patch)
treec11cad0f96e46b85363f78c1652f275e6bdd3af4 /components
parent0315c0dee76ce67e3659744d4d280659e0a13906 (diff)
[libc][posix][signal] 增加posix_signal.c部分函数注释
Diffstat (limited to 'components')
-rw-r--r--components/libc/posix/signal/posix_signal.c51
1 files changed, 50 insertions, 1 deletions
diff --git a/components/libc/posix/signal/posix_signal.c b/components/libc/posix/signal/posix_signal.c
index c87bc6104f..04b3b104f1 100644
--- a/components/libc/posix/signal/posix_signal.c
+++ b/components/libc/posix/signal/posix_signal.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2006-2021, RT-Thread Development Team
+ * Copyright (c) 2006-2023, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
@@ -23,6 +23,28 @@ void (*signal(int sig, void (*func)(int))) (int)
return rt_signal_install(sig, func);
}
+/**
+ * @brief This function will examines, changes, or examines and changes the signal mask of the calling thread.
+ *
+ * @param how indicates the way in which the existing set of blocked signals should be changed.
+ * The following are the possible values for option:
+ *
+ * SIG_BLOCK The set of blocked signals is the union of the current set and the set argument.
+ *
+ * SIG_UNBLOCK The signals in set are removed from the current set of blocked signals.
+ * It is permissible to attempt to unblock a signal which is not blocked.
+ *
+ * SIG_SETMASK The set of blocked signals is set to the argument set.
+ *
+ * @param set is a pointer to a sigset_t object that specifies the new set of blocked signals.
+ * If set is NULL, then the signal mask is unchanged (i.e., how is ignored)
+ *
+ * @param oset is a pointer to a sigset_t object that is used to return the previous set of blocked signals.
+ * If oset is non-NULL, the previous value of the signal mask is stored in it.
+ *
+ * @return Returns 0 on success.
+ */
+
int sigprocmask (int how, const sigset_t *set, sigset_t *oset)
{
rt_base_t level;
@@ -55,6 +77,14 @@ int sigprocmask (int how, const sigset_t *set, sigset_t *oset)
return 0;
}
+/**
+ * @brief This function will examines the signal mask of the calling thread.
+ *
+ * @param set is a pointer to a sigset_t object that is used to return the previous set of blocked signals.
+ * If set is non-NULL, the previous value of the signal mask is stored in it.
+ *
+ * @return Returns 0 on success.
+ */
int sigpending (sigset_t *set)
{
sigprocmask(SIG_SETMASK, RT_NULL, set);
@@ -84,6 +114,18 @@ int sigsuspend (const sigset_t *set)
return ret;
}
+/**
+ * @brief This function will install or confirm action for specified signal.
+ *
+ * @param signum is the signal to be handled.
+ *
+ * @param act is the new signal action, or NULL to restore default action.
+ *
+ * @param oldact returns the previous signal action, or NULL if not required.
+ *
+ * @return Returns 0 on success or -1 on failure.
+ */
+
int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact)
{
rt_sighandler_t old = RT_NULL;
@@ -136,6 +178,13 @@ int sigwaitinfo(const sigset_t *set, siginfo_t *info)
return sigtimedwait(set, info, NULL);
}
+/**
+ * @brief This function willsend a signal to the caller
+ *
+ * @param sig is the signal that is to be sent.
+ *
+ * @return Returns 0 on success.
+ */
int raise(int sig)
{
rt_thread_kill(rt_thread_self(), sig);