#include "devices/storage/RAMDisk/RAMDiskDevice.hpp" #include "kapi/memory.hpp" #include "kapi/system.hpp" #include #include namespace devices::storage::ram_disk { ram_disk_device::ram_disk_device(kapi::memory::linear_address data_start, size_t data_size) : m_data_start(data_start) , m_data_size(data_size) {} auto ram_disk_device::read_block(size_t block_index, void * /*buffer*/) const -> void { // if (buffer == nullptr) // { // kapi::system::panic("[RAM DISK DEVICE] read_block called with null buffer."); // } auto const offset = block_index * block_size; if (offset + block_size > m_data_size) // TODO BA-FS26 really correct, what if block_size doesn't divide m_data_size? { kapi::system::panic("[RAM DISK DEVICE] read_block out of bounds."); } auto const source = static_cast(m_data_start) + offset; for (size_t i = 0; i < block_size; ++i) { kstd::println("address: {}, value: {}", source + i, std::to_integer(*(source + i))); } // std::memcpy(buffer, source, block_size); } } // namespace devices::storage::ram_disk