xref: /inferno-os/os/boot/arm1110/imain.c (revision 74a4d8c26dd3c1e9febcb717cfd6cb6512991a7a)
1 #include "u.h"
2 #include "lib.h"
3 #include "fns.h"
4 #include "dat.h"
5 #include "mem.h"
6 
7 void
main(void)8 main(void)
9 {
10 	void (*f)(void);
11 	ulong *kernel;
12 
13 	print("inflating kernel\n");
14 
15 	kernel = (ulong*)(0xc0200000+20*1024);
16 	if(gunzip((uchar*)0xc0008000, 2*1024*1024, (uchar*)kernel, FLATESIZE) > 0){
17 		f = (void (*)(void))0xc0008010;
18 		draincache();
19 	} else {
20 		print("inflation failed\n");
21 		f = nil;
22 	}
23 	(*f)();
24 }
25 
26 void
exit(void)27 exit(void)
28 {
29 
30 	void (*f)(void);
31 
32 	delay(1000);
33 
34 	print("it's a wonderful day to die\n");
35 	f = nil;
36 	(*f)();
37 }
38 
39 void
delay(int ms)40 delay(int ms)
41 {
42 	int i;
43 
44 	while(ms-- > 0){
45 		for(i = 0; i < 1000; i++)
46 			;
47 	}
48 }
49