diff options
author | 2020-11-09 18:52:25 +0000 | |
---|---|---|
committer | 2020-11-09 18:52:25 +0000 | |
commit | b40b64d0f8740dfa06da50b56ed48bf496dee4f8 (patch) | |
tree | 117c7dc191c50960350370525edef7c04d41b2a5 /libs | |
parent | e56cd511efc9452c377f0ab860b146031c1e5b0f (diff) | |
parent | 8afad293709591aca15f48fdd221c2b3a6bf579d (diff) |
Merge "libbinder_ndk: separate libbinder plat headers"
Diffstat (limited to 'libs')
6 files changed, 71 insertions, 75 deletions
diff --git a/libs/binder/ndk/ibinder.cpp b/libs/binder/ndk/ibinder.cpp index 4610ba9b11..d35debc88c 100644 --- a/libs/binder/ndk/ibinder.cpp +++ b/libs/binder/ndk/ibinder.cpp @@ -14,9 +14,9 @@ * limitations under the License. */ -#include <android/binder_context.h> #include <android/binder_ibinder.h> #include <android/binder_ibinder_platform.h> +#include <android/binder_libbinder.h> #include "ibinder_internal.h" #include <android/binder_stability.h> diff --git a/libs/binder/ndk/include_platform/android/binder_context.h b/libs/binder/ndk/include_platform/android/binder_context.h deleted file mode 100644 index a99d5559ee..0000000000 --- a/libs/binder/ndk/include_platform/android/binder_context.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2020 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include <android/binder_ibinder.h> - -__BEGIN_DECLS - -/** - * Makes calls to AIBinder_getCallingSid work if the kernel supports it. This - * must be called on a local binder server before it is sent out to any othe - * process. If this is a remote binder, it will abort. If the kernel doesn't - * support this feature, you'll always get null from AIBinder_getCallingSid. - * - * \param binder local server binder to request security contexts on - */ -__attribute__((weak)) void AIBinder_setRequestingSid(AIBinder* binder, bool requestingSid) - __INTRODUCED_IN(31); - -/** - * Returns the selinux context of the callee. - * - * In order for this to work, the following conditions must be met: - * - The kernel must be new enough to support this feature. - * - The server must have called AIBinder_setRequestingSid. - * - The callee must be a remote process. - * - * \return security context or null if unavailable. The lifetime of this context - * is the lifetime of the transaction. - */ -__attribute__((weak, warn_unused_result)) const char* AIBinder_getCallingSid() __INTRODUCED_IN(31); - -__END_DECLS diff --git a/libs/binder/ndk/include_platform/android/binder_ibinder_platform.h b/libs/binder/ndk/include_platform/android/binder_ibinder_platform.h index 2af65cf1ff..a99d5559ee 100644 --- a/libs/binder/ndk/include_platform/android/binder_ibinder_platform.h +++ b/libs/binder/ndk/include_platform/android/binder_ibinder_platform.h @@ -16,39 +16,32 @@ #pragma once -// binder_context.h used to be part of this header and is included for backwards -// compatibility. -#include <android/binder_context.h> - -#if !defined(__ANDROID_APEX__) && !defined(__ANDROID_VNDK__) - #include <android/binder_ibinder.h> -#include <binder/IBinder.h> + +__BEGIN_DECLS /** - * Get libbinder version of binder from AIBinder. - * - * WARNING: function calls to a local object on the other side of this function - * will parcel. When converting between binders, keep in mind it is not as - * efficient as a direct function call. + * Makes calls to AIBinder_getCallingSid work if the kernel supports it. This + * must be called on a local binder server before it is sent out to any othe + * process. If this is a remote binder, it will abort. If the kernel doesn't + * support this feature, you'll always get null from AIBinder_getCallingSid. * - * \param binder binder with ownership retained by the client - * \return platform binder object + * \param binder local server binder to request security contexts on */ -android::sp<android::IBinder> AIBinder_toPlatformBinder(AIBinder* binder); +__attribute__((weak)) void AIBinder_setRequestingSid(AIBinder* binder, bool requestingSid) + __INTRODUCED_IN(31); /** - * Get libbinder_ndk version of binder from platform binder. + * Returns the selinux context of the callee. * - * WARNING: function calls to a local object on the other side of this function - * will parcel. When converting between binders, keep in mind it is not as - * efficient as a direct function call. + * In order for this to work, the following conditions must be met: + * - The kernel must be new enough to support this feature. + * - The server must have called AIBinder_setRequestingSid. + * - The callee must be a remote process. * - * \param binder platform binder which may be from anywhere (doesn't have to be - * created with libbinder_ndK) - * \return binder with one reference count of ownership given to the client. See - * AIBinder_decStrong + * \return security context or null if unavailable. The lifetime of this context + * is the lifetime of the transaction. */ -AIBinder* AIBinder_fromPlatformBinder(const android::sp<android::IBinder>& binder); +__attribute__((weak, warn_unused_result)) const char* AIBinder_getCallingSid() __INTRODUCED_IN(31); -#endif +__END_DECLS diff --git a/libs/binder/ndk/include_platform/android/binder_libbinder.h b/libs/binder/ndk/include_platform/android/binder_libbinder.h new file mode 100644 index 0000000000..f0c00e87e6 --- /dev/null +++ b/libs/binder/ndk/include_platform/android/binder_libbinder.h @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2020 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#pragma once + +#if !defined(__ANDROID_APEX__) && !defined(__ANDROID_VNDK__) + +#include <android/binder_ibinder.h> +#include <binder/IBinder.h> + +/** + * Get libbinder version of binder from AIBinder. + * + * WARNING: function calls to a local object on the other side of this function + * will parcel. When converting between binders, keep in mind it is not as + * efficient as a direct function call. + * + * \param binder binder with ownership retained by the client + * \return platform binder object + */ +android::sp<android::IBinder> AIBinder_toPlatformBinder(AIBinder* binder); + +/** + * Get libbinder_ndk version of binder from platform binder. + * + * WARNING: function calls to a local object on the other side of this function + * will parcel. When converting between binders, keep in mind it is not as + * efficient as a direct function call. + * + * \param binder platform binder which may be from anywhere (doesn't have to be + * created with libbinder_ndK) + * \return binder with one reference count of ownership given to the client. See + * AIBinder_decStrong + */ +AIBinder* AIBinder_fromPlatformBinder(const android::sp<android::IBinder>& binder); + +#endif diff --git a/libs/binder/ndk/tests/libbinder_ndk_unit_test.cpp b/libs/binder/ndk/tests/libbinder_ndk_unit_test.cpp index 160b9f2d73..f84d9d3746 100644 --- a/libs/binder/ndk/tests/libbinder_ndk_unit_test.cpp +++ b/libs/binder/ndk/tests/libbinder_ndk_unit_test.cpp @@ -18,9 +18,9 @@ #include <aidl/BnBinderNdkUnitTest.h> #include <aidl/BnEmpty.h> #include <android-base/logging.h> -#include <android/binder_context.h> #include <android/binder_ibinder_jni.h> #include <android/binder_ibinder_platform.h> +#include <android/binder_libbinder.h> #include <android/binder_manager.h> #include <android/binder_process.h> #include <gtest/gtest.h> diff --git a/libs/binder/rust/sys/BinderBindings.hpp b/libs/binder/rust/sys/BinderBindings.hpp index 303f4a5a86..3f20a4ff09 100644 --- a/libs/binder/rust/sys/BinderBindings.hpp +++ b/libs/binder/rust/sys/BinderBindings.hpp @@ -14,8 +14,8 @@ * limitations under the License. */ -#include <android/binder_context.h> #include <android/binder_ibinder.h> +#include <android/binder_ibinder_platform.h> #include <android/binder_manager.h> #include <android/binder_parcel.h> #include <android/binder_process.h> |