I'm a tabs guy. I like tabs, it's an elegant way to represent indentation instead of brute-forcing it. But I have to admit that the world seems to be going towards spaces, and tooling tends not to play nice with tabs. So here we go, changing the whole repo to spaces since I'm getting tired of all the inconsistent formatting.
42 lines
978 B
C++
42 lines
978 B
C++
#include <stdint.h>
|
|
#include <j6/init.h>
|
|
#include <j6/types.h>
|
|
|
|
static size_t __initc = 0;
|
|
static struct j6_init_value *__initv = 0;
|
|
|
|
j6_handle_t __handle_sys = j6_handle_invalid;
|
|
j6_handle_t __handle_self = j6_handle_invalid;
|
|
|
|
extern "C" void
|
|
_get_init(size_t *initc, struct j6_init_value **initv)
|
|
{
|
|
if (!initc)
|
|
return;
|
|
|
|
*initc = __initc;
|
|
if (initv)
|
|
*initv = __initv;
|
|
}
|
|
|
|
extern "C" void
|
|
_init_libj6(uint64_t *rsp)
|
|
{
|
|
uint64_t argc = *rsp++;
|
|
rsp += argc;
|
|
|
|
__initc = *rsp++;
|
|
__initv = (struct j6_init_value *)rsp;
|
|
|
|
for (unsigned i = 0; i < __initc; ++i) {
|
|
if (__initv[i].type == j6_init_handle_other &&
|
|
__initv[i].handle.type == j6_object_type_system) {
|
|
__handle_sys = __initv[i].handle.handle;
|
|
}
|
|
else if (__initv[i].type == j6_init_handle_self &&
|
|
__initv[i].handle.type == j6_object_type_process) {
|
|
__handle_self = __initv[i].handle.handle;
|
|
}
|
|
}
|
|
}
|