// vim: ft=cpp // The kernel depends on libj6 for some shared code, // but should not include the user-specific code. #ifndef __j6kernel #include /*[[[cog code generation from os.path import join from sysconf import Sysconf sc = Sysconf(join(definitions_path, "sysconf.yaml")) cog.outl(f"constexpr uintptr_t __sysconf_address = {sc.address:#x};") ]]]*/ ///[[[end]]] struct __system_config { /*[[[cog code generation for var in sc.vars: cog.outl(f"{var.type:10} {var.section}_{var.name};") ]]]*/ ///[[[end]]] }; unsigned long j6_sysconf(j6_sysconf_arg arg) { __system_config &sc = * reinterpret_cast<__system_config*>(__sysconf_address); switch (arg) { /*[[[cog code generation for var in sc.vars: cog.outl(f"case j6sc_{var.name}: return sc.{var.section}_{var.name};") ]]]*/ ///[[[end]]] default: return 0; } } #endif // __j6kernel