init: add a swapoff built-in command
Enables a method for swapping off certain block devices or files. This will be used before hibernation occurs. Bug: 339688542 Test: Manual, verified that calling swapoff from a init file swapsoff location that is specified Change-Id: I212a6f303a023c3e440b557caae82ad3904ac9c9
This commit is contained in:
parent
d96c6b8e88
commit
4399754035
2 changed files with 12 additions and 1 deletions
|
|
@ -745,6 +745,9 @@ provides the `aidl_lazy_test_1` interface.
|
|||
fstab.${ro.hardware} or fstab.${ro.hardware.platform} will be scanned for
|
||||
under /odm/etc, /vendor/etc, or / at runtime, in that order.
|
||||
|
||||
`swapoff <path>`
|
||||
> Stops swapping to the file or block device specified by path.
|
||||
|
||||
`symlink <target> <path>`
|
||||
> Create a symbolic link at _path_ with the value _target_
|
||||
|
||||
|
|
@ -788,7 +791,6 @@ provides the `aidl_lazy_test_1` interface.
|
|||
If the file does not exist, it will be created. If it does exist,
|
||||
it will be truncated. Properties are expanded within _content_.
|
||||
|
||||
|
||||
Imports
|
||||
-------
|
||||
`import <path>`
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
#include <sys/resource.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/swap.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <sys/system_properties.h>
|
||||
#include <sys/time.h>
|
||||
|
|
@ -1316,6 +1317,13 @@ static Result<void> do_enter_default_mount_ns(const BuiltinArguments& args) {
|
|||
return {};
|
||||
}
|
||||
|
||||
static Result<void> do_swapoff(const BuiltinArguments& args) {
|
||||
if (!swapoff(args[1].c_str())) {
|
||||
return ErrnoError() << "swapoff() failed";
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
// Builtin-function-map start
|
||||
const BuiltinFunctionMap& GetBuiltinFunctionMap() {
|
||||
constexpr std::size_t kMax = std::numeric_limits<std::size_t>::max();
|
||||
|
|
@ -1372,6 +1380,7 @@ const BuiltinFunctionMap& GetBuiltinFunctionMap() {
|
|||
{"start", {1, 1, {false, do_start}}},
|
||||
{"stop", {1, 1, {false, do_stop}}},
|
||||
{"swapon_all", {0, 1, {false, do_swapon_all}}},
|
||||
{"swapoff", {1, 1, {false, do_swapoff}}},
|
||||
{"enter_default_mount_ns", {0, 0, {false, do_enter_default_mount_ns}}},
|
||||
{"symlink", {2, 2, {true, do_symlink}}},
|
||||
{"sysclktz", {1, 1, {false, do_sysclktz}}},
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue