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 WorkerGLOBALS( 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