annotate toys/swapon.c @ 482:b4a9fd8773d6

Adding swapon and swapoff
author Elie De Brauwer <eliedebrauwer@gmail.com>
date Sat, 18 Feb 2012 15:33:27 +0100
parents
children 26db0cd433f3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
482
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
1 /* vi: set sw=4 ts=4:
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
2 *
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
3 * swapon.c - Enable region for swapping
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
4 *
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
5 * Copyright 2012 Elie De Brauwer <eliedebrauwer@gmail.com>
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
6 *
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
7 * Not in SUSv4.
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
8
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
9 USE_SWAPON(NEWTOY(swapon, "<1>1p#<0>32767", TOYFLAG_BIN|TOYFLAG_NEEDROOT))
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
10
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
11 config SWAPON
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
12 bool "swapon"
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
13 default y
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
14 help
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
15 usage: swapon swapregion
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
16
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
17 Enable swapping on a given swapregion.
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
18 */
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
19
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
20 #include "toys.h"
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
21
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
22 DEFINE_GLOBALS(
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
23 long priority;
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
24 )
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
25
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
26 #define TT this.swapon
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
27
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
28 void swapon_main(void)
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
29 {
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
30 int flags = 0;
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
31
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
32 if (toys.optflags & 1)
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
33 flags = SWAP_FLAG_PREFER |
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
34 ((TT.priority & SWAP_FLAG_PRIO_MASK) << SWAP_FLAG_PRIO_SHIFT);
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
35
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
36 if (swapon(toys.optargs[0], flags))
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
37 perror_exit("failed to enable swaparea");
b4a9fd8773d6 Adding swapon and swapoff
Elie De Brauwer <eliedebrauwer@gmail.com>
parents:
diff changeset
38 }