diff options
author | Christian Cunningham <cc@localhost> | 2021-12-30 20:50:44 -0800 |
---|---|---|
committer | Christian Cunningham <cc@localhost> | 2021-12-30 20:50:44 -0800 |
commit | e15d41a5619c41f3440369e625d6d96921718221 (patch) | |
tree | 1291a6f4cb964d7143ab63626bc03ebefaff484b /src/lib/ll.h | |
parent | 104c6fdd6b217b06183df7007882afa9183688bb (diff) |
Added Data Structures
Added basic scheduling
TODO: Preserve registers for context switch
Diffstat (limited to 'src/lib/ll.h')
-rw-r--r-- | src/lib/ll.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/lib/ll.h b/src/lib/ll.h new file mode 100644 index 0000000..4a11620 --- /dev/null +++ b/src/lib/ll.h @@ -0,0 +1,24 @@ +#ifndef LIB_LL_H +#define LIB_LL_H + +struct LL { + struct LL* prev; + struct LL* next; + void* data; +}; + +struct LL* new(void* val); +void push(struct LL* l, void* val); +void remove(struct LL* l, unsigned long idx); + +#define showl(L, TYPE) { \ + struct LL* t = L; \ + do { \ + uart_hex(*(TYPE*)t->data); \ + t = t->next; \ + if (t != l) \ + uart_char(' '); \ + } while (t != l); \ +} + +#endif |