FreeBSD/Linux Kernel Cross Reference
sys/alphapc/initcode
1 #include "/sys/src/libc/9syscall/sys.h"
2
3 /*
4 * we pass in the argument of the exec parameters as 0(FP)
5 */
6
7 TEXT main(SB),$16
8
9 MOVQ $setSB(SB), R29
10 MOVQ $boot(SB), R0
11 ADDQ $24, R30, R1 /* get a pointer to 0(FP) */
12 MOVL R0, 8(R30)
13 MOVL R1, 12(R30)
14 JSR exec(SB)
15
16 MOVQ $(1<<4), R0
17 MOVL R0, 8(R30)
18 MOVQ $RFORK, R0
19 CALL_PAL $0x83
20 MOVQ $RFORK, R0
21 CALL_PAL $0x83
22 MOVQ $RFORK, R0
23 CALL_PAL $0x83
24 again:
25 ADDL $1, R1
26 MOVQ $0, R0 /* print r1 */
27 CALL_PAL $0x83
28 MOVQ $100000000, R2
29 foo:
30 SUBQ $1, R2
31 BNE R2, foo
32 MOVQ $1000, R0
33 MOVL R0, 8(R30)
34 MOVQ $SLEEP, R0
35 CALL_PAL $0x83
36 JMP again
37
38 TEXT exec(SB), $0
39 MOVQ $EXEC, R0
40 CALL_PAL $0x83
41 RET
42
43 DATA boot+0(SB)/5,$"/boot"
44 DATA boot+5(SB)/5,$"/boot"
45 DATA bootv+0(SB)/4,$boot+6(SB)
46 GLOBL boot+0(SB),$11
47 GLOBL bootv+0(SB),$8
Cache object: 145016876511020d8b040d1a08e3e449
|