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