33,11 → 33,10 |
* @brief Program Control Block interface. |
*/ |
|
#ifndef ILOADER_PCB_H_ |
#define ILOADER_PCB_H_ |
#ifndef LIBC_PCB_H_ |
#define LIBC_PCB_H_ |
|
#include <sys/types.h> |
#include <arch/pcb.h> |
|
typedef void (*entry_point_t)(void); |
|
44,7 → 43,7 |
/** |
* Holds pointers to data passed from the program loader to the program |
* and/or to the dynamic linker. This includes the program entry point, |
* arguments, environment etc. |
* arguments, environment variables etc. |
*/ |
typedef struct { |
/** Program entry point */ |
54,7 → 53,7 |
* ELF-specific data |
*/ |
/** Pointer to ELF dynamic section of the program */ |
void *dynamic; |
void *dynamic; |
/** Pointer to dynamic section of the runtime linker */ |
void *rtld_dynamic; |
/** Runtime-linker load bias */ |
61,6 → 60,9 |
uintptr_t rtld_bias; |
} pcb_t; |
|
// FIXME |
#define PCB_ADDRESS 0x6fff0000 |
|
static inline pcb_t *__pcb_get(void) { |
return (pcb_t *)PCB_ADDRESS; |
} |