From 72c53933f852be6d1cd6c09c86176fbc6d609dac Mon Sep 17 00:00:00 2001 From: Sreeram Ramachandran Date: Sun, 18 May 2014 15:18:36 -0700 Subject: [PATCH] Cosmetic changes to netd client files. + Name the dispatch header correctly (NetdClientDispatch.h). + Hide the global dispatch variable (__netdClientDispatch). + Explain why it's okay to read the variable without locking. + Use quotes instead of angle-brackets for non-system includes. + Add necessary declarations for C compiles (and not just C++). Change-Id: Id0932165e71d81da5fce77a684f40c2263f58e61 --- libc/bionic/NetdClient.cpp | 6 +++--- libc/bionic/NetdClientDispatch.cpp | 6 ++++-- libc/bionic/accept.cpp | 3 ++- libc/bionic/connect.cpp | 3 ++- .../{NetdClient.h => NetdClientDispatch.h} | 17 +++++++++++------ 5 files changed, 22 insertions(+), 13 deletions(-) rename libc/private/{NetdClient.h => NetdClientDispatch.h} (65%) diff --git a/libc/bionic/NetdClient.cpp b/libc/bionic/NetdClient.cpp index 72d90b7bb..75e84ee66 100644 --- a/libc/bionic/NetdClient.cpp +++ b/libc/bionic/NetdClient.cpp @@ -18,11 +18,11 @@ #error NetdClient.cpp should NOT be included in static libc builds. #endif -#include -#include -#include +#include "private/libc_logging.h" +#include "private/NetdClientDispatch.h" #include +#include template static void netdClientInitFunction(void* handle, const char* symbol, FunctionType* function) { diff --git a/libc/bionic/NetdClientDispatch.cpp b/libc/bionic/NetdClientDispatch.cpp index adfe16d7f..6bd2357fa 100644 --- a/libc/bionic/NetdClientDispatch.cpp +++ b/libc/bionic/NetdClientDispatch.cpp @@ -14,7 +14,7 @@ * limitations under the License. */ -#include +#include "private/NetdClientDispatch.h" #ifdef __i386__ #define __socketcall __attribute__((__cdecl__)) @@ -25,7 +25,9 @@ extern "C" __socketcall int __accept(int, sockaddr*, socklen_t*); extern "C" __socketcall int __connect(int, const sockaddr*, socklen_t); -NetdClientDispatch __netdClientDispatch __attribute__((aligned(32))) = { +// This structure is modified only at startup (when libc.so is loaded) and never +// afterwards, so it's okay that it's read later at runtime without a lock. +__LIBC_HIDDEN__ NetdClientDispatch __netdClientDispatch __attribute__((aligned(32))) = { __accept, __connect, }; diff --git a/libc/bionic/accept.cpp b/libc/bionic/accept.cpp index 46b4efc65..807323463 100644 --- a/libc/bionic/accept.cpp +++ b/libc/bionic/accept.cpp @@ -14,7 +14,8 @@ * limitations under the License. */ -#include +#include "private/NetdClientDispatch.h" + #include int accept(int sockfd, sockaddr* addr, socklen_t* addrlen) { diff --git a/libc/bionic/connect.cpp b/libc/bionic/connect.cpp index c5db46b89..1673f4afe 100644 --- a/libc/bionic/connect.cpp +++ b/libc/bionic/connect.cpp @@ -14,7 +14,8 @@ * limitations under the License. */ -#include +#include "private/NetdClientDispatch.h" + #include int connect(int sockfd, const sockaddr* addr, socklen_t addrlen) { diff --git a/libc/private/NetdClient.h b/libc/private/NetdClientDispatch.h similarity index 65% rename from libc/private/NetdClient.h rename to libc/private/NetdClientDispatch.h index b2ce7a664..0390bfb05 100644 --- a/libc/private/NetdClient.h +++ b/libc/private/NetdClientDispatch.h @@ -14,16 +14,21 @@ * limitations under the License. */ -#ifndef PRIVATE_NETD_CLIENT_H -#define PRIVATE_NETD_CLIENT_H +#ifndef PRIVATE_NETD_CLIENT_DISPATCH_H +#define PRIVATE_NETD_CLIENT_DISPATCH_H +#include #include +__BEGIN_DECLS + struct NetdClientDispatch { - int (*accept)(int, sockaddr*, socklen_t*); - int (*connect)(int, const sockaddr*, socklen_t); + int (*accept)(int, struct sockaddr*, socklen_t*); + int (*connect)(int, const struct sockaddr*, socklen_t); }; -extern NetdClientDispatch __netdClientDispatch; +extern __LIBC_HIDDEN__ struct NetdClientDispatch __netdClientDispatch; -#endif // PRIVATE_NETD_CLIENT_H +__END_DECLS + +#endif // PRIVATE_NETD_CLIENT_DISPATCH_H