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,