diff options
Diffstat (limited to 'os/boot/arm1110/imain.c')
| -rw-r--r-- | os/boot/arm1110/imain.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/os/boot/arm1110/imain.c b/os/boot/arm1110/imain.c new file mode 100644 index 00000000..b8461f85 --- /dev/null +++ b/os/boot/arm1110/imain.c @@ -0,0 +1,48 @@ +#include "u.h" +#include "lib.h" +#include "fns.h" +#include "dat.h" +#include "mem.h" + +void +main(void) +{ + void (*f)(void); + ulong *kernel; + + print("inflating kernel\n"); + + kernel = (ulong*)(0xc0200000+20*1024); + if(gunzip((uchar*)0xc0008000, 2*1024*1024, (uchar*)kernel, FLATESIZE) > 0){ + f = (void (*)(void))0xc0008010; + draincache(); + } else { + print("inflation failed\n"); + f = nil; + } + (*f)(); +} + +void +exit(void) +{ + + void (*f)(void); + + delay(1000); + + print("it's a wonderful day to die\n"); + f = nil; + (*f)(); +} + +void +delay(int ms) +{ + int i; + + while(ms-- > 0){ + for(i = 0; i < 1000; i++) + ; + } +} |
