Now that kutil has no kernel-specific code in it anymore, it can actually be linked to by anything, so I'm renaming it 'util'. Also, I've tried to unify the way that the system libraries from src/libraries are #included using <> instead of "". Other small change: util::bip_buffer got a spinlock to guard against state corruption.
38 lines
888 B
C
38 lines
888 B
C
#pragma once
|
|
/// \file init.h
|
|
/// Types used in process and thread initialization
|
|
|
|
#include <stdint.h>
|
|
#include <j6/types.h>
|
|
|
|
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;
|
|
};
|