blob: 91c22115d06e2959869d563faf1483b8e4a67f34 [file] [log] [blame]
John Park33858a32018-09-28 23:05:48 -07001#include "aos/libc/aos_strsignal.h"
Brian Silvermanaf784862014-05-13 08:14:55 -07002
3#include <signal.h>
4
Alex Perrycb7da4b2019-08-28 19:35:56 -07005#include "glog/logging.h"
Brian Silvermanaf784862014-05-13 08:14:55 -07006
Brian Silvermanb47f5552020-10-01 15:08:14 -07007#include "aos/thread_local.h"
8
Brian Silvermanaf784862014-05-13 08:14:55 -07009const char *aos_strsignal(int signal) {
Brian Silvermanb47f5552020-10-01 15:08:14 -070010 AOS_THREAD_LOCAL char buffer[512];
Brian Silvermanaf784862014-05-13 08:14:55 -070011
12 if (signal >= SIGRTMIN && signal <= SIGRTMAX) {
Alex Perrycb7da4b2019-08-28 19:35:56 -070013 CHECK_GT(snprintf(buffer, sizeof(buffer), "Real-time signal %d",
14 signal - SIGRTMIN),
15 0);
Brian Silvermanaf784862014-05-13 08:14:55 -070016 return buffer;
17 }
18
19 if (signal > 0 && signal < NSIG && sys_siglist[signal] != nullptr) {
20 return sys_siglist[signal];
21 }
22
Alex Perrycb7da4b2019-08-28 19:35:56 -070023 CHECK_GT(snprintf(buffer, sizeof(buffer), "Unknown signal %d", signal), 0);
Brian Silvermanaf784862014-05-13 08:14:55 -070024 return buffer;
25}