summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2014-11-22 18:42:35 +0100
committerMichal Idziorek <m.i@gmx.at>2014-11-22 18:42:35 +0100
commit5c8c67810a9df8fdcd7ca286cb2266d5d3536309 (patch)
tree6abd9aaa6ace18ef86bfbf3228e5f28a9c9a773b /kernel
parenteca57656bfb384583c1c4b34de46cde6b36d6694 (diff)
Passing params to main()
Diffstat (limited to 'kernel')
-rw-r--r--kernel/syscalls.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/kernel/syscalls.c b/kernel/syscalls.c
index f85cfce..06caf2d 100644
--- a/kernel/syscalls.c
+++ b/kernel/syscalls.c
@@ -239,10 +239,14 @@ int syscall_execve(char *name, char **argv, char **env)
}
*/
+ static char arg1[]="x";;
+ static char arg2[]="blah";
+ static char arg3[]="foo";
+ static char *args[]={arg1,arg2,arg3};
+
+ asm("push %0" :: "r" (args)); //argv
+ asm("push $3");//argc
- // autorun "user-space" prog
- asm("push $10");//argv TODO: addresse
- asm("push $20"); //argc TODO: real number of params!
asm("push $0x800080");
asm("ret");