fix corruption on empty sel_fname
[libpicofe.git] / gp2x / soc.c
index 68b2c89..3d4ad04 100644 (file)
@@ -1,3 +1,14 @@
+/*
+ * (C) GraÅžvydas "notaz" Ignotas, 2009-2010
+ *
+ * This work is licensed under the terms of any of these licenses
+ * (at your option):
+ *  - GNU GPL, version 2 or later.
+ *  - GNU LGPL, version 2.1 or later.
+ *  - MAME license.
+ * See the COPYING file in the top-level directory.
+ */
+
 #include <stdio.h>
 #include <string.h>
 #include <sys/types.h>
 #include <unistd.h>
 
 #include "soc.h"
-#include "../common/emu.h"
+
+void (*gp2x_video_flip)(void);
+void (*gp2x_video_flip2)(void);
+void (*gp2x_video_changemode_ll)(int bpp);
+void (*gp2x_video_setpalette)(int *pal, int len);
+void (*gp2x_video_RGB_setscaling)(int ln_offs, int W, int H);
+void (*gp2x_video_wait_vsync)(void);
+
+void (*gp2x_set_cpuclk)(unsigned int mhz);
+
+void (*set_lcd_custom_rate)(int is_pal);
+void (*unset_lcd_custom_rate)(void);
+void (*set_lcd_gamma)(int g100, int A_SNs_curve);
+
+void (*set_ram_timings)(void);
+void (*unset_ram_timings)(void);
+int  (*gp2x_read_battery)(void);
+
+unsigned int (*gp2x_get_ticks_ms)(void);
+unsigned int (*gp2x_get_ticks_us)(void);
+
 
 gp2x_soc_t soc_detect(void)
 {
        volatile unsigned short *memregs;
        volatile unsigned int *memregl;
-       static gp2x_soc_t ret = -1;
+       static gp2x_soc_t ret = -2;
        int pollux_chipname[0x30/4 + 1];
        char *pollux_chipname_c = (char *)pollux_chipname;
        int memdev;
        int i;
 
-       if (ret != -1)
+       if ((int)ret != -2)
                /* already detected */
                return ret;
 
@@ -27,6 +58,7 @@ gp2x_soc_t soc_detect(void)
        if (memdev == -1)
        {
                perror("open(/dev/mem)");
+               ret = -1;
                return -1;
        }
 
@@ -35,6 +67,7 @@ gp2x_soc_t soc_detect(void)
        {
                perror("mmap(memregs)");
                close(memdev);
+               ret = -1;
                return -1;
        }
        memregl = (volatile void *)memregs;