summaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorKen Sumrall <ksumrall@android.com>2013-07-09 18:42:09 -0700
committerKen Sumrall <ksumrall@android.com>2013-07-09 18:42:09 -0700
commita76baaabe56b98e23861e89722bd1425f92dbc2c (patch)
treef56362ef3a4b52aabe8810173dd055ddeaaecb81 /init
parent5bc31a2632f453e03edac714b865773970bba608 (diff)
downloadsystem_core-a76baaabe56b98e23861e89722bd1425f92dbc2c.zip
system_core-a76baaabe56b98e23861e89722bd1425f92dbc2c.tar.gz
system_core-a76baaabe56b98e23861e89722bd1425f92dbc2c.tar.bz2
Add swapon_all to init's builtin commands
For enabling swap devices found in the fstab file Change-Id: Iec4fd4d208df3d7a161a90d95f8606e8b516334a
Diffstat (limited to 'init')
-rw-r--r--init/builtins.c12
-rw-r--r--init/init_parser.c1
-rw-r--r--init/keywords.h2
3 files changed, 15 insertions, 0 deletions
diff --git a/init/builtins.c b/init/builtins.c
index 6e37d08..bfc0ddb 100644
--- a/init/builtins.c
+++ b/init/builtins.c
@@ -516,6 +516,18 @@ int do_mount_all(int nargs, char **args)
return ret;
}
+int do_swapon_all(int nargs, char **args)
+{
+ struct fstab *fstab;
+ int ret;
+
+ fstab = fs_mgr_read_fstab(args[1]);
+ ret = fs_mgr_swapon_all(fstab);
+ fs_mgr_free_fstab(fstab);
+
+ return ret;
+}
+
int do_setcon(int nargs, char **args) {
if (is_selinux_enabled() <= 0)
return 0;
diff --git a/init/init_parser.c b/init/init_parser.c
index 28bf30c..776c699 100644
--- a/init/init_parser.c
+++ b/init/init_parser.c
@@ -151,6 +151,7 @@ int lookup_keyword(const char *s)
if (!strcmp(s, "ocket")) return K_socket;
if (!strcmp(s, "tart")) return K_start;
if (!strcmp(s, "top")) return K_stop;
+ if (!strcmp(s, "wapon_all")) return K_swapon_all;
if (!strcmp(s, "ymlink")) return K_symlink;
if (!strcmp(s, "ysclktz")) return K_sysclktz;
break;
diff --git a/init/keywords.h b/init/keywords.h
index f147506..5a44df3 100644
--- a/init/keywords.h
+++ b/init/keywords.h
@@ -27,6 +27,7 @@ int do_setrlimit(int nargs, char **args);
int do_setsebool(int nargs, char **args);
int do_start(int nargs, char **args);
int do_stop(int nargs, char **args);
+int do_swapon_all(int nargs, char **args);
int do_trigger(int nargs, char **args);
int do_symlink(int nargs, char **args);
int do_sysclktz(int nargs, char **args);
@@ -84,6 +85,7 @@ enum {
KEYWORD(socket, OPTION, 0, 0)
KEYWORD(start, COMMAND, 1, do_start)
KEYWORD(stop, COMMAND, 1, do_stop)
+ KEYWORD(swapon_all, COMMAND, 1, do_swapon_all)
KEYWORD(trigger, COMMAND, 1, do_trigger)
KEYWORD(symlink, COMMAND, 1, do_symlink)
KEYWORD(sysclktz, COMMAND, 1, do_sysclktz)