diff options
author | Elliott Hughes <enh@google.com> | 2018-11-28 22:01:47 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-11-28 22:01:47 +0000 |
commit | 12ed389ca5ea756f664de6f76118c886f7bac865 (patch) | |
tree | e84f0aaafbd490c51795bf378bf04053e50091f1 | |
parent | fdbf46b4e08a97c57eaa7a536b3d9fb4990b4464 (diff) | |
parent | f8294fd8dccd0114820170d92316ddc7b5474b3a (diff) | |
download | bionic-12ed389ca5ea756f664de6f76118c886f7bac865.tar.gz |
Merge "Remove _sys_signal_strings."
-rw-r--r-- | libc/Android.bp | 2 | ||||
-rw-r--r-- | libc/bionic/strerror_r.cpp | 28 | ||||
-rw-r--r-- | libc/bionic/strsignal.cpp | 37 | ||||
-rw-r--r-- | libc/bionic/sys_siglist.c | 34 | ||||
-rw-r--r-- | libc/bionic/sys_signame.c | 34 |
5 files changed, 30 insertions, 105 deletions
diff --git a/libc/Android.bp b/libc/Android.bp index 4c5b0b39f..b7965c874 100644 --- a/libc/Android.bp +++ b/libc/Android.bp @@ -1255,9 +1255,7 @@ cc_library_static { "bionic/sys_msg.cpp", "bionic/sys_sem.cpp", "bionic/sys_shm.cpp", - "bionic/sys_siglist.c", "bionic/sys_signalfd.cpp", - "bionic/sys_signame.c", "bionic/sys_time.cpp", "bionic/sysinfo.cpp", "bionic/syslog.cpp", diff --git a/libc/bionic/strerror_r.cpp b/libc/bionic/strerror_r.cpp index 29d902cdf..326d4b1d1 100644 --- a/libc/bionic/strerror_r.cpp +++ b/libc/bionic/strerror_r.cpp @@ -170,16 +170,6 @@ extern "C" __LIBC_HIDDEN__ const char* __strerror_lookup(int error_number) { return __code_string_lookup(_sys_error_strings, error_number); } -static const Pair _sys_signal_strings[] = { -#define __BIONIC_SIGDEF(signal_number, signal_description) { signal_number, signal_description }, -#include "private/bionic_sigdefs.h" - { 0, nullptr } -}; - -extern "C" __LIBC_HIDDEN__ const char* __strsignal_lookup(int signal_number) { - return __code_string_lookup(_sys_signal_strings, signal_number); -} - int strerror_r(int error_number, char* buf, size_t buf_len) { ErrnoRestorer errno_restorer; size_t length; @@ -203,21 +193,3 @@ extern "C" char* __gnu_strerror_r(int error_number, char* buf, size_t buf_len) { strerror_r(error_number, buf, buf_len); return buf; // ...and just returns whatever fit. } - -extern "C" __LIBC_HIDDEN__ const char* __strsignal(int signal_number, char* buf, size_t buf_len) { - const char* signal_name = __strsignal_lookup(signal_number); - if (signal_name != nullptr) { - return signal_name; - } - - const char* prefix = "Unknown"; - if (signal_number >= SIGRTMIN && signal_number <= SIGRTMAX) { - prefix = "Real-time"; - signal_number -= SIGRTMIN; - } - size_t length = snprintf(buf, buf_len, "%s signal %d", prefix, signal_number); - if (length >= buf_len) { - return nullptr; - } - return buf; -} diff --git a/libc/bionic/strsignal.cpp b/libc/bionic/strsignal.cpp index 1cdfec15f..563743157 100644 --- a/libc/bionic/strsignal.cpp +++ b/libc/bionic/strsignal.cpp @@ -26,20 +26,43 @@ * SUCH DAMAGE. */ +#include <signal.h> #include <string.h> #include "bionic/pthread_internal.h" -extern "C" const char* __strsignal_lookup(int); -extern "C" const char* __strsignal(int, char*, size_t); +const char* const sys_siglist[NSIG] = { +#define __BIONIC_SIGDEF(signal_number, signal_description) [ signal_number ] = signal_description, +#include "private/bionic_sigdefs.h" +}; -char* strsignal(int signal_number) { - // Just return the original constant in the easy cases. - char* result = const_cast<char*>(__strsignal_lookup(signal_number)); - if (result != nullptr) { - return result; +const char* const sys_signame[NSIG] = { +#define __BIONIC_SIGDEF(signal_number, unused) [ signal_number ] = #signal_number + 3, +#include "private/bionic_sigdefs.h" +}; + +extern "C" __LIBC_HIDDEN__ const char* __strsignal(int signal_number, char* buf, size_t buf_len) { + const char* signal_name = nullptr; + if (signal_number >= 0 && signal_number < NSIG) { + signal_name = sys_siglist[signal_number]; + } + if (signal_name != nullptr) { + return signal_name; + } + + const char* prefix = "Unknown"; + if (signal_number >= SIGRTMIN && signal_number <= SIGRTMAX) { + prefix = "Real-time"; + signal_number -= SIGRTMIN; + } + size_t length = snprintf(buf, buf_len, "%s signal %d", prefix, signal_number); + if (length >= buf_len) { + return nullptr; } + return buf; +} +char* strsignal(int signal_number) { bionic_tls& tls = __get_bionic_tls(); return const_cast<char*>(__strsignal(signal_number, tls.strsignal_buf, sizeof(tls.strsignal_buf))); } diff --git a/libc/bionic/sys_siglist.c b/libc/bionic/sys_siglist.c deleted file mode 100644 index 8e33d64fa..000000000 --- a/libc/bionic/sys_siglist.c +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2008 The Android Open Source Project - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <signal.h> - -const char* const sys_siglist[NSIG] = { -#define __BIONIC_SIGDEF(signal_number, signal_description) [ signal_number ] = signal_description, -#include "private/bionic_sigdefs.h" -}; diff --git a/libc/bionic/sys_signame.c b/libc/bionic/sys_signame.c deleted file mode 100644 index 5158b83f3..000000000 --- a/libc/bionic/sys_signame.c +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2009 The Android Open Source Project - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, - * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS - * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <signal.h> - -const char* const sys_signame[NSIG] = { -#define __BIONIC_SIGDEF(signal_number, unused) [ signal_number ] = #signal_number + 3, -#include "private/bionic_sigdefs.h" -}; |