From 2c162816e81ab49b43df565484f0d965f8984844 Mon Sep 17 00:00:00 2001 From: Elie De Brauwer Date: Sat, 18 Feb 2012 15:33:27 +0100 Subject: [PATCH] Adding swapon and swapoff --- toys.h | 1 + toys/swapoff.c | 26 ++++++++++++++++++++++++++ toys/swapon.c | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+) create mode 100644 toys/swapoff.c create mode 100644 toys/swapon.c diff --git a/toys.h b/toys.h index 5ed8089..504e0dc 100644 --- a/toys.h +++ b/toys.h @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include diff --git a/toys/swapoff.c b/toys/swapoff.c new file mode 100644 index 0000000..fba0de8 --- /dev/null +++ b/toys/swapoff.c @@ -0,0 +1,26 @@ +/* vi: set sw=4 ts=4: + * + * swapoff.c - Disable region for swapping + * + * Copyright 2012 Elie De Brauwer + * + * Not in SUSv4. + +USE_SWAPOFF(NEWTOY(swapoff, "<1>1", TOYFLAG_BIN|TOYFLAG_NEEDROOT)) + +config SWAPOFF + bool "swapoff" + default y + help + usage: swapoff swapregion + + Disable swapping on a given swapregion. +*/ + +#include "toys.h" + +void swapoff_main(void) +{ + if (swapoff(toys.optargs[0])) + perror_exit("failed to remove swaparea"); +} diff --git a/toys/swapon.c b/toys/swapon.c new file mode 100644 index 0000000..36e4507 --- /dev/null +++ b/toys/swapon.c @@ -0,0 +1,38 @@ +/* vi: set sw=4 ts=4: + * + * swapon.c - Enable region for swapping + * + * Copyright 2012 Elie De Brauwer + * + * Not in SUSv4. + +USE_SWAPON(NEWTOY(swapon, "<1>1p#<0>32767", TOYFLAG_BIN|TOYFLAG_NEEDROOT)) + +config SWAPON + bool "swapon" + default y + help + usage: swapon swapregion + + Enable swapping on a given swapregion. +*/ + +#include "toys.h" + +DEFINE_GLOBALS( + long priority; +) + +#define TT this.swapon + +void swapon_main(void) +{ + int flags = 0; + + if (toys.optflags & 1) + flags = SWAP_FLAG_PREFER | + ((TT.priority & SWAP_FLAG_PRIO_MASK) << SWAP_FLAG_PRIO_SHIFT); + + if (swapon(toys.optargs[0], flags)) + perror_exit("failed to enable swaparea"); +} -- 2.7.4