| 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 | |
|
| 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 | |
|
| 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 | |
|
| 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 | |
|
| 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 | |
|