aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drd/drd.h21
1 files changed, 17 insertions, 4 deletions
diff --git a/drd/drd.h b/drd/drd.h
index 8e1e858f0..499d246a2 100644
--- a/drd/drd.h
+++ b/drd/drd.h
@@ -174,16 +174,29 @@
#define ANNOTATE_RWLOCK_RELEASED(rwlock, is_w) \
DRDCL_(annotate_rwlock)(rwlock, 3, is_w)
-/** @todo Implement this annotation. */
+/**
+ * Tell DRD that a FIFO queue has been created. The abbreviation PCQ stands for
+ * <em>producer-consumer</em>.
+ */
#define ANNOTATE_PCQ_CREATE(pcq) do { } while(0)
-/** @todo Implement this annotation. */
+/** Tell DRD that a FIFO queue has been destroyed. */
#define ANNOTATE_PCQ_DESTROY(pcq) do { } while(0)
-/** @todo Implement this annotation. */
+/**
+ * Tell DRD that an element has been added to the FIFO queue at address pcq.
+ */
#define ANNOTATE_PCQ_PUT(pcq) do { } while(0)
-/** @todo Implement this annotation. */
+/**
+ * Tell DRD that an element has been removed from the FIFO queue at address pcq,
+ * and that DRD should insert a happens-before relationship between the memory
+ * accesses that occurred before the corresponding ANNOTATE_PCQ_PUT(pcq)
+ * annotation and the memory accesses after this annotation. Correspondence
+ * between PUT and GET annotations happens in FIFO order. Since locking
+ * of the queue is needed anyway to add elements to or to remove elements from
+ * the queue, for DRD all four FIFO annotations are defined as no-ops.
+ */
#define ANNOTATE_PCQ_GET(pcq) do { } while(0)
/**