aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2018-11-28 22:01:47 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2018-11-28 22:01:47 +0000
commit12ed389ca5ea756f664de6f76118c886f7bac865 (patch)
treee84f0aaafbd490c51795bf378bf04053e50091f1
parentfdbf46b4e08a97c57eaa7a536b3d9fb4990b4464 (diff)
parentf8294fd8dccd0114820170d92316ddc7b5474b3a (diff)
downloadbionic-12ed389ca5ea756f664de6f76118c886f7bac865.tar.gz
Merge "Remove _sys_signal_strings."
-rw-r--r--libc/Android.bp2
-rw-r--r--libc/bionic/strerror_r.cpp28
-rw-r--r--libc/bionic/strsignal.cpp37
-rw-r--r--libc/bionic/sys_siglist.c34
-rw-r--r--libc/bionic/sys_signame.c34
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"
-};