UbixOS  2.0
exec.c File Reference
#include <ubixos/exec.h>
#include <sys/elf.h>
#include <ubixos/ld.h>
#include <ubixos/kpanic.h>
#include <ubixos/endtask.h>
#include <vmm/vmm.h>
#include <lib/kmalloc.h>
#include <lib/kprintf.h>
#include <lib/string.h>
#include <assert.h>
Include dependency graph for exec.c:

Go to the source code of this file.

Macros

#define AT_BASE   7 /* Interpreter's base address. */
 
#define AT_ENTRY   9 /* Where interpreter should transfer control. */
 
#define AT_EXECFD   2 /* File descriptor of program to load. */
 
#define AT_FLAGS   8 /* Flags (unused for i386). */
 
#define AT_IGNORE   1 /* Ignored entry. */
 
#define AT_NULL   0 /* Terminates the vector. */
 
#define AT_PAGESZ   6 /* Page size in bytes. */
 
#define AT_PHDR   3 /* Program header of program already loaded. */
 
#define AT_PHENT   4 /* Size of each program header entry. */
 
#define AT_PHNUM   5 /* Number of program header entries. */
 
#define AUXARGS_ENTRY(pos, id, val)   {*pos = id;pos++; *pos = val;pos++;}
 
#define STACK_ADDR   0xC800000
 

Functions

void execFile (char *file, int argc, char **argv, int console)
 
uInt32 execThread (void(*tproc)(void), uInt32 stack, char *arg)
 
void sys_exec (char *file, char *ap)
 New exec... More...
 
void sysExec (char *file, char *ap)
 

Macro Definition Documentation

◆ AT_BASE

#define AT_BASE   7 /* Interpreter's base address. */

Definition at line 49 of file exec.c.

◆ AT_ENTRY

#define AT_ENTRY   9 /* Where interpreter should transfer control. */

Definition at line 51 of file exec.c.

◆ AT_EXECFD

#define AT_EXECFD   2 /* File descriptor of program to load. */

Definition at line 44 of file exec.c.

◆ AT_FLAGS

#define AT_FLAGS   8 /* Flags (unused for i386). */

Definition at line 50 of file exec.c.

◆ AT_IGNORE

#define AT_IGNORE   1 /* Ignored entry. */

Definition at line 43 of file exec.c.

◆ AT_NULL

#define AT_NULL   0 /* Terminates the vector. */

Definition at line 42 of file exec.c.

◆ AT_PAGESZ

#define AT_PAGESZ   6 /* Page size in bytes. */

Definition at line 48 of file exec.c.

◆ AT_PHDR

#define AT_PHDR   3 /* Program header of program already loaded. */

Definition at line 45 of file exec.c.

◆ AT_PHENT

#define AT_PHENT   4 /* Size of each program header entry. */

Definition at line 46 of file exec.c.

◆ AT_PHNUM

#define AT_PHNUM   5 /* Number of program header entries. */

Definition at line 47 of file exec.c.

◆ AUXARGS_ENTRY

#define AUXARGS_ENTRY (   pos,
  id,
  val 
)    {*pos = id;pos++; *pos = val;pos++;}

Definition at line 54 of file exec.c.

◆ STACK_ADDR

#define STACK_ADDR   0xC800000

Definition at line 40 of file exec.c.

Function Documentation

◆ execFile()

◆ execThread()

◆ sys_exec()

void sys_exec ( char *  file,
char *  ap 
)

New exec...

copy in arg strings

Clean the virtual of COW pages left over from the fork

Adjust iframe

build argc and argv[]

Build ENV

Definition at line 551 of file exec.c.

Referenced by sys_execve().

◆ sysExec()