automount.h   automount.h 
skipping to change at line 45 skipping to change at line 45
_AUTOMOUNT_STATE_INVALID = -1 _AUTOMOUNT_STATE_INVALID = -1
} AutomountState; } AutomountState;
struct Automount { struct Automount {
Meta meta; Meta meta;
AutomountState state, deserialized_state; AutomountState state, deserialized_state;
char *where; char *where;
Mount *mount; UnitRef mount;
int pipe_fd; int pipe_fd;
mode_t directory_mode; mode_t directory_mode;
Watch pipe_watch; Watch pipe_watch;
dev_t dev_id; dev_t dev_id;
Set *tokens; Set *tokens;
bool failure:1; bool failure:1;
}; };
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 conf-parser.h   conf-parser.h 
skipping to change at line 104 skipping to change at line 104
int config_parse_long(const char *filename, unsigned line, const char *sect ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u serdata); int config_parse_long(const char *filename, unsigned line, const char *sect ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u serdata);
int config_parse_uint64(const char *filename, unsigned line, const char *se ction, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); int config_parse_uint64(const char *filename, unsigned line, const char *se ction, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_size(const char *filename, unsigned line, const char *sect ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u serdata); int config_parse_size(const char *filename, unsigned line, const char *sect ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u serdata);
int config_parse_bool(const char *filename, unsigned line, const char *sect ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u serdata); int config_parse_bool(const char *filename, unsigned line, const char *sect ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u serdata);
int config_parse_string(const char *filename, unsigned line, const char *se ction, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); int config_parse_string(const char *filename, unsigned line, const char *se ction, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_path(const char *filename, unsigned line, const char *sect ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u serdata); int config_parse_path(const char *filename, unsigned line, const char *sect ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u serdata);
int config_parse_strv(const char *filename, unsigned line, const char *sect ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u serdata); int config_parse_strv(const char *filename, unsigned line, const char *sect ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u serdata);
int config_parse_path_strv(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, vo id *userdata); int config_parse_path_strv(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, vo id *userdata);
int config_parse_usec(const char *filename, unsigned line, const char *sect ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u serdata); int config_parse_usec(const char *filename, unsigned line, const char *sect ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u serdata);
int config_parse_mode(const char *filename, unsigned line, const char *sect ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u serdata); int config_parse_mode(const char *filename, unsigned line, const char *sect ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u serdata);
int config_parse_bytes(const char *filename, unsigned line, const char *sec tion, const char *lvalue, int ltype, const char *rvalue, void *data, void * userdata);
#define DEFINE_CONFIG_PARSE_ENUM(function,name,type,msg) \ #define DEFINE_CONFIG_PARSE_ENUM(function,name,type,msg) \
int function( \ int function( \
const char *filename, \ const char *filename, \
unsigned line, \ unsigned line, \
const char *section, \ const char *section, \
const char *lvalue, \ const char *lvalue, \
int ltype, \ int ltype, \
const char *rvalue, \ const char *rvalue, \
void *data, \ void *data, \
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 config.h   config.h 
skipping to change at line 88 skipping to change at line 88
/* Define to 1 if you have the <sys/stat.h> header file. */ /* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1 #define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */ /* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1 #define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */ /* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1 #define HAVE_UNISTD_H 1
/* Define if XZ is available */
#define HAVE_XZ 1
/* Define to the sub-directory in which libtool stores uninstalled librarie s. /* Define to the sub-directory in which libtool stores uninstalled librarie s.
*/ */
#define LT_OBJDIR ".libs/" #define LT_OBJDIR ".libs/"
/* Define to 1 if your C compiler doesn't accept -c and -o together. */ /* Define to 1 if your C compiler doesn't accept -c and -o together. */
/* #undef NO_MINUS_C_MINUS_O */ /* #undef NO_MINUS_C_MINUS_O */
/* Name of package */ /* Name of package */
#define PACKAGE "systemd" #define PACKAGE "systemd"
/* Define to the address where bug reports for this package should be sent. */ /* Define to the address where bug reports for this package should be sent. */
#define PACKAGE_BUGREPORT "systemd-devel@lists.freedesktop.org" #define PACKAGE_BUGREPORT "systemd-devel@lists.freedesktop.org"
/* Define to the full name of this package. */ /* Define to the full name of this package. */
#define PACKAGE_NAME "systemd" #define PACKAGE_NAME "systemd"
/* Define to the full name and version of this package. */ /* Define to the full name and version of this package. */
#define PACKAGE_STRING "systemd 37" #define PACKAGE_STRING "systemd 38"
/* Define to the one symbol short name of this package. */ /* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "systemd" #define PACKAGE_TARNAME "systemd"
/* Define to the home page for this package. */ /* Define to the home page for this package. */
#define PACKAGE_URL "" #define PACKAGE_URL ""
/* Define to the version of this package. */ /* Define to the version of this package. */
#define PACKAGE_VERSION "37" #define PACKAGE_VERSION "38"
/* Define to 1 if you have the ANSI C header files. */ /* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1 #define STDC_HEADERS 1
/* Target is ALTLinux */ /* Target is ALTLinux */
/* #undef TARGET_ALTLINUX */ /* #undef TARGET_ALTLINUX */
/* Target is Ångström */ /* Target is Ångström */
/* #undef TARGET_ANGSTROM */ /* #undef TARGET_ANGSTROM */
skipping to change at line 140 skipping to change at line 143
/* Target is Fedora/RHEL */ /* Target is Fedora/RHEL */
/* #undef TARGET_FEDORA */ /* #undef TARGET_FEDORA */
/* Target is Frugalware */ /* Target is Frugalware */
/* #undef TARGET_FRUGALWARE */ /* #undef TARGET_FRUGALWARE */
/* Target is Gentoo */ /* Target is Gentoo */
/* #undef TARGET_GENTOO */ /* #undef TARGET_GENTOO */
/* Target is Mageia */
/* #undef TARGET_MAGEIA */
/* Target is Mandriva */ /* Target is Mandriva */
#define TARGET_MANDRIVA /**/ #define TARGET_MANDRIVA /**/
/* Target is MeeGo */ /* Target is MeeGo */
/* #undef TARGET_MEEGO */ /* #undef TARGET_MEEGO */
/* Target is Slackware */ /* Target is Slackware */
/* #undef TARGET_SLACKWARE */ /* #undef TARGET_SLACKWARE */
/* Target is openSUSE/SLE */ /* Target is openSUSE/SLE */
skipping to change at line 180 skipping to change at line 186
/* Enable extensions on HP NonStop. */ /* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE #ifndef _TANDEM_SOURCE
# define _TANDEM_SOURCE 1 # define _TANDEM_SOURCE 1
#endif #endif
/* Enable general extensions on Solaris. */ /* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__ #ifndef __EXTENSIONS__
# define __EXTENSIONS__ 1 # define __EXTENSIONS__ 1
#endif #endif
/* Version number of package */ /* Version number of package */
#define VERSION "37" #define VERSION "38"
/* Number of bits in a file offset, on hosts where this is settable. */ /* Number of bits in a file offset, on hosts where this is settable. */
#define _FILE_OFFSET_BITS 64 #define _FILE_OFFSET_BITS 64
/* Define for large files, on AIX-style hosts. */ /* Define for large files, on AIX-style hosts. */
/* #undef _LARGE_FILES */ /* #undef _LARGE_FILES */
/* Define to 1 if on MINIX. */ /* Define to 1 if on MINIX. */
/* #undef _MINIX */ /* #undef _MINIX */
 End of changes. 5 change blocks. 
3 lines changed or deleted 9 lines changed or added


 dbus-unit.h   dbus-unit.h 
skipping to change at line 83 skipping to change at line 83
" <property name=\"BindTo\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"BindTo\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"RequiredBy\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"RequiredBy\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"RequiredByOverridable\" type=\"as\" access=\"re ad\"/>\n" \ " <property name=\"RequiredByOverridable\" type=\"as\" access=\"re ad\"/>\n" \
" <property name=\"WantedBy\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"WantedBy\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"BoundBy\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"BoundBy\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"Conflicts\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"Conflicts\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"ConflictedBy\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"ConflictedBy\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"Before\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"Before\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"After\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"After\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"OnFailure\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"OnFailure\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"Triggers\" type=\"as\" access=\"read\"/>\n"
\
" <property name=\"TriggeredBy\" type=\"as\" access=\"read\"/>\n"
\
" <property name=\"PropagateReloadTo\" type=\"as\" access=\"read\"
/>\n" \
" <property name=\"PropagateReloadFrom\" type=\"as\" access=\"read
\"/>\n" \
" <property name=\"Description\" type=\"s\" access=\"read\"/>\n" \ " <property name=\"Description\" type=\"s\" access=\"read\"/>\n" \
" <property name=\"LoadState\" type=\"s\" access=\"read\"/>\n" \ " <property name=\"LoadState\" type=\"s\" access=\"read\"/>\n" \
" <property name=\"ActiveState\" type=\"s\" access=\"read\"/>\n" \ " <property name=\"ActiveState\" type=\"s\" access=\"read\"/>\n" \
" <property name=\"SubState\" type=\"s\" access=\"read\"/>\n" \ " <property name=\"SubState\" type=\"s\" access=\"read\"/>\n" \
" <property name=\"FragmentPath\" type=\"s\" access=\"read\"/>\n" \ " <property name=\"FragmentPath\" type=\"s\" access=\"read\"/>\n" \
" <property name=\"UnitFileState\" type=\"s\" access=\"read\"/>\n" \ " <property name=\"UnitFileState\" type=\"s\" access=\"read\"/>\n" \
" <property name=\"InactiveExitTimestamp\" type=\"t\" access=\"rea d\"/>\n" \ " <property name=\"InactiveExitTimestamp\" type=\"t\" access=\"rea d\"/>\n" \
" <property name=\"InactiveExitTimestampMonotonic\" type=\"t\" acc ess=\"read\"/>\n" \ " <property name=\"InactiveExitTimestampMonotonic\" type=\"t\" acc ess=\"read\"/>\n" \
" <property name=\"ActiveEnterTimestamp\" type=\"t\" access=\"read \"/>\n" \ " <property name=\"ActiveEnterTimestamp\" type=\"t\" access=\"read \"/>\n" \
" <property name=\"ActiveEnterTimestampMonotonic\" type=\"t\" acce ss=\"read\"/>\n" \ " <property name=\"ActiveEnterTimestampMonotonic\" type=\"t\" acce ss=\"read\"/>\n" \
skipping to change at line 144 skipping to change at line 148
{ "org.freedesktop.systemd1.Unit", "BindTo", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_BIND_TO] }, \ { "org.freedesktop.systemd1.Unit", "BindTo", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_BIND_TO] }, \
{ "org.freedesktop.systemd1.Unit", "RequiredBy", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_REQUIRED_BY] }, \ { "org.freedesktop.systemd1.Unit", "RequiredBy", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_REQUIRED_BY] }, \
{ "org.freedesktop.systemd1.Unit", "RequiredByOverridable",bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_REQUIRED_BY_OVERR IDABLE] }, \ { "org.freedesktop.systemd1.Unit", "RequiredByOverridable",bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_REQUIRED_BY_OVERR IDABLE] }, \
{ "org.freedesktop.systemd1.Unit", "WantedBy", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_WANTED_BY] }, \ { "org.freedesktop.systemd1.Unit", "WantedBy", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_WANTED_BY] }, \
{ "org.freedesktop.systemd1.Unit", "BoundBy", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_BOUND_BY] }, \ { "org.freedesktop.systemd1.Unit", "BoundBy", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_BOUND_BY] }, \
{ "org.freedesktop.systemd1.Unit", "Conflicts", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_CONFLICTS] }, \ { "org.freedesktop.systemd1.Unit", "Conflicts", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_CONFLICTS] }, \
{ "org.freedesktop.systemd1.Unit", "ConflictedBy", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_CONFLICTED_BY] }, \ { "org.freedesktop.systemd1.Unit", "ConflictedBy", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_CONFLICTED_BY] }, \
{ "org.freedesktop.systemd1.Unit", "Before", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_BEFORE] }, \ { "org.freedesktop.systemd1.Unit", "Before", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_BEFORE] }, \
{ "org.freedesktop.systemd1.Unit", "After", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_AFTER] }, \ { "org.freedesktop.systemd1.Unit", "After", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_AFTER] }, \
{ "org.freedesktop.systemd1.Unit", "OnFailure", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_ON_FAILURE] }, \ { "org.freedesktop.systemd1.Unit", "OnFailure", bus_unit _append_dependencies, "as", u->meta.dependencies[UNIT_ON_FAILURE] }, \
{ "org.freedesktop.systemd1.Unit", "Triggers", bus_unit
_append_dependencies, "as", u->meta.dependencies[UNIT_TRIGGERS] }, \
{ "org.freedesktop.systemd1.Unit", "TriggeredBy", bus_unit
_append_dependencies, "as", u->meta.dependencies[UNIT_TRIGGERED_BY] },
\
{ "org.freedesktop.systemd1.Unit", "PropagateReloadTo", bus_unit
_append_dependencies, "as", u->meta.dependencies[UNIT_PROPAGATE_RELOAD_
TO] }, \
{ "org.freedesktop.systemd1.Unit", "PropagateReloadFrom", bus_unit
_append_dependencies, "as", u->meta.dependencies[UNIT_PROPAGATE_RELOAD_
FROM] }, \
{ "org.freedesktop.systemd1.Unit", "Description", bus_unit _append_description, "s", u }, \ { "org.freedesktop.systemd1.Unit", "Description", bus_unit _append_description, "s", u }, \
{ "org.freedesktop.systemd1.Unit", "LoadState", bus_unit _append_load_state, "s", &u->meta.load_state }, \ { "org.freedesktop.systemd1.Unit", "LoadState", bus_unit _append_load_state, "s", &u->meta.load_state }, \
{ "org.freedesktop.systemd1.Unit", "ActiveState", bus_unit _append_active_state, "s", u }, \ { "org.freedesktop.systemd1.Unit", "ActiveState", bus_unit _append_active_state, "s", u }, \
{ "org.freedesktop.systemd1.Unit", "SubState", bus_unit _append_sub_state, "s", u }, \ { "org.freedesktop.systemd1.Unit", "SubState", bus_unit _append_sub_state, "s", u }, \
{ "org.freedesktop.systemd1.Unit", "FragmentPath", bus_prop erty_append_string, "s", u->meta.fragment_path }, \ { "org.freedesktop.systemd1.Unit", "FragmentPath", bus_prop erty_append_string, "s", u->meta.fragment_path }, \
{ "org.freedesktop.systemd1.Unit", "UnitFileState", bus_unit _append_file_state, "s", u }, \ { "org.freedesktop.systemd1.Unit", "UnitFileState", bus_unit _append_file_state, "s", u }, \
{ "org.freedesktop.systemd1.Unit", "InactiveExitTimestamp",bus_prop erty_append_usec, "t", &u->meta.inactive_exit_timestamp.realtime } , \ { "org.freedesktop.systemd1.Unit", "InactiveExitTimestamp",bus_prop erty_append_usec, "t", &u->meta.inactive_exit_timestamp.realtime } , \
{ "org.freedesktop.systemd1.Unit", "InactiveExitTimestampMonotonic" ,bus_property_append_usec, "t", &u->meta.inactive_exit_timestamp.monotonic }, \ { "org.freedesktop.systemd1.Unit", "InactiveExitTimestampMonotonic" ,bus_property_append_usec, "t", &u->meta.inactive_exit_timestamp.monotonic }, \
{ "org.freedesktop.systemd1.Unit", "ActiveEnterTimestamp", bus_prop erty_append_usec, "t", &u->meta.active_enter_timestamp.realtime }, \ { "org.freedesktop.systemd1.Unit", "ActiveEnterTimestamp", bus_prop erty_append_usec, "t", &u->meta.active_enter_timestamp.realtime }, \
{ "org.freedesktop.systemd1.Unit", "ActiveEnterTimestampMonotonic", bus_property_append_usec, "t", &u->meta.active_enter_timestamp.monotonic } , \ { "org.freedesktop.systemd1.Unit", "ActiveEnterTimestampMonotonic", bus_property_append_usec, "t", &u->meta.active_enter_timestamp.monotonic } , \
 End of changes. 2 change blocks. 
