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