Merge "Adding AidlMQDescriptor and GrantorDescriptor"
This commit is contained in:
commit
f0fc3e4b8f
6 changed files with 142 additions and 6 deletions
|
@ -0,0 +1,25 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
|
||||
// edit this file. It looks like you are doing that because you have modified
|
||||
// an AIDL interface in a backward-incompatible way, e.g., deleting a function
|
||||
// from an interface or a field from a parcelable and it broke the build. That
|
||||
// breakage is intended.
|
||||
//
|
||||
// You must not make a backward incompatible changes to the AIDL files built
|
||||
// with the aidl_interface module type with versions property set. The module
|
||||
// type is used to build AIDL files in a way that they can be used across
|
||||
// independently updatable components of the system. If a device is shipped
|
||||
// with such a backward incompatible change, it has a high risk of breaking
|
||||
// later when a module using the interface is updated, e.g., Mainline modules.
|
||||
|
||||
package android.hardware.common;
|
||||
@VintfStability
|
||||
parcelable GrantorDescriptor {
|
||||
int flags;
|
||||
int fdIndex;
|
||||
int offset;
|
||||
long extent;
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
///////////////////////////////////////////////////////////////////////////////
|
||||
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
|
||||
// edit this file. It looks like you are doing that because you have modified
|
||||
// an AIDL interface in a backward-incompatible way, e.g., deleting a function
|
||||
// from an interface or a field from a parcelable and it broke the build. That
|
||||
// breakage is intended.
|
||||
//
|
||||
// You must not make a backward incompatible changes to the AIDL files built
|
||||
// with the aidl_interface module type with versions property set. The module
|
||||
// type is used to build AIDL files in a way that they can be used across
|
||||
// independently updatable components of the system. If a device is shipped
|
||||
// with such a backward incompatible change, it has a high risk of breaking
|
||||
// later when a module using the interface is updated, e.g., Mainline modules.
|
||||
|
||||
package android.hardware.common;
|
||||
@VintfStability
|
||||
parcelable MQDescriptor {
|
||||
android.hardware.common.GrantorDescriptor[] grantors;
|
||||
ParcelFileDescriptor fileDescriptor;
|
||||
int quantum;
|
||||
int flags;
|
||||
}
|
25
common/aidl/android/hardware/common/GrantorDescriptor.aidl
Normal file
25
common/aidl/android/hardware/common/GrantorDescriptor.aidl
Normal file
|
@ -0,0 +1,25 @@
|
|||
/*
|
||||
* Copyright 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.
|
||||
*/
|
||||
|
||||
package android.hardware.common;
|
||||
|
||||
@VintfStability
|
||||
parcelable GrantorDescriptor {
|
||||
int flags;
|
||||
int fdIndex;
|
||||
int offset;
|
||||
long extent;
|
||||
}
|
35
common/aidl/android/hardware/common/MQDescriptor.aidl
Normal file
35
common/aidl/android/hardware/common/MQDescriptor.aidl
Normal file
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Copyright 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.
|
||||
*/
|
||||
|
||||
package android.hardware.common;
|
||||
|
||||
import android.hardware.common.GrantorDescriptor;
|
||||
|
||||
@VintfStability
|
||||
parcelable MQDescriptor {
|
||||
/*
|
||||
* Describes each of the grantors for the message queue. They are used to
|
||||
* get the readptr, writeptr, dataptr, and the optional EventFlag word
|
||||
* for blocking operations in the shared memory.
|
||||
*/
|
||||
GrantorDescriptor[] grantors;
|
||||
/* File descriptor for shared memory used in the message queue */
|
||||
ParcelFileDescriptor fileDescriptor;
|
||||
/* Size of each item, T, in bytes */
|
||||
int quantum;
|
||||
/* EventFlag word for blocking operations */
|
||||
int flags;
|
||||
}
|
|
@ -19,7 +19,7 @@ cc_library {
|
|||
relative_install_path: "hw",
|
||||
srcs: [
|
||||
"TestMsgQ.cpp",
|
||||
"BenchmarkMsgQ.cpp"
|
||||
"BenchmarkMsgQ.cpp",
|
||||
],
|
||||
shared_libs: [
|
||||
"libbase",
|
||||
|
@ -34,7 +34,7 @@ cc_library {
|
|||
// libs should be used on device.
|
||||
static_libs: [
|
||||
"android.hardware.tests.msgq@1.0",
|
||||
]
|
||||
],
|
||||
}
|
||||
|
||||
cc_test {
|
||||
|
@ -49,7 +49,7 @@ cc_test {
|
|||
"libhidlbase",
|
||||
"liblog",
|
||||
"libutils",
|
||||
"android.hardware.tests.msgq@1.0"
|
||||
"android.hardware.tests.msgq@1.0",
|
||||
],
|
||||
test_suites: ["general-tests"],
|
||||
}
|
||||
|
@ -67,6 +67,7 @@ cc_test {
|
|||
"libhidlbase",
|
||||
"liblog",
|
||||
"libutils",
|
||||
"libbinder_ndk",
|
||||
],
|
||||
|
||||
// Allow dlsym'ing self for statically linked passthrough implementations
|
||||
|
@ -74,7 +75,14 @@ cc_test {
|
|||
|
||||
// These are static libs only for testing purposes and portability. Shared
|
||||
// libs should be used on device.
|
||||
static_libs: ["android.hardware.tests.msgq@1.0"],
|
||||
whole_static_libs: ["android.hardware.tests.msgq@1.0-impl"],
|
||||
static_libs: [
|
||||
"android.hardware.tests.msgq@1.0",
|
||||
"android.fmq.test-ndk_platform",
|
||||
"android.hardware.common-unstable-ndk_platform",
|
||||
],
|
||||
whole_static_libs: [
|
||||
"android.hardware.tests.msgq@1.0-impl",
|
||||
"android.fmq.test-impl",
|
||||
],
|
||||
test_suites: ["general-tests"],
|
||||
}
|
||||
|
|
|
@ -16,8 +16,14 @@
|
|||
|
||||
#define LOG_TAG "FMQ_UnitTests"
|
||||
|
||||
#include <TestAidlMsgQ.h>
|
||||
#include <android-base/logging.h>
|
||||
#include <android/binder_manager.h>
|
||||
#include <android/binder_process.h>
|
||||
#include <android/hardware/tests/msgq/1.0/ITestMsgQ.h>
|
||||
|
||||
using aidl::android::fmq::test::TestAidlMsgQ;
|
||||
|
||||
#include <hidl/LegacySupport.h>
|
||||
|
||||
using android::hardware::tests::msgq::V1_0::ITestMsgQ;
|
||||
|
@ -25,5 +31,17 @@ using android::hardware::defaultPassthroughServiceImplementation;
|
|||
|
||||
int main() {
|
||||
android::hardware::details::setTrebleTestingOverride(true);
|
||||
return defaultPassthroughServiceImplementation<ITestMsgQ>();
|
||||
// Register AIDL service
|
||||
ABinderProcess_startThreadPool();
|
||||
std::shared_ptr<TestAidlMsgQ> store = ndk::SharedRefBase::make<TestAidlMsgQ>();
|
||||
|
||||
const std::string instance = std::string() + TestAidlMsgQ::descriptor + "/default";
|
||||
LOG(INFO) << "instance: " << instance;
|
||||
CHECK(AServiceManager_addService(store->asBinder().get(), instance.c_str()) == STATUS_OK);
|
||||
|
||||
// Register HIDL service
|
||||
CHECK(defaultPassthroughServiceImplementation<ITestMsgQ>() == android::OK);
|
||||
ABinderProcess_joinThreadPool();
|
||||
|
||||
return EXIT_FAILURE; // should not reach
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue