7.9.4. Linux Process Initialization
|Null auxilliary vector entry||4 bytes|
|Auxilliary vector entries||8 bytes each|
|NULL terminator for envp||4 bytes|
|Environment pointers||sp + 8 + 4 × argc||4 bytes each|
|NULL terminator for argv||sp + 4 + 4 × argc||4 bytes|
|Argument pointers||sp + 4||4 bytes each|
|Argument count||sp||4 bytes|
If the application should register a destructor function with atexit, the pointer is placed in r4. Otherwise r4 is zero.
The contents of all other registers are unspecified. User code should set fp to zero to mark the end of the frame chain.
The auxiliary vector is a series of pairs of 32-bit tag and 32-bit value, terminated by an AT_NULL tag.
Did you find the information on this page useful?