diff options
| author | hachem <im@hachem.wtf> | 2026-10-04 03:05:36 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-10-04 03:05:36 +0200 |
| commit | 5cb9c6c03270487ee65a36828098f4f25f874bb6 (patch) | |
| tree | fcd4cb432faad25fbc8152ba4ee680fbc1af8bb1 /bridge | |
| parent | 7c1bd03a71cccfcf48e79d241787021b0de98e73 (diff) | |
chore: cleanup
Diffstat (limited to 'bridge')
| -rw-r--r-- | bridge/bridge.zig | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/bridge/bridge.zig b/bridge/bridge.zig index 2fdd1e2..7d64528 100644 --- a/bridge/bridge.zig +++ b/bridge/bridge.zig @@ -303,7 +303,6 @@ pub const KernelOps = struct { }; var g_kops: ?KernelOps = null; -// every host fn needs the kernel ops, boot wires them before the vm ever runs fn kops() KernelOps { return g_kops.?; } @@ -418,27 +417,34 @@ fn hostProgName(args: []const revo.Value, vm: *revo.VM) anyerror!HostResult { fn hostMemmapCount(_: []const revo.Value, _: *revo.VM) anyerror!HostResult { return HostResult.data(Data.new.num(kops().memmap_count())); } + fn hostMemmapBase(args: []const revo.Value, _: *revo.VM) anyerror!HostResult { const index = argInt(u64, args, 0) orelse return HostResult.other("memmap_base: bad index"); return HostResult.data(Data.new.num(kops().memmap_base(index))); } + fn hostMemmapLen(args: []const revo.Value, _: *revo.VM) anyerror!HostResult { const index = argInt(u64, args, 0) orelse return HostResult.other("memmap_len: bad index"); return HostResult.data(Data.new.num(kops().memmap_len(index))); } + fn hostMemmapKind(args: []const revo.Value, _: *revo.VM) anyerror!HostResult { const index = argInt(u64, args, 0) orelse return HostResult.other("memmap_kind: bad index"); return HostResult.data(Data.new.num(kops().memmap_kind(index))); } + fn hostMemFree(_: []const revo.Value, _: *revo.VM) anyerror!HostResult { return HostResult.data(Data.new.num(kops().mem_free())); } + fn hostMemTotal(_: []const revo.Value, _: *revo.VM) anyerror!HostResult { return HostResult.data(Data.new.num(kops().mem_total())); } + fn hostUptime(_: []const revo.Value, _: *revo.VM) anyerror!HostResult { return HostResult.data(Data.new.num(kops().uptime())); } + fn hostProcCount(_: []const revo.Value, _: *revo.VM) anyerror!HostResult { return HostResult.data(Data.new.num(kops().proc_count())); } @@ -611,15 +617,11 @@ pub fn onTick(ticks: u64) void { _ = vm.callFunctionParts(cb, null, &[_]revo.Value{revo.Value.new.num(ticks)}, null) catch {}; } -// true while revo bytecode runs, sched.tick wont preempt task 0 mid call so the -// shared fiber cant be re-entered var g_vm_running: bool = false; pub fn vmBusy() bool { return g_vm_running; } -// fs access for ring 3 programs, called from the int 0x80 handler (interrupts -// off) straight into the revo fs pub fn fsSize(name: []const u8) i64 { const vm = g_vm orelse return -1; const func = vm.getGlobal("fs_size") orelse return -1; |