0 lines changed or deleted 19 lines changed or added


 execute.h   execute.h 
skipping to change at line 43 skipping to change at line 43
#include <stdbool.h> #include <stdbool.h>
#include <stdio.h> #include <stdio.h>
#include <sched.h> #include <sched.h>
struct CGroupBonding; struct CGroupBonding;
struct CGroupAttribute; struct CGroupAttribute;
#include "list.h" #include "list.h"
#include "util.h" #include "util.h"
#define STDOUT_SYSLOG_BRIDGE_SOCKET "/run/systemd/stdout-syslog-bridge"
typedef enum KillMode { typedef enum KillMode {
KILL_CONTROL_GROUP = 0, KILL_CONTROL_GROUP = 0,
KILL_PROCESS, KILL_PROCESS,
KILL_NONE, KILL_NONE,
_KILL_MODE_MAX, _KILL_MODE_MAX,
_KILL_MODE_INVALID = -1 _KILL_MODE_INVALID = -1
} KillMode; } KillMode;
typedef enum KillWho { typedef enum KillWho {
KILL_MAIN, KILL_MAIN,
skipping to change at line 79 skipping to change at line 77
} ExecInput; } ExecInput;
typedef enum ExecOutput { typedef enum ExecOutput {
EXEC_OUTPUT_INHERIT, EXEC_OUTPUT_INHERIT,
EXEC_OUTPUT_NULL, EXEC_OUTPUT_NULL,
EXEC_OUTPUT_TTY, EXEC_OUTPUT_TTY,
EXEC_OUTPUT_SYSLOG, EXEC_OUTPUT_SYSLOG,
EXEC_OUTPUT_SYSLOG_AND_CONSOLE, EXEC_OUTPUT_SYSLOG_AND_CONSOLE,
EXEC_OUTPUT_KMSG, EXEC_OUTPUT_KMSG,
EXEC_OUTPUT_KMSG_AND_CONSOLE, EXEC_OUTPUT_KMSG_AND_CONSOLE,
EXEC_OUTPUT_JOURNAL,
EXEC_OUTPUT_JOURNAL_AND_CONSOLE,
EXEC_OUTPUT_SOCKET, EXEC_OUTPUT_SOCKET,
_EXEC_OUTPUT_MAX, _EXEC_OUTPUT_MAX,
_EXEC_OUTPUT_INVALID = -1 _EXEC_OUTPUT_INVALID = -1
} ExecOutput; } ExecOutput;
struct ExecStatus { struct ExecStatus {
dual_timestamp start_timestamp; dual_timestamp start_timestamp;
dual_timestamp exit_timestamp; dual_timestamp exit_timestamp;
pid_t pid; pid_t pid;
int code; /* as in siginfo_t::si_code */ int code; /* as in siginfo_t::si_code */
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 exit-status.h   exit-status.h 
skipping to change at line 68 skipping to change at line 68
EXIT_CPUAFFINITY, EXIT_CPUAFFINITY,
EXIT_GROUP, EXIT_GROUP,
EXIT_USER, EXIT_USER,
EXIT_CAPABILITIES, EXIT_CAPABILITIES,
EXIT_CGROUP, EXIT_CGROUP,
EXIT_SETSID, /* 220 */ EXIT_SETSID, /* 220 */
EXIT_CONFIRM, EXIT_CONFIRM,
EXIT_STDERR, EXIT_STDERR,
EXIT_TCPWRAP, EXIT_TCPWRAP,
EXIT_PAM, EXIT_PAM,
EXIT_NETWORK EXIT_NETWORK,
EXIT_NAMESPACE
} ExitStatus; } ExitStatus;
typedef enum ExitStatusLevel { typedef enum ExitStatusLevel {
EXIT_STATUS_MINIMAL, EXIT_STATUS_MINIMAL,
EXIT_STATUS_SYSTEMD, EXIT_STATUS_SYSTEMD,
EXIT_STATUS_LSB, EXIT_STATUS_LSB,
EXIT_STATUS_FULL = EXIT_STATUS_LSB EXIT_STATUS_FULL = EXIT_STATUS_LSB
} ExitStatusLevel; } ExitStatusLevel;
 End of changes. 1 change blocks. 
