L4Re – L4 Runtime Environment
elf_aux.h File Reference

Auxiliary information for binaries. More...

#include <l4/sys/types.h>
+ Include dependency graph for elf_aux.h:

Go to the source code of this file.

Data Structures

struct  l4re_elf_aux_t
 Generic header for each auxiliary vector element. More...
 
struct  l4re_elf_aux_vma_t
 Auxiliary vector element for a reserved virtual memory area. More...
 
struct  l4re_elf_aux_mword_t
 Auxiliary vector element for a single unsigned data word. More...
 

Macros

#define L4RE_ELF_AUX_ELEM   const __attribute__((used, section(".rol4re_elf_aux"), aligned(sizeof(l4_umword_t))))
 Define an auxiliary vector element. More...
 
#define L4RE_ELF_AUX_ELEM_T(type, id, tag, val...)    static L4RE_ELF_AUX_ELEM type id = {tag, sizeof(type), val}
 Define an auxiliary vector element. More...
 

Typedefs

typedef struct l4re_elf_aux_t l4re_elf_aux_t
 Generic header for each auxiliary vector element.
 
typedef struct l4re_elf_aux_vma_t l4re_elf_aux_vma_t
 Auxiliary vector element for a reserved virtual memory area.
 
typedef struct l4re_elf_aux_mword_t l4re_elf_aux_mword_t
 Auxiliary vector element for a single unsigned data word.
 

Enumerations

enum  {
  L4RE_ELF_AUX_T_NONE = 0 , L4RE_ELF_AUX_T_VMA , L4RE_ELF_AUX_T_STACK_SIZE , L4RE_ELF_AUX_T_STACK_ADDR ,
  L4RE_ELF_AUX_T_KIP_ADDR
}
 

Detailed Description

Auxiliary information for binaries.

Definition in file elf_aux.h.

Macro Definition Documentation

◆ L4RE_ELF_AUX_ELEM

#define L4RE_ELF_AUX_ELEM   const __attribute__((used, section(".rol4re_elf_aux"), aligned(sizeof(l4_umword_t))))

Define an auxiliary vector element.

This is the generic method for defining auxiliary vector elements. A more convenient way is to use L4RE_ELF_AUX_ELEM_T.

Usage:

{ L4RE_ELF_AUX_T_VMA, sizeof(l4re_elf_aux_vma_t), 0x2000, 0x4000 };
struct l4re_elf_aux_vma_t l4re_elf_aux_vma_t
Auxiliary vector element for a reserved virtual memory area.
#define L4RE_ELF_AUX_ELEM
Define an auxiliary vector element.
Definition: elf_aux.h:52
@ L4RE_ELF_AUX_T_VMA
Tag for descriptor for a reserved virtual memory area.
Definition: elf_aux.h:80
Auxiliary vector element for a reserved virtual memory area.
Definition: elf_aux.h:114

Definition at line 52 of file elf_aux.h.

◆ L4RE_ELF_AUX_ELEM_T

#define L4RE_ELF_AUX_ELEM_T (   type,
  id,
  tag,
  val... 
)     static L4RE_ELF_AUX_ELEM type id = {tag, sizeof(type), val}

Define an auxiliary vector element.

Parameters
typeis the data type for the element (e.g., l4re_elf_aux_vma_t)
idis the identifier (variable name) for the declaration (the variable is defined with static storage class)
tagis the tag value for the element e.g., L4RE_ELF_AUX_T_VMA
valare the values to be set in the descriptor

Usage:

#define L4RE_ELF_AUX_ELEM_T(type, id, tag, val...)
Define an auxiliary vector element.
Definition: elf_aux.h:67

Definition at line 67 of file elf_aux.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
L4RE_ELF_AUX_T_NONE 

Tag for an invalid element in the auxiliary vector.

L4RE_ELF_AUX_T_VMA 

Tag for descriptor for a reserved virtual memory area.

L4RE_ELF_AUX_T_STACK_SIZE 

Tag for descriptor that defines the stack size for the first application thread.

L4RE_ELF_AUX_T_STACK_ADDR 

Tag for descriptor that defines the stack address for the first application thread.

L4RE_ELF_AUX_T_KIP_ADDR 

Tag for descriptor that defines the KIP address for the binaries address space.

Definition at line 70 of file elf_aux.h.