Serenity Operating System
at master 39 lines 1.1 kB view raw
1/* 2 * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#include <LibCore/ArgsParser.h> 8#include <LibMain/Main.h> 9#include <serenity.h> 10#include <stdio.h> 11 12ErrorOr<int> serenity_main(Main::Arguments arguments) 13{ 14 int mode = 0; 15 16 bool purge_all_volatile = false; 17 bool purge_all_clean_inode = false; 18 19 Core::ArgsParser args_parser; 20 args_parser.add_option(purge_all_volatile, "Mode PURGE_ALL_VOLATILE", nullptr, 'v'); 21 args_parser.add_option(purge_all_clean_inode, "Mode PURGE_ALL_CLEAN_INODE", nullptr, 'c'); 22 args_parser.parse(arguments); 23 24 if (!purge_all_volatile && !purge_all_clean_inode) 25 purge_all_volatile = purge_all_clean_inode = true; 26 27 if (purge_all_volatile) 28 mode |= PURGE_ALL_VOLATILE; 29 if (purge_all_clean_inode) 30 mode |= PURGE_ALL_CLEAN_INODE; 31 32 int purged_page_count = purge(mode); 33 if (purged_page_count < 0) { 34 perror("purge"); 35 return 1; 36 } 37 outln("Purged page count: {}", purged_page_count); 38 return 0; 39}