Auxiliary Vector

The auxiliary vector conveys information from the operating system to the application. Only the terminating null auxiliary vector entry is required, but if any other entries are present, they shall be interpreted as follows. This vector is an array of the following structures.

typedef struct
{
  long int a_type;              /* Entry type */
  union
    {
      long int a_val;           /* Integer value */
      void *a_ptr;              /* Pointer value */
      void (*a_fcn) (void);     /* Function pointer value */
    } a_un;
} auxv_t;

The application shall interpret the a_un value according to the a_type. Other auxiliary vector types are reserved.

The a_type field shall contain one of the following values:

AT_NULL

The last entry in the array has type AT_NULL. The value in a_un is undefined.

AT_IGNORE

The value in a_un is undefined, and should be ignored.

AT_EXECFD

File descriptor of program

AT_PHDR

Program headers for program

AT_PHENT

Size of program header entry

AT_PHNUM

Number of program headers

AT_PAGESZ

System page size

AT_BASE

Base address of interpreter

AT_FLAGS

Flags

AT_ENTRY

Entry point of program

AT_NOTELF

Program is not ELF

AT_UID

Real uid

AT_EUID

Effective uid

AT_GID

Real gid

AT_EGID

Effective gid

AT_CLKTCK

Frequency of times()

AT_PLATFORM

String identifying platform.

AT_HWCAP

Machine dependent hints about processor capabilities.

AT_FPUCW

Used FPU control word

AT_DCACHEBSIZE

Data cache block size

AT_ICACHEBSIZE

Instruction cache block size

AT_UCACHEBSIZE

Unified cache block size

Note

The auxiliary vector is intended for passing information from the operating system to a program interpreter, such as /lib/ld-lsb-ia64.so.1.