This series adds systemd suspend support for QGA. Some newer guests don't have pmutils anymore, leaving us with just the Linux state file mechanism to suspend the guest OS, which does not support hybrid-sleep. With this implementation, QGA is now able to hybrid suspend newer guests again.
Most of the patches are cleanups in the existing suspend code, aiming at both simplifying it and making it easier to extend it with systemd. Note: checkpatch.pl complains about patch 3: ERROR: "(foo* const*)" should be "(foo * const*)" #94: FILE: qga/commands-posix.c:1467: + execve(cmd_path, (char* const*)command, environ); ERROR: space required before that '*' (ctx:VxB) #94: FILE: qga/commands-posix.c:1467: + execve(cmd_path, (char* const*)command, environ); Not sure how to make it know that this is a cast instead of a math operation. Suggestions welcome Daniel Henrique Barboza (6): qga: refactoring qmp_guest_suspend_* functions qga: bios_supports_mode: decoupling pm-utils and sys logic qga: guest_suspend: decoupling pm-utils and sys logic qga: removing switch statements, adding run_process_child qga: adding systemd hibernate/suspend/hybrid-sleep support qga: removing bios_supports_mode qga/commands-posix.c | 315 ++++++++++++++++++++++++++++--------------- 1 file changed, 210 insertions(+), 105 deletions(-) -- 2.17.1
