Add comments to queue module.
authorBen Pfaff <blp@nicira.com>
Fri, 28 Mar 2008 22:21:43 +0000 (15:21 -0700)
committerBen Pfaff <blp@nicira.com>
Tue, 1 Apr 2008 16:52:59 +0000 (09:52 -0700)
include/queue.h
lib/queue.c

index 86eb603a7152308852612551bd6b17d5ff4c5d05..c2d0f22d13b60d4e4ba6d07c6085a22d11f453b1 100644 (file)
@@ -36,9 +36,9 @@
 
 /* Packet queue. */
 struct queue {
-    int n;
-    struct buffer *head;
-    struct buffer *tail;
+    int n;                      /* Number of queued packets. */
+    struct buffer *head;        /* First queued packet, null if n == 0. */
+    struct buffer *tail;        /* Last queued packet, null if n == 0. */
 };
 
 void queue_init(struct queue *);
index 49b9d808d305967d49f5752d384e211a6b845ae1..586ae52a00e95b09f7db6f3c6fb0ec48f1a05c64 100644 (file)
@@ -37,6 +37,7 @@
 
 static void check_queue(struct queue *q);
 
+/* Initializes 'q' as an empty packet queue. */
 void
 queue_init(struct queue *q)
 {
@@ -45,6 +46,7 @@ queue_init(struct queue *q)
     q->tail = NULL;
 }
 
+/* Destroys 'q' and all of the packets that it contains. */
 void
 queue_destroy(struct queue *q)
 {
@@ -55,6 +57,7 @@ queue_destroy(struct queue *q)
     }
 }
 
+/* Removes and destroys all of the packets in 'q', rendering it empty. */
 void
 queue_clear(struct queue *q)
 {
@@ -62,6 +65,12 @@ queue_clear(struct queue *q)
     queue_init(q);
 }
 
+/* Advances the first packet in 'q' from 'q->head' to 'next', which should be
+ * the second packet in the queue.
+ *
+ * The odd, unsafe interface here allows the first packet in the queue to be
+ * passed to a function for possible consumption (and destruction) and only
+ * dropped from the queue if that function actually accepts it. */
 void
 queue_advance_head(struct queue *q, struct buffer *next)
 {
@@ -74,6 +83,7 @@ queue_advance_head(struct queue *q, struct buffer *next)
     q->n--;
 }
 
+/* Appends 'b' to the tail of 'q'. */
 void
 queue_push_tail(struct queue *q, struct buffer *b)
 {
@@ -90,6 +100,7 @@ queue_push_tail(struct queue *q, struct buffer *b)
     check_queue(q);
 }
 
+/* Checks the internal integrity of 'q'.  For use in debugging. */
 static void
 check_queue(struct queue *q)
 {