summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-02-08 23:14:56 +0100
committerRichard Braun <rbraun@sceen.net>2017-02-08 23:14:56 +0100
commitadbf67094c6a89d0aa34efe9894d0aded80d4ecc (patch)
tree91b23166a017f5d22706b73ee0d052e645bf7fe6
parent628ff302ccec58d9a34d50894a5eb3d05826c342 (diff)
plist: update API
-rw-r--r--plist.c4
-rw-r--r--plist.h14
-rw-r--r--test/test_plist.c3
3 files changed, 15 insertions, 6 deletions
diff --git a/plist.c b/plist.c
index 4da76d1..501310d 100644
--- a/plist.c
+++ b/plist.c
@@ -31,12 +31,10 @@
#include "plist.h"
void
-plist_add(struct plist *plist, struct plist_node *pnode, unsigned int priority)
+plist_add(struct plist *plist, struct plist_node *pnode)
{
struct plist_node *next;
- pnode->priority = priority;
-
if (plist_empty(plist)) {
list_insert_head(&plist->list, &pnode->node);
list_insert_head(&plist->prio_list, &pnode->prio_node);
diff --git a/plist.h b/plist.h
index 3839e4a..c6f93c1 100644
--- a/plist.h
+++ b/plist.h
@@ -99,6 +99,15 @@ plist_node_init(struct plist_node *pnode, unsigned int priority)
}
/*
+ * Return the priority associated with a node.
+ */
+static inline unsigned int
+plist_node_priority(const struct plist_node *pnode)
+{
+ return pnode->priority;
+}
+
+/*
* Return true if pnode is in no priority lists.
*/
static inline bool
@@ -203,9 +212,10 @@ plist_singular(const struct plist *plist)
/*
* Add a node to a priority list.
+ *
+ * The node must be initialized before calling this function.
*/
-void plist_add(struct plist *plist, struct plist_node *pnode,
- unsigned int priority);
+void plist_add(struct plist *plist, struct plist_node *pnode);
/*
* Remove a node from a priority list.
diff --git a/test/test_plist.c b/test/test_plist.c
index 94a27d6..672ee69 100644
--- a/test/test_plist.c
+++ b/test/test_plist.c
@@ -57,8 +57,9 @@ add_obj(struct plist *list, unsigned int priority)
}
obj->priority = priority;
+ plist_node_init(&obj->node, priority);
printf("add: %p:%u\n", obj, obj->priority);
- plist_add(list, &obj->node, priority);
+ plist_add(list, &obj->node);
return obj;
}