diff options
Diffstat (limited to 'swapon.c')
-rw-r--r-- | swapon.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/swapon.c b/swapon.c new file mode 100644 index 0000000..78360a5 --- /dev/null +++ b/swapon.c @@ -0,0 +1,34 @@ +#include <stdio.h> +#include <mntent.h> +#include <sys/swap.h> +#include "internal.h" + +const char swapon_usage[] = "swapon block-device\n" +"\n" +"\tSwap virtual memory pages on the given device.\n"; + +extern int +swapon_fn(const struct FileInfo * i) +{ + FILE *swapsTable; + struct mntent m; + + if (!(swapon(i->source, 0))) { + if ((swapsTable = setmntent("/etc/swaps", "a+"))) { + /* Needs the cast to avoid warning about conversion from + * const char* to just char* + */ + m.mnt_fsname = (char*)i->source; + m.mnt_dir = "none"; + m.mnt_type = "swap"; + m.mnt_opts = "sw"; + m.mnt_freq = 0; + m.mnt_passno = 0; + addmntent(swapsTable, &m); + endmntent(swapsTable); + } + return (0); + } + return (-1); +} + |