feat: kprintf now goes into dedicated pseudo-dev rather than flooding the framebuffer
[lunaix-os.git] / lunaix-os / kernel / kprint / kp_records.h
diff --git a/lunaix-os/kernel/kprint/kp_records.h b/lunaix-os/kernel/kprint/kp_records.h
new file mode 100644 (file)
index 0000000..bf300f9
--- /dev/null
@@ -0,0 +1,34 @@
+#ifndef __LUNAIX_KP_RECORDS_H
+#define __LUNAIX_KP_RECORDS_H
+
+#include <lunaix/ds/llist.h>
+#include <lunaix/time.h>
+
+struct kp_entry
+{
+    struct llist_header ents;
+    int lvl;
+    time_t time;
+    char* content;
+};
+#define KP_ENT_SIZE sizeof(struct kp_entry)
+
+struct kp_records
+{
+    struct kp_entry kp_ents;
+
+    struct llist_header* kp_ent_wp;
+
+    int max_recs;
+    int cur_recs;
+    int log_lvl;
+};
+#define KP_RECS_SIZE sizeof(struct kp_records)
+
+struct kp_records*
+kp_rec_create(int max_recs);
+
+void
+kp_rec_put(struct kp_records*, int lvl, char* content, size_t len);
+
+#endif /* __LUNAIX_KP_RECORDS_H */