| diff --git a/Makefile.am b/Makefile.am |
| new file mode 100644 |
| index 0000000..28276e6 |
| --- /dev/null |
| +++ b/Makefile.am |
| @@ -0,0 +1,12 @@ |
| +SUBDIRS = \ |
| + frameworks/native/include \ |
| + hardware/libhardware_legacy/include \ |
| + system/core/base/include \ |
| + system/core/include \ |
| + system/core/liblog \ |
| + system/core/libcutils \ |
| + hardware/libhardware_legacy \ |
| + system/core/libnetutils \ |
| + system/core/libnetutils/include \ |
| + system/core/libutils \ |
| + frameworks/native/libs/binder |
| diff --git a/configure.ac b/configure.ac |
| new file mode 100644 |
| index 0000000..60f5e48 |
| --- /dev/null |
| +++ b/configure.ac |
| @@ -0,0 +1,21 @@ |
| +AC_INIT([platform-libs], [1.0]) |
| +AM_INIT_AUTOMAKE([foreign]) |
| +AC_PROG_CXX |
| +AC_ENABLE_SHARED |
| +AC_DISABLE_STATIC |
| +LT_INIT |
| +AC_CONFIG_FILES([ |
| + Makefile |
| + frameworks/native/include/Makefile |
| + frameworks/native/libs/binder/Makefile |
| + hardware/libhardware_legacy/Makefile |
| + hardware/libhardware_legacy/include/Makefile |
| + system/core/base/include/Makefile |
| + system/core/include/Makefile |
| + system/core/libcutils/Makefile |
| + system/core/liblog/Makefile |
| + system/core/libnetutils/Makefile |
| + system/core/libnetutils/include/Makefile |
| + system/core/libutils/Makefile |
| +]) |
| +AC_OUTPUT |
| diff --git a/frameworks/native/include/Makefile.am b/frameworks/native/include/Makefile.am |
| new file mode 100644 |
| index 0000000..0a3bd94 |
| --- /dev/null |
| +++ b/frameworks/native/include/Makefile.am |
| @@ -0,0 +1,2 @@ |
| +nobase_include_HEADERS = \ |
| + binder/Parcel.h |
| diff --git a/frameworks/native/include/binder/Parcel.h b/frameworks/native/include/binder/Parcel.h |
| index 97a3376..cc8ed09 100644 |
| --- a/frameworks/native/include/binder/Parcel.h |
| +++ b/frameworks/native/include/binder/Parcel.h |
| @@ -21,20 +21,31 @@ |
| #include <vector> |
| |
| #include <android-base/unique_fd.h> |
| +#if 0 |
| #include <cutils/native_handle.h> |
| +#endif |
| #include <utils/Errors.h> |
| +#if 0 |
| #include <utils/RefBase.h> |
| +#endif |
| #include <utils/String16.h> |
| +#if 0 |
| #include <utils/Vector.h> |
| #include <utils/Flattenable.h> |
| #include <linux/binder.h> |
| |
| #include <binder/IInterface.h> |
| #include <binder/Parcelable.h> |
| +#endif |
| +#include <limits> |
| +#include <memory> |
| +typedef size_t binder_size_t; |
| +typedef uintptr_t binder_uintptr_t; |
| |
| // --------------------------------------------------------------------------- |
| namespace android { |
| |
| +#if 0 |
| template <typename T> class Flattenable; |
| template <typename T> class LightFlattenable; |
| class IBinder; |
| @@ -42,6 +53,7 @@ class IPCThreadState; |
| class ProcessState; |
| class String8; |
| class TextOutput; |
| +#endif |
| |
| class Parcel { |
| friend class IPCThreadState; |
| @@ -73,6 +85,7 @@ public: |
| |
| bool hasFileDescriptors() const; |
| |
| +#if 0 |
| // Writes the RPC header. |
| status_t writeInterfaceToken(const String16& interface); |
| |
| @@ -86,6 +99,7 @@ public: |
| bool enforceInterface(const String16& interface, |
| IPCThreadState* threadState = NULL) const; |
| bool checkInterface(IBinder*) const; |
| +#endif |
| |
| void freeData(); |
| |
| @@ -108,12 +122,18 @@ public: |
| status_t writeFloat(float val); |
| status_t writeDouble(double val); |
| status_t writeCString(const char* str); |
| +#if 0 |
| status_t writeString8(const String8& str); |
| +#endif |
| status_t writeString16(const String16& str); |
| +#if 0 |
| status_t writeString16(const std::unique_ptr<String16>& str); |
| +#endif |
| status_t writeString16(const char16_t* str, size_t len); |
| +#if 0 |
| status_t writeStrongBinder(const sp<IBinder>& val); |
| status_t writeWeakBinder(const wp<IBinder>& val); |
| +#endif |
| status_t writeInt32Array(size_t len, const int32_t *val); |
| status_t writeByteArray(size_t len, const uint8_t *val); |
| status_t writeBool(bool val); |
| @@ -140,13 +160,16 @@ public: |
| status_t writeBoolVector(const std::vector<bool>& val); |
| status_t writeCharVector(const std::unique_ptr<std::vector<char16_t>>& val); |
| status_t writeCharVector(const std::vector<char16_t>& val); |
| +#if 0 |
| status_t writeString16Vector( |
| const std::unique_ptr<std::vector<std::unique_ptr<String16>>>& val); |
| status_t writeString16Vector(const std::vector<String16>& val); |
| +#endif |
| status_t writeUtf8VectorAsUtf16Vector( |
| const std::unique_ptr<std::vector<std::unique_ptr<std::string>>>& val); |
| status_t writeUtf8VectorAsUtf16Vector(const std::vector<std::string>& val); |
| |
| +#if 0 |
| status_t writeStrongBinderVector(const std::unique_ptr<std::vector<sp<IBinder>>>& val); |
| status_t writeStrongBinderVector(const std::vector<sp<IBinder>>& val); |
| |
| @@ -214,6 +237,7 @@ public: |
| // Currently the native implementation doesn't do any of the StrictMode |
| // stack gathering and serialization that the Java implementation does. |
| status_t writeNoException(); |
| +#endif |
| |
| void remove(size_t start, size_t amt); |
| |
| @@ -245,11 +269,16 @@ public: |
| status_t readUtf8FromUtf16(std::unique_ptr<std::string>* str) const; |
| |
| const char* readCString() const; |
| +#if 0 |
| String8 readString8() const; |
| +#endif |
| String16 readString16() const; |
| +#if 0 |
| status_t readString16(String16* pArg) const; |
| status_t readString16(std::unique_ptr<String16>* pArg) const; |
| +#endif |
| const char16_t* readString16Inplace(size_t* outLen) const; |
| +#if 0 |
| sp<IBinder> readStrongBinder() const; |
| status_t readStrongBinder(sp<IBinder>* val) const; |
| status_t readNullableStrongBinder(sp<IBinder>* val) const; |
| @@ -274,6 +303,7 @@ public: |
| |
| status_t readStrongBinderVector(std::unique_ptr<std::vector<sp<IBinder>>>* val) const; |
| status_t readStrongBinderVector(std::vector<sp<IBinder>>* val) const; |
| +#endif |
| |
| status_t readByteVector(std::unique_ptr<std::vector<int8_t>>* val) const; |
| status_t readByteVector(std::vector<int8_t>* val) const; |
| @@ -291,13 +321,16 @@ public: |
| status_t readBoolVector(std::vector<bool>* val) const; |
| status_t readCharVector(std::unique_ptr<std::vector<char16_t>>* val) const; |
| status_t readCharVector(std::vector<char16_t>* val) const; |
| +#if 0 |
| status_t readString16Vector( |
| std::unique_ptr<std::vector<std::unique_ptr<String16>>>* val) const; |
| status_t readString16Vector(std::vector<String16>* val) const; |
| +#endif |
| status_t readUtf8VectorFromUtf16Vector( |
| std::unique_ptr<std::vector<std::unique_ptr<std::string>>>* val) const; |
| status_t readUtf8VectorFromUtf16Vector(std::vector<std::string>* val) const; |
| |
| +#if 0 |
| template<typename T> |
| status_t read(Flattenable<T>& val) const; |
| |
| @@ -341,6 +374,7 @@ public: |
| |
| // Explicitly close all file descriptors in the parcel. |
| void closeFileDescriptors(); |
| +#endif |
| |
| // Debugging: get metrics on current allocations. |
| static size_t getGlobalAllocSize(); |
| @@ -352,6 +386,7 @@ private: |
| const binder_size_t* objects, size_t objectsSize, |
| void* cookie); |
| |
| +#if 0 |
| uintptr_t ipcData() const; |
| size_t ipcDataSize() const; |
| uintptr_t ipcObjects() const; |
| @@ -362,6 +397,7 @@ private: |
| |
| public: |
| void print(TextOutput& to, uint32_t flags = 0) const; |
| +#endif |
| |
| private: |
| Parcel(const Parcel& o); |
| @@ -378,7 +414,9 @@ private: |
| uintptr_t readPointer() const; |
| void freeDataNoInit(); |
| void initState(); |
| +#if 0 |
| void scanForFds() const; |
| +#endif |
| |
| template<class T> |
| status_t readAligned(T *pArg) const; |
| @@ -388,8 +426,10 @@ private: |
| template<class T> |
| status_t writeAligned(T val); |
| |
| +#if 0 |
| status_t writeRawNullableParcelable(const Parcelable* |
| parcelable); |
| +#endif |
| |
| template<typename T, typename U> |
| status_t unsafeReadTypedVector(std::vector<T>* val, |
| @@ -453,6 +493,7 @@ private: |
| bool mMutable; |
| }; |
| |
| +#if 0 |
| class FlattenableHelperInterface { |
| protected: |
| ~FlattenableHelperInterface() { } |
| @@ -485,6 +526,7 @@ private: |
| }; |
| status_t write(const FlattenableHelperInterface& val); |
| status_t read(FlattenableHelperInterface& val) const; |
| +#endif |
| |
| public: |
| class ReadableBlob : public Blob { |
| @@ -511,6 +553,7 @@ public: |
| |
| // --------------------------------------------------------------------------- |
| |
| +#if 0 |
| template<typename T> |
| status_t Parcel::write(const Flattenable<T>& val) { |
| const FlattenableHelper<T> helper(val); |
| @@ -591,6 +634,7 @@ status_t Parcel::readNullableStrongBinder(sp<T>* val) const { |
| } |
| } |
| } |
| +#endif |
| |
| template<typename T, typename U> |
| status_t Parcel::unsafeReadTypedVector( |
| @@ -706,6 +750,7 @@ status_t Parcel::writeNullableTypedVector(const std::unique_ptr<std::vector<T>>& |
| return unsafeWriteTypedVector(*val, write_func); |
| } |
| |
| +#if 0 |
| template<typename T> |
| status_t Parcel::readParcelableVector(std::vector<T>* val) const { |
| return unsafeReadTypedVector<T, Parcelable>(val, &Parcel::readParcelable); |
| @@ -800,6 +845,7 @@ status_t unflatten_binder(const sp<ProcessState>& proc, |
| const flat_binder_object& flat, sp<IBinder>* out); |
| status_t unflatten_binder(const sp<ProcessState>& proc, |
| const flat_binder_object& flat, wp<IBinder>* out); |
| +#endif |
| |
| }; // namespace android |
| |
| diff --git a/frameworks/native/libs/binder/Makefile.am b/frameworks/native/libs/binder/Makefile.am |
| new file mode 100644 |
| index 0000000..b1eb2c2 |
| --- /dev/null |
| +++ b/frameworks/native/libs/binder/Makefile.am |
| @@ -0,0 +1,16 @@ |
| +lib_LTLIBRARIES = libbinder.la |
| + |
| +libbinder_la_SOURCES = \ |
| + Parcel.cpp |
| + |
| +libbinder_la_CPPFLAGS = \ |
| + -I$(top_srcdir)/frameworks/native/include \ |
| + -I$(top_srcdir)/system/core/include \ |
| + -I$(top_srcdir)/system/core/base/include |
| + |
| +libbinder_la_CXXFLAGS = -std=gnu++14 |
| + |
| +libbinder_la_LIBADD = \ |
| + $(top_builddir)/system/core/liblog/liblog.la \ |
| + $(top_builddir)/system/core/libcutils/libcutils.la \ |
| + $(top_builddir)/system/core/libutils/libutils.la |
| diff --git a/frameworks/native/libs/binder/Parcel.cpp b/frameworks/native/libs/binder/Parcel.cpp |
| index 6fd6ddc..a6aad09 100644 |
| --- a/frameworks/native/libs/binder/Parcel.cpp |
| +++ b/frameworks/native/libs/binder/Parcel.cpp |
| @@ -29,24 +29,39 @@ |
| #include <sys/types.h> |
| #include <unistd.h> |
| |
| +#if 0 |
| #include <binder/Binder.h> |
| #include <binder/BpBinder.h> |
| #include <binder/IPCThreadState.h> |
| +#endif |
| #include <binder/Parcel.h> |
| +#if 0 |
| #include <binder/ProcessState.h> |
| #include <binder/Status.h> |
| #include <binder/TextOutput.h> |
| |
| #include <cutils/ashmem.h> |
| +#endif |
| #include <utils/Debug.h> |
| +#if 0 |
| #include <utils/Flattenable.h> |
| #include <utils/Log.h> |
| +#endif |
| #include <utils/misc.h> |
| +#if 0 |
| #include <utils/String8.h> |
| #include <utils/String16.h> |
| |
| #include <private/binder/binder_module.h> |
| #include <private/binder/Static.h> |
| +#endif |
| +#include <limits.h> |
| +#include <string.h> |
| +#include <utils/Unicode.h> |
| +#define ALOGE printf |
| +#define ALOGV printf |
| +#define LOG_ALWAYS_FATAL printf |
| +#define SIZE_T_MAX ULONG_MAX |
| |
| #ifndef INT32_MAX |
| #define INT32_MAX ((int32_t)(2147483647)) |
| @@ -123,6 +138,7 @@ static dev_t ashmem_rdev() |
| return rdev; |
| } |
| |
| +#if 0 |
| void acquire_object(const sp<ProcessState>& proc, |
| const flat_binder_object& obj, const void* who, size_t* outAshmemSize) |
| { |
| @@ -371,6 +387,7 @@ status_t unflatten_binder(const sp<ProcessState>& proc, |
| } |
| return BAD_TYPE; |
| } |
| +#endif |
| |
| // --------------------------------------------------------------------------- |
| |
| @@ -487,6 +504,7 @@ status_t Parcel::setData(const uint8_t* buffer, size_t len) |
| return err; |
| } |
| |
| +#if 0 |
| status_t Parcel::appendFrom(const Parcel *parcel, size_t offset, size_t len) |
| { |
| const sp<ProcessState> proc(ProcessState::self()); |
| @@ -650,6 +668,7 @@ bool Parcel::enforceInterface(const String16& interface, |
| return false; |
| } |
| } |
| +#endif |
| |
| const binder_size_t* Parcel::objects() const |
| { |
| @@ -925,6 +944,7 @@ status_t Parcel::writeCharVector(const std::unique_ptr<std::vector<char16_t>>& v |
| return writeNullableTypedVector(val, &Parcel::writeChar); |
| } |
| |
| +#if 0 |
| status_t Parcel::writeString16Vector(const std::vector<String16>& val) |
| { |
| return writeTypedVector(val, &Parcel::writeString16); |
| @@ -935,6 +955,7 @@ status_t Parcel::writeString16Vector( |
| { |
| return writeNullableTypedVector(val, &Parcel::writeString16); |
| } |
| +#endif |
| |
| status_t Parcel::writeUtf8VectorAsUtf16Vector( |
| const std::unique_ptr<std::vector<std::unique_ptr<std::string>>>& val) { |
| @@ -1049,6 +1070,7 @@ status_t Parcel::writeCString(const char* str) |
| return write(str, strlen(str)+1); |
| } |
| |
| +#if 0 |
| status_t Parcel::writeString8(const String8& str) |
| { |
| status_t err = writeInt32(str.bytes()); |
| @@ -1074,6 +1096,7 @@ status_t Parcel::writeString16(const String16& str) |
| { |
| return writeString16(str.string(), str.size()); |
| } |
| +#endif |
| |
| status_t Parcel::writeString16(const char16_t* str, size_t len) |
| { |
| @@ -1093,6 +1116,7 @@ status_t Parcel::writeString16(const char16_t* str, size_t len) |
| return err; |
| } |
| |
| +#if 0 |
| status_t Parcel::writeStrongBinder(const sp<IBinder>& val) |
| { |
| return flatten_binder(ProcessState::self(), val, this); |
| @@ -1350,6 +1374,7 @@ status_t Parcel::writeNoException() |
| binder::Status status; |
| return status.writeToParcel(this); |
| } |
| +#endif |
| |
| void Parcel::remove(size_t /*start*/, size_t /*amt*/) |
| { |
| @@ -1600,6 +1625,7 @@ status_t Parcel::readCharVector(std::vector<char16_t>* val) const { |
| return readTypedVector(val, &Parcel::readChar); |
| } |
| |
| +#if 0 |
| status_t Parcel::readString16Vector( |
| std::unique_ptr<std::vector<std::unique_ptr<String16>>>* val) const { |
| return readNullableTypedVector(val, &Parcel::readString16); |
| @@ -1608,6 +1634,7 @@ status_t Parcel::readString16Vector( |
| status_t Parcel::readString16Vector(std::vector<String16>* val) const { |
| return readTypedVector(val, &Parcel::readString16); |
| } |
| +#endif |
| |
| status_t Parcel::readUtf8VectorFromUtf16Vector( |
| std::unique_ptr<std::vector<std::unique_ptr<std::string>>>* val) const { |
| @@ -1832,6 +1859,7 @@ const char* Parcel::readCString() const |
| return NULL; |
| } |
| |
| +#if 0 |
| String8 Parcel::readString8() const |
| { |
| int32_t size = readInt32(); |
| @@ -1887,6 +1915,7 @@ status_t Parcel::readString16(String16* pArg) const |
| return UNEXPECTED_NULL; |
| } |
| } |
| +#endif |
| |
| const char16_t* Parcel::readString16Inplace(size_t* outLen) const |
| { |
| @@ -1903,6 +1932,7 @@ const char16_t* Parcel::readString16Inplace(size_t* outLen) const |
| return NULL; |
| } |
| |
| +#if 0 |
| status_t Parcel::readStrongBinder(sp<IBinder>* val) const |
| { |
| status_t status = readNullableStrongBinder(val); |
| @@ -2240,9 +2270,11 @@ void Parcel::print(TextOutput& to, uint32_t /*flags*/) const |
| |
| to << ")"; |
| } |
| +#endif |
| |
| void Parcel::releaseObjects() |
| { |
| +#if 0 |
| const sp<ProcessState> proc(ProcessState::self()); |
| size_t i = mObjectsSize; |
| uint8_t* const data = mData; |
| @@ -2253,10 +2285,12 @@ void Parcel::releaseObjects() |
| = reinterpret_cast<flat_binder_object*>(data+objects[i]); |
| release_object(proc, *flat, this, &mOpenAshmemSize); |
| } |
| +#endif |
| } |
| |
| void Parcel::acquireObjects() |
| { |
| +#if 0 |
| const sp<ProcessState> proc(ProcessState::self()); |
| size_t i = mObjectsSize; |
| uint8_t* const data = mData; |
| @@ -2267,6 +2301,7 @@ void Parcel::acquireObjects() |
| = reinterpret_cast<flat_binder_object*>(data+objects[i]); |
| acquire_object(proc, *flat, this, &mOpenAshmemSize); |
| } |
| +#endif |
| } |
| |
| void Parcel::freeData() |
| @@ -2447,6 +2482,7 @@ status_t Parcel::continueWrite(size_t desired) |
| |
| } else if (mData) { |
| if (objectsSize < mObjectsSize) { |
| +#if 0 |
| // Need to release refs on any objects we are dropping. |
| const sp<ProcessState> proc(ProcessState::self()); |
| for (size_t i=objectsSize; i<mObjectsSize; i++) { |
| @@ -2458,6 +2494,7 @@ status_t Parcel::continueWrite(size_t desired) |
| } |
| release_object(proc, *flat, this, &mOpenAshmemSize); |
| } |
| +#endif |
| binder_size_t* objects = |
| (binder_size_t*)realloc(mObjects, objectsSize*sizeof(binder_size_t)); |
| if (objects) { |
| @@ -2544,6 +2581,7 @@ void Parcel::initState() |
| mOpenAshmemSize = 0; |
| } |
| |
| +#if 0 |
| void Parcel::scanForFds() const |
| { |
| bool hasFds = false; |
| @@ -2558,6 +2596,7 @@ void Parcel::scanForFds() const |
| mHasFds = hasFds; |
| mFdsKnown = true; |
| } |
| +#endif |
| |
| size_t Parcel::getBlobAshmemSize() const |
| { |
| diff --git a/hardware/libhardware_legacy/Makefile.am b/hardware/libhardware_legacy/Makefile.am |
| new file mode 100644 |
| index 0000000..1c2c55e |
| --- /dev/null |
| +++ b/hardware/libhardware_legacy/Makefile.am |
| @@ -0,0 +1,8 @@ |
| +lib_LTLIBRARIES = libpower.la |
| + |
| +libpower_la_SOURCES = \ |
| + power/power.c |
| + |
| +libpower_la_CPPFLAGS = \ |
| + -I$(top_srcdir)/hardware/libhardware_legacy/include \ |
| + -I$(top_srcdir)/system/core/include |
| diff --git a/hardware/libhardware_legacy/include/Makefile.am b/hardware/libhardware_legacy/include/Makefile.am |
| new file mode 100644 |
| index 0000000..f38e70b |
| --- /dev/null |
| +++ b/hardware/libhardware_legacy/include/Makefile.am |
| @@ -0,0 +1,2 @@ |
| +nobase_include_HEADERS = \ |
| + hardware_legacy/power.h |
| diff --git a/system/core/base/include/Makefile.am b/system/core/base/include/Makefile.am |
| new file mode 100644 |
| index 0000000..d22d479 |
| --- /dev/null |
| +++ b/system/core/base/include/Makefile.am |
| @@ -0,0 +1,2 @@ |
| +nobase_include_HEADERS = \ |
| + android-base/unique_fd.h |
| diff --git a/system/core/include/Makefile.am b/system/core/include/Makefile.am |
| new file mode 100644 |
| index 0000000..e2ca17b |
| --- /dev/null |
| +++ b/system/core/include/Makefile.am |
| @@ -0,0 +1,15 @@ |
| +nobase_include_HEADERS = \ |
| + utils/Compat.h \ |
| + utils/Errors.h \ |
| + utils/KeyedVector.h \ |
| + utils/RefBase.h \ |
| + utils/SortedVector.h \ |
| + utils/String8.h \ |
| + utils/String16.h \ |
| + utils/SystemClock.h \ |
| + utils/Timers.h \ |
| + utils/TypeHelpers.h \ |
| + utils/Unicode.h \ |
| + utils/Vector.h \ |
| + utils/VectorImpl.h \ |
| + utils/threads.h |
| diff --git a/system/core/include/cutils/atomic.h b/system/core/include/cutils/atomic.h |
| index ded972a..fb83e77 100644 |
| --- a/system/core/include/cutils/atomic.h |
| +++ b/system/core/include/cutils/atomic.h |
| @@ -19,7 +19,12 @@ |
| |
| #include <stdint.h> |
| #include <sys/types.h> |
| +#ifdef __cplusplus |
| +#include <atomic> |
| +using namespace std; |
| +#else |
| #include <stdatomic.h> |
| +#endif |
| |
| #ifndef ANDROID_ATOMIC_INLINE |
| #define ANDROID_ATOMIC_INLINE static inline |
| diff --git a/system/core/libcutils/Makefile.am b/system/core/libcutils/Makefile.am |
| new file mode 100644 |
| index 0000000..51dadb4 |
| --- /dev/null |
| +++ b/system/core/libcutils/Makefile.am |
| @@ -0,0 +1,19 @@ |
| +lib_LTLIBRARIES = libcutils.la |
| + |
| +libcutils_la_SOURCES = \ |
| + socket_inaddr_any_server_unix.c \ |
| + socket_local_client_unix.c \ |
| + socket_local_server_unix.c \ |
| + socket_loopback_client_unix.c \ |
| + socket_loopback_server_unix.c \ |
| + socket_network_client_unix.c \ |
| + sockets_unix.cpp \ |
| + strdup16to8.c \ |
| + strdup8to16.c |
| + |
| +libcutils_la_CPPFLAGS = \ |
| + -I$(top_srcdir)/system/core/include |
| + |
| +libcutils_la_CFLAGS = -std=gnu90 |
| + |
| +libcutils_la_LIBADD = $(top_builddir)/system/core/liblog/liblog.la |
| diff --git a/system/core/liblog/Makefile.am b/system/core/liblog/Makefile.am |
| new file mode 100644 |
| index 0000000..1c3443c |
| --- /dev/null |
| +++ b/system/core/liblog/Makefile.am |
| @@ -0,0 +1,20 @@ |
| +lib_LTLIBRARIES = liblog.la |
| + |
| +liblog_la_SOURCES = \ |
| + config_write.c \ |
| + event_tag_map.c \ |
| + fake_log_device.c \ |
| + fake_writer.c \ |
| + log_event_list.c \ |
| + log_event_write.c \ |
| + logger_lock.c \ |
| + logger_name.c \ |
| + logger_write.c |
| + |
| +liblog_la_CFLAGS = -Werror -fvisibility=hidden |
| + |
| +liblog_la_CPPFLAGS = \ |
| + -DFAKE_LOG_DEVICE=1 \ |
| + -DLIBLOG_LOG_TAG=1005 \ |
| + -DSNET_EVENT_LOG_TAG=1397638484 \ |
| + -I$(top_srcdir)/system/core/include |
| diff --git a/system/core/libnetutils/Makefile.am b/system/core/libnetutils/Makefile.am |
| new file mode 100644 |
| index 0000000..a4a73ce |
| --- /dev/null |
| +++ b/system/core/libnetutils/Makefile.am |
| @@ -0,0 +1,11 @@ |
| +lib_LTLIBRARIES = libnetutils.la |
| + |
| +libnetutils_la_SOURCES = \ |
| + ifc_utils.c |
| + |
| +libnetutils_la_CPPFLAGS = \ |
| + -I$(top_srcdir)/system/core/libnetutils/include |
| + |
| +libnetutils_la_LIBADD = \ |
| + $(top_builddir)/bionic/libc/libc_dns.la |
| +# $(top_builddir)/system/core/liblog/liblog.la |
| diff --git a/system/core/libnetutils/ifc_utils.c b/system/core/libnetutils/ifc_utils.c |
| index f9f62f8..f637939 100644 |
| --- a/system/core/libnetutils/ifc_utils.c |
| +++ b/system/core/libnetutils/ifc_utils.c |
| @@ -25,7 +25,9 @@ |
| #include <sys/types.h> |
| #include <netinet/in.h> |
| #include <arpa/inet.h> |
| +#ifdef ANDROID |
| #include <net/if.h> |
| +#endif |
| #include <netdb.h> |
| |
| #include <linux/if.h> |
| @@ -47,6 +49,7 @@ |
| #include <stdio.h> |
| #include <string.h> |
| #define ALOGD printf |
| +#define ALOGE printf |
| #define ALOGW printf |
| #endif |
| |
| @@ -57,7 +60,11 @@ |
| |
| static int ifc_ctl_sock = -1; |
| static int ifc_ctl_sock6 = -1; |
| +#ifdef ANDROID |
| void printerr(char *fmt, ...); |
| +#else |
| +#define printerr printf |
| +#endif |
| |
| #define DBG 0 |
| #define INET_ADDRLEN 4 |
| @@ -678,6 +685,7 @@ int ifc_remove_default_route(const char *ifname) |
| return result; |
| } |
| |
| +#ifdef ANDROID |
| int |
| ifc_configure(const char *ifname, |
| in_addr_t address, |
| @@ -720,3 +728,4 @@ ifc_configure(const char *ifname, |
| |
| return 0; |
| } |
| +#endif |
| diff --git a/system/core/libnetutils/include/Makefile.am b/system/core/libnetutils/include/Makefile.am |
| new file mode 100644 |
| index 0000000..fc71a47 |
| --- /dev/null |
| +++ b/system/core/libnetutils/include/Makefile.am |
| @@ -0,0 +1,2 @@ |
| +nobase_include_HEADERS = \ |
| + netutils/ifc.h |
| diff --git a/system/core/libutils/Makefile.am b/system/core/libutils/Makefile.am |
| new file mode 100644 |
| index 0000000..2bbf615 |
| --- /dev/null |
| +++ b/system/core/libutils/Makefile.am |
| @@ -0,0 +1,24 @@ |
| +lib_LTLIBRARIES = libutils.la |
| + |
| +libutils_la_SOURCES = \ |
| + Looper.cpp \ |
| + RefBase.cpp \ |
| + SharedBuffer.cpp \ |
| + SystemClock.cpp \ |
| + Timers.cpp \ |
| + Unicode.cpp \ |
| + VectorImpl.cpp \ |
| + Threads.cpp \ |
| + String8.cpp \ |
| + String16.cpp \ |
| + Static.cpp \ |
| + CallStack.cpp \ |
| + Printer.cpp |
| + |
| +libutils_la_CPPFLAGS = \ |
| + -I$(top_srcdir)/external/safe-iop/include \ |
| + -I$(top_srcdir)/system/core/include |
| + |
| +libutils_la_CXXFLAGS = -std=gnu++14 |
| + |
| +libutils_la_LIBADD = $(top_builddir)/system/core/liblog/liblog.la |