static void make_directories(void) { MAKE_DIR(default_paths.port_dir); MAKE_DIR(default_paths.system_dir); MAKE_DIR(default_paths.savestate_dir); MAKE_DIR(default_paths.sram_dir); MAKE_DIR(default_paths.input_presets_dir); MAKE_FILE(default_paths.config_file); }
static void get_environment_settings(int argc, char *argv[]) { (void)argc; (void)argv; #ifdef HW_DOL chdir("carda:/retroarch"); #endif getcwd(default_paths.core_dir, MAXPATHLEN); char *last_slash = strrchr(default_paths.core_dir, '/'); if (last_slash) *last_slash = 0; char *device_end = strchr(default_paths.core_dir, '/'); if (device_end) snprintf(default_paths.port_dir, sizeof(default_paths.port_dir), "%.*s/retroarch", device_end - default_paths.core_dir, default_paths.core_dir); else strlcpy(default_paths.port_dir, "/retroarch", sizeof(default_paths.port_dir)); #ifdef IS_SALAMANDER snprintf(default_paths.config_path, sizeof(default_paths.config_path), "%s/retroarch.cfg", default_paths.port_dir); #else snprintf(g_extern.config_path, sizeof(g_extern.config_path), "%s/retroarch.cfg", default_paths.port_dir); #endif snprintf(default_paths.system_dir, sizeof(default_paths.system_dir), "%s/system", default_paths.port_dir); snprintf(default_paths.savestate_dir, sizeof(default_paths.savestate_dir), "%s/savestates", default_paths.port_dir); strlcpy(default_paths.filesystem_root_dir, "/", sizeof(default_paths.filesystem_root_dir)); snprintf(default_paths.filebrowser_startup_dir, sizeof(default_paths.filebrowser_startup_dir), default_paths.filesystem_root_dir); snprintf(default_paths.sram_dir, sizeof(default_paths.sram_dir), "%s/sram", default_paths.port_dir); snprintf(default_paths.input_presets_dir, sizeof(default_paths.input_presets_dir), "%s/input", default_paths.port_dir); strlcpy(default_paths.executable_extension, ".dol", sizeof(default_paths.executable_extension)); strlcpy(default_paths.salamander_file, "boot.dol", sizeof(default_paths.salamander_file)); #ifndef IS_SALAMANDER MAKE_DIR(default_paths.port_dir); MAKE_DIR(default_paths.system_dir); MAKE_DIR(default_paths.savestate_dir); MAKE_DIR(default_paths.sram_dir); MAKE_DIR(default_paths.input_presets_dir); MAKE_FILE(g_extern.config_path); #endif }
static int make_controller(const char *path, mode_t mode) { int ret = -1; const char *controller; if (!STRPREFIX(path, fakesysfscgroupdir)) { errno = EINVAL; return -1; } controller = path + strlen(fakesysfscgroupdir) + 1; if (STREQ(controller, "cpu")) return symlink("cpu,cpuacct", path); if (STREQ(controller, "cpuacct")) return symlink("cpu,cpuacct", path); if (real_mkdir(path, mode) < 0) goto cleanup; # define MAKE_FILE(name, value) \ do { \ if (make_file(path, name, value) < 0) \ goto cleanup; \ } while (0) if (STRPREFIX(controller, "cpu,cpuacct")) { MAKE_FILE("cpu.cfs_period_us", "100000\n"); MAKE_FILE("cpu.cfs_quota_us", "-1\n"); MAKE_FILE("cpu.rt_period_us", "1000000\n"); MAKE_FILE("cpu.rt_runtime_us", "950000\n"); MAKE_FILE("cpu.shares", "1024\n"); MAKE_FILE("cpu.stat", "nr_periods 0\n" "nr_throttled 0\n" "throttled_time 0\n"); MAKE_FILE("cpuacct.stat", "user 216687025\n" "system 43421396\n"); MAKE_FILE("cpuacct.usage", "2787788855799582\n"); MAKE_FILE("cpuacct.usage_percpu", "7059492996 0 0 0 0 0 0 0 4180532496 0 0 0 0 0 0 0 " "1957541268 0 0 0 0 0 0 0 2065932204 0 0 0 0 0 0 0 " "18228689414 0 0 0 0 0 0 0 4245525148 0 0 0 0 0 0 0 " "2911161568 0 0 0 0 0 0 0 1407758136 0 0 0 0 0 0 0 " "1836807700 0 0 0 0 0 0 0 1065296618 0 0 0 0 0 0 0 " "2046213266 0 0 0 0 0 0 0 747889778 0 0 0 0 0 0 0 " "709566900 0 0 0 0 0 0 0 444777342 0 0 0 0 0 0 0 " "5683512916 0 0 0 0 0 0 0 635751356 0 0 0 0 0 0 0\n"); } else if (STRPREFIX(controller, "cpuset")) { MAKE_FILE("cpuset.cpu_exclusive", "1\n"); if (STREQ(controller, "cpuset")) MAKE_FILE("cpuset.cpus", "0-1"); else MAKE_FILE("cpuset.cpus", ""); /* Values don't inherit */ MAKE_FILE("cpuset.mem_exclusive", "1\n"); MAKE_FILE("cpuset.mem_hardwall", "0\n"); MAKE_FILE("cpuset.memory_migrate", "0\n"); MAKE_FILE("cpuset.memory_pressure", "0\n"); MAKE_FILE("cpuset.memory_pressure_enabled", "0\n"); MAKE_FILE("cpuset.memory_spread_page", "0\n"); MAKE_FILE("cpuset.memory_spread_slab", "0\n"); if (STREQ(controller, "cpuset")) MAKE_FILE("cpuset.mems", "0"); else MAKE_FILE("cpuset.mems", ""); /* Values don't inherit */ MAKE_FILE("cpuset.sched_load_balance", "1\n"); MAKE_FILE("cpuset.sched_relax_domain_level", "-1\n"); } else if (STRPREFIX(controller, "memory")) { MAKE_FILE("memory.failcnt", "0\n"); MAKE_FILE("memory.force_empty", ""); /* Write only */ MAKE_FILE("memory.kmem.tcp.failcnt", "0\n"); MAKE_FILE("memory.kmem.tcp.limit_in_bytes", "9223372036854775807\n"); MAKE_FILE("memory.kmem.tcp.max_usage_in_bytes", "0\n"); MAKE_FILE("memory.kmem.tcp.usage_in_bytes", "16384\n"); MAKE_FILE("memory.limit_in_bytes", "9223372036854775807\n"); MAKE_FILE("memory.max_usage_in_bytes", "0\n"); MAKE_FILE("memory.memsw.failcnt", ""); /* Not supported */ MAKE_FILE("memory.memsw.limit_in_bytes", ""); /* Not supported */ MAKE_FILE("memory.memsw.max_usage_in_bytes", ""); /* Not supported */ MAKE_FILE("memory.memsw.usage_in_bytes", ""); /* Not supported */ MAKE_FILE("memory.move_charge_at_immigrate", "0\n"); MAKE_FILE("memory.numa_stat", "total=367664 N0=367664\n" "file=314764 N0=314764\n" "anon=51999 N0=51999\n" "unevictable=901 N0=901\n"); MAKE_FILE("memory.oom_control", "oom_kill_disable 0\n" "under_oom 0\n"); MAKE_FILE("memory.soft_limit_in_bytes", "9223372036854775807\n"); MAKE_FILE("memory.stat", "cache 1336619008\n" "rss 97792000\n" "mapped_file 42090496\n" "pgpgin 13022605027\n" "pgpgout 13023820533\n" "pgfault 54429417056\n" "pgmajfault 315715\n" "inactive_anon 145887232\n" "active_anon 67100672\n" "inactive_file 627400704\n" "active_file 661872640\n" "unevictable 3690496\n" "hierarchical_memory_limit 9223372036854775807\n" "total_cache 1336635392\n" "total_rss 118689792\n" "total_mapped_file 42106880\n" "total_pgpgin 13022606816\n" "total_pgpgout 13023820793\n" "total_pgfault 54429422313\n" "total_pgmajfault 315715\n" "total_inactive_anon 145891328\n" "total_active_anon 88010752\n" "total_inactive_file 627400704\n" "total_active_file 661872640\n" "total_unevictable 3690496\n" "recent_rotated_anon 112807028\n" "recent_rotated_file 2547948\n" "recent_scanned_anon 113796164\n" "recent_scanned_file 8199863\n"); MAKE_FILE("memory.swappiness", "60\n"); MAKE_FILE("memory.usage_in_bytes", "1455321088\n"); MAKE_FILE("memory.use_hierarchy", "0\n"); } else if (STRPREFIX(controller, "freezer")) { MAKE_FILE("freezer.state", "THAWED"); } else if (STRPREFIX(controller, "blkio")) { MAKE_FILE("blkio.io_merged", "8:0 Read 1100949\n" "8:0 Write 2248076\n" "8:0 Sync 63063\n" "8:0 Async 3285962\n" "8:0 Total 3349025\n"); MAKE_FILE("blkio.io_queued", "8:0 Read 0\n" "8:0 Write 0\n" "8:0 Sync 0\n" "8:0 Async 0\n" "8:0 Total 0\n"); MAKE_FILE("blkio.io_service_bytes", "8:0 Read 59542078464\n" "8:0 Write 397369182208\n" "8:0 Sync 234080922624\n" "8:0 Async 222830338048\n" "8:0 Total 456911260672\n"); MAKE_FILE("blkio.io_serviced", "8:0 Read 3402504\n" "8:0 Write 14966516\n" "8:0 Sync 12064031\n" "8:0 Async 6304989\n" "8:0 Total 18369020\n"); MAKE_FILE("blkio.io_service_time", "8:0 Read 10747537542349\n" "8:0 Write 9200028590575\n" "8:0 Sync 6449319855381\n" "8:0 Async 13498246277543\n" "8:0 Total 19947566132924\n"); MAKE_FILE("blkio.io_wait_time", "8:0 Read 14687514824889\n" "8:0 Write 357748452187691\n" "8:0 Sync 55296974349413\n" "8:0 Async 317138992663167\n" "8:0 Total 372435967012580\n"); MAKE_FILE("blkio.reset_stats", ""); /* Write only */ MAKE_FILE("blkio.sectors", "8:0 892404806\n"); MAKE_FILE("blkio.throttle.io_service_bytes", "8:0 Read 59542107136\n" "8:0 Write 411440480256\n" "8:0 Sync 248486822912\n" "8:0 Async 222495764480\n" "8:0 Total 470982587392\n" "9:0 Read 59542107137\n" "9:0 Write 411440480257\n" "9:0 Sync 248486822912\n" "9:0 Async 222495764480\n" "9:0 Total 470982587392\n"); MAKE_FILE("blkio.throttle.io_serviced", "8:0 Read 4832583\n" "8:0 Write 36641903\n" "8:0 Sync 30723171\n" "8:0 Async 10751315\n" "8:0 Total 41474486\n" "9:0 Read 4832584\n" "9:0 Write 36641904\n" "9:0 Sync 30723171\n" "9:0 Async 10751315\n" "9:0 Total 41474486\n"); MAKE_FILE("blkio.throttle.read_bps_device", ""); MAKE_FILE("blkio.throttle.read_iops_device", ""); MAKE_FILE("blkio.throttle.write_bps_device", ""); MAKE_FILE("blkio.throttle.write_iops_device", ""); MAKE_FILE("blkio.time", "8:0 61019089\n"); MAKE_FILE("blkio.weight", "1000\n"); MAKE_FILE("blkio.weight_device", ""); } else { errno = EINVAL; goto cleanup; } ret = 0; cleanup: return ret; }