diff options
Diffstat (limited to 'src/sbi/base.zig')
-rw-r--r-- | src/sbi/base.zig | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/src/sbi/base.zig b/src/sbi/base.zig deleted file mode 100644 index 053d4dc..0000000 --- a/src/sbi/base.zig +++ /dev/null @@ -1,94 +0,0 @@ -// SPDX-FileCopyrightText: 2024 Himbeer <himbeer@disroot.org> -// -// SPDX-License-Identifier: AGPL-3.0-or-later - -const instructions = @import("../instructions.zig"); -const sbierr = @import("error.zig"); - -const ExtId: usize = 0x10; - -const FnId = enum(usize) { - GetSpecVer = 0, - GetImpId = 1, - GetImpVer = 2, - ProbeExt = 3, - GetMVendorId = 4, - GetMArchId = 5, - GetMImpId = 6, -}; - -pub const ImpId = enum(isize) { - Bbl = 0, - OpenSbi = 1, - Xvisor = 2, - Kvm = 3, - RustSbi = 4, - Diosix = 5, - Coffer = 6, - Xen = 7, - PolarFire = 8, - _, -}; - -pub fn specVer() !isize { - const ret = instructions.ecall(ExtId, @intFromEnum(FnId.GetSpecVer), 0, 0, 0); - if (ret.err != 0) { - return sbierr.errorFromCode(ret.err); - } - - return ret.val; -} - -pub fn impId() !ImpId { - const ret = instructions.ecall(ExtId, @intFromEnum(FnId.GetImpId), 0, 0, 0); - if (ret.err != 0) { - return sbierr.errorFromCode(ret.err); - } - - return @enumFromInt(ret.val); -} - -pub fn impVer() !isize { - const ret = instructions.ecall(ExtId, @intFromEnum(FnId.GetImpVer), 0, 0, 0); - if (ret.err != 0) { - return sbierr.errorFromCode(ret.err); - } - - return ret.val; -} - -pub fn probeExt(ext_id: usize) !bool { - const ret = instructions.ecall(ExtId, @intFromEnum(FnId.ProbeExt), ext_id, 0, 0); - if (ret.err != 0) { - return sbierr.errorFromCode(ret.err); - } - - return ret.val != 0; -} - -pub fn mVendorId() !isize { - const ret = instructions.ecall(ExtId, @intFromEnum(FnId.GetMVendorId), 0, 0, 0); - if (ret.err != 0) { - return sbierr.errorFromCode(ret.err); - } - - return ret.val; -} - -pub fn mArchId() !isize { - const ret = instructions.ecall(ExtId, @intFromEnum(FnId.GetMarchId), 0, 0, 0); - if (ret.err != 0) { - return sbierr.errorFromCode(ret.err); - } - - return ret.val; -} - -pub fn mImpId() !isize { - const ret = instructions.ecall(ExtId, @intFromEnum(FnId.GetMImpId), 0, 0, 0); - if (ret.err != 0) { - return sbierr.errorFromCode(ret.err); - } - - return ret.val; -} |