diff --git a/tests/msgq/1.0/ITestMsgQ.hal b/tests/msgq/1.0/ITestMsgQ.hal
index 1aeb26e..93a6e8a 100644
--- a/tests/msgq/1.0/ITestMsgQ.hal
+++ b/tests/msgq/1.0/ITestMsgQ.hal
@@ -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);
-  requestWrite (int32_t count) generates (int32_t ret);
-  requestRead(int32_t count) generates (int32_t ret);
+    /*
+     * 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);
 };
