hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/kernel/vfs.rv
diff options
context:
space:
mode:
authorhachem <im@hachem.wtf>2026-10-09 11:08:09 +0200
committerhachem <im@hachem.wtf>2026-10-09 11:08:09 +0200
commite0572c37d970d601c17085bdb082cc6ef4356891 (patch)
treef0b4d71c92978e74d127d7090d3e11380378a8b3 /kernel/vfs.rv
parent8cb66100fe802c38d180ea29a11a902decf0fd8b (diff)
chore: fmt some revo code based on lung's example
Diffstat (limited to 'kernel/vfs.rv')
-rw-r--r--kernel/vfs.rv35
1 files changed, 26 insertions, 9 deletions
diff --git a/kernel/vfs.rv b/kernel/vfs.rv
index 22c399e..6df71cc 100644
--- a/kernel/vfs.rv
+++ b/kernel/vfs.rv
@@ -3,35 +3,51 @@
const TASK_STATES = { "free", "ready", "dead", "blocked" }
-global vfs_owns = fn(path) do
- if path == "/proc" or path:starts_with?("/proc/") return :true
+global vfs_owns = fn(path) -> bool do
+ if (path == "/proc" or path:starts_with?("/proc/"))
+ return :true
return :false
end
-global parse_pid = fn(text) do
- if text:len() == 0 return -1
+global parse_pid = fn(text) -> num do
+ if (text:len() == 0)
+ return -1
+
let number = 0
for index in 0..text:len() do
const code = text[index]:ascii()
- if code < 48 or code > 57 return -1
+ if (code < 48 or code > 57)
+ return -1
number = number * 10 + (code - 48)
end
+
return number
end
global vfs_ls = fn(path) do
if path == "/proc" do
puts(" uptime\n meminfo\n")
+
for pid in 0..task_max() do
- if task_state(pid) != 0 puts(" #{pid}\n")
+ if (task_state(pid) != 0)
+ puts(" #{pid}\n")
end
+ end else do
+ puts("ls: #{path}: no such directory\n")
end
- else do puts("ls: #{path}: no such directory\n") end
end
global vfs_cat = fn(path) do
- if path == "/proc/uptime" do puts("#{math.floor(uptime() / 100)}s\n") return :nil end
- if path == "/proc/meminfo" do puts("#{(mem_free() shr 20)} MiB free / #{(mem_total() shr 20)} MiB total\n") return :nil end
+ if path == "/proc/uptime" do
+ puts("#{math.floor(uptime() / 100)}s\n")
+ return :nil
+ end
+
+ if path == "/proc/meminfo" do
+ puts("#{(mem_free() shr 20)} MiB free / #{(mem_total() shr 20)} MiB total\n")
+ return :nil
+ end
+
if path:starts_with?("/proc/") do
const pid = parse_pid(path[6..])
if pid >= 0 and pid < task_max() and task_state(pid) != 0 do
@@ -41,5 +57,6 @@ global vfs_cat = fn(path) do
puts("cat: #{path}: no such file\n")
return :nil
end
+
puts("cat: #{path}: no such file\n")
end