xref: /third_party/toybox/toys/other/swapon.c (revision 0f66f451)
1/* swapon.c - Enable region for swapping
2 *
3 * Copyright 2012 Elie De Brauwer <eliedebrauwer@gmail.com>
4
5USE_SWAPON(NEWTOY(swapon, "<1>1p#<0>32767d", TOYFLAG_SBIN|TOYFLAG_NEEDROOT))
6
7config SWAPON
8  bool "swapon"
9  default y
10  help
11    usage: swapon [-d] [-p priority] filename
12
13    Enable swapping on a given device/file.
14
15    -d	Discard freed SSD pages
16    -p	Priority (highest priority areas allocated first)
17*/
18
19#define FOR_swapon
20#include "toys.h"
21
22GLOBALS(
23  long p;
24)
25
26void swapon_main(void)
27{
28  // 0x70000 = SWAP_FLAG_DISCARD|SWAP_FLAG_DISCARD_ONCE|SWAP_FLAG_DISCARD_PAGES
29  int flags = (toys.optflags&FLAG_d)*0x70000;
30
31  if (toys.optflags)
32    flags |= SWAP_FLAG_PREFER | (TT.p << SWAP_FLAG_PRIO_SHIFT);
33
34  if (swapon(*toys.optargs, flags))
35    perror_exit("Couldn't swapon '%s'", *toys.optargs);
36}
37