From: Harald Hoyer Date: Wed, 16 May 2012 12:22:40 +0000 (+0200) Subject: util.c: add in_initrd() X-Git-Tag: v183~69 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9be346c94eab9de0edc30f08b6c6d070c3a17c79;p=systemd util.c: add in_initrd() in_initrd() checks, if the stat() for the device for "/" is 1, which it is for the initramfs. --- diff --git a/src/shared/util.c b/src/shared/util.c index 53185403..681484bc 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -5639,3 +5639,18 @@ bool is_valid_documentation_url(const char *url) { return false; } + +bool in_initrd(void) { + static bool checked=false; + static bool is_in_initrd=false; + + if (!checked) { + struct stat sb; + if (stat("/", &sb) == 0) { + is_in_initrd = (sb.st_dev == 1); + checked = true; + } + } + + return is_in_initrd; +} diff --git a/src/shared/util.h b/src/shared/util.h index 0af0299d..4fccf96a 100644 --- a/src/shared/util.h +++ b/src/shared/util.h @@ -512,4 +512,5 @@ int can_sleep(const char *type); bool is_valid_documentation_url(const char *url); +bool in_initrd(void); #endif