|
|
1.1 root 1: #
2: # init code, executed by process 1
3: # this should be pc-relative
4: #
5:
6: .text
7:
8: .globl _icode
9: .globl _szicode
10:
11: _icode:
12: pushab 4f # environment
13: pushab 2f # arg list
14: pushab 1f # program
15: pushl $3 # arg count
16: movl bootflags,r11 # old init expects flags here
17: movab ireg,r0
18: bbs $1,r11,0f # bit 1 (sic) means single user
19: movab iauto,r0
20: 0: movl r0,2f+4 # init first arg
21: movl sp,ap # args
22: chmk $59 # exece
23: 0: brb 0b # loop on error
24:
25: 1:
26: .asciz "/etc/init"
27: 2:
28: .long 3f-_icode
29: .long 0
30: 4: .long 0
31: 3:
32: .asciz "init"
33: iauto: .asciz "a"
34: ireg: .asciz "s"
35: bootflags:
36: .long 0
37:
38: _szicode:
39: .long _szicode-_icode
40:
41:
42: #
43: # signal trampoline code
44: # its length is (stupidly) well-known
45: # to be 12 bytes
46: #
47:
48: .globl _sigcode
49: .globl _szsigcode
50: .align 2
51: _sigcode:
52: calls $3,1(pc)
53: rei
54: .word 0x7f
55: callg (ap),*12(ap)
56: ret
57:
58: _szsigcode:
59: .long _szsigcode-_sigcode
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.