fix missing syms in ginge_dyn
[ginge.git] / loader / host.c
CommitLineData
8424752c 1/*
2 * GINGE - GINGE Is Not Gp2x Emulator
3 * (C) notaz, 2010-2011,2015
4 *
5 * This work is licensed under the MAME license, see COPYING file for details.
6 */
15a2d3ea 7#define _GNU_SOURCE 1 // for plat.c
ad439e71 8#include <stdio.h>
9#include <stdarg.h>
8424752c 10#include <linux/input.h>
11
12#include "../common/libpicofe/input.h"
13#include "../common/libpicofe/linux/in_evdev.h"
ad439e71 14
15#include "header.h"
16#include "realfuncs.h"
17
f7767d0f 18// must be affected by realfuncs.h
19#include "../common/libpicofe/input.c"
20#include "../common/libpicofe/linux/plat.c"
21#include "../common/libpicofe/linux/in_evdev.c"
22
ad439e71 23#ifdef PND
24#include "host_pnd.c"
25#elif defined(WIZ)
26#include "host_wiz.c"
27#endif
28
d5a3e1bc 29char **g_argv;
30
ad439e71 31int host_init(void)
32{
33 in_init();
8424752c 34 host_init_input();
ad439e71 35 in_probe();
36
37 return 0;
38}
39
40int host_read_btns(void)
41{
42 int actions[IN_BINDTYPE_COUNT] = { 0, };
43
44 in_update(actions);
45 host_actions(actions);
46
47 return actions[IN_BINDTYPE_PLAYER12];
48}
49
78684356 50void host_forced_exit(int status)
ad439e71 51{
52 // exit() might not be enough because loader and app data is out of sync,
53 // and other threads (which are really processes on this old glibc used)
54 // might not exit properly.
7d4e5f81 55 char cmd[64];
56
57 printf("forced exit...\n");
58
d5a3e1bc 59 if (g_argv != NULL) {
60 snprintf(cmd, sizeof(cmd), "killall %s", g_argv[0]);
61 system(cmd);
62 usleep(300000);
63 snprintf(cmd, sizeof(cmd), "killall -9 %s", g_argv[0]);
64 system(cmd);
65 }
78684356 66 exit(status);
ad439e71 67}
8424752c 68
69// vim:shiftwidth=2:expandtab