From 7acb0d39e858c2f4251298e722ffe42ca7924156 Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Thu, 21 Mar 2019 14:42:55 -0700 Subject: [PATCH] Clean up some mess by only building Android-specific code for the device. Test: treehugger Change-Id: Id44721ccd1817d8c537b226f60a58b7cb691fb01 --- libcutils/Android.bp | 2 +- libcutils/android_get_control_env.h | 19 ++++++------------- libcutils/android_get_control_file.cpp | 20 ++------------------ libcutils/sockets_unix.cpp | 11 ++++++----- 4 files changed, 15 insertions(+), 37 deletions(-) diff --git a/libcutils/Android.bp b/libcutils/Android.bp index b4b8cd1ea..83a71400b 100644 --- a/libcutils/Android.bp +++ b/libcutils/Android.bp @@ -18,7 +18,6 @@ // they correspond to features not used by our host development tools // which are also hard or even impossible to port to native Win32 libcutils_nonwindows_sources = [ - "android_get_control_file.cpp", "fs.cpp", "hashmap.cpp", "multiuser.cpp", @@ -102,6 +101,7 @@ cc_library { android: { srcs: libcutils_nonwindows_sources + [ + "android_get_control_file.cpp", "android_reboot.cpp", "ashmem-dev.cpp", "fs_config.cpp", diff --git a/libcutils/android_get_control_env.h b/libcutils/android_get_control_env.h index 638c8318a..a83026918 100644 --- a/libcutils/android_get_control_env.h +++ b/libcutils/android_get_control_env.h @@ -14,20 +14,13 @@ * limitations under the License. */ -#ifndef __CUTILS_ANDROID_GET_CONTROL_ENV_H -#define __CUTILS_ANDROID_GET_CONTROL_ENV_H +#pragma once -/* To declare library function hidden and internal */ -#define LIBCUTILS_HIDDEN __attribute__((visibility("hidden"))) +#include -#ifdef __cplusplus -extern "C" { -#endif +__BEGIN_DECLS -LIBCUTILS_HIDDEN int __android_get_control_from_env(const char* prefix, - const char* name); -#ifdef __cplusplus -} -#endif +int __android_get_control_from_env(const char* prefix, const char* name) + __attribute__((visibility("hidden"))); -#endif /* __CUTILS_ANDROID_GET_CONTROL_ENV_H */ +__END_DECLS diff --git a/libcutils/android_get_control_file.cpp b/libcutils/android_get_control_file.cpp index d8121f5cd..f9964d2b0 100644 --- a/libcutils/android_get_control_file.cpp +++ b/libcutils/android_get_control_file.cpp @@ -41,12 +41,7 @@ #include "android_get_control_env.h" -#ifndef TEMP_FAILURE_RETRY -#define TEMP_FAILURE_RETRY(exp) (exp) // KISS implementation -#endif - -LIBCUTILS_HIDDEN int __android_get_control_from_env(const char* prefix, - const char* name) { +int __android_get_control_from_env(const char* prefix, const char* name) { if (!prefix || !name) return -1; char *key = NULL; @@ -67,20 +62,11 @@ LIBCUTILS_HIDDEN int __android_get_control_from_env(const char* prefix, long fd = strtol(val, NULL, 10); if (errno) return -1; - // validity checking + // Since we are inheriting an fd, it could legitimately exceed _SC_OPEN_MAX if ((fd < 0) || (fd > INT_MAX)) return -1; - // Since we are inheriting an fd, it could legitimately exceed _SC_OPEN_MAX - // Still open? -#if defined(F_GETFD) // Lowest overhead if (TEMP_FAILURE_RETRY(fcntl(fd, F_GETFD)) < 0) return -1; -#elif defined(F_GETFL) // Alternate lowest overhead - if (TEMP_FAILURE_RETRY(fcntl(fd, F_GETFL)) < 0) return -1; -#else // Hail Mary pass - struct stat s; - if (TEMP_FAILURE_RETRY(fstat(fd, &s)) < 0) return -1; -#endif return static_cast(fd); } @@ -88,7 +74,6 @@ LIBCUTILS_HIDDEN int __android_get_control_from_env(const char* prefix, int android_get_control_file(const char* path) { int fd = __android_get_control_from_env(ANDROID_FILE_ENV_PREFIX, path); -#if defined(__linux__) // Find file path from /proc and make sure it is correct char *proc = NULL; if (asprintf(&proc, "/proc/self/fd/%d", fd) < 0) return -1; @@ -108,7 +93,6 @@ int android_get_control_file(const char* path) { if (ret < 0) return -1; if (cmp != 0) return -1; // It is what we think it is -#endif return fd; } diff --git a/libcutils/sockets_unix.cpp b/libcutils/sockets_unix.cpp index 22488178f..6acdcd89b 100644 --- a/libcutils/sockets_unix.cpp +++ b/libcutils/sockets_unix.cpp @@ -16,8 +16,6 @@ #include -#define LOG_TAG "socket-unix" - #include #include #include @@ -27,9 +25,6 @@ #include #include -#include -#include - #include "android_get_control_env.h" int socket_close(int sock) { @@ -62,6 +57,7 @@ ssize_t socket_send_buffers(cutils_socket_t sock, return writev(sock, iovec_buffers, num_buffers); } +#if defined(__ANDROID__) int android_get_control_socket(const char* name) { int fd = __android_get_control_from_env(ANDROID_SOCKET_ENV_PREFIX, name); @@ -82,3 +78,8 @@ int android_get_control_socket(const char* name) { } return -1; } +#else +int android_get_control_socket(const char*) { + return -1; +} +#endif