#pragma once /// \file init.h /// Types used in process and thread initialization #include #include enum j6_init_type { // `value` is a: j6_init_handle_self, // Handle to the system j6_init_handle_other, // Handle to this process j6_init_desc_framebuffer // Pointer to a j6_init_framebuffer descriptor }; struct j6_typed_handle { enum j6_object_type type; j6_handle_t handle; }; struct j6_init_value { enum j6_init_type type; union { struct j6_typed_handle handle; void *data; }; }; /// Structure defining a framebuffer. /// `flags` has the following bits: /// 0-3: Pixel layout. 0000: rgb8, 0001: bgr8 struct j6_init_framebuffer { uintptr_t addr; size_t size; uint32_t vertical; uint32_t horizontal; uint32_t scanline; uint32_t flags; };