diff --git a/tests/msgq/1.0/ITestMsgQ.hal b/tests/msgq/1.0/ITestMsgQ.hal index 350e26d96e..112270a9e8 100644 --- a/tests/msgq/1.0/ITestMsgQ.hal +++ b/tests/msgq/1.0/ITestMsgQ.hal @@ -24,14 +24,14 @@ interface ITestMsgQ { /** * This method requests the service to set up a synchronous read/write - * wait-free FMQ with the client as reader. + * wait-free FMQ using the input descriptor with the client as reader. + * + * @param mqDesc This structure describes the FMQ that was set up by the + * client. Server uses this descriptor to set up a FMQ object at its end. * * @return ret True if the setup is successful. - * @return mqDesc This structure describes the FMQ that was - * set up by the service. Client can use it to set up the FMQ at its end. */ - configureFmqSyncReadWrite() - generates(bool ret, fmq_sync mqDesc); + configureFmqSyncReadWrite(fmq_sync mqDesc) generates(bool ret); /** * This method requests the service to return an MQDescriptor to diff --git a/tests/msgq/1.0/default/TestMsgQ.cpp b/tests/msgq/1.0/default/TestMsgQ.cpp index 6fd4fc6bb0..ba665c9204 100644 --- a/tests/msgq/1.0/default/TestMsgQ.cpp +++ b/tests/msgq/1.0/default/TestMsgQ.cpp @@ -24,24 +24,21 @@ namespace V1_0 { namespace implementation { // Methods from ::android::hardware::tests::msgq::V1_0::ITestMsgQ follow. -Return TestMsgQ::configureFmqSyncReadWrite(configureFmqSyncReadWrite_cb _hidl_cb) { - static constexpr size_t kNumElementsInQueue = 1024; - mFmqSynchronized.reset(new (std::nothrow) MessageQueueSync( - kNumElementsInQueue, true /* configureEventFlagWord */)); +Return TestMsgQ::configureFmqSyncReadWrite( + const android::hardware::MQDescriptorSync& mqDesc) { + mFmqSynchronized.reset(new (std::nothrow) MessageQueueSync(mqDesc)); if ((mFmqSynchronized == nullptr) || (mFmqSynchronized->isValid() == false)) { - _hidl_cb(false /* ret */, MessageQueueSync::Descriptor()); - } else { - /* - * Initialize the EventFlag word with bit FMQ_NOT_FULL. - */ - auto evFlagWordPtr = mFmqSynchronized->getEventFlagWord(); - if (evFlagWordPtr != nullptr) { - std::atomic_init(evFlagWordPtr, - static_cast(ITestMsgQ::EventFlagBits::FMQ_NOT_FULL)); - } - _hidl_cb(true /* ret */, *mFmqSynchronized->getDesc()); + return false; } - return Void(); + /* + * Initialize the EventFlag word with bit FMQ_NOT_FULL. + */ + auto evFlagWordPtr = mFmqSynchronized->getEventFlagWord(); + if (evFlagWordPtr != nullptr) { + std::atomic_init(evFlagWordPtr, + static_cast(ITestMsgQ::EventFlagBits::FMQ_NOT_FULL)); + } + return true; } Return TestMsgQ::getFmqUnsyncWrite(bool configureFmq, getFmqUnsyncWrite_cb _hidl_cb) { diff --git a/tests/msgq/1.0/default/TestMsgQ.h b/tests/msgq/1.0/default/TestMsgQ.h index 86e4ac4029..f9fcddd4bc 100644 --- a/tests/msgq/1.0/default/TestMsgQ.h +++ b/tests/msgq/1.0/default/TestMsgQ.h @@ -55,7 +55,7 @@ struct TestMsgQ : public ITestMsgQ { TestMsgQ() : mFmqSynchronized(nullptr), mFmqUnsynchronized(nullptr) {} // Methods from ::android::hardware::tests::msgq::V1_0::ITestMsgQ follow. - Return configureFmqSyncReadWrite(configureFmqSyncReadWrite_cb _hidl_cb) override; + Return configureFmqSyncReadWrite(const MQDescriptorSync& mqDesc) override; Return getFmqUnsyncWrite(bool configureFmq, getFmqUnsyncWrite_cb _hidl_cb) override; Return requestWriteFmqSync(int32_t count) override; Return requestReadFmqSync(int32_t count) override;