revive pandora and win32 builds, rm gp2x dep for linux, lots of refactoring
[libpicofe.git] / pandora / pandora.c
CommitLineData
fe017393 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
f7c40368 9#include <linux/fb.h>\r
fe017393 10#include <fcntl.h>\r
11#include <errno.h>\r
12\r
b3972d82 13#include "../linux/sndout_oss.h"\r
095a240b 14#include "../common/arm_linux.h"\r
7fd581f4 15#include "../common/emu.h"\r
fe017393 16\r
b3972d82 17static int fbdev = -1;\r
fe017393 18\r
de9b1274 19#define SCREEN_MAP_SIZE (800*480*2)\r
f7c40368 20static void *screen = MAP_FAILED;\r
fe017393 21\r
d2f29611 22void plat_early_init(void)\r
23{\r
24}\r
25\r
26void plat_init(void)\r
fe017393 27{\r
28 printf("entering init()\n"); fflush(stdout);\r
29\r
8add01a3 30 fbdev = open("/dev/fb0", O_RDWR);\r
31 if (fbdev == -1)\r
32 {\r
b3972d82 33 perror("open(\"/dev/fb0\")");\r
f7c40368 34 exit(1);\r
35 }\r
36\r
492d353a 37 screen = mmap(0, SCREEN_MAP_SIZE, PROT_WRITE|PROT_READ, MAP_SHARED, fbdev, 0);\r
38 if (screen == MAP_FAILED)\r
39 {\r
b3972d82 40 perror("mmap(fbptr)");\r
492d353a 41 exit(1);\r
42 }\r
43 printf("fbptr %p\n", screen);\r
7fd581f4 44 g_screen_ptr = screen;\r
fe017393 45\r
fe017393 46 // snd\r
b3972d82 47 sndout_oss_init();\r
fe017393 48\r
fe017393 49 printf("exitting init()\n"); fflush(stdout);\r
50}\r
51\r
d2f29611 52void plat_finish(void)\r
fe017393 53{\r
f7c40368 54 if (screen != MAP_FAILED)\r
55 munmap(screen, SCREEN_MAP_SIZE);\r
7fd581f4 56 if (fbdev >= 0)\r
57 close(fbdev);\r
fe017393 58\r
b3972d82 59 sndout_oss_exit();\r
fe017393 60\r
492d353a 61 printf("all done");\r
fe017393 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