revive pandora and win32 builds, rm gp2x dep for linux, lots of refactoring
[libpicofe.git] / pandora / pandora.c
... / ...
CommitLineData
1#include <stdio.h>\r
2#include <stdlib.h>\r
3#include <stdarg.h>\r
4#include <string.h>\r
5#include <unistd.h>\r
6#include <sys/mman.h>\r
7#include <sys/types.h>\r
8#include <sys/stat.h>\r
9#include <linux/fb.h>\r
10#include <fcntl.h>\r
11#include <errno.h>\r
12\r
13#include "../linux/sndout_oss.h"\r
14#include "../common/arm_linux.h"\r
15#include "../common/emu.h"\r
16\r
17static int fbdev = -1;\r
18\r
19#define SCREEN_MAP_SIZE (800*480*2)\r
20static void *screen = MAP_FAILED;\r
21\r
22void plat_early_init(void)\r
23{\r
24}\r
25\r
26void plat_init(void)\r
27{\r
28 printf("entering init()\n"); fflush(stdout);\r
29\r
30 fbdev = open("/dev/fb0", O_RDWR);\r
31 if (fbdev == -1)\r
32 {\r
33 perror("open(\"/dev/fb0\")");\r
34 exit(1);\r
35 }\r
36\r
37 screen = mmap(0, SCREEN_MAP_SIZE, PROT_WRITE|PROT_READ, MAP_SHARED, fbdev, 0);\r
38 if (screen == MAP_FAILED)\r
39 {\r
40 perror("mmap(fbptr)");\r
41 exit(1);\r
42 }\r
43 printf("fbptr %p\n", screen);\r
44 g_screen_ptr = screen;\r
45\r
46 // snd\r
47 sndout_oss_init();\r
48\r
49 printf("exitting init()\n"); fflush(stdout);\r
50}\r
51\r
52void plat_finish(void)\r
53{\r
54 if (screen != MAP_FAILED)\r
55 munmap(screen, SCREEN_MAP_SIZE);\r
56 if (fbdev >= 0)\r
57 close(fbdev);\r
58\r
59 sndout_oss_exit();\r
60\r
61 printf("all done");\r
62}\r
63\r
64/* lprintf */\r
65void lprintf(const char *fmt, ...)\r
66{\r
67 va_list vl;\r
68\r
69 va_start(vl, fmt);\r
70 vprintf(fmt, vl);\r
71 va_end(vl);\r
72}\r
73\r