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.Forsythmain(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.Forsythexit(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.Forsythdelay(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