summaryrefslogtreecommitdiff
path: root/kernel/io/logger/base.h
diff options
context:
space:
mode:
authorSamuel Johnson <[email protected]>2025-07-01 10:33:05 -0400
committerSamuel Johnson <[email protected]>2025-07-01 10:33:05 -0400
commit571a656a6bd9b4b9d5c595c578d15ba79bb19ef7 (patch)
tree46f75b47f4edab4281de14ffa1c4a91a5a84f8f1 /kernel/io/logger/base.h
parent12fd3a91f138bf90520134682e38bf3b0341e660 (diff)
Add serial loggingHEADtrunkdev
Diffstat (limited to 'kernel/io/logger/base.h')
-rw-r--r--kernel/io/logger/base.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/kernel/io/logger/base.h b/kernel/io/logger/base.h
new file mode 100644
index 0000000..7aa9e2d
--- /dev/null
+++ b/kernel/io/logger/base.h
@@ -0,0 +1,31 @@
+#ifndef HOS_IO_BASE_H
+#define HOS_IO_BASE_H
+
+namespace hos::io
+{
+ enum log_level
+ {
+ DEBUG,
+ INFO,
+ WARN,
+ ERROR,
+ FATAL
+ };
+
+ /// Ah, the glorious CRTP...
+ template <typename concrete_logger>
+ class logger
+ {
+ public:
+ logger (enum log_level level);
+
+ void set_level (enum log_level level);
+ void write (enum log_level level, const char *message, ...);
+ protected:
+ char buffer[512];
+ private:
+ enum log_level level;
+ };
+}
+
+#endif