diff options
| author | Richard Qin <richard.qin.x@gmail.com> | 2026-01-02 00:47:16 +0800 |
|---|---|---|
| committer | Richard Qin <richard.qin.x@gmail.com> | 2026-01-02 00:58:45 +0800 |
| commit | d8eaa13f2efc1eeca4e5f230d5a2d535aaf27338 (patch) | |
| tree | 6ca02e2a2d1b1121620431059e322724a3c94a33 /src/drivers | |
| parent | 2dde56422dcfb94affee2baffc8d240ad16ad4b2 (diff) | |
| download | lume-d8eaa13f2efc1eeca4e5f230d5a2d535aaf27338.tar.gz lume-d8eaa13f2efc1eeca4e5f230d5a2d535aaf27338.tar.xz | |
dev(file-system): establish VFS and Read-only FAT32 File System
Diffstat (limited to 'src/drivers')
| -rw-r--r-- | src/drivers/virtio_dist.cc | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/drivers/virtio_dist.cc b/src/drivers/virtio_dist.cc index 99d100f..9c981d4 100644 --- a/src/drivers/virtio_dist.cc +++ b/src/drivers/virtio_dist.cc @@ -5,6 +5,7 @@ #include "lib/string.h" #include "drivers/uart.h" #include "kernel/proc.h" +#include "kernel/buf.h" static uint64 virtio_base = 0x10001000; @@ -335,4 +336,39 @@ namespace VirtIO PMM::free_page(buf); } + + void test_bio() + { + Drivers::uart_puts(ANSI_BLUE "[Bio] Starting Buffer Cache Test...\n" ANSI_RESET); + + struct Buf *b = BufferCache::bread(0, 100); + + Drivers::uart_puts("[Bio] Bread block 100 (1st time).\n"); + + b->data[0] = 'L'; + b->data[1] = 'u'; + b->data[2] = 'm'; + b->data[3] = 'e'; + b->data[4] = '\0'; + + BufferCache::bwrite(b); + Drivers::uart_puts("[Bio] Bwrite block 100.\n"); + + BufferCache::brelse(b); + Drivers::uart_puts("[Bio] Brelease block 100.\n"); + + struct Buf *b2 = BufferCache::bread(0, 100); + Drivers::uart_puts("[Bio] Bread block 100 (2nd time).\n"); + + if (b2->data[0] == 'L' && b2->data[1] == 'u' && b2->data[3] == 'e') + { + Drivers::uart_puts(ANSI_GREEN "[Bio] Data verification PASSED.\n" ANSI_RESET); + } + else + { + Drivers::uart_puts(ANSI_RED "[Bio] Data verification FAILED.\n" ANSI_RESET); + } + + BufferCache::brelse(b2); + } }
\ No newline at end of file |
