diff --git a/frontend/drivers/platform_ctr.c b/frontend/drivers/platform_ctr.c index 3cccc7483e..1e336b42df 100644 --- a/frontend/drivers/platform_ctr.c +++ b/frontend/drivers/platform_ctr.c @@ -279,5 +279,6 @@ frontend_ctx_driver_t frontend_ctx_ctr = { NULL, /* get_powerstate */ frontend_ctr_parse_drive_list, NULL, /* get_mem_total */ + NULL, /* get_mem_free */ "ctr", }; diff --git a/frontend/drivers/platform_darwin.m b/frontend/drivers/platform_darwin.m index fb07cb50a5..0ff13d097e 100644 --- a/frontend/drivers/platform_darwin.m +++ b/frontend/drivers/platform_darwin.m @@ -682,5 +682,6 @@ frontend_ctx_driver_t frontend_ctx_darwin = { frontend_darwin_get_powerstate, frontend_darwin_parse_drive_list, NULL, /* get_mem_total */ + NULL, /* get_mem_free */ "darwin", }; diff --git a/frontend/drivers/platform_gx.c b/frontend/drivers/platform_gx.c index 394fb1ded6..bfabbea6ab 100644 --- a/frontend/drivers/platform_gx.c +++ b/frontend/drivers/platform_gx.c @@ -502,5 +502,6 @@ frontend_ctx_driver_t frontend_ctx_gx = { NULL, /* get_powerstate */ frontend_gx_parse_drive_list, NULL, /* get_mem_total */ + NULL, /* get_mem_free */ "gx", }; diff --git a/frontend/drivers/platform_linux.c b/frontend/drivers/platform_linux.c index 8760a03c06..20c1a4ab6f 100644 --- a/frontend/drivers/platform_linux.c +++ b/frontend/drivers/platform_linux.c @@ -1888,6 +1888,13 @@ static uint32_t frontend_linux_get_mem_total(void) return pages * page_size; } +static uint32_t frontend_linux_get_mem_free(void) +{ + long pages = sysconf(_SC_AVPHYS_PAGES); + long page_size = sysconf(_SC_PAGE_SIZE); + return pages * page_size; +} + frontend_ctx_driver_t frontend_ctx_linux = { frontend_linux_get_env, /* environment_get */ frontend_linux_init, /* init */ @@ -1923,6 +1930,7 @@ frontend_ctx_driver_t frontend_ctx_linux = { NULL, /* parse_drive_list */ #endif frontend_linux_get_mem_total, + frontend_linux_get_mem_free, #ifdef ANDROID "android" #else diff --git a/frontend/drivers/platform_null.c b/frontend/drivers/platform_null.c index 3807e71fc1..b558e111c1 100644 --- a/frontend/drivers/platform_null.c +++ b/frontend/drivers/platform_null.c @@ -36,5 +36,6 @@ frontend_ctx_driver_t frontend_ctx_null = { NULL, /* get_powerstate */ NULL, /* parse_drive_list */ NULL, /* get_mem_total */ + NULL, /* get_mem_free */ "null", }; diff --git a/frontend/drivers/platform_ps3.c b/frontend/drivers/platform_ps3.c index ed5292ee95..a9d436933d 100644 --- a/frontend/drivers/platform_ps3.c +++ b/frontend/drivers/platform_ps3.c @@ -540,5 +540,6 @@ frontend_ctx_driver_t frontend_ctx_ps3 = { NULL, /* get_powerstate */ frontend_ps3_parse_drive_list, NULL, /* get_mem_total */ + NULL, /* get_mem_free */ "ps3", }; diff --git a/frontend/drivers/platform_psp.c b/frontend/drivers/platform_psp.c index 94b9f008fd..4b3dc1cc40 100644 --- a/frontend/drivers/platform_psp.c +++ b/frontend/drivers/platform_psp.c @@ -405,6 +405,7 @@ frontend_ctx_driver_t frontend_ctx_psp = { frontend_psp_get_powerstate, frontend_psp_parse_drive_list, NULL, /* get_mem_total */ + NULL, /* get_mem_free */ #ifdef VITA "vita", #else diff --git a/frontend/drivers/platform_qnx.c b/frontend/drivers/platform_qnx.c index 3236b56aa2..41f6d3d785 100644 --- a/frontend/drivers/platform_qnx.c +++ b/frontend/drivers/platform_qnx.c @@ -85,5 +85,6 @@ frontend_ctx_driver_t frontend_ctx_qnx = { NULL, /* get_powerstate */ NULL, /* parse_drive_list */ NULL, /* get_mem_total */ + NULL, /* get_mem_free */ "qnx", }; diff --git a/frontend/drivers/platform_win32.c b/frontend/drivers/platform_win32.c index e874d4fb20..d314192a8c 100644 --- a/frontend/drivers/platform_win32.c +++ b/frontend/drivers/platform_win32.c @@ -317,5 +317,6 @@ frontend_ctx_driver_t frontend_ctx_win32 = { frontend_win32_get_powerstate, frontend_win32_parse_drive_list, NULL, /* get_mem_total */ + NULL, /* get_mem_free */ "win32", }; diff --git a/frontend/drivers/platform_xdk.cpp b/frontend/drivers/platform_xdk.cpp index cf89f525a2..2b4a76978c 100644 --- a/frontend/drivers/platform_xdk.cpp +++ b/frontend/drivers/platform_xdk.cpp @@ -1407,5 +1407,6 @@ frontend_ctx_driver_t frontend_ctx_xdk = { NULL, /* get_powerstate */ frontend_xdk_parse_drive_list, NULL, /* get_mem_total */ + NULL, /* get_mem_free */ "xdk", }; diff --git a/frontend/frontend_driver.h b/frontend/frontend_driver.h index c9b94a68d5..7cf0824d78 100644 --- a/frontend/frontend_driver.h +++ b/frontend/frontend_driver.h @@ -81,6 +81,7 @@ typedef struct frontend_ctx_driver enum frontend_powerstate (*get_powerstate)(int *seconds, int *percent); int (*parse_drive_list)(void*); uint32_t (*get_total_mem)(void); + uint32_t (*get_free_mem)(void); const char *ident;