From fe512e6411e7f8cf86644a7394b8ee135745bdea Mon Sep 17 00:00:00 2001 From: Troy Date: Mon, 25 Mar 2024 14:24:26 +0800 Subject: [PATCH] modified: components/libc/posix/delay/delay.c Added comments for all functions in this file modified: components/libc/posix/signal/posix_signal.c Add comments to the sigqueue function, although it does not have an internal implementation modified: components/libc/posix/signal/posix_signal.h Added detailed explanation to all members of the rt_signal_value enumeration --- components/libc/posix/delay/delay.c | 39 ++++++++++++ components/libc/posix/signal/posix_signal.c | 10 +++ components/libc/posix/signal/posix_signal.h | 68 ++++++++++----------- 3 files changed, 83 insertions(+), 34 deletions(-) diff --git a/components/libc/posix/delay/delay.c b/components/libc/posix/delay/delay.c index de8b9bbf76..76b9e50834 100644 --- a/components/libc/posix/delay/delay.c +++ b/components/libc/posix/delay/delay.c @@ -12,36 +12,68 @@ #include #include +/** + * @brief Delays the execution of the current thread for the specified number of milliseconds. + * + * @param msecs The number of milliseconds to sleep. + */ void msleep(unsigned int msecs) { rt_thread_mdelay(msecs); } RTM_EXPORT(msleep); +/** + * @brief Delays the execution of the current thread for the specified number of seconds. + * + * @param seconds The number of seconds to sleep. + */ void ssleep(unsigned int seconds) { msleep(seconds * 1000); } RTM_EXPORT(ssleep); +/** + * @brief Delays the execution of the current thread for the specified number of milliseconds. + * + * @param msecs The number of milliseconds to delay. + */ void mdelay(unsigned long msecs) { rt_hw_us_delay(msecs * 1000); } RTM_EXPORT(mdelay); +/** + * @brief Delays the execution of the current thread for the specified number of microseconds. + * + * @param usecs The number of microseconds to delay. + */ void udelay(unsigned long usecs) { rt_hw_us_delay(usecs); } RTM_EXPORT(udelay); +/** + * @brief Delays the execution of the current thread for approximately one microsecond. + * + * @param nsecs This parameter is ignored. + */ void ndelay(unsigned long nsecs) { rt_hw_us_delay(1); } RTM_EXPORT(ndelay); +/** + * @brief Delays the execution of the current thread for the specified number of seconds. + * + * @param seconds The number of seconds to sleep. + * + * @return Returns 0 on success. + */ unsigned int sleep(unsigned int seconds) { if (rt_thread_self() != RT_NULL) @@ -61,6 +93,13 @@ unsigned int sleep(unsigned int seconds) } RTM_EXPORT(sleep); +/** + * @brief Delays the execution of the current thread for the specified number of microseconds. + * + * @param usec The number of microseconds to sleep. + * + * @return Returns 0 on success. + */ int usleep(useconds_t usec) { if (rt_thread_self() != RT_NULL) diff --git a/components/libc/posix/signal/posix_signal.c b/components/libc/posix/signal/posix_signal.c index 00d925ea57..780d872faf 100644 --- a/components/libc/posix/signal/posix_signal.c +++ b/components/libc/posix/signal/posix_signal.c @@ -229,6 +229,16 @@ int raise(int sig) } #include +/** + * @brief Sends a signal to the caller. + * + * This function sends the signal specified by @p sig to the caller. + * + * @param sig The signal to be sent. + * This should be one of the standard signal macros such as SIGUSR1, SIGUSR2, etc. + * + * @return Returns 0 on success. If an error occurs, -1 is returned and errno is set appropriately. + */ int sigqueue (pid_t pid, int signo, const union sigval value) { /* no support, signal queue */ diff --git a/components/libc/posix/signal/posix_signal.h b/components/libc/posix/signal/posix_signal.h index f04b54c5f8..deb0cc6dc5 100644 --- a/components/libc/posix/signal/posix_signal.h +++ b/components/libc/posix/signal/posix_signal.h @@ -18,40 +18,40 @@ extern "C" { #include enum rt_signal_value{ - SIG1 = SIGHUP, - SIG2 = SIGINT, - SIG3 = SIGQUIT, - SIG4 = SIGILL, - SIG5 = SIGTRAP, - SIG6 = SIGABRT, - SIG7 = SIGEMT, - SIG8 = SIGFPE, - SIG9 = SIGKILL, - SIG10 = SIGBUS, - SIG11 = SIGSEGV, - SIG12 = SIGSYS, - SIG13 = SIGPIPE, - SIG14 = SIGALRM, - SIG15 = SIGTERM, - SIG16 = SIGURG, - SIG17 = SIGSTOP, - SIG18 = SIGTSTP, - SIG19 = SIGCONT, - SIG20 = SIGCHLD, - SIG21 = SIGTTIN, - SIG22 = SIGTTOU, - SIG23 = SIGPOLL, - SIG24 = 24, // SIGXCPU, - SIG25 = 25, // SIGXFSZ, - SIG26 = 26, // SIGVTALRM, - SIG27 = 27, // SIGPROF, - SIG28 = SIGWINCH, - SIG29 = 29, // SIGLOST, - SIG30 = SIGUSR1, - SIG31 = SIGUSR2, - SIGRT_MIN = 27, // SIGRTMIN, - SIGRT_MAX = 31, // SIGRTMAX, - SIGMAX = NSIG, + SIG1 = SIGHUP, // Hangup detected on controlling terminal or death of controlling process + SIG2 = SIGINT, // Interrupt from keyboard + SIG3 = SIGQUIT, // Quit from keyboard + SIG4 = SIGILL, // Illegal instruction + SIG5 = SIGTRAP, // Trace trap + SIG6 = SIGABRT, // Abort signal from abort(3) + SIG7 = SIGEMT, // Emulator trap + SIG8 = SIGFPE, // Floating-point exception + SIG9 = SIGKILL, // Kill signal + SIG10 = SIGBUS, // Bus error + SIG11 = SIGSEGV, // Segmentation fault + SIG12 = SIGSYS, // Bad system call + SIG13 = SIGPIPE, // Broken pipe + SIG14 = SIGALRM, // Timer signal from alarm(2) + SIG15 = SIGTERM, // Termination signal + SIG16 = SIGURG, // Urgent condition on socket + SIG17 = SIGSTOP, // Stop executing (cannot be caught or ignored) + SIG18 = SIGTSTP, // Stop signal from keyboard to suspend execution + SIG19 = SIGCONT, // Continue if stopped + SIG20 = SIGCHLD, // Child status has changed + SIG21 = SIGTTIN, // Background read from control terminal attempted by background process + SIG22 = SIGTTOU, // Background write to control terminal attempted by background process + SIG23 = SIGPOLL, // Pollable event + SIG24 = 24, // SIGXCPU: CPU time limit exceeded + SIG25 = 25, // SIGXFSZ: File size limit exceeded + SIG26 = 26, // SIGVTALRM: Virtual timer expired + SIG27 = 27, // SIGPROF: Profiling timer expired + SIG28 = SIGWINCH,// Window size changed + SIG29 = 29, // SIGLOST + SIG30 = SIGUSR1, // User-defined signal 1 + SIG31 = SIGUSR2, // User-defined signal 2 + SIGRT_MIN = 27, // SIGRTMIN: Minimum real-time signal number + SIGRT_MAX = 31, // SIGRTMAX: Maximum real-time signal number + SIGMAX = NSIG // Number of signals (total) }; #ifdef __cplusplus