wip, some dynamic stuff works
[ginge.git] / loader / tools / static.c
CommitLineData
11913091 1#include <stdio.h>
306e06f7 2#include <stdlib.h>
7fd42181 3#include <string.h>
11913091 4#include <sys/types.h>
5#include <sys/stat.h>
6#include <fcntl.h>
7#include <sys/mman.h>
dc90c02d 8#include <sys/ioctl.h>
9#include <signal.h>
7fd42181 10#include <termios.h>
11
12static int open_(const char *name)
13{
14 int fd = open(name, O_RDWR);
15 if (fd < 0) {
16 fprintf(stderr, "%s: ", name);
17 perror("open");
18 return 1;
19 }
20
21 return fd;
22}
11913091 23
306e06f7 24int main(int argc, char *argv[])
11913091 25{
26 volatile void *memregs;
7fd42181 27 void *fbmem;
28 int memdev, fbdev;
86418a84 29 int i;
11913091 30
306e06f7 31 printf("hi, home=%s\n", getenv("HOME"));
32
33 for (i = 0; i < argc; i++)
34 printf("%d \"%s\"\n", i, argv[i]);
11913091 35
7fd42181 36 memdev = open_("/dev/mem");
37 fbdev = open_("/dev/fb0");
306e06f7 38
11913091 39 memregs = mmap(NULL, 0x10000, PROT_READ|PROT_WRITE, MAP_SHARED, memdev, 0xc0000000);
7fd42181 40 fbmem = mmap(NULL, 320*240*2, PROT_READ|PROT_WRITE, MAP_SHARED, fbdev, 0);
41
dc90c02d 42 ioctl(-1, 0);
43 signal(7, SIG_DFL);
7fd42181 44// tcgetattr(-1, NULL);
45// tcsetattr(-1, 0, NULL);
86418a84 46
7fd42181 47#if 1
86418a84 48 for (i = 0; i < 2; i++)
49 printf("%02x %04x %08x\n", ((char *)memregs)[0x2011],
50 ((short *)memregs)[0x1198/2], ((int *)memregs)[0xbcdc/4]);
7fd42181 51#endif
52 memset(fbmem, 0xff, 320*240*2);
86418a84 53
7fd42181 54 sleep(10);
11913091 55
56 return 0;
57}
58