feat: asynchronized SATA IO
[lunaix-os.git] / lunaix-os / includes / lunaix / ds / llist.h
index 6129ca05a83bd015b20058c8c9ac1bd68276e69c..a4797c34d3f889ab9c0e970ed693607ee7953fbe 100644 (file)
@@ -67,6 +67,12 @@ llist_empty(struct llist_header* elem)
     return elem->next == elem && elem->prev == elem;
 }
 
+#define DEFINE_LLIST(name)                                                     \
+    struct llist_header name = (struct llist_header)                           \
+    {                                                                          \
+        .prev = &name, .next = &name                                           \
+    }
+
 /**
  * list_entry - get the struct for this entry
  * @ptr:       the &struct list_head pointer.
@@ -93,8 +99,10 @@ struct hlist_node
 };
 
 static inline void
-hlist_del(struct hlist_node* node)
+hlist_delete(struct hlist_node* node)
 {
+    if (!node->pprev)
+        return;
     *node->pprev = node->next;
     node->next = 0;
     node->pprev = 0;