Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 43997540 authored by terryguan's avatar terryguan
Browse files

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
parent d96c6b8e
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -745,6 +745,9 @@ provides the `aidl_lazy_test_1` interface.
  fstab.${ro.hardware} or fstab.${ro.hardware.platform} will be scanned for
  fstab.${ro.hardware} or fstab.${ro.hardware.platform} will be scanned for
  under /odm/etc, /vendor/etc, or / at runtime, in that order.
  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>`
`symlink <target> <path>`
> Create a symbolic link at _path_ with the value _target_
> 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,
  If the file does not exist, it will be created. If it does exist,
  it will be truncated. Properties are expanded within _content_.
  it will be truncated. Properties are expanded within _content_.



Imports
Imports
-------
-------
`import <path>`
`import <path>`
+9 −0
Original line number Original line Diff line number Diff line
@@ -36,6 +36,7 @@
#include <sys/resource.h>
#include <sys/resource.h>
#include <sys/socket.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/stat.h>
#include <sys/swap.h>
#include <sys/syscall.h>
#include <sys/syscall.h>
#include <sys/system_properties.h>
#include <sys/system_properties.h>
#include <sys/time.h>
#include <sys/time.h>
@@ -1316,6 +1317,13 @@ static Result<void> do_enter_default_mount_ns(const BuiltinArguments& args) {
    return {};
    return {};
}
}


static Result<void> do_swapoff(const BuiltinArguments& args) {
    if (!swapoff(args[1].c_str())) {
        return ErrnoError() << "swapoff() failed";
    }
    return {};
}

// Builtin-function-map start
// Builtin-function-map start
const BuiltinFunctionMap& GetBuiltinFunctionMap() {
const BuiltinFunctionMap& GetBuiltinFunctionMap() {
    constexpr std::size_t kMax = std::numeric_limits<std::size_t>::max();
    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}}},
        {"start",                   {1,     1,    {false,  do_start}}},
        {"stop",                    {1,     1,    {false,  do_stop}}},
        {"stop",                    {1,     1,    {false,  do_stop}}},
        {"swapon_all",              {0,     1,    {false,  do_swapon_all}}},
        {"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}}},
        {"enter_default_mount_ns",  {0,     0,    {false,  do_enter_default_mount_ns}}},
        {"symlink",                 {2,     2,    {true,   do_symlink}}},
        {"symlink",                 {2,     2,    {true,   do_symlink}}},
        {"sysclktz",                {1,     1,    {false,  do_sysclktz}}},
        {"sysclktz",                {1,     1,    {false,  do_sysclktz}}},