Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3159 → Rev 3160

/branches/dynload/uspace/lib/libc/include/loader/pcb.h
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;
}
/branches/dynload/uspace/srv/loader/include/elf_load.h
38,9 → 38,9
 
#include <arch/elf.h>
#include <sys/types.h>
#include <loader/pcb.h>
 
#include "elf.h"
#include "pcb.h"
 
/**
* Some data extracted from the headers are stored here
/branches/dynload/uspace/srv/loader/main.c
50,6 → 50,7
#include <sys/types.h>
#include <ipc/ipc.h>
#include <ipc/loader.h>
#include <loader/pcb.h>
#include <errno.h>
#include <async.h>
#include <as.h>
56,7 → 57,7
 
#include <elf.h>
#include <elf_load.h>
#include <pcb.h>
#include <arch/pcb.h>
 
/**
* Bias used for loading the dynamic linker. This will be soon replaced
/branches/dynload/uspace/srv/loader/elf_load.c
50,9 → 50,10
#include <as.h>
#include <unistd.h>
#include <fcntl.h>
#include <loader/pcb.h>
 
#include "elf.h"
#include "pcb.h"
#include "arch/pcb.h"
#include "elf_load.h"
#include "arch.h"