hachem.wtf
aboutsummaryrefslogtreecommitdiff
path: root/kernel/vfs.rv
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/vfs.rv')
-rw-r--r--kernel/vfs.rv38
1 files changed, 13 insertions, 25 deletions
diff --git a/kernel/vfs.rv b/kernel/vfs.rv
index 5d2d1de..22c399e 100644
--- a/kernel/vfs.rv
+++ b/kernel/vfs.rv
@@ -3,37 +3,33 @@
const TASK_STATES = { "free", "ready", "dead", "blocked" }
-fn vfs_owns(path) do
+global vfs_owns = fn(path) do
if path == "/proc" or path:starts_with?("/proc/") return :true
- if path == "/bin" or path:starts_with?("/bin/") return :true
return :false
end
-fn parse_pid(s) do
- if s:len() == 0 return -1
- let n = 0
- for i in 0..s:len() do
- const c = s[i]:ascii()
- if c < 48 or c > 57 return -1
- n = n * 10 + (c - 48)
+global parse_pid = fn(text) 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
+ number = number * 10 + (code - 48)
end
- return n
+ return number
end
-fn vfs_ls(path) do
+global vfs_ls = fn(path) do
if path == "/proc" do
puts(" uptime\n meminfo\n")
- for i in 0..task_max() do
- if task_state(i) != 0 puts(" #{i}\n")
+ for pid in 0..task_max() do
+ if task_state(pid) != 0 puts(" #{pid}\n")
end
end
- else if path == "/bin" do
- for i in 0..prog_count() do puts(" #{prog_name(i)}\n") end
- end
else do puts("ls: #{path}: no such directory\n") end
end
-fn vfs_cat(path) do
+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:starts_with?("/proc/") do
@@ -45,13 +41,5 @@ fn vfs_cat(path) do
puts("cat: #{path}: no such file\n")
return :nil
end
- if path:starts_with?("/bin/") do
- const nm = path[5..]
- for i in 0..prog_count() do
- if prog_name(i) == nm do puts("#{nm}: elf program, #{prog_size(i)} bytes\n") return :nil end
- end
- puts("cat: #{path}: no such file\n")
- return :nil
- end
puts("cat: #{path}: no such file\n")
end