summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Pargmann <mpa@pengutronix.de>2015-02-10 13:55:37 +0100
committerMichael Olbrich <m.olbrich@pengutronix.de>2015-02-12 17:16:14 +0100
commit2b43451fdc21698a46da04033e2bdc12c309db60 (patch)
tree4813741416db55ad260bc2e928f6e25c7c8bb2e9
parent074ef5b43965d549d2c4cf2c978371494828258c (diff)
downloadkmsfbwrap-2b43451fdc21698a46da04033e2bdc12c309db60.tar.gz
kmsfbwrap-2b43451fdc21698a46da04033e2bdc12c309db60.tar.xz
Add init support
It is useful to start kmsfb-manage as init process to display a image as early as possible. kmsfb-manage forks itself first and starts /sbin/init from the pid 1 process. Signed-off-by: Markus Pargmann <mpa@pengutronix.de> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
-rw-r--r--src/kmsfb-manage.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/kmsfb-manage.c b/src/kmsfb-manage.c
index 0edecf7..70559a2 100644
--- a/src/kmsfb-manage.c
+++ b/src/kmsfb-manage.c
@@ -1285,9 +1285,22 @@ int main(int argc, char *argv[])
struct drm_resource *res;
int err;
char **parse_args;
+ pid_t kmsfbpid;
char *cmdline;
char *cmdlinev[MAX_ARGS];
+ kmsfbpid = getpid();
+ if (kmsfbpid == 1) {
+ pid_t pid;
+
+ pid = fork();
+ if (pid > 0) {
+ printf("kmsfb-manage forking init\n");
+ execl("/sbin/init", "/sbin/init", NULL);
+ exit(1);
+ }
+ }
+
if (argc <= 1) {
int f;
int ret;