From e9dc7295038c29acb69d48c53fdea6ee8649cd66 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Fri, 8 Jul 2016 12:48:01 +0200 Subject: [PATCH] Create set_signal_handler_state --- frontend/drivers/platform_bsd.c | 6 ++++++ frontend/drivers/platform_ctr.c | 1 + frontend/drivers/platform_darwin.m | 1 + frontend/drivers/platform_gx.c | 1 + frontend/drivers/platform_linux.c | 6 ++++++ frontend/drivers/platform_null.c | 1 + frontend/drivers/platform_ps3.c | 1 + frontend/drivers/platform_psp.c | 1 + frontend/drivers/platform_qnx.c | 1 + frontend/drivers/platform_win32.c | 1 + frontend/drivers/platform_xdk.cpp | 1 + frontend/drivers/platform_xenon.c | 1 + frontend/frontend_driver.c | 8 ++++++++ frontend/frontend_driver.h | 3 +++ 14 files changed, 33 insertions(+) diff --git a/frontend/drivers/platform_bsd.c b/frontend/drivers/platform_bsd.c index b4938c77be..534df39952 100644 --- a/frontend/drivers/platform_bsd.c +++ b/frontend/drivers/platform_bsd.c @@ -39,6 +39,11 @@ static int frontend_bsd_get_signal_handler_state(void) return (int)bsd_sighandler_quit; } +static void frontend_bsd_set_signal_handler_state(int value) +{ + bsd_sighandler_quit = value; +} + static void frontend_bsd_destroy_signal_handler_state(void) { bsd_sighandler_quit = 0; @@ -64,6 +69,7 @@ frontend_ctx_driver_t frontend_ctx_bsd = { NULL, /* get_mem_free */ frontend_bsd_install_signal_handler, frontend_bsd_get_signal_handler_state, + frontend_bsd_set_signal_handler_state, frontend_bsd_destroy_signal_handler_state, "bsd", }; diff --git a/frontend/drivers/platform_ctr.c b/frontend/drivers/platform_ctr.c index 4c0b13ea7b..88ff82612b 100644 --- a/frontend/drivers/platform_ctr.c +++ b/frontend/drivers/platform_ctr.c @@ -282,6 +282,7 @@ frontend_ctx_driver_t frontend_ctx_ctr = { NULL, /* get_mem_free */ NULL, /* install_signal_handler */ NULL, /* get_signal_handler_state */ + NULL, /* set_signal_handler_state */ NULL, /* destroy_signal_handler_state */ "ctr", }; diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index 0fce0e9d7a..0af6776bf6 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -725,6 +725,7 @@ frontend_ctx_driver_t frontend_ctx_darwin = { frontend_darwin_get_mem_used, NULL, /* install_signal_handler */ NULL, /* get_sighandler_state */ + NULL, /* set_sighandler_state */ NULL, /* destroy_signal_handler_state */ "darwin", }; diff --git a/frontend/drivers/platform_gx.c b/frontend/drivers/platform_gx.c index 69607def42..948555562b 100644 --- a/frontend/drivers/platform_gx.c +++ b/frontend/drivers/platform_gx.c @@ -528,6 +528,7 @@ frontend_ctx_driver_t frontend_ctx_gx = { frontend_gx_get_mem_used, NULL, /* install_signal_handler */ NULL, /* get_sighandler_state */ + NULL, /* set_sighandler_state */ NULL, /* destroy_signal_handler_state */ "gx", }; diff --git a/frontend/drivers/platform_linux.c b/frontend/drivers/platform_linux.c index 28e6c26b02..cd2e514145 100644 --- a/frontend/drivers/platform_linux.c +++ b/frontend/drivers/platform_linux.c @@ -1988,6 +1988,11 @@ static int frontend_linux_get_signal_handler_state(void) return (int)linux_sighandler_quit; } +static void frontend_linux_set_signal_handler_state(int value) +{ + linux_sighandler_quit = value; +} + static void frontend_linux_destroy_signal_handler_state(void) { linux_sighandler_quit = 0; @@ -2031,6 +2036,7 @@ frontend_ctx_driver_t frontend_ctx_linux = { frontend_linux_get_mem_used, frontend_linux_install_signal_handlers, frontend_linux_get_signal_handler_state, + frontend_linux_set_signal_handler_state, frontend_linux_destroy_signal_handler_state, #ifdef ANDROID "android" diff --git a/frontend/drivers/platform_null.c b/frontend/drivers/platform_null.c index cab83fa369..056f657116 100644 --- a/frontend/drivers/platform_null.c +++ b/frontend/drivers/platform_null.c @@ -39,6 +39,7 @@ frontend_ctx_driver_t frontend_ctx_null = { NULL, /* get_mem_free */ NULL, /* install_signal_handler */ NULL, /* get_sighandler_state */ + NULL, /* set_sighandler_state */ NULL, /* destroy_sighandler_state */ "null", }; diff --git a/frontend/drivers/platform_ps3.c b/frontend/drivers/platform_ps3.c index 0068e1bb8c..5dd42b3827 100644 --- a/frontend/drivers/platform_ps3.c +++ b/frontend/drivers/platform_ps3.c @@ -544,6 +544,7 @@ frontend_ctx_driver_t frontend_ctx_ps3 = { NULL, /* get_mem_free */ NULL, /* install_signal_handler */ NULL, /* get_sighandler_state */ + NULL, /* set_sighandler_state */ NULL, /* destroy_sighandler_state */ "ps3", }; diff --git a/frontend/drivers/platform_psp.c b/frontend/drivers/platform_psp.c index 353bec7325..066f80b2ae 100644 --- a/frontend/drivers/platform_psp.c +++ b/frontend/drivers/platform_psp.c @@ -409,6 +409,7 @@ frontend_ctx_driver_t frontend_ctx_psp = { NULL, /* get_mem_free */ NULL, /* install_signal_handler */ NULL, /* get_sighandler_state */ + NULL, /* set_sighandler_state */ NULL, /* destroy_sighandler_state */ #ifdef VITA "vita", diff --git a/frontend/drivers/platform_qnx.c b/frontend/drivers/platform_qnx.c index 20fde50c91..7f886ebf01 100644 --- a/frontend/drivers/platform_qnx.c +++ b/frontend/drivers/platform_qnx.c @@ -88,6 +88,7 @@ frontend_ctx_driver_t frontend_ctx_qnx = { NULL, /* get_mem_free */ NULL, /* install_signal_handler */ NULL, /* get_sighandler_state */ + NULL, /* set_sighandler_state */ NULL, /* destroy_sighandler_state */ "qnx", }; diff --git a/frontend/drivers/platform_win32.c b/frontend/drivers/platform_win32.c index b9b65620ec..c92fdcc58d 100644 --- a/frontend/drivers/platform_win32.c +++ b/frontend/drivers/platform_win32.c @@ -335,6 +335,7 @@ frontend_ctx_driver_t frontend_ctx_win32 = { frontend_win32_get_mem_used, NULL, /* install_signal_handler */ NULL, /* get_sighandler_state */ + NULL, /* set_sighandler_state */ NULL, /* destroy_sighandler_state */ "win32" }; diff --git a/frontend/drivers/platform_xdk.cpp b/frontend/drivers/platform_xdk.cpp index bafa3c3bb5..a7b94b258c 100644 --- a/frontend/drivers/platform_xdk.cpp +++ b/frontend/drivers/platform_xdk.cpp @@ -1410,6 +1410,7 @@ frontend_ctx_driver_t frontend_ctx_xdk = { NULL, /* get_mem_free */ NULL, /* install_signal_handler */ NULL, /* get_sighandler_state */ + NULL, /* set_sighandler_state */ NULL, /* destroy_sighandler_state */ "xdk", }; diff --git a/frontend/drivers/platform_xenon.c b/frontend/drivers/platform_xenon.c index 7eabab9df7..c1a588af77 100644 --- a/frontend/drivers/platform_xenon.c +++ b/frontend/drivers/platform_xenon.c @@ -87,6 +87,7 @@ frontend_ctx_driver_t frontend_ctx_qnx = { NULL, /* get_mem_total */ NULL, /* install_signal_handler */ NULL, /* get_sighandler_state */ + NULL, /* set_sighandler_state */ NULL, /* destroy_sighandler_state */ "xenon", }; diff --git a/frontend/frontend_driver.c b/frontend/frontend_driver.c index 8d7666c28a..2c8ce28928 100644 --- a/frontend/frontend_driver.c +++ b/frontend/frontend_driver.c @@ -344,6 +344,14 @@ int frontend_driver_get_signal_handler_state(void) return frontend->get_signal_handler_state(); } +void frontend_driver_set_signal_handler_state(int value) +{ + frontend_ctx_driver_t *frontend = frontend_get_ptr(); + if (!frontend || !frontend->set_signal_handler_state) + return; + frontend->set_signal_handler_state(value); +} + void frontend_driver_destroy_signal_handler_state(void) { frontend_ctx_driver_t *frontend = frontend_get_ptr(); diff --git a/frontend/frontend_driver.h b/frontend/frontend_driver.h index 7ff30d477e..be3a80b4fb 100644 --- a/frontend/frontend_driver.h +++ b/frontend/frontend_driver.h @@ -84,6 +84,7 @@ typedef struct frontend_ctx_driver uint64_t (*get_used_mem)(void); void (*install_signal_handler)(void); int (*get_signal_handler_state)(void); + void (*set_signal_handler_state)(int value); void (*destroy_signal_handler_state)(void); const char *ident; @@ -167,6 +168,8 @@ void frontend_driver_install_signal_handler(void); int frontend_driver_get_signal_handler_state(void); +void frontend_driver_set_signal_handler_state(int value); + void frontend_driver_destroy_signal_handler_state(void); RETRO_END_DECLS