Thread Local Storage
Each thread is given a 0x200-byte thread-local-storage block by the kernel. It is used during IPC communications.
A pointer to the thread-local-storage can be read using the ARM instruction:
mrc 15, 0, rX, cr13, cr0, 3
Every application has RW access to its thread-local-storage.
The kernel requires the application to put IPC parameters and IPC static buffers inside the thread-local-storage:
|0||0x80||Undefined, can be used by application for any purpose.|
|0x80||0x100||IPC command with parameters|
|0x180||0x80||IPC static buffers|