BarryServer : Git

All the code for all my projects
// BarryServer : Git / Nucleus / commit / 74ee43c3216e1f3c3b33a2b6afe70b52b62e5465 / include / nucleus

// Related

Nucleus

Barry Ordered object lists 74ee43c (3 years, 2 months ago)
diff --git a/include/nucleus/object.h b/include/nucleus/object.h
index f7e9cf9..b86a86f 100644
--- a/include/nucleus/object.h
+++ b/include/nucleus/object.h
@@ -10,7 +10,7 @@ typedef struct ObjectType ObjectType;
 typedef struct Object Object;
 typedef struct ObjectList ObjectList;
 typedef struct Iterator Iterator;
-
+typedef int (*compare_callback_t)(void *, void *);
 typedef struct Task Task;
 
 /* Spinlock */
@@ -45,6 +45,12 @@ struct Object {
 };
 #define OBJECT_MAGIC 0x10032004
 
+/* Object List modes */
+enum ListMode {
+	LIST_NORMAL,
+	LIST_ORDERED,
+};
+
 void *get(void *addr);
 void put(void *addr);
 void *new(ObjectType *type);
@@ -53,7 +59,7 @@ refcount_t usage(void *addr);
 void lock(void *addr);
 void unlock(void *addr);
 
-ObjectList *create_list(ObjectType *type);
+ObjectList *create_list(ObjectType *type, enum ListMode mode, ...);
 void destroy_list(ObjectList *list);
 void add(ObjectList *list, void *addr);
 void remove(ObjectList *list, void *addr);