-#define PTHREAD_XMQ_FRONT true
-#define PTHREAD_XMQ_BACK false
-
-#define PTHREAD_XMQ_RECV false
-#define PTHREAD_XMQ_PEEK true
+//Flags
+typedef uint8_t pthread_mq_flags_t;
+#define PTHREAD_XMQ_NONE 0 ///< No flags specified (default behaviour)
+#define PTHREAD_XMQ_FRONT 1 ///< Send to front of the queue (scheduled for next receive)
+#define PTHREAD_XMQ_BACK PTHREAD_XMQ_NONE ///< Send to back of the queue (default)
+#define PTHREAD_XMQ_PEEK 2 ///< Only peek, do not remove received item
+#define PTHREAD_XMQ_RECV PTHREAD_XMQ_NONE ///< Remove received item from queue (default)
+#define PTHREAD_XMQ_OVERW 4 ///< Overwrite item if queue full