1 lines changed or deleted 2 lines changed or added


 hashmap.h   hashmap.h 
skipping to change at line 77 skipping to change at line 77
bool hashmap_isempty(Hashmap *h); bool hashmap_isempty(Hashmap *h);
void *hashmap_iterate(Hashmap *h, Iterator *i, const void **key); void *hashmap_iterate(Hashmap *h, Iterator *i, const void **key);
void *hashmap_iterate_backwards(Hashmap *h, Iterator *i, const void **key); void *hashmap_iterate_backwards(Hashmap *h, Iterator *i, const void **key);
void *hashmap_iterate_skip(Hashmap *h, const void *key, Iterator *i); void *hashmap_iterate_skip(Hashmap *h, const void *key, Iterator *i);
void hashmap_clear(Hashmap *h); void hashmap_clear(Hashmap *h);
void *hashmap_steal_first(Hashmap *h); void *hashmap_steal_first(Hashmap *h);
void *hashmap_steal_first_key(Hashmap *h); void *hashmap_steal_first_key(Hashmap *h);
void* hashmap_first(Hashmap *h); void* hashmap_first(Hashmap *h);
void* hashmap_first_key(Hashmap *h);
void* hashmap_last(Hashmap *h); void* hashmap_last(Hashmap *h);
char **hashmap_get_strv(Hashmap *h); char **hashmap_get_strv(Hashmap *h);
#define HASHMAP_FOREACH(e, h, i) \ #define HASHMAP_FOREACH(e, h, i) \
for ((i) = ITERATOR_FIRST, (e) = hashmap_iterate((h), &(i), NULL); (e); (e) = hashmap_iterate((h), &(i), NULL)) for ((i) = ITERATOR_FIRST, (e) = hashmap_iterate((h), &(i), NULL); (e); (e) = hashmap_iterate((h), &(i), NULL))
#define HASHMAP_FOREACH_KEY(e, k, h, i) \ #define HASHMAP_FOREACH_KEY(e, k, h, i) \
for ((i) = ITERATOR_FIRST, (e) = hashmap_iterate((h), &(i), (const void**) &(k)); (e); (e) = hashmap_iterate((h), &(i), (const void**) &(k))) for ((i) = ITERATOR_FIRST, (e) = hashmap_iterate((h), &(i), (const void**) &(k)); (e); (e) = hashmap_iterate((h), &(i), (const void**) &(k)))
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 log.h   log.h 
skipping to change at line 60 skipping to change at line 60
void log_show_location(bool b); void log_show_location(bool b);
int log_show_color_from_string(const char *e); int log_show_color_from_string(const char *e);
int log_show_location_from_string(const char *e); int log_show_location_from_string(const char *e);
LogTarget log_get_target(void); LogTarget log_get_target(void);
int log_get_max_level(void); int log_get_max_level(void);
int log_open(void); int log_open(void);
void log_close(void); void log_close(void);
void log_forget_fds(void);
void log_close_syslog(void); void log_close_syslog(void);
void log_close_kmsg(void); void log_close_kmsg(void);
void log_close_console(void); void log_close_console(void);
void log_parse_environment(void); void log_parse_environment(void);
int log_meta( int log_meta(
int level, int level,
const char*file, const char*file,
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 logind-seat.h   logind-seat.h 
skipping to change at line 65 skipping to change at line 65
int seat_apply_acls(Seat *s, Session *old_active); int seat_apply_acls(Seat *s, Session *old_active);
int seat_set_active(Seat *s, Session *session); int seat_set_active(Seat *s, Session *session);
int seat_active_vt_changed(Seat *s, int vtnr); int seat_active_vt_changed(Seat *s, int vtnr);
int seat_read_active_vt(Seat *s); int seat_read_active_vt(Seat *s);
int seat_preallocate_vts(Seat *s); int seat_preallocate_vts(Seat *s);
int seat_attach_session(Seat *s, Session *session); int seat_attach_session(Seat *s, Session *session);
bool seat_is_vtconsole(Seat *s); bool seat_is_vtconsole(Seat *s);
bool seat_can_multi_session(Seat *s);
int seat_get_idle_hint(Seat *s, dual_timestamp *t); int seat_get_idle_hint(Seat *s, dual_timestamp *t);
int seat_start(Seat *s); int seat_start(Seat *s);
int seat_stop(Seat *s); int seat_stop(Seat *s);
int seat_stop_sessions(Seat *s); int seat_stop_sessions(Seat *s);
int seat_check_gc(Seat *s, bool drop_not_started); int seat_check_gc(Seat *s, bool drop_not_started);
void seat_add_to_gc_queue(Seat *s); void seat_add_to_gc_queue(Seat *s);
bool seat_name_is_valid(const char *name); bool seat_name_is_valid(const char *name);
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 macro.h   macro.h 
skipping to change at line 152 skipping to change at line 152
#define zero(x) (memzero(&(x), sizeof(x))) #define zero(x) (memzero(&(x), sizeof(x)))
#define char_array_0(x) x[sizeof(x)-1] = 0; #define char_array_0(x) x[sizeof(x)-1] = 0;
#define IOVEC_SET_STRING(i, s) \ #define IOVEC_SET_STRING(i, s) \
do { \ do { \
struct iovec *_i = &(i); \ struct iovec *_i = &(i); \
char *_s = (char *)(s); \ char *_s = (char *)(s); \
_i->iov_base = _s; \ _i->iov_base = _s; \
_i->iov_len = strlen(_s); \ _i->iov_len = strlen(_s); \
} while(false); } while(false)
static inline size_t IOVEC_TOTAL_SIZE(const struct iovec *i, unsigned n) { static inline size_t IOVEC_TOTAL_SIZE(const struct iovec *i, unsigned n) {
unsigned j; unsigned j;
size_t r = 0; size_t r = 0;
for (j = 0; j < n; j++) for (j = 0; j < n; j++)
r += i[j].iov_len; r += i[j].iov_len;
return r; return r;
} }
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 manager.h   manager.h 
skipping to change at line 182 skipping to change at line 182
Set *bus_connections, *bus_connections_for_dispatch; Set *bus_connections, *bus_connections_for_dispatch;
DBusMessage *queued_message; /* This is used during reloading: DBusMessage *queued_message; /* This is used during reloading:
* before the reload we queue the * before the reload we queue the
* reply message here, and * reply message here, and
* afterwards we send it */ * afterwards we send it */
DBusConnection *queued_message_connection; /* The connection to sen d the queued message on */ DBusConnection *queued_message_connection; /* The connection to sen d the queued message on */
Hashmap *watch_bus; /* D-Bus names => Unit object n:1 */ Hashmap *watch_bus; /* D-Bus names => Unit object n:1 */
int32_t name_data_slot; int32_t name_data_slot;
int32_t conn_data_slot;
int32_t subscribed_data_slot; int32_t subscribed_data_slot;
uint32_t current_job_id; uint32_t current_job_id;
/* Data specific to the Automount subsystem */ /* Data specific to the Automount subsystem */
int dev_autofs_fd; int dev_autofs_fd;
/* Data specific to the cgroup subsystem */ /* Data specific to the cgroup subsystem */
Hashmap *cgroup_bondings; /* path string => CGroupBonding object 1: n */ Hashmap *cgroup_bondings; /* path string => CGroupBonding object 1: n */
char *cgroup_hierarchy; char *cgroup_hierarchy;
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 path.h   path.h 
skipping to change at line 44 skipping to change at line 44
PATH_FAILED, PATH_FAILED,
_PATH_STATE_MAX, _PATH_STATE_MAX,
_PATH_STATE_INVALID = -1 _PATH_STATE_INVALID = -1
} PathState; } PathState;
typedef enum PathType { typedef enum PathType {
PATH_EXISTS, PATH_EXISTS,
PATH_EXISTS_GLOB, PATH_EXISTS_GLOB,
PATH_DIRECTORY_NOT_EMPTY, PATH_DIRECTORY_NOT_EMPTY,
PATH_CHANGED, PATH_CHANGED,
PATH_MODIFIED,
_PATH_TYPE_MAX, _PATH_TYPE_MAX,
_PATH_TYPE_INVALID = -1 _PATH_TYPE_INVALID = -1
} PathType; } PathType;
typedef struct PathSpec { typedef struct PathSpec {
char *path; char *path;
Watch watch; Watch watch;
LIST_FIELDS(struct PathSpec, spec); LIST_FIELDS(struct PathSpec, spec);
PathType type; PathType type;
int inotify_fd; int inotify_fd;
int primary_wd; int primary_wd;
bool previous_exists; bool previous_exists;
} PathSpec; } PathSpec;
int path_spec_watch(PathSpec *s, Unit *u);
void path_spec_unwatch(PathSpec *s, Unit *u);
int path_spec_fd_event(PathSpec *s, uint32_t events);
void path_spec_done(PathSpec *s);
static inline bool path_spec_owns_inotify_fd(PathSpec *s, int fd) {
return s->inotify_fd == fd;
}
struct Path { struct Path {
Meta meta; Meta meta;
LIST_HEAD(PathSpec, specs); LIST_HEAD(PathSpec, specs);
Unit *unit; UnitRef unit;
PathState state, deserialized_state; PathState state, deserialized_state;
bool failure; bool failure;
bool inotify_triggered; bool inotify_triggered;
bool make_directory; bool make_directory;
mode_t directory_mode; mode_t directory_mode;
}; };
 End of changes. 4 change blocks. 
