This page is archived and is no longer receiving updates.
It remains here because some of the content may still be useful.
Updates to sel4runtime from seL4 10.1.x to 11.0.x
- Created
sel4runtime
project to be a runtime for running a C or C-compatible process, i.e. one with a C-like main, in a minimal seL4 environment.- Added seL4 roottask runtime entry points for: AARCH32, AARCH64, IA32, x86_64, RISC-V 32-bit and RISC-V 64-bit with supporting documentation for calling conventions.
- Added regular runtime entry points for non-roottask new processes for the above architectures.
- Added CMake rules for replacing musllibc’s CRT files with a CMake object library.
- Added CMake configuration option,
Sel4RuntimeRootStack
, for setting Roottask’s initial stack size. - Create runtime datastructure containing:
- process name likely read from
argv[0]
. - AUX vector with additional seL4 specific AUX values:
AT_SEL4_BOOT_INFO
:seL4_BootInfo
pointer in current vspace.AT_SEL4_IPC_BUFFER_PTR
: IPC buffer pointer in current vspace of initial thread.AT_SEL4_TCB
: TCP capabilityseL4_CPtr
to initial thread’s TCB object.
- Environment vector.
- Bootinfo pointer to be initialized with bootinfo address from AUX vector.
- ELF headers to be initialized with info from AUX vectors.
- Initial thread information:
- Thread local storage image information.
- Cap to TCB if given in AUX vectors.
- IPC buffer: if given in AUX vectors.
- process name likely read from
- Add support for calling constructors and destructors.
- Add support for managing threads’ static TLS regions.
- set a global
__sysinfo
pointer ifAT_SYSINFO
is set in AUX vector. - Call
main()
with requiredargc
andargv
arguments. - Support for setting TLS variables of threads remotely.
- Call
seL4_DebugNameThread
if the runtime has a process name and the initial thread has a TCB cap and IPC buffer set. - Add
Findsel4runtime.cmake
module for importing as CMake module.