libopkg: fix pkg_set_ptr() to properly set NULL pointers
[oweals/opkg-lede.git] / libopkg / active_list.h
index 79ab77d5fc9abb60a130f11b335d3847b54ff76b..e20a3380e4a05bf489ac29ebfcc35c20f225448b 100644 (file)
@@ -2,7 +2,7 @@
 
    Tick Chen <tick@openmoko.com>
 
-   Copyright (C) 2008 Openmoko Inc. 
+   Copyright (C) 2008 Openmoko Inc.
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
 #define ACTIVE_LIST_H
 
 #include "list.h"
+#include "pkg.h"
 
 struct active_list {
-    struct list_head node;
-    struct list_head depend;
-    struct active_list *depended;
+       struct list_head node;
+       struct list_head depend;
+       struct active_list *depended;
+       pkg_t *pkg;
 };
 
-struct active_list * active_list_next(struct active_list *head, struct active_list *ptr);
+struct active_list *active_list_head_new(void);
+void active_list_head_delete(struct active_list *);
 void active_list_init(struct active_list *ptr);
 void active_list_clear(struct active_list *head);
-void active_list_add_depend(struct active_list *node, struct active_list *depend);
+void active_list_add_depend(struct active_list *node,
+                           struct active_list *depend);
 void active_list_add(struct active_list *head, struct active_list *node);
+struct active_list *active_list_move_node(struct active_list *old_head,
+                                         struct active_list *new_head,
+                                         struct active_list *node);
+
+struct active_list *active_list_sort(struct active_list *head,
+                                    int (*compare_fcn_t) (const void *,
+                                                          const void *));
+
+struct active_list *active_list_next(struct active_list *head,
+                                    struct active_list *ptr);
+
+struct active_list *active_list_prev(struct active_list *head,
+                                    struct active_list *ptr);
 
 #endif