X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsleep%2Fsleep.c;h=cf03c34b30e327accaa9fa7e78db1653f5b60efe;hb=c0e8baacdbcf4cee407eb0c50c6fbb7e4e089158;hp=2fb5f0c8e049167801a1416453cf9adcf73fdd3f;hpb=4968105790c65af58d4ab42bffa2a4bedc0be8ee;p=elogind.git diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c index 2fb5f0c8e..cf03c34b3 100644 --- a/src/sleep/sleep.c +++ b/src/sleep/sleep.c @@ -1,5 +1,3 @@ -/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ - /*** This file is part of systemd. @@ -20,20 +18,23 @@ along with systemd; If not, see . ***/ -#include -#include -#include -#include +//#include +//#include +//#include -#include "sd-id128.h" #include "sd-messages.h" -#include "log.h" -#include "util.h" -#include "strv.h" -#include "fileio.h" -#include "build.h" -#include "sleep-config.h" + #include "def.h" +#include "fd-util.h" +#include "fileio.h" +//#include "log.h" +//#include "sleep-config.h" +//#include "string-util.h" +#include "strv.h" +//#include "util.h" + +/// Additional includes needed by elogind +#include "sleep.h" static char* arg_verb = NULL; @@ -44,7 +45,7 @@ static int write_mode(char **modes) { STRV_FOREACH(mode, modes) { int k; - k = write_string_file("/sys/power/disk", *mode); + k = write_string_file("/sys/power/disk", *mode, 0); if (k == 0) return 0; @@ -67,7 +68,7 @@ static int write_state(FILE **f, char **states) { STRV_FOREACH(state, states) { int k; - k = write_string_stream(*f, *state); + k = write_string_stream(*f, *state, true); if (k == 0) return 0; log_debug_errno(k, "Failed to write '%s' to /sys/power/state: %m", @@ -92,6 +93,7 @@ static int execute(char **modes, char **states) { arg_verb, NULL }; + static const char* const dirs[] = {SYSTEM_SLEEP_PATH, NULL}; int r; _cleanup_fclose_ FILE *f = NULL; @@ -107,7 +109,7 @@ static int execute(char **modes, char **states) { if (r < 0) return r; - execute_directory(SYSTEM_SLEEP_PATH, DEFAULT_TIMEOUT_USEC, arguments); + execute_directories(dirs, DEFAULT_TIMEOUT_USEC, NULL, NULL, arguments); log_struct(LOG_INFO, LOG_MESSAGE_ID(SD_MESSAGE_SLEEP_START), @@ -126,11 +128,12 @@ static int execute(char **modes, char **states) { NULL); arguments[1] = (char*) "post"; - execute_directory(SYSTEM_SLEEP_PATH, DEFAULT_TIMEOUT_USEC, arguments); + execute_directories(dirs, DEFAULT_TIMEOUT_USEC, NULL, NULL, arguments); return r; } +#if 0 /// elogind calls execute() by itself and does not need another binary static void help(void) { printf("%s COMMAND\n\n" "Suspend the system, hibernate the system, or both.\n\n" @@ -166,9 +169,7 @@ static int parse_argv(int argc, char *argv[]) { return 0; /* done */ case ARG_VERSION: - puts(PACKAGE_STRING); - puts(SYSTEMD_FEATURES); - return 0 /* done */; + return version(); case '?': return -EINVAL; @@ -216,3 +217,10 @@ int main(int argc, char *argv[]) { finish: return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; } +#else +int do_sleep(const char *verb, char **modes, char **states) { + assert(verb); + arg_verb = (char*)verb; + return execute(modes, states); +} +#endif // 0