2 lines changed or deleted 11 lines changed or added


 sd-daemon.h   sd-daemon.h 
skipping to change at line 61 skipping to change at line 61
You may compile this with -DDISABLE_SYSTEMD to disable systemd You may compile this with -DDISABLE_SYSTEMD to disable systemd
support. This makes all those calls NOPs that are directly related to support. This makes all those calls NOPs that are directly related to
systemd (i.e. only sd_is_xxx() will stay useful). systemd (i.e. only sd_is_xxx() will stay useful).
Since this is drop-in code we don't want any of our symbols to be Since this is drop-in code we don't want any of our symbols to be
exported in any case. Hence we declare hidden visibility for all of exported in any case. Hence we declare hidden visibility for all of
them. them.
You may find an up-to-date version of these source files online: You may find an up-to-date version of these source files online:
http://cgit.freedesktop.org/systemd/plain/src/sd-daemon.h http://cgit.freedesktop.org/systemd/plain/src/systemd/sd-daemon.h
http://cgit.freedesktop.org/systemd/plain/src/sd-daemon.c http://cgit.freedesktop.org/systemd/plain/src/sd-daemon.c
This should compile on non-Linux systems, too, but with the This should compile on non-Linux systems, too, but with the
exception of the sd_is_xxx() calls all functions will become NOPs. exception of the sd_is_xxx() calls all functions will become NOPs.
See sd-daemon(7) for more information. See sd-daemon(7) for more information.
*/ */
#ifndef _sd_printf_attr_ #ifndef _sd_printf_attr_
#if __GNUC__ >= 4 #if __GNUC__ >= 4
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 sd-login.h   sd-login.h 
skipping to change at line 56 skipping to change at line 56
* user. */ * user. */
int sd_pid_get_session(pid_t pid, char **session); int sd_pid_get_session(pid_t pid, char **session);
/* Get UID of the owner of the session of the PID (or in case the /* Get UID of the owner of the session of the PID (or in case the
* process is a 'shared' user process the UID of that user is * process is a 'shared' user process the UID of that user is
* returned). This will not return the UID of the process, but rather * returned). This will not return the UID of the process, but rather
* the UID of the owner of the cgroup the process is in. This will * the UID of the owner of the cgroup the process is in. This will
* return an error for system processes. */ * return an error for system processes. */
int sd_pid_get_owner_uid(pid_t pid, uid_t *uid); int sd_pid_get_owner_uid(pid_t pid, uid_t *uid);
/* Get systemd unit (i.e. service) name from PID. This will return an
* error for non-service processes. */
int sd_pid_get_unit(pid_t, char **unit);
/* Get state from uid. Possible states: offline, lingering, online, active */ /* Get state from uid. Possible states: offline, lingering, online, active */
int sd_uid_get_state(uid_t uid, char**state); int sd_uid_get_state(uid_t uid, char**state);
/* Return 1 if uid has session on seat. If require_active is true will /* Return 1 if uid has session on seat. If require_active is true will
* look for active sessions only. */ * look for active sessions only. */
int sd_uid_is_on_seat(uid_t uid, int require_active, const char *seat); int sd_uid_is_on_seat(uid_t uid, int require_active, const char *seat);
/* Return sessions of user. If require_active is true will look for /* Return sessions of user. If require_active is true will look for
* active sessions only. Returns number of sessions as return * active sessions only. Returns number of sessions as return
* value. If sessions is NULL will just return number of sessions. */ * value. If sessions is NULL will just return number of sessions. */
skipping to change at line 82 skipping to change at line 86
/* Return 1 if the session is a active */ /* Return 1 if the session is a active */
int sd_session_is_active(const char *session); int sd_session_is_active(const char *session);
/* Determine user id of session */ /* Determine user id of session */
int sd_session_get_uid(const char *session, uid_t *uid); int sd_session_get_uid(const char *session, uid_t *uid);
/* Determine seat of session */ /* Determine seat of session */
int sd_session_get_seat(const char *session, char **seat); int sd_session_get_seat(const char *session, char **seat);
/* Determine the (PAM) service name this session was registered by. */
int sd_session_get_service(const char *session, char **service);
/* Return active session and user of seat */ /* Return active session and user of seat */
int sd_seat_get_active(const char *seat, char **session, uid_t *uid); int sd_seat_get_active(const char *seat, char **session, uid_t *uid);
/* Return sessions and users on seat. Returns number of sessions as /* Return sessions and users on seat. Returns number of sessions as
* return value. If sessions is NULL returns only the number of * return value. If sessions is NULL returns only the number of
* sessions. */ * sessions. */
int sd_seat_get_sessions(const char *seat, char ***sessions, uid_t **uid, u nsigned *n_uids); int sd_seat_get_sessions(const char *seat, char ***sessions, uid_t **uid, u nsigned *n_uids);
/* Return whether the seat is multi-session capable */ /* Return whether the seat is multi-session capable */
int sd_seat_can_multi_session(const char *seat); int sd_seat_can_multi_session(const char *seat);
 End of changes. 2 change blocks. 
