Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9d9672cc authored by Hridya Valsaraju's avatar Hridya Valsaraju
Browse files

Use MQDescriptorSync instead of MQdescriptor in interface

Add comments and cleanup code as per HIDL style guidelines.

Bug: 31550963
Test: Built and ran existing FMQ unit tests and benchmarks.

Change-Id: I0a09ba1fcb520b46e5e6299b473c962c93d815eb
parent b0b5322e
Loading
Loading
Loading
Loading
+58 −7
Original line number Diff line number Diff line
@@ -17,11 +17,62 @@
package android.hardware.benchmarks.msgq@1.0;

interface IBenchmarkMsgQ {
  ConfigureClientInbox() generates (int32_t ret, MQDescriptor mq_desc_in );
  ConfigureClientOutbox() generates ( int32_t ret, MQDescriptor mq_desc_out );
  RequestWrite (int32_t count) generates (int32_t ret);
  RequestRead(int32_t count) generates (int32_t ret);
  BenchmarkPingPong(uint32_t numIter);
  BenchmarkServiceWriteClientRead(uint32_t numIter);
  SendTimeData(vec<int64_t> time_data);
    /*
     * This method requests the service to set up Synchronous read/write
     * wait-free FMQ with the client as reader.
     * @return ret Will be 0 if the setup is successful.
     * @return mqDescIn This structure describes the FMQ that was set up
     * by the service. Client can use it to set up the FMQ at its end.
     */
    configureClientInboxSyncReadWrite()
        generates(int32_t ret, MQDescriptorSync mqDescIn);

    /*
     * This method requests the service to set up Synchronous read/write
     * wait-free FMQ with the client as writer.
     * @return Will be 0 if the setup is successful.
     * @return mqDescOut This structure describes the FMQ that was set up
     * by the service. Client can use it to set up the FMQ at its end.
     */
    configureClientOutboxSyncReadWrite()
        generates(int32_t ret, MQDescriptorSync mqDescOut);

    /*
     * This method request the service to write into the FMQ.
     * @param count Number to messages to write.
     * @ret Number of messages succesfully written.
     */
    requestWrite(int32_t count) generates (int32_t ret);

    /*
     * This method request the service to read from the FMQ.
     * @param count Number to messages to read.
     * @ret Number of messages succesfully read.
     */
    requestRead(int32_t count) generates (int32_t ret);

    /*
     * This method kicks off a benchmarking experiment where
     * the client writes a message into its outbox FMQ,
     * the service reads it and writes it into the client's
     * inbox FMQ and the client reads the message.
     * The average time taken for the experiment is measured.
     * @param numIter The number of iterations to run the experiment.
     */
    benchmarkPingPong(uint32_t numIter);

    /*
     * This method kicks off a benchmarking experiment where
     * the service writes into an FMQ and the client reads the same.
     * @param numIter The number of iterations to run the experiment.
     */
    benchmarkServiceWriteClientRead(uint32_t numIter);

    /*
     * This method sends a vector of time duration(in ns).
     * @param timeData vector of time instants measured by client.
     * Each entry is the number of ns between the epoch and a
     * std::chrono::time_point.
     */
    sendTimeData(vec<int64_t> timeData);
};
+21 −3
Original line number Diff line number Diff line
@@ -17,9 +17,27 @@
package android.hardware.tests.msgq@1.0;

interface ITestMsgQ {
    /*
     * This method requests the service to set up Synchronous read/write
     * wait-free FMQ with the client as reader.
     * @return ret Will be 0 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(int32_t ret, MQDescriptorSync mqDesc);

  configure() generates (int32_t ret, MQDescriptor mq_desc);
    /*
     * This method request the service to write into the FMQ.
     * @param count Number to messages to write.
     * @ret Number of messages succesfully written.
     */
    requestWrite(int32_t count) generates(int32_t ret);
  requestRead(int32_t count) generates (int32_t ret);

    /*
     * This method request the service to read from the FMQ.
     * @param count Number to messages to read.
     * @ret Number of messages succesfully read.
     */
    requestRead(int32_t count) generates(int32_t ret);
};