diff options
| -rw-r--r-- | core/java/android/os/HidlSupport.java | 5 | ||||
| -rw-r--r-- | core/jni/Android.bp | 1 | ||||
| -rw-r--r-- | core/jni/AndroidRuntime.cpp | 2 | ||||
| -rw-r--r-- | core/jni/android_os_HidlSupport.cpp | 38 |
4 files changed, 46 insertions, 0 deletions
diff --git a/core/java/android/os/HidlSupport.java b/core/java/android/os/HidlSupport.java index 3544ea1e03e3..a080c8dcbcc5 100644 --- a/core/java/android/os/HidlSupport.java +++ b/core/java/android/os/HidlSupport.java @@ -179,4 +179,9 @@ public class HidlSupport { } return Objects.equals(lft.asBinder(), ((IHwInterface) rgt).asBinder()); } + + /** + * Return PID of process if sharable to clients. + */ + public static native int getPidIfSharable(); } diff --git a/core/jni/Android.bp b/core/jni/Android.bp index bc86dddd956f..ec516594eefa 100644 --- a/core/jni/Android.bp +++ b/core/jni/Android.bp @@ -77,6 +77,7 @@ cc_library_shared { "android_text_StaticLayout.cpp", "android_os_Debug.cpp", "android_os_GraphicsEnvironment.cpp", + "android_os_HidlSupport.cpp", "android_os_HwBinder.cpp", "android_os_HwBlob.cpp", "android_os_HwParcel.cpp", diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp index 8b6fc59758e4..6bc6f6355bc2 100644 --- a/core/jni/AndroidRuntime.cpp +++ b/core/jni/AndroidRuntime.cpp @@ -154,6 +154,7 @@ extern int register_android_database_SQLiteDebug(JNIEnv* env); extern int register_android_nio_utils(JNIEnv* env); extern int register_android_os_Debug(JNIEnv* env); extern int register_android_os_GraphicsEnvironment(JNIEnv* env); +extern int register_android_os_HidlSupport(JNIEnv* env); extern int register_android_os_HwBinder(JNIEnv *env); extern int register_android_os_HwBlob(JNIEnv *env); extern int register_android_os_HwParcel(JNIEnv *env); @@ -1325,6 +1326,7 @@ static const RegJNIRec gRegJNI[] = { REG_JNI(register_android_os_SystemProperties), REG_JNI(register_android_os_Binder), REG_JNI(register_android_os_Parcel), + REG_JNI(register_android_os_HidlSupport), REG_JNI(register_android_os_HwBinder), REG_JNI(register_android_os_HwBlob), REG_JNI(register_android_os_HwParcel), diff --git a/core/jni/android_os_HidlSupport.cpp b/core/jni/android_os_HidlSupport.cpp new file mode 100644 index 000000000000..e3602d8f5c72 --- /dev/null +++ b/core/jni/android_os_HidlSupport.cpp @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2017 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. + */ + +#include <hidl/HidlTransportSupport.h> +#include <nativehelper/JNIHelp.h> + +#include "core_jni_helpers.h" + +namespace android { +static jint android_os_HidlSupport_getPidIfSharable(JNIEnv*, jclass) { + return android::hardware::details::getPidIfSharable(); +} + +static const JNINativeMethod gHidlSupportMethods[] = { + {"getPidIfSharable", "()I", (void*)android_os_HidlSupport_getPidIfSharable}, +}; + +const char* const kHidlSupportPathName = "android/os/HidlSupport"; + +int register_android_os_HidlSupport(JNIEnv* env) +{ + return RegisterMethodsOrDie(env, kHidlSupportPathName, gHidlSupportMethods, NELEM(gHidlSupportMethods)); +} + +} // namespace android |