0 lines changed or deleted 7 lines changed or added


 sd-readahead.h   sd-readahead.h 
skipping to change at line 50 skipping to change at line 50
You may compile this with -DDISABLE_SYSTEMD to disable systemd You may compile this with -DDISABLE_SYSTEMD to disable systemd
support. This makes all calls NOPs. support. This makes all calls NOPs.
Since this is drop-in code we don't want any of our symbols to be Since this is drop-in code we don't want any of our symbols to be
exported in any case. Hence we declare hidden visibility for all of exported in any case. Hence we declare hidden visibility for all of
them. them.
You may find an up-to-date version of these source files online: You may find an up-to-date version of these source files online:
http://cgit.freedesktop.org/systemd/plain/src/sd-readahead.h http://cgit.freedesktop.org/systemd/plain/src/systemd/sd-readahead.h
http://cgit.freedesktop.org/systemd/plain/src/sd-readahead.c http://cgit.freedesktop.org/systemd/plain/src/readahead/sd-readahead.c
This should compile on non-Linux systems, too, but all functions This should compile on non-Linux systems, too, but all functions
will become NOPs. will become NOPs.
See sd-readahead(7) for more information. See sd-readahead(7) for more information.
*/ */
#ifndef _sd_hidden_
#if (__GNUC__ >= 4) && !defined(SD_EXPORT_SYMBOLS)
#define _sd_hidden_ __attribute__ ((visibility("hidden")))
#else
#define _sd_hidden_
#endif
#endif
/* /*
Controls ongoing disk read-ahead operations during boot-up. The argument Controls ongoing disk read-ahead operations during boot-up. The argument
must be a string, and either "cancel", "done" or "noreplay". must be a string, and either "cancel", "done" or "noreplay".
cancel = terminate read-ahead data collection, drop collected information cancel = terminate read-ahead data collection, drop collected information
done = terminate read-ahead data collection, keep collected information done = terminate read-ahead data collection, keep collected information
noreplay = terminate read-ahead replay noreplay = terminate read-ahead replay
*/ */
int sd_readahead(const char *action) _sd_hidden_; int sd_readahead(const char *action);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif
 End of changes. 3 change blocks. 
11 lines changed or deleted 3 lines changed or added


 service.h   service.h 
skipping to change at line 28 skipping to change at line 28
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details. General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>. along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/ ***/
typedef struct Service Service; typedef struct Service Service;
#include "unit.h" #include "unit.h"
#include "path.h"
#include "ratelimit.h" #include "ratelimit.h"
#include "service.h"
typedef enum ServiceState { typedef enum ServiceState {
SERVICE_DEAD, SERVICE_DEAD,
SERVICE_START_PRE, SERVICE_START_PRE,
SERVICE_START, SERVICE_START,
SERVICE_START_POST, SERVICE_START_POST,
SERVICE_RUNNING, SERVICE_RUNNING,
SERVICE_EXITED, /* Nothing is running anymore, but Remai nAfterExit is true hence this is OK */ SERVICE_EXITED, /* Nothing is running anymore, but Remai nAfterExit is true hence this is OK */
SERVICE_RELOAD, SERVICE_RELOAD,
SERVICE_STOP, /* No STOP_PRE state, instead just regis ter multiple STOP executables */ SERVICE_STOP, /* No STOP_PRE state, instead just regis ter multiple STOP executables */
skipping to change at line 156 skipping to change at line 158
char *sysv_runlevels; char *sysv_runlevels;
usec_t sysv_mtime; usec_t sysv_mtime;
#endif #endif
char *bus_name; char *bus_name;
char *status_text; char *status_text;
RateLimit ratelimit; RateLimit ratelimit;
struct Socket *accept_socket; UnitRef accept_socket;
Set *configured_sockets;
Watch timer_watch; Watch timer_watch;
PathSpec *pid_file_pathspec;
NotifyAccess notify_access; NotifyAccess notify_access;
}; };
extern const UnitVTable service_vtable; extern const UnitVTable service_vtable;
struct Socket;
int service_set_socket_fd(Service *s, int fd, struct Socket *socket); int service_set_socket_fd(Service *s, int fd, struct Socket *socket);
const char* service_state_to_string(ServiceState i); const char* service_state_to_string(ServiceState i);
ServiceState service_state_from_string(const char *s); ServiceState service_state_from_string(const char *s);
const char* service_restart_to_string(ServiceRestart i); const char* service_restart_to_string(ServiceRestart i);
ServiceRestart service_restart_from_string(const char *s); ServiceRestart service_restart_from_string(const char *s);
const char* service_type_to_string(ServiceType i); const char* service_type_to_string(ServiceType i);
ServiceType service_type_from_string(const char *s); ServiceType service_type_from_string(const char *s);
 End of changes. 5 change blocks. 
2 lines changed or deleted 6 lines changed or added


 socket.h   socket.h 
skipping to change at line 31 skipping to change at line 31
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>. along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/ ***/
typedef struct Socket Socket; typedef struct Socket Socket;
#include "manager.h" #include "manager.h"
#include "unit.h" #include "unit.h"
#include "socket-util.h" #include "socket-util.h"
#include "mount.h" #include "mount.h"
#include "service.h"
typedef enum SocketState { typedef enum SocketState {
SOCKET_DEAD, SOCKET_DEAD,
SOCKET_START_PRE, SOCKET_START_PRE,
SOCKET_START_POST, SOCKET_START_POST,
SOCKET_LISTENING, SOCKET_LISTENING,
SOCKET_RUNNING, SOCKET_RUNNING,
SOCKET_STOP_PRE, SOCKET_STOP_PRE,
SOCKET_STOP_PRE_SIGTERM, SOCKET_STOP_PRE_SIGTERM,
SOCKET_STOP_PRE_SIGKILL, SOCKET_STOP_PRE_SIGKILL,
skipping to change at line 96 skipping to change at line 97
unsigned backlog; unsigned backlog;
usec_t timeout_usec; usec_t timeout_usec;
ExecCommand* exec_command[_SOCKET_EXEC_COMMAND_MAX]; ExecCommand* exec_command[_SOCKET_EXEC_COMMAND_MAX];
ExecContext exec_context; ExecContext exec_context;
/* For Accept=no sockets refers to the one service we'll /* For Accept=no sockets refers to the one service we'll
activate. For Accept=yes sockets is either NULL, or filled activate. For Accept=yes sockets is either NULL, or filled
when the next service we spawn. */ when the next service we spawn. */
Service *service; UnitRef service;
SocketState state, deserialized_state; SocketState state, deserialized_state;
Watch timer_watch; Watch timer_watch;
ExecCommand* control_command; ExecCommand* control_command;
SocketExecCommand control_command_id; SocketExecCommand control_command_id;
pid_t control_pid; pid_t control_pid;
/* Only for INET6 sockets: issue IPV6_V6ONLY sockopt */
SocketAddressBindIPv6Only bind_ipv6_only;
mode_t directory_mode; mode_t directory_mode;
mode_t socket_mode; mode_t socket_mode;
bool failure; bool failure;
bool accept; bool accept;
/* Socket options */ /* Socket options */
bool keep_alive; bool keep_alive;
bool free_bind; bool free_bind;
bool transparent; bool transparent;
bool broadcast; bool broadcast;
bool pass_cred;
int priority; int priority;
int mark; int mark;
size_t receive_buffer; size_t receive_buffer;
size_t send_buffer; size_t send_buffer;
int ip_tos; int ip_tos;
int ip_ttl; int ip_ttl;
size_t pipe_size; size_t pipe_size;
char *bind_to_device; char *bind_to_device;
char *tcp_congestion; char *tcp_congestion;
long mq_maxmsg; long mq_maxmsg;
long mq_msgsize; long mq_msgsize;
/* Only for INET6 sockets: issue IPV6_V6ONLY sockopt */
SocketAddressBindIPv6Only bind_ipv6_only;
}; };
/* Called from the service code when collecting fds */ /* Called from the service code when collecting fds */
int socket_collect_fds(Socket *s, int **fds, unsigned *n_fds); int socket_collect_fds(Socket *s, int **fds, unsigned *n_fds);
/* Called from the service when it shut down */ /* Called from the service when it shut down */
void socket_notify_service_dead(Socket *s); void socket_notify_service_dead(Socket *s);
/* Called from the mount code figure out if a mount is a dependency of /* Called from the mount code figure out if a mount is a dependency of
* any of the sockets of this socket */ * any of the sockets of this socket */
 End of changes. 5 change blocks. 
4 lines changed or deleted 6 lines changed or added


 special.h   special.h 
skipping to change at line 73 skipping to change at line 73
/* Magic early boot services */ /* Magic early boot services */
#define SPECIAL_FSCK_SERVICE "fsck@.service" #define SPECIAL_FSCK_SERVICE "fsck@.service"
#define SPECIAL_QUOTACHECK_SERVICE "quotacheck.service" #define SPECIAL_QUOTACHECK_SERVICE "quotacheck.service"
#define SPECIAL_QUOTAON_SERVICE "quotaon.service" #define SPECIAL_QUOTAON_SERVICE "quotaon.service"
#define SPECIAL_REMOUNT_ROOTFS_SERVICE "remount-rootfs.service" #define SPECIAL_REMOUNT_ROOTFS_SERVICE "remount-rootfs.service"
/* Services systemd relies on */ /* Services systemd relies on */
#define SPECIAL_DBUS_SERVICE "dbus.service" #define SPECIAL_DBUS_SERVICE "dbus.service"
#define SPECIAL_DBUS_SOCKET "dbus.socket" #define SPECIAL_DBUS_SOCKET "dbus.socket"
#define SPECIAL_STDOUT_SYSLOG_BRIDGE_SOCKET "systemd-stdout-syslog-bridge.s #define SPECIAL_JOURNALD_SOCKET "systemd-journald.socket"
ocket" #define SPECIAL_JOURNALD_SERVICE "systemd-journald.service"
#define SPECIAL_SYSLOG_SOCKET "syslog.socket"
/* Magic init signals */ /* Magic init signals */
#define SPECIAL_KBREQUEST_TARGET "kbrequest.target" #define SPECIAL_KBREQUEST_TARGET "kbrequest.target"
#define SPECIAL_SIGPWR_TARGET "sigpwr.target" #define SPECIAL_SIGPWR_TARGET "sigpwr.target"
#define SPECIAL_CTRL_ALT_DEL_TARGET "ctrl-alt-del.target" #define SPECIAL_CTRL_ALT_DEL_TARGET "ctrl-alt-del.target"
/* For SysV compatibility. Usually an alias for a saner target. On /* For SysV compatibility. Usually an alias for a saner target. On
* SysV-free systems this doesn't exist. */ * SysV-free systems this doesn't exist. */
#define SPECIAL_RUNLEVEL2_TARGET "runlevel2.target" #define SPECIAL_RUNLEVEL2_TARGET "runlevel2.target"
#define SPECIAL_RUNLEVEL3_TARGET "runlevel3.target" #define SPECIAL_RUNLEVEL3_TARGET "runlevel3.target"
 End of changes. 1 change blocks. 
3 lines changed or deleted 2 lines changed or added


 timer.h   timer.h 
