diff options
| author | hachem <im@hachem.wtf> | 2026-10-07 21:43:38 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-10-07 21:43:38 +0200 |
| commit | e55291a32a8b3f7b5c105cd79e86f3c19f19b3d4 (patch) | |
| tree | 0a52300c63a011683ceba1642e6f7c24e4d367ef /kernel/fs.rv | |
| parent | 5d4a723a5f157c0ed38a348099a600d1d21c3c2b (diff) | |
feat: tty and ttf, you'd think somethn starting with tt would be fun to do...
Diffstat (limited to 'kernel/fs.rv')
| -rw-r--r-- | kernel/fs.rv | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/kernel/fs.rv b/kernel/fs.rv index 6229fd5..255797f 100644 --- a/kernel/fs.rv +++ b/kernel/fs.rv @@ -330,6 +330,22 @@ global fs = { return result end, + read_into = fn(self, path, dest) do + const entry = self:resolve(path) + if entry == :nil or entry.type == T_DIR return 0 + let block = entry.first + let offset = 0 + let remaining = entry.size + while (block != 0 and block != END and remaining > 0) do + const next_block = self:fat_get(block) + disk_read(block, dest + offset) + offset += BLOCK + remaining -= BLOCK + block = next_block + end + return entry.size + end, + cat = fn(self, path) do if self:ensure() == :false return :nil const entry = self:resolve(path) |
