diff options
| author | Lukas Oesch <lukasoesch20@gmail.com> | 2026-03-07 17:04:24 +0100 |
|---|---|---|
| committer | Lukas Oesch <lukasoesch20@gmail.com> | 2026-03-17 16:42:50 +0100 |
| commit | 9ae5a230b1cd1f842c1a7c64392a0bccdba01a2d (patch) | |
| tree | 28cb234452bc694521ecd06557cbb79b9ee03b66 /kernel/devices/include | |
| parent | 2f4001cdb1f528d8a0d255d81ac3a8b9aa522fac (diff) | |
| download | teachos-9ae5a230b1cd1f842c1a7c64392a0bccdba01a2d.tar.xz teachos-9ae5a230b1cd1f842c1a7c64392a0bccdba01a2d.zip | |
implement read and write bytes from device
Diffstat (limited to 'kernel/devices/include')
| -rw-r--r-- | kernel/devices/include/devices/block_device.hpp | 22 | ||||
| -rw-r--r-- | kernel/devices/include/devices/device.hpp | 9 |
2 files changed, 31 insertions, 0 deletions
diff --git a/kernel/devices/include/devices/block_device.hpp b/kernel/devices/include/devices/block_device.hpp index 78a2606..9bca53f 100644 --- a/kernel/devices/include/devices/block_device.hpp +++ b/kernel/devices/include/devices/block_device.hpp @@ -46,6 +46,28 @@ namespace devices */ virtual auto write_block(size_t block_index, void const * buffer) -> void = 0; + /** + * @brief Return logical block size in bytes. + * @return One logical block size in bytes. + */ + auto block_size() const -> size_t; + + /** + * @brief Return device capacity in bytes. + * @return Total number of addressable bytes. + */ + auto capacity() const -> size_t; + + /** + * @brief Override to identify block devices. + * @return true if this device is a block device, false otherwise. + */ + + auto is_block_device() const -> bool override + { + return true; + } + protected: /** * @brief Information describing the transfer window for one block index. diff --git a/kernel/devices/include/devices/device.hpp b/kernel/devices/include/devices/device.hpp index cbf77c2..7f9f9e1 100644 --- a/kernel/devices/include/devices/device.hpp +++ b/kernel/devices/include/devices/device.hpp @@ -34,6 +34,15 @@ namespace devices */ auto minor() const -> size_t; + /** + * @brief Check if the device is a block device. + * @return true if this device is a block device, false otherwise. + */ + virtual auto is_block_device() const -> bool + { + return false; + } + private: size_t m_major; size_t m_minor; |