skipping to change at line 66 skipping to change at line 66
bool disabled; bool disabled;
} TimerValue; } TimerValue;
struct Timer { struct Timer {
Meta meta; Meta meta;
LIST_HEAD(TimerValue, values); LIST_HEAD(TimerValue, values);
usec_t next_elapse; usec_t next_elapse;
TimerState state, deserialized_state; TimerState state, deserialized_state;
Unit *unit; UnitRef unit;
Watch timer_watch; Watch timer_watch;
bool failure; bool failure;
}; };
void timer_unit_notify(Unit *u, UnitActiveState new_state); void timer_unit_notify(Unit *u, UnitActiveState new_state);
extern const UnitVTable timer_vtable; extern const UnitVTable timer_vtable;
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 unit.h   unit.h 
skipping to change at line 35 skipping to change at line 35
#include <stdbool.h> #include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
typedef union Unit Unit; typedef union Unit Unit;
typedef struct Meta Meta; typedef struct Meta Meta;
typedef struct UnitVTable UnitVTable; typedef struct UnitVTable UnitVTable;
typedef enum UnitType UnitType; typedef enum UnitType UnitType;
typedef enum UnitLoadState UnitLoadState; typedef enum UnitLoadState UnitLoadState;
typedef enum UnitActiveState UnitActiveState; typedef enum UnitActiveState UnitActiveState;
typedef enum UnitDependency UnitDependency; typedef enum UnitDependency UnitDependency;
typedef struct UnitRef UnitRef;
#include "set.h" #include "set.h"
#include "util.h" #include "util.h"
#include "list.h" #include "list.h"
#include "socket-util.h" #include "socket-util.h"
#include "execute.h" #include "execute.h"
#include "condition.h" #include "condition.h"
#include "install.h" #include "install.h"
enum UnitType { enum UnitType {
skipping to change at line 122 skipping to change at line 123
UNIT_CONFLICTS, /* inverse of 'conflicts' is 'conflic ted_by' */ UNIT_CONFLICTS, /* inverse of 'conflicts' is 'conflic ted_by' */
UNIT_CONFLICTED_BY, UNIT_CONFLICTED_BY,
/* Order */ /* Order */
UNIT_BEFORE, /* inverse of 'before' is 'after' and vice versa */ UNIT_BEFORE, /* inverse of 'before' is 'after' and vice versa */
UNIT_AFTER, UNIT_AFTER,
/* On Failure */ /* On Failure */
UNIT_ON_FAILURE, UNIT_ON_FAILURE,
/* Triggers (i.e. a socket triggers a service) */
UNIT_TRIGGERS,
UNIT_TRIGGERED_BY,
/* Propagate reloads */
UNIT_PROPAGATE_RELOAD_TO,
UNIT_PROPAGATE_RELOAD_FROM,
/* Reference information for GC logic */ /* Reference information for GC logic */
UNIT_REFERENCES, /* Inverse of 'references' is 'refere nced_by' */ UNIT_REFERENCES, /* Inverse of 'references' is 'refere nced_by' */
UNIT_REFERENCED_BY, UNIT_REFERENCED_BY,
_UNIT_DEPENDENCY_MAX, _UNIT_DEPENDENCY_MAX,
_UNIT_DEPENDENCY_INVALID = -1 _UNIT_DEPENDENCY_INVALID = -1
}; };
#include "manager.h" #include "manager.h"
#include "job.h" #include "job.h"
skipping to change at line 159 skipping to change at line 168
char *fragment_path; /* if loaded from a config file this is the pr imary path to it */ char *fragment_path; /* if loaded from a config file this is the pr imary path to it */
usec_t fragment_mtime; usec_t fragment_mtime;
/* If there is something to do with this unit, then this is /* If there is something to do with this unit, then this is
* the job for it */ * the job for it */
Job *job; Job *job;
usec_t job_timeout; usec_t job_timeout;
/* References to this */
LIST_HEAD(UnitRef, refs);
/* Conditions to check */ /* Conditions to check */
LIST_HEAD(Condition, conditions); LIST_HEAD(Condition, conditions);
dual_timestamp condition_timestamp; dual_timestamp condition_timestamp;
dual_timestamp inactive_exit_timestamp; dual_timestamp inactive_exit_timestamp;
dual_timestamp active_enter_timestamp; dual_timestamp active_enter_timestamp;
dual_timestamp active_exit_timestamp; dual_timestamp active_exit_timestamp;
dual_timestamp inactive_enter_timestamp; dual_timestamp inactive_enter_timestamp;
skipping to change at line 240 skipping to change at line 252
bool in_cleanup_queue:1; bool in_cleanup_queue:1;
bool in_gc_queue:1; bool in_gc_queue:1;
bool sent_dbus_new_signal:1; bool sent_dbus_new_signal:1;
bool no_gc:1; bool no_gc:1;
bool in_audit:1; bool in_audit:1;
}; };
struct UnitRef {
/* Keeps tracks of references to a unit. This is useful so
* that we can merge two units if necessary and correct all
* references to them */
Unit* unit;
LIST_FIELDS(UnitRef, refs);
};
#include "service.h" #include "service.h"
#include "timer.h" #include "timer.h"
#include "socket.h" #include "socket.h"
#include "target.h" #include "target.h"
#include "device.h" #include "device.h"
#include "mount.h" #include "mount.h"
#include "automount.h" #include "automount.h"
#include "snapshot.h" #include "snapshot.h"
#include "swap.h" #include "swap.h"
#include "path.h" #include "path.h"
skipping to change at line 515 skipping to change at line 536
bool unit_can_serialize(Unit *u); bool unit_can_serialize(Unit *u);
int unit_serialize(Unit *u, FILE *f, FDSet *fds); int unit_serialize(Unit *u, FILE *f, FDSet *fds);
void unit_serialize_item_format(Unit *u, FILE *f, const char *key, const ch ar *value, ...) _printf_attr_(4,5); void unit_serialize_item_format(Unit *u, FILE *f, const char *key, const ch ar *value, ...) _printf_attr_(4,5);
void unit_serialize_item(Unit *u, FILE *f, const char *key, const char *val ue); void unit_serialize_item(Unit *u, FILE *f, const char *key, const char *val ue);
int unit_deserialize(Unit *u, FILE *f, FDSet *fds); int unit_deserialize(Unit *u, FILE *f, FDSet *fds);
int unit_add_node_link(Unit *u, const char *what, bool wants); int unit_add_node_link(Unit *u, const char *what, bool wants);
int unit_coldplug(Unit *u); int unit_coldplug(Unit *u);
void unit_status_printf(Unit *u, const char *format, ...); void unit_status_printf(Unit *u, const char *status, const char *format, .. .);
bool unit_need_daemon_reload(Unit *u); bool unit_need_daemon_reload(Unit *u);
void unit_reset_failed(Unit *u); void unit_reset_failed(Unit *u);
Unit *unit_following(Unit *u); Unit *unit_following(Unit *u);
bool unit_pending_inactive(Unit *u); bool unit_pending_inactive(Unit *u);
bool unit_pending_active(Unit *u); bool unit_pending_active(Unit *u);
skipping to change at line 539 skipping to change at line 560
UnitType unit_name_to_type(const char *n); UnitType unit_name_to_type(const char *n);
bool unit_name_is_valid(const char *n, bool template_ok); bool unit_name_is_valid(const char *n, bool template_ok);
void unit_trigger_on_failure(Unit *u); void unit_trigger_on_failure(Unit *u);
bool unit_condition_test(Unit *u); bool unit_condition_test(Unit *u);
UnitFileState unit_get_unit_file_state(Unit *u); UnitFileState unit_get_unit_file_state(Unit *u);
Unit* unit_ref_set(UnitRef *ref, Unit *u);
void unit_ref_unset(UnitRef *ref);
#define UNIT_DEREF(ref) ((ref).unit)
const char *unit_load_state_to_string(UnitLoadState i); const char *unit_load_state_to_string(UnitLoadState i);
UnitLoadState unit_load_state_from_string(const char *s); UnitLoadState unit_load_state_from_string(const char *s);
const char *unit_active_state_to_string(UnitActiveState i); const char *unit_active_state_to_string(UnitActiveState i);
UnitActiveState unit_active_state_from_string(const char *s); UnitActiveState unit_active_state_from_string(const char *s);
const char *unit_dependency_to_string(UnitDependency i); const char *unit_dependency_to_string(UnitDependency i);
UnitDependency unit_dependency_from_string(const char *s); UnitDependency unit_dependency_from_string(const char *s);
#endif #endif
 End of changes. 6 change blocks. 
1 lines changed or deleted 27 lines changed or added


 util.h   util.h 
