[systemd-devel] [PATCHv4 3/3] resume-generator: add a generator for instantiating the resume unit.

2014-08-26 Thread Ivan Shapovalov
resume-generator understands resume= kernel command line parameter and
instantiates the systemd-resume@.service accordingly if it is passed.

This enables resume from hibernation using device specified on the kernel
command line, where the device path may point to an arbitrary udev-created
symlink, not only /dev/sdXY which is understood by the in-kernel
implementation.
---
 Makefile-man.am |  2 +
 Makefile.am | 11 +++-
 man/kernel-command-line.xml | 13 -
 man/systemd-resume-generator.xml| 91 +++
 src/resume-generator/Makefile   |  1 +
 src/resume-generator/resume-generator.c | 95 +
 6 files changed, 211 insertions(+), 2 deletions(-)
 create mode 100644 man/systemd-resume-generator.xml
 create mode 12 src/resume-generator/Makefile
 create mode 100644 src/resume-generator/resume-generator.c

diff --git a/Makefile-man.am b/Makefile-man.am
index be19905..00daae2 100644
--- a/Makefile-man.am
+++ b/Makefile-man.am
@@ -76,6 +76,7 @@ MANPAGES += \
man/systemd-nspawn.1 \
man/systemd-path.1 \
man/systemd-remount-fs.service.8 \
+   man/systemd-resume-generator.8 \
man/systemd-resume@.service.8 \
man/systemd-run.1 \
man/systemd-shutdownd.service.8 \
@@ -1632,6 +1633,7 @@ EXTRA_DIST += \
man/systemd-readahead-replay.service.xml \
man/systemd-remount-fs.service.xml \
man/systemd-resolved.service.xml \
+   man/systemd-resume-generator.xml \
man/systemd-res...@.service.xml \
man/systemd-rfk...@.service.xml \
man/systemd-run.xml \
diff --git a/Makefile.am b/Makefile.am
index c4327ca..820d082 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -378,7 +378,8 @@ systemgenerator_PROGRAMS = \
systemd-getty-generator \
systemd-fstab-generator \
systemd-system-update-generator \
-   systemd-debug-generator
+   systemd-debug-generator \
+   systemd-resume-generator
 
 dist_bashcompletion_DATA = \
shell-completion/bash/busctl \
@@ -1973,6 +1974,14 @@ systemd_system_update_generator_LDADD = \
libsystemd-label.la \
libsystemd-shared.la
 
+# 
--
+systemd_resume_generator_SOURCES = \
+   src/resume-generator/resume-generator.c
+
+systemd_resume_generator_LDADD = \
+   libsystemd-label.la \
+   libsystemd-shared.la
+
 if ENABLE_EFI
 # 
--
 systemgenerator_PROGRAMS +=  \
diff --git a/man/kernel-command-line.xml b/man/kernel-command-line.xml
index f244bfc..4bc6cee 100644
--- a/man/kernel-command-line.xml
+++ b/man/kernel-command-line.xml
@@ -351,6 +351,16 @@
 /listitem
 /varlistentry
 
+varlistentry
+termvarnameresume=/varname/term
+
+listitem
+paraEnables resume from hibernation
+using the specified device. For
+details, see
+
citerefentryrefentrytitlesystemd-resume-generator/refentrytitlemanvolnum8/manvolnum/citerefentry./para
+/listitem
+/varlistentry
 /variablelist
 
 /refsect1
@@ -373,7 +383,8 @@
   
citerefentryrefentrytitlesystemd-gpt-auto-generator/refentrytitlemanvolnum8/manvolnum/citerefentry,
   
citerefentryrefentrytitlesystemd-modules-load.service/refentrytitlemanvolnum8/manvolnum/citerefentry,
   
citerefentryrefentrytitlesystemd-backlight@.service/refentrytitlemanvolnum8/manvolnum/citerefentry,
-  
citerefentryrefentrytitlesystemd-rfkill@.service/refentrytitlemanvolnum8/manvolnum/citerefentry
+  
citerefentryrefentrytitlesystemd-rfkill@.service/refentrytitlemanvolnum8/manvolnum/citerefentry,
+  
citerefentryrefentrytitlesystemd-resume-generator/refentrytitlemanvolnum8/manvolnum/citerefentry
   /para
 /refsect1
 
diff --git a/man/systemd-resume-generator.xml b/man/systemd-resume-generator.xml
new file mode 100644
index 000..7962534
--- /dev/null
+++ b/man/systemd-resume-generator.xml
@@ -0,0 +1,91 @@
+?xml version=1.0?
+!--*-nxml-*--
+!DOCTYPE refentry PUBLIC -//OASIS//DTD DocBook XML V4.2//EN 
http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd;
+!--
+  This file is part of systemd.
+
+  Copyright 2014 Ivan Shapovalov
+
+  systemd is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Lesser General Public License as published by
+  the Free Software Foundation; either version 2.1 

Re: [systemd-devel] [PATCHv4 3/3] resume-generator: add a generator for instantiating the resume unit.

2014-08-26 Thread Dave Reisner
On Tue, Aug 26, 2014 at 04:11:05PM +0400, Ivan Shapovalov wrote:
 resume-generator understands resume= kernel command line parameter and
 instantiates the systemd-resume@.service accordingly if it is passed.
 
 This enables resume from hibernation using device specified on the kernel
 command line, where the device path may point to an arbitrary udev-created
 symlink, not only /dev/sdXY which is understood by the in-kernel
 implementation.
 ---

...

 diff --git a/src/resume-generator/resume-generator.c 
 b/src/resume-generator/resume-generator.c
 new file mode 100644
 index 000..38179ff
 --- /dev/null
 +++ b/src/resume-generator/resume-generator.c
 @@ -0,0 +1,95 @@

...

 +
 +static int parse_proc_cmdline_item(const char *key, const char *value) {
 +if (streq(key, resume)  value) {
 +free(arg_resume_dev);
 +arg_resume_dev = strdup(value);

Shouldn't this be fstab_node_to_udev_node() so that we can support
things like resume=LABEL=myawesomedevice ?

d
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel


Re: [systemd-devel] [PATCHv4 3/3] resume-generator: add a generator for instantiating the resume unit.

2014-08-26 Thread Ivan Shapovalov
On Tuesday 26 August 2014 at 09:18:30, Dave Reisner wrote:  
 On Tue, Aug 26, 2014 at 04:11:05PM +0400, Ivan Shapovalov wrote:
  resume-generator understands resume= kernel command line parameter and
  instantiates the systemd-resume@.service accordingly if it is passed.
  
  This enables resume from hibernation using device specified on the kernel
  command line, where the device path may point to an arbitrary udev-created
  symlink, not only /dev/sdXY which is understood by the in-kernel
  implementation.
  ---
 
 ...
 
  diff --git a/src/resume-generator/resume-generator.c 
  b/src/resume-generator/resume-generator.c
  new file mode 100644
  index 000..38179ff
  --- /dev/null
  +++ b/src/resume-generator/resume-generator.c
  @@ -0,0 +1,95 @@
 
 ...
 
  +
  +static int parse_proc_cmdline_item(const char *key, const char *value) {
  +if (streq(key, resume)  value) {
  +free(arg_resume_dev);
  +arg_resume_dev = strdup(value);
 
 Shouldn't this be fstab_node_to_udev_node() so that we can support
 things like resume=LABEL=myawesomedevice ?
 
 d

Yeah, indeed, makes sense. Didn't know there was a special function
for that. Done for v5.

-- 
Ivan Shapovalov / intelfx /

signature.asc
Description: This is a digitally signed message part.
___
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel