xref: /xv6-public/initcode.S (revision 9c65b32d)
1# Initial process execs /init.
2# This code runs in user space.
3
4#include "syscall.h"
5#include "traps.h"
6
7
8# exec(init, argv)
9.globl start
10start:
11  pushl $argv
12  pushl $init
13  pushl $0  // where caller pc would be
14  movl $SYS_exec, %eax
15  int $T_SYSCALL
16
17# for(;;) exit();
18exit:
19  movl $SYS_exit, %eax
20  int $T_SYSCALL
21  jmp exit
22
23# char init[] = "/init\0";
24init:
25  .string "/init\0"
26
27# char *argv[] = { init, 0 };
28.p2align 2
29argv:
30  .long init
31  .long 0
32
33