pub const Plic = struct {
    base_addr: u32,
    map: std.AutoHashMap(u32, fn() void),

    pub fn init(addr: u32) Plic {
        const alloc = &std.heap.FixedBufferAllocator
            .init(&irq_handler_buffer).allocator;

        return Plic{
            .base_addr = addr,
            .map = std.AutoHashMap(u32, fn() void).init(alloc),
        };
    }