aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeer <himbeer@disroot.org>2024-07-30 10:59:48 +0200
committerHimbeer <himbeer@disroot.org>2024-07-30 10:59:48 +0200
commitcbd3d7939b6472b2dc5cd8739b906b269e3081b8 (patch)
tree6b3c1d2dd2a89cd2faeb0f1229abb13bae85ba4b
parent24e7ca15fbe4fbbe3b5e5903482add3915877172 (diff)
Remove errors that are no longer needed
-rw-r--r--src/lib/paging.zig18
-rw-r--r--src/lib/plic.zig3
-rw-r--r--src/lib/process.zig18
3 files changed, 13 insertions, 26 deletions
diff --git a/src/lib/paging.zig b/src/lib/paging.zig
index 0775940..dd1feeb 100644
--- a/src/lib/paging.zig
+++ b/src/lib/paging.zig
@@ -36,19 +36,13 @@ pub var next_mmio_vaddr: usize = 0xff000000;
pub var kmem: *Table = undefined;
-pub const AllocError = error{
+pub const Error = error{
ZeroSize,
OutOfMemory,
- OutOfRange,
- DoubleFree,
AlreadyTaken,
NotALeaf,
};
-pub const TableError = error{
- NotALeaf,
-};
-
pub const Mode = enum(u4) {
bare,
sv39 = 8,
@@ -85,7 +79,7 @@ pub const Page = struct {
// Fails if the page is already taken.
// Returns whether the operation was successful.
pub fn take(self: *Page, last: bool) !void {
- if (@bitCast(self.flags.active)) return AllocError.AlreadyTaken;
+ if (@bitCast(self.flags.active)) return Error.AlreadyTaken;
self.flags.active = 1;
if (last) self.flags.last = 1;
@@ -303,7 +297,7 @@ pub const Table = struct {
// This function internally uses zeroedAlloc to allocate memory for the required page tables,
// but assumes that the physical address to map to has already been allocated by the caller.
pub fn map(root: *Table, vaddr: usize, paddr: usize, flags: EntryFlags, level: usize) !void {
- if (!flags.isLeaf()) return TableError.NotALeaf;
+ if (!flags.isLeaf()) return Error.NotALeaf;
const vpn = virtualPageNumbers(vaddr);
@@ -499,7 +493,7 @@ pub fn init() !void {
// Allocate memory pages. Passing n <= 0 results in an error.
pub fn alloc(n: usize) ![]align(page_size) u8 {
- if (n <= 0) return AllocError.ZeroSize;
+ if (n <= 0) return Error.ZeroSize;
const num_pages = heapSize() / page_size;
// Start allocating beyond page descriptors.
@@ -541,7 +535,7 @@ pub fn alloc(n: usize) ![]align(page_size) u8 {
}
}
- return AllocError.OutOfMemory;
+ return Error.OutOfMemory;
}
// Free (contiguous) memory page(s).
@@ -576,7 +570,7 @@ pub fn free(memory: anytype) void {
// Allocate memory pages and overwrite their contents with zeroes for added security.
// Passing n <= 0 results in an error.
-pub fn zeroedAlloc(n: usize) AllocError![]align(page_size) u8 {
+pub fn zeroedAlloc(n: usize) Error![]align(page_size) u8 {
const ret = try alloc(n);
const satp = riscv.satp.read();
diff --git a/src/lib/plic.zig b/src/lib/plic.zig
index b8f7364..7e54992 100644
--- a/src/lib/plic.zig
+++ b/src/lib/plic.zig
@@ -7,9 +7,6 @@ const hwinfo = @import("hwinfo.zig");
pub var default: Plic = undefined;
pub const Error = error{
- NoPlic,
- PlicIncompatible,
- NoPlicReg,
InterruptOutOfRange,
ContextOutOfRange,
};
diff --git a/src/lib/process.zig b/src/lib/process.zig
index 23c2f1c..c8e6d5e 100644
--- a/src/lib/process.zig
+++ b/src/lib/process.zig
@@ -18,15 +18,10 @@ var next_pid: u16 = 1;
const num_stack_pages = 2;
-pub const ScheduleError = error{
+pub const Error = error{
EmptySchedule,
NoInit,
-};
-
-pub const Error = error{
TooManyThreads,
- TooManyResourceDescriptors,
- BadRdHandle,
};
pub const ExeError = error{
@@ -35,8 +30,7 @@ pub const ExeError = error{
BadArch,
BadBitLen,
NotStaticExe,
- SizeMismatch,
- MemOverrun,
+ LengthOutOfBounds,
BranchPerms,
WritableCode,
};
@@ -157,7 +151,7 @@ pub fn schedule() !noreturn {
switchTo(proc);
}
- return ScheduleError.EmptySchedule;
+ return Error.EmptySchedule;
}
pub fn switchTo(proc: *Info) noreturn {
@@ -247,7 +241,9 @@ pub fn create(allocator: Allocator, elf_buf: []align(@alignOf(elf.Elf64_Ehdr)) c
while (try it.next()) |phdr| {
if (phdr.p_type != elf.PT_LOAD) continue;
if (phdr.p_filesz == 0 or phdr.p_memsz == 0) continue;
- if (phdr.p_filesz > elf_buf.len or phdr.p_memsz > pages.len) return ExeError.MemOverrun;
+ if (phdr.p_filesz > elf_buf.len or phdr.p_memsz > pages.len) {
+ return ExeError.LengthOutOfBounds;
+ }
const sz = @min(phdr.p_filesz, phdr.p_memsz);
@memcpy(pages[phdr.p_offset .. phdr.p_offset + sz], elf_buf[phdr.p_offset .. phdr.p_offset + sz]);
@@ -319,7 +315,7 @@ pub fn runInit(allocator: Allocator, reader: anytype) !noreturn {
if (std.mem.eql(u8, file.name, "./init")) {
break file;
}
- } else return ScheduleError.NoInit;
+ } else return Error.NoInit;
const alignment = @alignOf(elf.Elf64_Ehdr);