In
general I would recommend having the initial thread in a process
initialise
its own TLS via the runtime and any new thread configure its
own
TLS in the initialisation code before the main function call of that
thread
with the `sel4runtime_set_tls_base`. Each new thread will also
need
to use `seL4_SetIPCBuffer` to initialise the IPC buffer address in
its
TLS before performing any invocations or any other system calls.
Thank you, it makes total sense now.
This week-end, I discovered along the RFC-3,
the SEL4PROJ/sel4runtime repository
on GitHub (completely missed it as it was not part of seL4 org) and I have been
able to reconnect the missing pieces.
As I'm playing with a prototype language and OS while building it on top of seL4,
I'm not using any intermediate C layers
to connect to the seL4 API (so custom build and
integration and no C runtime), while
most of the samples out there are heavily relying on
some foundations, which is completely understandable, considering how it can be involving
to build anything relevant on top of the seL4 API.
So as I'm just really getting started to integrate with
seL4 (and I love❤️ it!) I
have to go through
all these details, but I hope that I won't be spamming unnecessarily here! 😅