Clean up some mess by only building Android-specific code for the device.

Test: treehugger
Change-Id: Id44721ccd1817d8c537b226f60a58b7cb691fb01
This commit is contained in:
Elliott Hughes 2019-03-21 14:42:55 -07:00
parent ee3cce8b7b
commit 7acb0d39e8
4 changed files with 15 additions and 37 deletions

View File

@ -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",

View File

@ -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 <sys/cdefs.h>
#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

View File

@ -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<int>(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;
}

View File

@ -16,8 +16,6 @@
#include <cutils/sockets.h>
#define LOG_TAG "socket-unix"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@ -27,9 +25,6 @@
#include <time.h>
#include <unistd.h>
#include <cutils/android_get_control_file.h>
#include <log/log.h>
#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