birth/src/birth.zig
2023-07-10 17:44:11 -06:00

24 lines
733 B
Zig

const lib = @import("lib");
pub const arch = @import("birth/arch.zig");
pub const capabilities = @import("birth/capabilities.zig");
pub const syscall = @import("birth/syscall.zig");
/// This struct is the shared part that the user and the cpu see
pub const UserScheduler = extern struct {
self: *UserScheduler,
disabled: bool,
has_work: bool,
core_id: u32,
setup_stack: [lib.arch.valid_page_sizes[0]]u8 align(lib.arch.stack_alignment),
setup_stack_lock: lib.Atomic(bool),
pub inline fn architectureSpecific(user_scheduler: *UserScheduler) *arch.UserScheduler {
return @fieldParentPtr(arch.UserScheduler, "generic", user_scheduler);
}
};
pub const CommandBuffer = struct {
foo: u32,
};