Rev 3386 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3386 | Rev 4153 | ||
---|---|---|---|
Line 38... | Line 38... | ||
38 | 38 | ||
39 | #include <sys/types.h> |
39 | #include <sys/types.h> |
40 | 40 | ||
41 | typedef void (*entry_point_t)(void); |
41 | typedef void (*entry_point_t)(void); |
42 | 42 | ||
- | 43 | /** Program Control Block. |
|
43 | /** |
44 | * |
44 | * Holds pointers to data passed from the program loader to the program |
45 | * Holds pointers to data passed from the program loader to the program |
45 | * and/or to the dynamic linker. This includes the program entry point, |
46 | * and/or to the dynamic linker. This includes the program entry point, |
46 | * arguments, environment variables etc. |
47 | * arguments, environment variables etc. |
47 | */ |
48 | */ |
48 | typedef struct { |
49 | typedef struct { |
49 | /** Program entry point */ |
50 | /** Program entry point. */ |
50 | entry_point_t entry; |
51 | entry_point_t entry; |
51 | 52 | ||
52 | /** Number of command-line arguments */ |
53 | /** Number of command-line arguments. */ |
53 | int argc; |
54 | int argc; |
54 | /** Command-line arguments */ |
55 | /** Command-line arguments. */ |
55 | char **argv; |
56 | char **argv; |
56 | 57 | ||
57 | /* |
58 | /* |
58 | * ELF-specific data |
59 | * ELF-specific data. |
59 | */ |
60 | */ |
60 | /** Pointer to ELF dynamic section of the program */ |
61 | /** Pointer to ELF dynamic section of the program. */ |
61 | void *dynamic; |
62 | void *dynamic; |
62 | /** Pointer to dynamic section of the runtime linker */ |
- | |
63 | void *rtld_dynamic; |
- | |
64 | /** Runtime-linker load bias */ |
- | |
65 | uintptr_t rtld_bias; |
- | |
66 | } pcb_t; |
63 | } pcb_t; |
67 | 64 | ||
- | 65 | /** |
|
- | 66 | * A pointer to the program control block. Having received the PCB pointer, |
|
- | 67 | * the C library startup code stores it here for later use. |
|
- | 68 | */ |
|
68 | extern pcb_t *__pcb; |
69 | extern pcb_t *__pcb; |
69 | 70 | ||
70 | #endif |
71 | #endif |
71 | 72 | ||
72 | /** |
73 | /** |