Add unsynchronized write flavor to MQDescriptor

Bug: 31223183
Test: Built and run existing unit tests and benchmarks
Change-Id: I39c1046c8df0502bddfaaf6c879095a56a5d4d4a
diff --git a/include/hidl/MQDescriptor.h b/include/hidl/MQDescriptor.h
index a3cfeb2..6e43749 100644
--- a/include/hidl/MQDescriptor.h
+++ b/include/hidl/MQDescriptor.h
@@ -40,7 +40,13 @@
    * FMQ. It is intended to be have a single reader and single writer.
    * Attempts to overflow/underflow returns a failure.
    */
-  kSynchronizedReadWrite = 0x01
+  kSynchronizedReadWrite = 0x01,
+  /*
+   * kUnsynchronizedWrite represents the flavor of FMQ where writes always
+   * succeed. This flavor allows one writer and many readers. A read operation
+   * can detect an overwrite and reset the read counter.
+   */
+  kUnsynchronizedWrite = 0x02
 };
 
 template <MQFlavor flavor>
@@ -96,6 +102,12 @@
  */
 using MQDescriptorSync = MQDescriptor<kSynchronizedReadWrite>;
 
+/*
+ * MQDescriptorUnsync will describe the unsynchronized write
+ * flavor of FMQ.
+ */
+using MQDescriptorUnsync = MQDescriptor<kUnsynchronizedWrite>;
+
 template<MQFlavor flavor>
 MQDescriptor<flavor>::MQDescriptor(
         const std::vector<GrantorDescriptor>& grantors,