diff options
author | Devin Moore <devinmoore@google.com> | 2021-01-18 16:11:20 -0800 |
---|---|---|
committer | Devin Moore <devinmoore@google.com> | 2021-01-22 13:30:19 -0800 |
commit | 17365e56a26fbc10aba10e7e0141d0c4f4937614 (patch) | |
tree | 726762f5751c09b074ae489b4cf3d2a0b28ae40d /tests/msgq/1.0/default/TestMsgQ.cpp | |
parent | 600b7775ef945b70b211d67bf2a3285a0071c252 (diff) |
Use NativeHandle in MQDescriptor instead of ParcelFileDescriptor
android.hardware.common.fmq.MQDescriptor needs to handle multiple file
descriptors, so changing from ParcelFileDescriptor to
android.hardware.common.NativeHandle.
android.hardware.common.fmq.GrantorDescriptor needs to keep track of the
fdIndex as well.
Bug: 176912570
Test: atest fmq_unit_tests fmq_test
Change-Id: I15f2393e6c420ae5394322b28c4523fa80f7dcc7
Diffstat (limited to 'tests/msgq/1.0/default/TestMsgQ.cpp')
-rw-r--r-- | tests/msgq/1.0/default/TestMsgQ.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/tests/msgq/1.0/default/TestMsgQ.cpp b/tests/msgq/1.0/default/TestMsgQ.cpp index 44737378b3..4726ffe5e9 100644 --- a/tests/msgq/1.0/default/TestMsgQ.cpp +++ b/tests/msgq/1.0/default/TestMsgQ.cpp @@ -41,10 +41,19 @@ Return<bool> TestMsgQ::configureFmqSyncReadWrite( return true; } -Return<void> TestMsgQ::getFmqUnsyncWrite(bool configureFmq, getFmqUnsyncWrite_cb _hidl_cb) { +Return<void> TestMsgQ::getFmqUnsyncWrite(bool configureFmq, bool userFd, + getFmqUnsyncWrite_cb _hidl_cb) { if (configureFmq) { static constexpr size_t kNumElementsInQueue = 1024; - mFmqUnsynchronized.reset(new (std::nothrow) MessageQueueUnsync(kNumElementsInQueue)); + static constexpr size_t kElementSizeBytes = sizeof(int32_t); + android::base::unique_fd ringbufferFd; + if (userFd) { + ringbufferFd.reset( + ::ashmem_create_region("UnsyncWrite", kNumElementsInQueue * kElementSizeBytes)); + } + mFmqUnsynchronized.reset(new (std::nothrow) MessageQueueUnsync( + kNumElementsInQueue, false, std::move(ringbufferFd), + kNumElementsInQueue * kElementSizeBytes)); } if ((mFmqUnsynchronized == nullptr) || (mFmqUnsynchronized->isValid() == false)) { |