X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/986ce23ace2f7875a1a561bd947f435a7594146c..d1b1c8d9119229dbeed06cd252917e54a1cb77f6:/lunaix-os/includes/lunaix/exec.h diff --git a/lunaix-os/includes/lunaix/exec.h b/lunaix-os/includes/lunaix/exec.h index 00f4d39..a49845e 100644 --- a/lunaix-os/includes/lunaix/exec.h +++ b/lunaix-os/includes/lunaix/exec.h @@ -1,14 +1,10 @@ #ifndef __LUNAIX_EXEC_H #define __LUNAIX_EXEC_H -#include #include #include #include -#define NO_LOADER 0 -#define DEFAULT_LOADER "usr/ld" - #define MAX_VAR_PAGES 8 #define DEFAULT_HEAP_PAGES 16 @@ -29,10 +25,14 @@ struct exec_container struct proc_info* proc; ptr_t vms_mnt; - struct load_context executable; + struct load_context exe; + + // argv prependums + const char* argv_pp[2]; + const char** argv; + const char** envp; ptr_t stack_top; - ptr_t entry; // mapped to one of {executable|loader}.entry int status; }; @@ -43,24 +43,25 @@ struct uexec_param char** argv; int envc; char** envp; -} PACKED; +} compact; #ifndef __USR_WRAPPER__ int -exec_load_byname(struct exec_container* container, - const char* filename, - const char** argv, - const char** envp); +exec_load_byname(struct exec_container* container, const char* filename); int -exec_load(struct exec_container* container, - struct v_file* executable, - const char** argv, - const char** envp); +exec_load(struct exec_container* container, struct v_file* executable); int -exec_kexecve(const char* filename, const char* argv[], const char* envp); +exec_kexecve(const char* filename, const char* argv[], const char* envp[]); + +void +exec_init_container(struct exec_container* param, + struct thread* thread, + ptr_t vms, + const char** argv, + const char** envp); #endif