skipping to change at line 251 skipping to change at line 251
char *file_in_same_dir(const char *path, const char *filename); char *file_in_same_dir(const char *path, const char *filename);
int safe_mkdir(const char *path, mode_t mode, uid_t uid, gid_t gid); int safe_mkdir(const char *path, mode_t mode, uid_t uid, gid_t gid);
int mkdir_parents(const char *path, mode_t mode); int mkdir_parents(const char *path, mode_t mode);
int mkdir_p(const char *path, mode_t mode); int mkdir_p(const char *path, mode_t mode);
int parent_of_path(const char *path, char **parent); int parent_of_path(const char *path, char **parent);
int rmdir_parents(const char *path, const char *stop); int rmdir_parents(const char *path, const char *stop);
int get_process_name(pid_t pid, char **name); int get_process_comm(pid_t pid, char **name);
int get_process_cmdline(pid_t pid, size_t max_length, char **line); int get_process_cmdline(pid_t pid, size_t max_length, bool comm_fallback, c
har **line);
int get_process_exe(pid_t pid, char **name);
int get_process_uid(pid_t pid, uid_t *uid);
char hexchar(int x); char hexchar(int x);
int unhexchar(char c); int unhexchar(char c);
char octchar(int x); char octchar(int x);
int unoctchar(char c); int unoctchar(char c);
char decchar(int x); char decchar(int x);
int undecchar(char c); int undecchar(char c);
char *cescape(const char *s); char *cescape(const char *s);
char *cunescape(const char *s); char *cunescape(const char *s);
skipping to change at line 277 skipping to change at line 279
char *bus_path_escape(const char *s); char *bus_path_escape(const char *s);
char *bus_path_unescape(const char *s); char *bus_path_unescape(const char *s);
char *path_kill_slashes(char *path); char *path_kill_slashes(char *path);
bool path_startswith(const char *path, const char *prefix); bool path_startswith(const char *path, const char *prefix);
bool path_equal(const char *a, const char *b); bool path_equal(const char *a, const char *b);
char *ascii_strlower(char *path); char *ascii_strlower(char *path);
bool dirent_is_file(struct dirent *de); bool dirent_is_file(const struct dirent *de);
bool dirent_is_file_with_suffix(const struct dirent *de, const char *suffix
);
bool ignore_file(const char *filename); bool ignore_file(const char *filename);
bool chars_intersect(const char *a, const char *b); bool chars_intersect(const char *a, const char *b);
char *format_timestamp(char *buf, size_t l, usec_t t); char *format_timestamp(char *buf, size_t l, usec_t t);
char *format_timestamp_pretty(char *buf, size_t l, usec_t t); char *format_timestamp_pretty(char *buf, size_t l, usec_t t);
char *format_timespan(char *buf, size_t l, usec_t t); char *format_timespan(char *buf, size_t l, usec_t t);
int make_stdio(int fd); int make_stdio(int fd);
int make_null_stdio(void); int make_null_stdio(void);
skipping to change at line 366 skipping to change at line 370
char* gethostname_malloc(void); char* gethostname_malloc(void);
char* getlogname_malloc(void); char* getlogname_malloc(void);
int getttyname_malloc(int fd, char **r); int getttyname_malloc(int fd, char **r);
int getttyname_harder(int fd, char **r); int getttyname_harder(int fd, char **r);
int get_ctty_devnr(pid_t pid, dev_t *d); int get_ctty_devnr(pid_t pid, dev_t *d);
int get_ctty(pid_t, dev_t *_devnr, char **r); int get_ctty(pid_t, dev_t *_devnr, char **r);
int chmod_and_chown(const char *path, mode_t mode, uid_t uid, gid_t gid); int chmod_and_chown(const char *path, mode_t mode, uid_t uid, gid_t gid);
int fchmod_and_fchown(int fd, mode_t mode, uid_t uid, gid_t gid);
int rm_rf(const char *path, bool only_dirs, bool delete_root, bool honour_s ticky); int rm_rf(const char *path, bool only_dirs, bool delete_root, bool honour_s ticky);
int pipe_eof(int fd); int pipe_eof(int fd);
cpu_set_t* cpu_set_malloc(unsigned *ncpus); cpu_set_t* cpu_set_malloc(unsigned *ncpus);
void status_vprintf(const char *format, va_list ap); void status_vprintf(const char *status, bool ellipse, const char *format, v
void status_printf(const char *format, ...); a_list ap);
void status_printf(const char *status, bool ellipse, const char *format, ..
.);
void status_welcome(void); void status_welcome(void);
int columns(void); int fd_columns(int fd);
unsigned columns(void);
int running_in_chroot(void); int running_in_chroot(void);
char *ellipsize(const char *s, unsigned length, unsigned percent); char *ellipsize(const char *s, size_t length, unsigned percent);
char *ellipsize_mem(const char *s, size_t old_length, size_t new_length, un
signed percent);
int touch(const char *path); int touch(const char *path);
char *unquote(const char *s, const char *quotes); char *unquote(const char *s, const char *quotes);
char *normalize_env_assignment(const char *s); char *normalize_env_assignment(const char *s);
int wait_for_terminate(pid_t pid, siginfo_t *status); int wait_for_terminate(pid_t pid, siginfo_t *status);
int wait_for_terminate_and_warn(const char *name, pid_t pid); int wait_for_terminate_and_warn(const char *name, pid_t pid);
_noreturn_ void freeze(void); _noreturn_ void freeze(void);
skipping to change at line 418 skipping to change at line 425
void execute_directory(const char *directory, DIR *_d, char *argv[]); void execute_directory(const char *directory, DIR *_d, char *argv[]);
int kill_and_sigcont(pid_t pid, int sig); int kill_and_sigcont(pid_t pid, int sig);
bool nulstr_contains(const char*nulstr, const char *needle); bool nulstr_contains(const char*nulstr, const char *needle);
bool plymouth_running(void); bool plymouth_running(void);
void parse_syslog_priority(char **p, int *priority); void parse_syslog_priority(char **p, int *priority);
void skip_syslog_pid(char **buf);
void skip_syslog_date(char **buf);
int have_effective_cap(int value); int have_effective_cap(int value);
bool hostname_is_valid(const char *s); bool hostname_is_valid(const char *s);
char* hostname_cleanup(char *s); char* hostname_cleanup(char *s);
char* strshorten(char *s, size_t l); char* strshorten(char *s, size_t l);
int terminal_vhangup_fd(int fd); int terminal_vhangup_fd(int fd);
int terminal_vhangup(const char *name); int terminal_vhangup(const char *name);
skipping to change at line 446 skipping to change at line 455
int conf_files_list(char ***strv, const char *suffix, const char *dir, ...) ; int conf_files_list(char ***strv, const char *suffix, const char *dir, ...) ;
int hwclock_is_localtime(void); int hwclock_is_localtime(void);
int hwclock_apply_localtime_delta(int *min); int hwclock_apply_localtime_delta(int *min);
int hwclock_reset_localtime_delta(void); int hwclock_reset_localtime_delta(void);
int hwclock_get_time(struct tm *tm); int hwclock_get_time(struct tm *tm);
int hwclock_set_time(const struct tm *tm); int hwclock_set_time(const struct tm *tm);
int audit_session_from_pid(pid_t pid, uint32_t *id); int audit_session_from_pid(pid_t pid, uint32_t *id);
int audit_loginuid_from_pid(pid_t pid, uid_t *uid);
bool display_is_local(const char *display); bool display_is_local(const char *display);
int socket_from_display(const char *display, char **path); int socket_from_display(const char *display, char **path);
int get_user_creds(const char **username, uid_t *uid, gid_t *gid, const cha r **home); int get_user_creds(const char **username, uid_t *uid, gid_t *gid, const cha r **home);
int get_group_creds(const char **groupname, gid_t *gid); int get_group_creds(const char **groupname, gid_t *gid);
int glob_exists(const char *path); int glob_exists(const char *path);
int dirent_ensure_type(DIR *d, struct dirent *de); int dirent_ensure_type(DIR *d, struct dirent *de);
skipping to change at line 509 skipping to change at line 519
const char *signal_to_string(int i); const char *signal_to_string(int i);
int signal_from_string(const char *s); int signal_from_string(const char *s);
int signal_from_string_try_harder(const char *s); int signal_from_string_try_harder(const char *s);
extern int saved_argc; extern int saved_argc;
extern char **saved_argv; extern char **saved_argv;
bool kexec_loaded(void); bool kexec_loaded(void);
int prot_from_flags(int flags);
unsigned long cap_last_cap(void);
char *format_bytes(char *buf, size_t l, off_t t);
int fd_wait_for_event(int fd, int event);
void* memdup(const void *p, size_t l);
#endif #endif
 End of changes. 9 change blocks. 
7 lines changed or deleted 32 lines changed or added


 utmp-wtmp.h   utmp-wtmp.h 
skipping to change at line 29 skipping to change at line 29
General Public License for more details. General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>. along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/ ***/
#include "util.h" #include "util.h"
int utmp_get_runlevel(int *runlevel, int *previous); int utmp_get_runlevel(int *runlevel, int *previous);
int utmp_put_shutdown(usec_t timestamp); int utmp_put_shutdown(void);
int utmp_put_reboot(usec_t timestamp); int utmp_put_reboot(usec_t timestamp);
int utmp_put_runlevel(usec_t timestamp, int runlevel, int previous); int utmp_put_runlevel(int runlevel, int previous);
int utmp_put_dead_process(const char *id, pid_t pid, int code, int status); int utmp_put_dead_process(const char *id, pid_t pid, int code, int status);
int utmp_put_init_process(usec_t timestamp, const char *id, pid_t pid, pid_ t sid, const char *line); int utmp_put_init_process(const char *id, pid_t pid, pid_t sid, const char *line);
int utmp_wall(const char *message, bool (*match_tty)(const char *tty)); int utmp_wall(const char *message, bool (*match_tty)(const char *tty));
#endif #endif
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/