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);