summaryrefslogtreecommitdiff
path: root/include/mercury/kernel/bd
diff options
context:
space:
mode:
authorBenji Dial <benji@benjidial.net>2024-01-10 00:17:29 -0500
committerBenji Dial <benji@benjidial.net>2024-01-10 00:17:29 -0500
commit15e62510104bc0e2b9180b66e5845d985cac03cc (patch)
treefa950c29622823a825a523e63de610746a70cbe1 /include/mercury/kernel/bd
parentc2f48fb5df0981df1df23de2b277274f9fe75080 (diff)
downloadhilbert-os-15e62510104bc0e2b9180b66e5845d985cac03cc.tar.gz
partial (largely untested) memory block device and tar file system support
Diffstat (limited to 'include/mercury/kernel/bd')
-rw-r--r--include/mercury/kernel/bd/memory.hpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/include/mercury/kernel/bd/memory.hpp b/include/mercury/kernel/bd/memory.hpp
new file mode 100644
index 0000000..079abee
--- /dev/null
+++ b/include/mercury/kernel/bd/memory.hpp
@@ -0,0 +1,23 @@
+#ifndef MERCURY_KERNEL_BD_MEMORY_HPP
+#define MERCURY_KERNEL_BD_MEMORY_HPP
+
+#include <mercury/kernel/storage.hpp>
+
+namespace mercury::kernel::bd {
+
+ class memory : public storage::block_device {
+
+ private:
+ uint8_t *buffer;
+
+ public:
+ memory(void *buffer, size_t buffer_len);
+
+ storage::io_result read_blocks_no_cache(uint64_t start, uint64_t count, void *into) override;
+ storage::io_result write_blocks_no_cache(uint64_t start, uint64_t count, const void *from) override;
+
+ };
+
+}
+
+#endif