24 lines
733 B
Zig
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,
|
|
};
|