|
|
1.1 root 1: .file "init/main.c"
2: gcc_compiled.:
3: .text
4: LC0:
5: .ascii "out of memory\12\15\0"
6: .align 2
7: _sprintf:
8: movl 4(%esp),%edx
9: leal 12(%esp),%eax
10: pushl %eax
11: pushl 12(%esp)
12: pushl %edx
13: call _vsprintf
14: addl $12,%esp
15: ret
16: .align 2
17: _time_init:
18: pushl %ebp
19: movl %esp,%ebp
20: subl $44,%esp
21: L65:
22: movl $128,%eax
23: movl $112,%edx
24: /APP
25: outb %al,%dx
26: jmp 1f
27: 1: jmp 1f
28: 1:
29: /NO_APP
30: movl $113,%edx
31: /APP
32: inb %dx,%al
33: jmp 1f
34: 1: jmp 1f
35: 1:
36: /NO_APP
37: movb %al,-40(%ebp)
38: movzbl -40(%ebp),%eax
39: movl %eax,-36(%ebp)
40: movl $130,%eax
41: movl $112,%edx
42: /APP
43: outb %al,%dx
44: jmp 1f
45: 1: jmp 1f
46: 1:
47: /NO_APP
48: movl $113,%edx
49: /APP
50: inb %dx,%al
51: jmp 1f
52: 1: jmp 1f
53: 1:
54: /NO_APP
55: movb %al,-40(%ebp)
56: movzbl -40(%ebp),%eax
57: movl %eax,-32(%ebp)
58: movl $132,%eax
59: movl $112,%edx
60: /APP
61: outb %al,%dx
62: jmp 1f
63: 1: jmp 1f
64: 1:
65: /NO_APP
66: movl $113,%edx
67: /APP
68: inb %dx,%al
69: jmp 1f
70: 1: jmp 1f
71: 1:
72: /NO_APP
73: movb %al,-40(%ebp)
74: movzbl -40(%ebp),%eax
75: movl %eax,-28(%ebp)
76: movl $135,%eax
77: movl $112,%edx
78: /APP
79: outb %al,%dx
80: jmp 1f
81: 1: jmp 1f
82: 1:
83: /NO_APP
84: movl $113,%edx
85: /APP
86: inb %dx,%al
87: jmp 1f
88: 1: jmp 1f
89: 1:
90: /NO_APP
91: movb %al,-40(%ebp)
92: movzbl -40(%ebp),%eax
93: movl %eax,-24(%ebp)
94: movl $136,%eax
95: movl $112,%edx
96: /APP
97: outb %al,%dx
98: jmp 1f
99: 1: jmp 1f
100: 1:
101: /NO_APP
102: movl $113,%edx
103: /APP
104: inb %dx,%al
105: jmp 1f
106: 1: jmp 1f
107: 1:
108: /NO_APP
109: movb %al,-40(%ebp)
110: movzbl -40(%ebp),%eax
111: movl %eax,-20(%ebp)
112: movl $137,%eax
113: movl $112,%edx
114: /APP
115: outb %al,%dx
116: jmp 1f
117: 1: jmp 1f
118: 1:
119: /NO_APP
120: movl $113,%edx
121: /APP
122: inb %dx,%al
123: jmp 1f
124: 1: jmp 1f
125: 1:
126: /NO_APP
127: movb %al,-40(%ebp)
128: movzbl -40(%ebp),%eax
129: movl %eax,-16(%ebp)
130: movl $128,%eax
131: movl $112,%edx
132: /APP
133: outb %al,%dx
134: jmp 1f
135: 1: jmp 1f
136: 1:
137: /NO_APP
138: movl $113,%edx
139: /APP
140: inb %dx,%al
141: jmp 1f
142: 1: jmp 1f
143: 1:
144: /NO_APP
145: movb %al,-40(%ebp)
146: movzbl -40(%ebp),%eax
147: cmpl -36(%ebp),%eax
148: jne L65
149: movl -36(%ebp),%eax
150: andl $15,%eax
151: movl -36(%ebp),%edx
152: sarl $4,%edx
153: leal (%edx,%edx,4),%edx
154: leal (%eax,%edx,2),%eax
155: movl %eax,-36(%ebp)
156: movl -32(%ebp),%eax
157: andl $15,%eax
158: movl -32(%ebp),%edx
159: sarl $4,%edx
160: leal (%edx,%edx,4),%edx
161: leal (%eax,%edx,2),%eax
162: movl %eax,-32(%ebp)
163: movl -28(%ebp),%eax
164: andl $15,%eax
165: movl -28(%ebp),%edx
166: sarl $4,%edx
167: leal (%edx,%edx,4),%edx
168: leal (%eax,%edx,2),%eax
169: movl %eax,-28(%ebp)
170: movl -24(%ebp),%eax
171: andl $15,%eax
172: movl -24(%ebp),%edx
173: sarl $4,%edx
174: leal (%edx,%edx,4),%edx
175: leal (%eax,%edx,2),%eax
176: movl %eax,-24(%ebp)
177: movl -20(%ebp),%eax
178: andl $15,%eax
179: movl -20(%ebp),%edx
180: sarl $4,%edx
181: leal (%edx,%edx,4),%edx
182: leal (%eax,%edx,2),%eax
183: movl %eax,-20(%ebp)
184: movl -16(%ebp),%eax
185: andl $15,%eax
186: movl -16(%ebp),%edx
187: sarl $4,%edx
188: leal (%edx,%edx,4),%edx
189: leal (%eax,%edx,2),%eax
190: movl %eax,-16(%ebp)
191: decl -20(%ebp)
192: leal -36(%ebp),%eax
193: pushl %eax
194: call _kernel_mktime
195: movl %eax,_startup_time
196: leave
197: ret
198: .data
199: .align 2
200: _memory_end:
201: .long 0
202: .align 2
203: _buffer_memory_end:
204: .long 0
205: .align 2
206: _main_memory_start:
207: .long 0
208: .text
209: LC1:
210: .ascii "/bin/sh\0"
211: .data
212: .align 2
213: _argv_rc:
214: .long LC1
215: .long 0
216: .text
217: LC2:
218: .ascii "HOME=/\0"
219: .data
220: .align 2
221: _envp_rc:
222: .long LC2
223: .long 0
224: .long 0
225: .text
226: LC3:
227: .ascii "-/bin/sh\0"
228: .data
229: .align 2
230: _argv:
231: .long LC3
232: .long 0
233: .text
234: LC4:
235: .ascii "HOME=/usr/root\0"
236: .data
237: .align 2
238: _envp:
239: .long LC4
240: .long 0
241: .long 0
242: .text
243: LC5:
244: .ascii "TERM=con%dx%d\0"
245: .align 2
246: .globl _main
247: _main:
248: pushl %ebp
249: movl %esp,%ebp
250: subl $8,%esp
251: pushl %edi
252: pushl %esi
253: movzwl 590332,%eax
254: movl %eax,_ROOT_DEV
255: movzwl 590330,%eax
256: movl %eax,_SWAP_DEV
257: movw 589838,%dx
258: andl $255,%edx
259: pushl %edx
260: movw 589838,%ax
261: andw $65280,%ax
262: shrw $8,%ax
263: movw %ax,-4(%ebp)
264: movzwl -4(%ebp),%eax
265: pushl %eax
266: pushl $LC5
267: pushl $_term
268: call _sprintf
269: movl $_term,_envp+4
270: movl $_term,_envp_rc+4
271: movl $_drive_info,%edi
272: movl $589952,%esi
273: movl $8,%ecx
274: cld
275: rep
276: movsl
277: movzwl 589826,%eax
278: sall $10,%eax
279: addl $1048576,%eax
280: movl %eax,_memory_end
281: andl $-4096,_memory_end
282: addl $16,%esp
283: cmpl $16777216,_memory_end
284: jle L69
285: movl $16777216,_memory_end
286: L69:
287: cmpl $12582912,_memory_end
288: jle L70
289: movl $4194304,_buffer_memory_end
290: jmp L71
291: .align 2
292: L70:
293: cmpl $6291456,_memory_end
294: jle L72
295: movl $2097152,_buffer_memory_end
296: jmp L71
297: .align 2
298: L72:
299: movl $1048576,_buffer_memory_end
300: L71:
301: movl _buffer_memory_end,%eax
302: movl %eax,_main_memory_start
303: pushl _memory_end
304: pushl _buffer_memory_end
305: call _mem_init
306: call _trap_init
307: call _blk_dev_init
308: call _chr_dev_init
309: call _tty_init
310: call _time_init
311: call _sched_init
312: pushl _buffer_memory_end
313: call _buffer_init
314: call _hd_init
315: call _floppy_init
316: /APP
317: sti
318: movl %esp,%eax
319: pushl $0x17
320: pushl %eax
321: pushfl
322: pushl $0x0f
323: pushl $1f
324: iret
325: 1: movl $0x17,%eax
326: movw %ax,%ds
327: movw %ax,%es
328: movw %ax,%fs
329: movw %ax,%gs
330: /NO_APP
331: addl $12,%esp
332: movl $2,%eax
333: /APP
334: int $0x80
335: /NO_APP
336: movl %eax,%edx
337: testl %edx,%edx
338: jge L75
339: negl %edx
340: movl %edx,_errno
341: movl $-1,%edx
342: L75:
343: testl %edx,%edx
344: jne L74
345: call _init
346: L74:
347: L77:
348: movl $29,%eax
349: /APP
350: int $0x80
351: /NO_APP
352: jmp L77
353: .align 2
354: leal -16(%ebp),%esp
355: popl %esi
356: popl %edi
357: leave
358: ret
359: .align 2
360: _printf:
361: pushl %ebx
362: leal 12(%esp),%eax
363: pushl %eax
364: pushl 12(%esp)
365: pushl $_printbuf
366: call _vsprintf
367: movl %eax,%ebx
368: pushl %ebx
369: pushl $_printbuf
370: pushl $1
371: call _write
372: movl %ebx,%eax
373: addl $24,%esp
374: popl %ebx
375: ret
376: LC6:
377: .ascii "/dev/tty1\0"
378: LC7:
379: .ascii "%d buffers = %d bytes buffer space\12\15\0"
380: LC8:
381: .ascii "Free mem: %d bytes\12\15\0"
382: LC9:
383: .ascii "/etc/rc\0"
384: LC10:
385: .ascii "Fork failed in init\15\12\0"
386: LC11:
387: .ascii "\12\15child %d died with code %04x\12\15\0"
388: .align 2
389: .globl _init
390: _init:
391: pushl %ebp
392: movl %esp,%ebp
393: subl $4,%esp
394: pushl %edi
395: pushl %esi
396: pushl %ebx
397: xorl %eax,%eax
398: movl $_drive_info,%ebx
399: /APP
400: int $0x80
401: /NO_APP
402: testl %eax,%eax
403: jge L82
404: negl %eax
405: movl %eax,_errno
406: L82:
407: pushl $0
408: pushl $2
409: pushl $LC6
410: call _open
411: pushl $0
412: call _dup
413: pushl $0
414: call _dup
415: movl _nr_buffers,%eax
416: sall $10,%eax
417: pushl %eax
418: pushl _nr_buffers
419: pushl $LC7
420: call _printf
421: addl $32,%esp
422: movl _memory_end,%eax
423: subl _main_memory_start,%eax
424: pushl %eax
425: pushl $LC8
426: call _printf
427: addl $8,%esp
428: movl $2,%eax
429: /APP
430: int $0x80
431: /NO_APP
432: testl %eax,%eax
433: jl L86
434: movl %eax,%edi
435: jmp L85
436: .align 2
437: L86:
438: negl %eax
439: movl %eax,_errno
440: movl $-1,%edi
441: L85:
442: testl %edi,%edi
443: jne L84
444: pushl $0
445: call _close
446: pushl $0
447: pushl $0
448: pushl $LC9
449: call _open
450: addl $16,%esp
451: testl %eax,%eax
452: je L87
453: pushl $1
454: call __exit
455: .align 2
456: L87:
457: pushl $_envp_rc
458: pushl $_argv_rc
459: pushl $LC1
460: call _execve
461: pushl $2
462: call __exit
463: .align 2
464: L84:
465: testl %edi,%edi
466: jle L88
467: leal -4(%ebp),%esi
468: L89:
469: pushl %esi
470: call _wait
471: addl $4,%esp
472: cmpl %edi,%eax
473: jne L89
474: L88:
475: leal -4(%ebp),%esi
476: L91:
477: movl $2,%eax
478: /APP
479: int $0x80
480: /NO_APP
481: testl %eax,%eax
482: jge L94
483: negl %eax
484: movl %eax,_errno
485: movl $-1,%eax
486: L94:
487: movl %eax,%edi
488: testl %edi,%edi
489: jge L93
490: pushl $LC10
491: call _printf
492: addl $4,%esp
493: jmp L91
494: .align 2
495: L93:
496: testl %edi,%edi
497: jne L96
498: pushl $0
499: call _close
500: pushl $1
501: call _close
502: pushl $2
503: call _close
504: call _setsid
505: pushl $0
506: pushl $2
507: pushl $LC6
508: call _open
509: pushl $0
510: call _dup
511: pushl $0
512: call _dup
513: addl $32,%esp
514: pushl $_envp
515: pushl $_argv
516: pushl $LC1
517: call _execve
518: pushl %eax
519: call __exit
520: .align 2
521: L96:
522: L97:
523: pushl %esi
524: call _wait
525: addl $4,%esp
526: cmpl %edi,%eax
527: jne L97
528: pushl -4(%ebp)
529: pushl %edi
530: pushl $LC11
531: call _printf
532: addl $12,%esp
533: movl $36,%eax
534: /APP
535: int $0x80
536: /NO_APP
537: testl %eax,%eax
538: jge L91
539: negl %eax
540: movl %eax,_errno
541: jmp L91
542: .align 2
543: leal -16(%ebp),%esp
544: popl %ebx
545: popl %esi
546: popl %edi
547: leave
548: ret
549: .comm _drive_info,32
550: .lcomm _term,32
551: .lcomm _printbuf,1024
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.