6.3 Auxiliary vectors

Ironclad supports passing auxiliary vectors to the started processes. Auxiliary vectors are tags of data passed on the stack to programs detailing additional data. These values are passed behind envp.

Each vector consists of a pair of values: an identifier, and a 64-bit integer.

The vectors passed by the kernel by value are:

AT_NULL (0)

Signifies the end of the vector chain.

AT_PHDR (3)

The address of the program headers of the executable.

AT_PHENT (4)

The size of program header entry.

AT_PHNUM (5)

The number of program headers.

AT_ENTRY (9)

The entrypoint of the executable.

AT_SECURE (23)

The value will be 1 if the executable is to be treated securely, 0 if not. This flag will be set by Ironclad when the program holds the MAC_CAP_SCHED capability.