Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.busybox.net/busybox.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'swapon.c')
-rw-r--r--swapon.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/swapon.c b/swapon.c
new file mode 100644
index 000000000..78360a55f
--- /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);
+}
+