diff options
author | Richard Braun <rbraun@sceen.net> | 2017-02-08 23:14:56 +0100 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2017-02-08 23:14:56 +0100 |
commit | adbf67094c6a89d0aa34efe9894d0aded80d4ecc (patch) | |
tree | 91b23166a017f5d22706b73ee0d052e645bf7fe6 | |
parent | 628ff302ccec58d9a34d50894a5eb3d05826c342 (diff) |
plist: update API
-rw-r--r-- | plist.c | 4 | ||||
-rw-r--r-- | plist.h | 14 | ||||
-rw-r--r-- | test/test_plist.c | 3 |
3 files changed, 15 insertions, 6 deletions
@@ -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); @@ -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; } |