| cgroup-util.h | | cgroup-util.h | |
| | | | |
| skipping to change at line 67 | | skipping to change at line 67 | |
| | | | |
| int cg_enumerate_subgroups(const char *controller, const char *path, DIR **
_d); | | int cg_enumerate_subgroups(const char *controller, const char *path, DIR **
_d); | |
| int cg_read_subgroup(DIR *d, char **fn); | | int cg_read_subgroup(DIR *d, char **fn); | |
| | | | |
| int cg_kill(const char *controller, const char *path, int sig, bool sigcont
, bool ignore_self, Set *s); | | int cg_kill(const char *controller, const char *path, int sig, bool sigcont
, bool ignore_self, Set *s); | |
| int cg_kill_recursive(const char *controller, const char *path, int sig, bo
ol sigcont, bool ignore_self, bool remove, Set *s); | | int cg_kill_recursive(const char *controller, const char *path, int sig, bo
ol sigcont, bool ignore_self, bool remove, Set *s); | |
| int cg_kill_recursive_and_wait(const char *controller, const char *path, bo
ol remove); | | int cg_kill_recursive_and_wait(const char *controller, const char *path, bo
ol remove); | |
| | | | |
| int cg_migrate(const char *cfrom, const char *pfrom, const char *cto, const
char *pto, bool ignore_self); | | int cg_migrate(const char *cfrom, const char *pfrom, const char *cto, const
char *pto, bool ignore_self); | |
| int cg_migrate_recursive(const char *cfrom, const char *pfrom, const char *
cto, const char *pto, bool ignore_self, bool remove); | | int cg_migrate_recursive(const char *cfrom, const char *pfrom, const char *
cto, const char *pto, bool ignore_self, bool remove); | |
|
| | | int cg_migrate_recursive_fallback(const char *cfrom, const char *pfrom, con
st char *cto, const char *pto, bool ignore_self, bool rem); | |
| | | | |
| int cg_split_spec(const char *spec, char **controller, char **path); | | int cg_split_spec(const char *spec, char **controller, char **path); | |
| int cg_join_spec(const char *controller, const char *path, char **spec); | | int cg_join_spec(const char *controller, const char *path, char **spec); | |
| int cg_mangle_path(const char *path, char **result); | | int cg_mangle_path(const char *path, char **result); | |
| | | | |
| int cg_get_path(const char *controller, const char *path, const char *suffi
x, char **fs); | | int cg_get_path(const char *controller, const char *path, const char *suffi
x, char **fs); | |
| int cg_get_path_and_check(const char *controller, const char *path, const c
har *suffix, char **fs); | | int cg_get_path_and_check(const char *controller, const char *path, const c
har *suffix, char **fs); | |
| | | | |
| int cg_pid_get_path(const char *controller, pid_t pid, char **path); | | int cg_pid_get_path(const char *controller, pid_t pid, char **path); | |
| | | | |
| int cg_trim(const char *controller, const char *path, bool delete_root); | | int cg_trim(const char *controller, const char *path, bool delete_root); | |
| | | | |
| int cg_rmdir(const char *controller, const char *path); | | int cg_rmdir(const char *controller, const char *path); | |
| int cg_delete(const char *controller, const char *path); | | int cg_delete(const char *controller, const char *path); | |
| | | | |
| int cg_create(const char *controller, const char *path); | | int cg_create(const char *controller, const char *path); | |
| int cg_attach(const char *controller, const char *path, pid_t pid); | | int cg_attach(const char *controller, const char *path, pid_t pid); | |
|
| | | int cg_attach_fallback(const char *controller, const char *path, pid_t pid)
; | |
| int cg_create_and_attach(const char *controller, const char *path, pid_t pi
d); | | int cg_create_and_attach(const char *controller, const char *path, pid_t pi
d); | |
| | | | |
| int cg_set_attribute(const char *controller, const char *path, const char *
attribute, const char *value); | | int cg_set_attribute(const char *controller, const char *path, const char *
attribute, const char *value); | |
| | | | |
| int cg_set_group_access(const char *controller, const char *path, mode_t mo
de, uid_t uid, gid_t gid); | | int cg_set_group_access(const char *controller, const char *path, mode_t mo
de, uid_t uid, gid_t gid); | |
| int cg_set_task_access(const char *controller, const char *path, mode_t mod
e, uid_t uid, gid_t gid); | | int cg_set_task_access(const char *controller, const char *path, mode_t mod
e, uid_t uid, gid_t gid); | |
| | | | |
| int cg_install_release_agent(const char *controller, const char *agent); | | int cg_install_release_agent(const char *controller, const char *agent); | |
| int cg_uninstall_release_agent(const char *controller); | | int cg_uninstall_release_agent(const char *controller); | |
| | | | |
| | | | |
| skipping to change at line 129 | | skipping to change at line 131 | |
| | | | |
| int cg_controller_from_attr(const char *attr, char **controller); | | int cg_controller_from_attr(const char *attr, char **controller); | |
| | | | |
| char *cg_escape(const char *p); | | char *cg_escape(const char *p); | |
| char *cg_unescape(const char *p) _pure_; | | char *cg_unescape(const char *p) _pure_; | |
| | | | |
| bool cg_controller_is_valid(const char *p, bool allow_named); | | bool cg_controller_is_valid(const char *p, bool allow_named); | |
| | | | |
| int cg_slice_to_path(const char *unit, char **ret); | | int cg_slice_to_path(const char *unit, char **ret); | |
| | | | |
|
| int cg_create_with_mask(CGroupControllerMask mask, const char *path); | | int cg_create_everywhere(CGroupControllerMask supported, CGroupControllerMa | |
| int cg_attach_with_mask(CGroupControllerMask mask, const char *path, pid_t | | sk mask, const char *path); | |
| pid); | | int cg_attach_everywhere(CGroupControllerMask supported, const char *path, | |
| int cg_attach_many_with_mask(CGroupControllerMask mask, const char *path, S | | pid_t pid); | |
| et* pids); | | int cg_attach_many_everywhere(CGroupControllerMask supported, const char *p | |
| int cg_migrate_with_mask(CGroupControllerMask mask, const char *from, const | | ath, Set* pids); | |
| char *to); | | int cg_migrate_everywhere(CGroupControllerMask supported, const char *from, | |
| int cg_trim_with_mask(CGroupControllerMask mask, const char *path, bool del | | const char *to); | |
| ete_root); | | int cg_trim_everywhere(CGroupControllerMask supported, const char *path, bo | |
| | | ol delete_root); | |
| | | | |
| CGroupControllerMask cg_mask_supported(void); | | CGroupControllerMask cg_mask_supported(void); | |
| | | | |
End of changes. 3 change blocks. |
| 9 lines changed or deleted | | 12 lines changed or added | |
|
| config.h | | config.h | |
| | | | |
| skipping to change at line 200 | | skipping to change at line 200 | |
| | | | |
| /* Define to 1 if you have the `strspn' function. */ | | /* Define to 1 if you have the `strspn' function. */ | |
| #define HAVE_STRSPN 1 | | #define HAVE_STRSPN 1 | |
| | | | |
| /* SysV init scripts and rcN.d links are supported. */ | | /* SysV init scripts and rcN.d links are supported. */ | |
| #define HAVE_SYSV_COMPAT /**/ | | #define HAVE_SYSV_COMPAT /**/ | |
| | | | |
| /* Define to 1 if you have the <sys/acl.h> header file. */ | | /* Define to 1 if you have the <sys/acl.h> header file. */ | |
| #define HAVE_SYS_ACL_H 1 | | #define HAVE_SYS_ACL_H 1 | |
| | | | |
|
| | | /* Define to 1 if you have the <sys/auxv.h> header file. */ | |
| | | /* #undef HAVE_SYS_AUXV_H */ | |
| | | | |
| /* Define to 1 if you have the <sys/capability.h> header file. */ | | /* Define to 1 if you have the <sys/capability.h> header file. */ | |
| #define HAVE_SYS_CAPABILITY_H 1 | | #define HAVE_SYS_CAPABILITY_H 1 | |
| | | | |
| /* Define to 1 if you have the <sys/ioctl.h> header file. */ | | /* Define to 1 if you have the <sys/ioctl.h> header file. */ | |
| #define HAVE_SYS_IOCTL_H 1 | | #define HAVE_SYS_IOCTL_H 1 | |
| | | | |
| /* Define to 1 if you have the <sys/select.h> header file. */ | | /* Define to 1 if you have the <sys/select.h> header file. */ | |
| #define HAVE_SYS_SELECT_H 1 | | #define HAVE_SYS_SELECT_H 1 | |
| | | | |
| /* Define to 1 if you have the <sys/socket.h> header file. */ | | /* Define to 1 if you have the <sys/socket.h> header file. */ | |
| | | | |
| skipping to change at line 259 | | skipping to change at line 262 | |
| /* 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 "http://bugs.freedesktop.org/enter_bug.cgi?produc
t=systemd" | | #define PACKAGE_BUGREPORT "http://bugs.freedesktop.org/enter_bug.cgi?produc
t=systemd" | |
| | | | |
| /* 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 207" | | #define PACKAGE_STRING "systemd 208" | |
| | | | |
| /* 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 "http://www.freedesktop.org/wiki/Software/systemd" | | #define PACKAGE_URL "http://www.freedesktop.org/wiki/Software/systemd" | |
| | | | |
| /* Define to the version of this package. */ | | /* Define to the version of this package. */ | |
|
| #define PACKAGE_VERSION "207" | | #define PACKAGE_VERSION "208" | |
| | | | |
| /* Path of /etc/rc.local script */ | | /* Path of /etc/rc.local script */ | |
| #define RC_LOCAL_SCRIPT_PATH_START "/etc/rc.local" | | #define RC_LOCAL_SCRIPT_PATH_START "/etc/rc.local" | |
| | | | |
| /* Path of /usr/sbin/halt.local script */ | | /* Path of /usr/sbin/halt.local script */ | |
| #define RC_LOCAL_SCRIPT_PATH_STOP "/usr/sbin/halt.local" | | #define RC_LOCAL_SCRIPT_PATH_STOP "/usr/sbin/halt.local" | |
| | | | |
| /* Define to the type of arg 1 for `select'. */ | | /* Define to the type of arg 1 for `select'. */ | |
| #define SELECT_TYPE_ARG1 int | | #define SELECT_TYPE_ARG1 int | |
| | | | |
| /* Define to the type of args 2, 3 and 4 for `select'. */ | | /* Define to the type of args 2, 3 and 4 for `select'. */ | |
| #define SELECT_TYPE_ARG234 (fd_set *) | | #define SELECT_TYPE_ARG234 (fd_set *) | |
| | | | |
| /* Define to the type of arg 5 for `select'. */ | | /* Define to the type of arg 5 for `select'. */ | |
| #define SELECT_TYPE_ARG5 (struct timeval *) | | #define SELECT_TYPE_ARG5 (struct timeval *) | |
| | | | |
| /* 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 | |
| | | | |
| /* Path to telinit */ | | /* Path to telinit */ | |
|
| #define TELINIT "/lib/upstart/telinit" | | #define TELINIT "/lib/sysvinit/telinit" | |
| | | | |
| /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ | | /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ | |
| #define TIME_WITH_SYS_TIME 1 | | #define TIME_WITH_SYS_TIME 1 | |
| | | | |
| /* GID of the 'tty' group */ | | /* GID of the 'tty' group */ | |
| /* #undef TTY_GID */ | | /* #undef TTY_GID */ | |
| | | | |
| /* Enable extensions on AIX 3, Interix. */ | | /* Enable extensions on AIX 3, Interix. */ | |
| #ifndef _ALL_SOURCE | | #ifndef _ALL_SOURCE | |
| # define _ALL_SOURCE 1 | | # define _ALL_SOURCE 1 | |
| | | | |
| skipping to change at line 319 | | skipping to change at line 322 | |
| /* 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 "207" | | #define VERSION "208" | |
| | | | |
| /* Enable large inode numbers on Mac OS X 10.5. */ | | /* Enable large inode numbers on Mac OS X 10.5. */ | |
| #ifndef _DARWIN_USE_64_BIT_INODE | | #ifndef _DARWIN_USE_64_BIT_INODE | |
| # define _DARWIN_USE_64_BIT_INODE 1 | | # define _DARWIN_USE_64_BIT_INODE 1 | |
| #endif | | #endif | |
| | | | |
| /* 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. */ | |
| | | | |
End of changes. 5 change blocks. |
| 4 lines changed or deleted | | 7 lines changed or added | |
|
| dbus-cgroup.h | | dbus-cgroup.h | |
| | | | |
| skipping to change at line 40 | | skipping to change at line 40 | |
| #define BUS_CGROUP_CONTEXT_INTERFACE \ | | #define BUS_CGROUP_CONTEXT_INTERFACE \ | |
| " <property name=\"CPUAccounting\" type=\"b\" access=\"read\"/>\n"
\ | | " <property name=\"CPUAccounting\" type=\"b\" access=\"read\"/>\n"
\ | |
| " <property name=\"CPUShares\" type=\"t\" access=\"read\"/>\n" \ | | " <property name=\"CPUShares\" type=\"t\" access=\"read\"/>\n" \ | |
| " <property name=\"BlockIOAccounting\" type=\"b\" access=\"read\"/
>\n" \ | | " <property name=\"BlockIOAccounting\" type=\"b\" access=\"read\"/
>\n" \ | |
| " <property name=\"BlockIOWeight\" type=\"t\" access=\"read\"/>\n"
\ | | " <property name=\"BlockIOWeight\" type=\"t\" access=\"read\"/>\n"
\ | |
| " <property name=\"BlockIODeviceWeight\" type=\"a(st)\" access=\"r
ead\"/>\n" \ | | " <property name=\"BlockIODeviceWeight\" type=\"a(st)\" access=\"r
ead\"/>\n" \ | |
| " <property name=\"BlockIOReadBandwidth=\" type=\"a(st)\" access=\
"read\"/>\n" \ | | " <property name=\"BlockIOReadBandwidth=\" type=\"a(st)\" access=\
"read\"/>\n" \ | |
| " <property name=\"BlockIOWriteBandwidth=\" type=\"a(st)\" access=
\"read\"/>\n" \ | | " <property name=\"BlockIOWriteBandwidth=\" type=\"a(st)\" access=
\"read\"/>\n" \ | |
| " <property name=\"MemoryAccounting\" type=\"b\" access=\"read\"/>
\n" \ | | " <property name=\"MemoryAccounting\" type=\"b\" access=\"read\"/>
\n" \ | |
| " <property name=\"MemoryLimit\" type=\"t\" access=\"read\"/>\n" \ | | " <property name=\"MemoryLimit\" type=\"t\" access=\"read\"/>\n" \ | |
|
| " <property name=\"MemorySoftLimit\" type=\"t\" access=\"read\"/>\
n" \ | | | |
| " <property name=\"DevicePolicy\" type=\"s\" access=\"read\"/>\n"
\ | | " <property name=\"DevicePolicy\" type=\"s\" access=\"read\"/>\n"
\ | |
| " <property name=\"DeviceAllow\" type=\"a(ss)\" access=\"read\"/>\
n" | | " <property name=\"DeviceAllow\" type=\"a(ss)\" access=\"read\"/>\
n" | |
| | | | |
| extern const BusProperty bus_cgroup_context_properties[]; | | extern const BusProperty bus_cgroup_context_properties[]; | |
| | | | |
| int bus_cgroup_set_property(Unit *u, CGroupContext *c, const char *name, DB
usMessageIter *i, UnitSetPropertiesMode mode, DBusError *error); | | int bus_cgroup_set_property(Unit *u, CGroupContext *c, const char *name, DB
usMessageIter *i, UnitSetPropertiesMode mode, DBusError *error); | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 0 lines changed or added | |
|
| dbus-execute.h | | dbus-execute.h | |
| | | | |
| skipping to change at line 66 | | skipping to change at line 66 | |
| " <property name=\"LimitRTPRIO\" type=\"t\" access=\"read\"/>\n" \ | | " <property name=\"LimitRTPRIO\" type=\"t\" access=\"read\"/>\n" \ | |
| " <property name=\"LimitRTTIME\" type=\"t\" access=\"read\"/>\n" \ | | " <property name=\"LimitRTTIME\" type=\"t\" access=\"read\"/>\n" \ | |
| " <property name=\"WorkingDirectory\" type=\"s\" access=\"read\"/>
\n" \ | | " <property name=\"WorkingDirectory\" type=\"s\" access=\"read\"/>
\n" \ | |
| " <property name=\"RootDirectory\" type=\"s\" access=\"read\"/>\n"
\ | | " <property name=\"RootDirectory\" type=\"s\" access=\"read\"/>\n"
\ | |
| " <property name=\"OOMScoreAdjust\" type=\"i\" access=\"read\"/>\n
" \ | | " <property name=\"OOMScoreAdjust\" type=\"i\" access=\"read\"/>\n
" \ | |
| " <property name=\"Nice\" type=\"i\" access=\"read\"/>\n" \ | | " <property name=\"Nice\" type=\"i\" access=\"read\"/>\n" \ | |
| " <property name=\"IOScheduling\" type=\"i\" access=\"read\"/>\n"
\ | | " <property name=\"IOScheduling\" type=\"i\" access=\"read\"/>\n"
\ | |
| " <property name=\"CPUSchedulingPolicy\" type=\"i\" access=\"read\
"/>\n" \ | | " <property name=\"CPUSchedulingPolicy\" type=\"i\" access=\"read\
"/>\n" \ | |
| " <property name=\"CPUSchedulingPriority\" type=\"i\" access=\"rea
d\"/>\n" \ | | " <property name=\"CPUSchedulingPriority\" type=\"i\" access=\"rea
d\"/>\n" \ | |
| " <property name=\"CPUAffinity\" type=\"ay\" access=\"read\"/>\n"
\ | | " <property name=\"CPUAffinity\" type=\"ay\" access=\"read\"/>\n"
\ | |
|
| " <property name=\"TimerSlackNS\" type=\"t\" access=\"read\"/>\n"
\ | | " <property name=\"TimerSlackNSec\" type=\"t\" access=\"read\"/>\n
" \ | |
| " <property name=\"CPUSchedulingResetOnFork\" type=\"b\" access=\"
read\"/>\n" \ | | " <property name=\"CPUSchedulingResetOnFork\" type=\"b\" access=\"
read\"/>\n" \ | |
| " <property name=\"NonBlocking\" type=\"b\" access=\"read\"/>\n" \ | | " <property name=\"NonBlocking\" type=\"b\" access=\"read\"/>\n" \ | |
| " <property name=\"StandardInput\" type=\"s\" access=\"read\"/>\n"
\ | | " <property name=\"StandardInput\" type=\"s\" access=\"read\"/>\n"
\ | |
| " <property name=\"StandardOutput\" type=\"s\" access=\"read\"/>\n
" \ | | " <property name=\"StandardOutput\" type=\"s\" access=\"read\"/>\n
" \ | |
| " <property name=\"StandardError\" type=\"s\" access=\"read\"/>\n"
\ | | " <property name=\"StandardError\" type=\"s\" access=\"read\"/>\n"
\ | |
| " <property name=\"TTYPath\" type=\"s\" access=\"read\"/>\n" \ | | " <property name=\"TTYPath\" type=\"s\" access=\"read\"/>\n" \ | |
| " <property name=\"TTYReset\" type=\"b\" access=\"read\"/>\n" \ | | " <property name=\"TTYReset\" type=\"b\" access=\"read\"/>\n" \ | |
| " <property name=\"TTYVHangup\" type=\"b\" access=\"read\"/>\n"
\ | | " <property name=\"TTYVHangup\" type=\"b\" access=\"read\"/>\n"
\ | |
| " <property name=\"TTYVTDisallocate\" type=\"b\" access=\"read\"/>
\n" \ | | " <property name=\"TTYVTDisallocate\" type=\"b\" access=\"read\"/>
\n" \ | |
| " <property name=\"SyslogPriority\" type=\"i\" access=\"read\"/>\n
" \ | | " <property name=\"SyslogPriority\" type=\"i\" access=\"read\"/>\n
" \ | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| hashmap.h | | hashmap.h | |
| | | | |
| skipping to change at line 79 | | skipping to change at line 79 | |
| void *hashmap_remove_value(Hashmap *h, const void *key, void *value); | | void *hashmap_remove_value(Hashmap *h, const void *key, void *value); | |
| int hashmap_remove_and_put(Hashmap *h, const void *old_key, const void *new
_key, void *value); | | int hashmap_remove_and_put(Hashmap *h, const void *old_key, const void *new
_key, void *value); | |
| int hashmap_remove_and_replace(Hashmap *h, const void *old_key, const void
*new_key, void *value); | | int hashmap_remove_and_replace(Hashmap *h, const void *old_key, const void
*new_key, void *value); | |
| | | | |
| int hashmap_merge(Hashmap *h, Hashmap *other); | | int hashmap_merge(Hashmap *h, Hashmap *other); | |
| void hashmap_move(Hashmap *h, Hashmap *other); | | void hashmap_move(Hashmap *h, Hashmap *other); | |
| int hashmap_move_one(Hashmap *h, Hashmap *other, const void *key); | | int hashmap_move_one(Hashmap *h, Hashmap *other, const void *key); | |
| | | | |
| unsigned hashmap_size(Hashmap *h) _pure_; | | unsigned hashmap_size(Hashmap *h) _pure_; | |
| bool hashmap_isempty(Hashmap *h) _pure_; | | bool hashmap_isempty(Hashmap *h) _pure_; | |
|
| | | unsigned hashmap_buckets(Hashmap *h) _pure_; | |
| | | | |
| 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_clear_free(Hashmap *h); | | void hashmap_clear_free(Hashmap *h); | |
| void hashmap_clear_free_free(Hashmap *h); | | void hashmap_clear_free_free(Hashmap *h); | |
| | | | |
| void *hashmap_steal_first(Hashmap *h); | | void *hashmap_steal_first(Hashmap *h); | |
| | | | |
End of changes. 1 change blocks. |
| 0 lines changed or deleted | | 1 lines changed or added | |
|
| journald-server.h | | journald-server.h | |
| | | | |
| skipping to change at line 100 | | skipping to change at line 100 | |
| | | | |
| uint64_t cached_available_space; | | uint64_t cached_available_space; | |
| usec_t cached_available_space_timestamp; | | usec_t cached_available_space_timestamp; | |
| | | | |
| uint64_t var_available_timestamp; | | uint64_t var_available_timestamp; | |
| | | | |
| usec_t max_retention_usec; | | usec_t max_retention_usec; | |
| usec_t max_file_usec; | | usec_t max_file_usec; | |
| usec_t oldest_file_usec; | | usec_t oldest_file_usec; | |
| | | | |
|
| gid_t file_gid; | | | |
| bool file_gid_valid; | | | |
| | | | |
| LIST_HEAD(StdoutStream, stdout_streams); | | LIST_HEAD(StdoutStream, stdout_streams); | |
| unsigned n_stdout_streams; | | unsigned n_stdout_streams; | |
| | | | |
| char *tty_path; | | char *tty_path; | |
| | | | |
| int max_level_store; | | int max_level_store; | |
| int max_level_syslog; | | int max_level_syslog; | |
| int max_level_kmsg; | | int max_level_kmsg; | |
| int max_level_console; | | int max_level_console; | |
| | | | |
| | | | |
| skipping to change at line 128 | | skipping to change at line 125 | |
| bool dev_kmsg_readable; | | bool dev_kmsg_readable; | |
| | | | |
| uint64_t *kernel_seqnum; | | uint64_t *kernel_seqnum; | |
| | | | |
| struct udev *udev; | | struct udev *udev; | |
| | | | |
| int sync_timer_fd; | | int sync_timer_fd; | |
| bool sync_scheduled; | | bool sync_scheduled; | |
| } Server; | | } Server; | |
| | | | |
|
| #define N_IOVEC_META_FIELDS 19 | | #define N_IOVEC_META_FIELDS 20 | |
| #define N_IOVEC_KERNEL_FIELDS 64 | | #define N_IOVEC_KERNEL_FIELDS 64 | |
| #define N_IOVEC_UDEV_FIELDS 32 | | #define N_IOVEC_UDEV_FIELDS 32 | |
| #define N_IOVEC_OBJECT_FIELDS 11 | | #define N_IOVEC_OBJECT_FIELDS 11 | |
| | | | |
| void server_dispatch_message(Server *s, struct iovec *iovec, unsigned n, un
signed m, struct ucred *ucred, struct timeval *tv, const char *label, size_
t label_len, const char *unit_id, int priority, pid_t object_pid); | | void server_dispatch_message(Server *s, struct iovec *iovec, unsigned n, un
signed m, struct ucred *ucred, struct timeval *tv, const char *label, size_
t label_len, const char *unit_id, int priority, pid_t object_pid); | |
| void server_driver_message(Server *s, sd_id128_t message_id, const char *fo
rmat, ...) _printf_attr_(3,4); | | void server_driver_message(Server *s, sd_id128_t message_id, const char *fo
rmat, ...) _printf_attr_(3,4); | |
| | | | |
| /* gperf lookup function */ | | /* gperf lookup function */ | |
| const struct ConfigPerfItem* journald_gperf_lookup(const char *key, unsigne
d length); | | const struct ConfigPerfItem* journald_gperf_lookup(const char *key, unsigne
d length); | |
| | | | |
| | | | |
End of changes. 2 change blocks. |
| 4 lines changed or deleted | | 1 lines changed or added | |
|
| logind-seat.h | | logind-seat.h | |
| | | | |
| skipping to change at line 41 | | skipping to change at line 41 | |
| | | | |
| struct Seat { | | struct Seat { | |
| Manager *manager; | | Manager *manager; | |
| char *id; | | char *id; | |
| | | | |
| char *state_file; | | char *state_file; | |
| | | | |
| LIST_HEAD(Device, devices); | | LIST_HEAD(Device, devices); | |
| | | | |
| Session *active; | | Session *active; | |
|
| | | Session *pending_switch; | |
| LIST_HEAD(Session, sessions); | | LIST_HEAD(Session, sessions); | |
| | | | |
| bool in_gc_queue:1; | | bool in_gc_queue:1; | |
| bool started:1; | | bool started:1; | |
| | | | |
| LIST_FIELDS(Seat, gc_queue); | | LIST_FIELDS(Seat, gc_queue); | |
| }; | | }; | |
| | | | |
| Seat *seat_new(Manager *m, const char *id); | | Seat *seat_new(Manager *m, const char *id); | |
| void seat_free(Seat *s); | | void seat_free(Seat *s); | |
| | | | |
| skipping to change at line 62 | | skipping to change at line 63 | |
| int seat_save(Seat *s); | | int seat_save(Seat *s); | |
| int seat_load(Seat *s); | | int seat_load(Seat *s); | |
| | | | |
| 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); | |
|
| | | void seat_complete_switch(Seat *s); | |
| | | | |
|
| bool seat_is_vtconsole(Seat *s); | | bool seat_has_vts(Seat *s); | |
| | | bool seat_is_seat0(Seat *s); | |
| bool seat_can_multi_session(Seat *s); | | bool seat_can_multi_session(Seat *s); | |
| bool seat_can_tty(Seat *s); | | bool seat_can_tty(Seat *s); | |
|
| | | bool seat_has_master_device(Seat *s); | |
| bool seat_can_graphical(Seat *s); | | bool seat_can_graphical(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); | |
| | | | |
End of changes. 4 change blocks. |
| 1 lines changed or deleted | | 5 lines changed or added | |
|
| logind-session.h | | logind-session.h | |
| | | | |
| skipping to change at line 31 | | skipping to change at line 31 | |
| along with systemd; If not, see <http://www.gnu.org/licenses/>. | | along with systemd; If not, see <http://www.gnu.org/licenses/>. | |
| ***/ | | ***/ | |
| | | | |
| typedef struct Session Session; | | typedef struct Session Session; | |
| typedef enum KillWho KillWho; | | typedef enum KillWho KillWho; | |
| | | | |
| #include "list.h" | | #include "list.h" | |
| #include "util.h" | | #include "util.h" | |
| #include "logind.h" | | #include "logind.h" | |
| #include "logind-seat.h" | | #include "logind-seat.h" | |
|
| | | #include "logind-session-device.h" | |
| #include "logind-user.h" | | #include "logind-user.h" | |
|
| | | #include "login-shared.h" | |
| | | | |
| typedef enum SessionState { | | typedef enum SessionState { | |
| SESSION_OPENING, /* Session scope is being created */ | | SESSION_OPENING, /* Session scope is being created */ | |
| SESSION_ONLINE, /* Logged in */ | | SESSION_ONLINE, /* Logged in */ | |
| SESSION_ACTIVE, /* Logged in and in the fg */ | | SESSION_ACTIVE, /* Logged in and in the fg */ | |
| SESSION_CLOSING, /* Logged out, but scope is still there */ | | SESSION_CLOSING, /* Logged out, but scope is still there */ | |
| _SESSION_STATE_MAX, | | _SESSION_STATE_MAX, | |
| _SESSION_STATE_INVALID = -1 | | _SESSION_STATE_INVALID = -1 | |
| } SessionState; | | } SessionState; | |
| | | | |
| | | | |
| skipping to change at line 108 | | skipping to change at line 110 | |
| | | | |
| bool idle_hint; | | bool idle_hint; | |
| dual_timestamp idle_hint_timestamp; | | dual_timestamp idle_hint_timestamp; | |
| | | | |
| bool in_gc_queue:1; | | bool in_gc_queue:1; | |
| bool started:1; | | bool started:1; | |
| bool closing:1; | | bool closing:1; | |
| | | | |
| DBusMessage *create_message; | | DBusMessage *create_message; | |
| | | | |
|
| | | char *controller; | |
| | | Hashmap *devices; | |
| | | | |
| LIST_FIELDS(Session, sessions_by_user); | | LIST_FIELDS(Session, sessions_by_user); | |
| LIST_FIELDS(Session, sessions_by_seat); | | LIST_FIELDS(Session, sessions_by_seat); | |
| | | | |
| LIST_FIELDS(Session, gc_queue); | | LIST_FIELDS(Session, gc_queue); | |
| }; | | }; | |
| | | | |
| Session *session_new(Manager *m, const char *id); | | Session *session_new(Manager *m, const char *id); | |
| void session_free(Session *s); | | void session_free(Session *s); | |
| void session_set_user(Session *s, User *u); | | void session_set_user(Session *s, User *u); | |
| int session_check_gc(Session *s, bool drop_not_started); | | int session_check_gc(Session *s, bool drop_not_started); | |
| | | | |
| skipping to change at line 156 | | skipping to change at line 161 | |
| SessionState session_state_from_string(const char *s) _pure_; | | SessionState session_state_from_string(const char *s) _pure_; | |
| | | | |
| const char* session_type_to_string(SessionType t) _const_; | | const char* session_type_to_string(SessionType t) _const_; | |
| SessionType session_type_from_string(const char *s) _pure_; | | SessionType session_type_from_string(const char *s) _pure_; | |
| | | | |
| const char* session_class_to_string(SessionClass t) _const_; | | const char* session_class_to_string(SessionClass t) _const_; | |
| SessionClass session_class_from_string(const char *s) _pure_; | | SessionClass session_class_from_string(const char *s) _pure_; | |
| | | | |
| const char *kill_who_to_string(KillWho k) _const_; | | const char *kill_who_to_string(KillWho k) _const_; | |
| KillWho kill_who_from_string(const char *s) _pure_; | | KillWho kill_who_from_string(const char *s) _pure_; | |
|
| | | | |
| | | bool session_is_controller(Session *s, const char *sender); | |
| | | int session_set_controller(Session *s, const char *sender, bool force); | |
| | | void session_drop_controller(Session *s); | |
| | | | |
End of changes. 4 change blocks. |
| 0 lines changed or deleted | | 5 lines changed or added | |
|
| logind.h | | logind.h | |
| | | | |
| skipping to change at line 54 | | skipping to change at line 54 | |
| | | | |
| struct Manager { | | struct Manager { | |
| DBusConnection *bus; | | DBusConnection *bus; | |
| | | | |
| Hashmap *devices; | | Hashmap *devices; | |
| Hashmap *seats; | | Hashmap *seats; | |
| Hashmap *sessions; | | Hashmap *sessions; | |
| Hashmap *users; | | Hashmap *users; | |
| Hashmap *inhibitors; | | Hashmap *inhibitors; | |
| Hashmap *buttons; | | Hashmap *buttons; | |
|
| | | Hashmap *busnames; | |
| | | | |
| LIST_HEAD(Seat, seat_gc_queue); | | LIST_HEAD(Seat, seat_gc_queue); | |
| LIST_HEAD(Session, session_gc_queue); | | LIST_HEAD(Session, session_gc_queue); | |
| LIST_HEAD(User, user_gc_queue); | | LIST_HEAD(User, user_gc_queue); | |
| | | | |
| struct udev *udev; | | struct udev *udev; | |
|
| struct udev_monitor *udev_seat_monitor, *udev_vcsa_monitor, *udev_b
utton_monitor; | | struct udev_monitor *udev_seat_monitor, *udev_device_monitor, *udev
_vcsa_monitor, *udev_button_monitor; | |
| | | | |
| int udev_seat_fd; | | int udev_seat_fd; | |
|
| | | int udev_device_fd; | |
| int udev_vcsa_fd; | | int udev_vcsa_fd; | |
| int udev_button_fd; | | int udev_button_fd; | |
| | | | |
| int console_active_fd; | | int console_active_fd; | |
| int bus_fd; | | int bus_fd; | |
| int epoll_fd; | | int epoll_fd; | |
| | | | |
| unsigned n_autovts; | | unsigned n_autovts; | |
| | | | |
| unsigned reserve_vt; | | unsigned reserve_vt; | |
| int reserve_vt_fd; | | int reserve_vt_fd; | |
| | | | |
|
| Seat *vtconsole; | | Seat *seat0; | |
| | | | |
| char **kill_only_users, **kill_exclude_users; | | char **kill_only_users, **kill_exclude_users; | |
| bool kill_user_processes; | | bool kill_user_processes; | |
| | | | |
| unsigned long session_counter; | | unsigned long session_counter; | |
| unsigned long inhibit_counter; | | unsigned long inhibit_counter; | |
| | | | |
| Hashmap *session_units; | | Hashmap *session_units; | |
| Hashmap *user_units; | | Hashmap *user_units; | |
| | | | |
| | | | |
| skipping to change at line 124 | | skipping to change at line 126 | |
| HandleAction handle_lid_switch; | | HandleAction handle_lid_switch; | |
| | | | |
| bool power_key_ignore_inhibited; | | bool power_key_ignore_inhibited; | |
| bool suspend_key_ignore_inhibited; | | bool suspend_key_ignore_inhibited; | |
| bool hibernate_key_ignore_inhibited; | | bool hibernate_key_ignore_inhibited; | |
| bool lid_switch_ignore_inhibited; | | bool lid_switch_ignore_inhibited; | |
| }; | | }; | |
| | | | |
| enum { | | enum { | |
| FD_SEAT_UDEV, | | FD_SEAT_UDEV, | |
|
| | | FD_DEVICE_UDEV, | |
| FD_VCSA_UDEV, | | FD_VCSA_UDEV, | |
| FD_BUTTON_UDEV, | | FD_BUTTON_UDEV, | |
| FD_CONSOLE, | | FD_CONSOLE, | |
| FD_BUS, | | FD_BUS, | |
| FD_IDLE_ACTION, | | FD_IDLE_ACTION, | |
| FD_OTHER_BASE | | FD_OTHER_BASE | |
| }; | | }; | |
| | | | |
| Manager *manager_new(void); | | Manager *manager_new(void); | |
| void manager_free(Manager *m); | | void manager_free(Manager *m); | |
| | | | |
|
| int manager_add_device(Manager *m, const char *sysfs, Device **_device); | | int manager_add_device(Manager *m, const char *sysfs, bool master, Device *
*_device); | |
| int manager_add_button(Manager *m, const char *name, Button **_button); | | int manager_add_button(Manager *m, const char *name, Button **_button); | |
| int manager_add_seat(Manager *m, const char *id, Seat **_seat); | | int manager_add_seat(Manager *m, const char *id, Seat **_seat); | |
| int manager_add_session(Manager *m, const char *id, Session **_session); | | int manager_add_session(Manager *m, const char *id, Session **_session); | |
| int manager_add_user(Manager *m, uid_t uid, gid_t gid, const char *name, Us
er **_user); | | int manager_add_user(Manager *m, uid_t uid, gid_t gid, const char *name, Us
er **_user); | |
| int manager_add_user_by_name(Manager *m, const char *name, User **_user); | | int manager_add_user_by_name(Manager *m, const char *name, User **_user); | |
| int manager_add_user_by_uid(Manager *m, uid_t uid, User **_user); | | int manager_add_user_by_uid(Manager *m, uid_t uid, User **_user); | |
| int manager_add_inhibitor(Manager *m, const char* id, Inhibitor **_inhibito
r); | | int manager_add_inhibitor(Manager *m, const char* id, Inhibitor **_inhibito
r); | |
| | | | |
| int manager_process_seat_device(Manager *m, struct udev_device *d); | | int manager_process_seat_device(Manager *m, struct udev_device *d); | |
| int manager_process_button_device(Manager *m, struct udev_device *d); | | int manager_process_button_device(Manager *m, struct udev_device *d); | |
| | | | |
| skipping to change at line 191 | | skipping to change at line 194 | |
| int manager_dispatch_delayed(Manager *manager); | | int manager_dispatch_delayed(Manager *manager); | |
| | | | |
| int manager_start_scope(Manager *manager, const char *scope, pid_t pid, con
st char *slice, const char *description, const char *after, const char *kil
l_mode, DBusError *error, char **job); | | int manager_start_scope(Manager *manager, const char *scope, pid_t pid, con
st char *slice, const char *description, const char *after, const char *kil
l_mode, DBusError *error, char **job); | |
| int manager_start_unit(Manager *manager, const char *unit, DBusError *error
, char **job); | | int manager_start_unit(Manager *manager, const char *unit, DBusError *error
, char **job); | |
| int manager_stop_unit(Manager *manager, const char *unit, DBusError *error,
char **job); | | int manager_stop_unit(Manager *manager, const char *unit, DBusError *error,
char **job); | |
| int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int
signo, DBusError *error); | | int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int
signo, DBusError *error); | |
| int manager_unit_is_active(Manager *manager, const char *unit); | | int manager_unit_is_active(Manager *manager, const char *unit); | |
| | | | |
| /* gperf lookup function */ | | /* gperf lookup function */ | |
| const struct ConfigPerfItem* logind_gperf_lookup(const char *key, unsigned
length); | | const struct ConfigPerfItem* logind_gperf_lookup(const char *key, unsigned
length); | |
|
| | | | |
| | | int manager_watch_busname(Manager *manager, const char *name); | |
| | | void manager_drop_busname(Manager *manager, const char *name); | |
| | | | |
End of changes. 7 change blocks. |
| 3 lines changed or deleted | | 6 lines changed or added | |
|
| manager.h | | manager.h | |
| | | | |
| skipping to change at line 106 | | skipping to change at line 106 | |
| * not, and the list of jobs may neither. */ | | * not, and the list of jobs may neither. */ | |
| | | | |
| /* Active jobs and units */ | | /* Active jobs and units */ | |
| Hashmap *units; /* name string => Unit object n:1 */ | | Hashmap *units; /* name string => Unit object n:1 */ | |
| Hashmap *jobs; /* job id => Job object 1:1 */ | | Hashmap *jobs; /* job id => Job object 1:1 */ | |
| | | | |
| /* To make it easy to iterate through the units of a specific | | /* To make it easy to iterate through the units of a specific | |
| * type we maintain a per type linked list */ | | * type we maintain a per type linked list */ | |
| LIST_HEAD(Unit, units_by_type[_UNIT_TYPE_MAX]); | | LIST_HEAD(Unit, units_by_type[_UNIT_TYPE_MAX]); | |
| | | | |
|
| /* To optimize iteration of units that have requires_mounts_for set | | | |
| */ | | | |
| LIST_HEAD(Unit, has_requires_mounts_for); | | | |
| | | | |
| /* Units that need to be loaded */ | | /* Units that need to be loaded */ | |
| LIST_HEAD(Unit, load_queue); /* this is actually more a stack than
a queue, but uh. */ | | LIST_HEAD(Unit, load_queue); /* this is actually more a stack than
a queue, but uh. */ | |
| | | | |
| /* Jobs that need to be run */ | | /* Jobs that need to be run */ | |
| LIST_HEAD(Job, run_queue); /* more a stack than a queue, too */ | | LIST_HEAD(Job, run_queue); /* more a stack than a queue, too */ | |
| | | | |
| /* Units and jobs that have not yet been announced via | | /* Units and jobs that have not yet been announced via | |
| * D-Bus. When something about a job changes it is added here | | * D-Bus. When something about a job changes it is added here | |
| * if it is not in there yet. This allows easy coalescing of | | * if it is not in there yet. This allows easy coalescing of | |
| * D-Bus change signals. */ | | * D-Bus change signals. */ | |
| | | | |
| skipping to change at line 254 | | skipping to change at line 251 | |
| /* Jobs in progress watching */ | | /* Jobs in progress watching */ | |
| unsigned n_running_jobs; | | unsigned n_running_jobs; | |
| unsigned n_on_console; | | unsigned n_on_console; | |
| unsigned jobs_in_progress_iteration; | | unsigned jobs_in_progress_iteration; | |
| | | | |
| /* Type=idle pipes */ | | /* Type=idle pipes */ | |
| int idle_pipe[4]; | | int idle_pipe[4]; | |
| | | | |
| char *switch_root; | | char *switch_root; | |
| char *switch_root_init; | | char *switch_root_init; | |
|
| | | | |
| | | /* This maps all possible path prefixes to the units needing | |
| | | * them. It's a hashmap with a path string as key and a Set as | |
| | | * value where Unit objects are contained. */ | |
| | | Hashmap *units_requiring_mounts_for; | |
| }; | | }; | |
| | | | |
| int manager_new(SystemdRunningAs running_as, bool reexecuting, Manager **m)
; | | int manager_new(SystemdRunningAs running_as, bool reexecuting, Manager **m)
; | |
| void manager_free(Manager *m); | | void manager_free(Manager *m); | |
| | | | |
| int manager_enumerate(Manager *m); | | int manager_enumerate(Manager *m); | |
| int manager_coldplug(Manager *m); | | int manager_coldplug(Manager *m); | |
| int manager_startup(Manager *m, FILE *serialization, FDSet *fds); | | int manager_startup(Manager *m, FILE *serialization, FDSet *fds); | |
| | | | |
| Job *manager_get_job(Manager *m, uint32_t id); | | Job *manager_get_job(Manager *m, uint32_t id); | |
| Unit *manager_get_unit(Manager *m, const char *name); | | Unit *manager_get_unit(Manager *m, const char *name); | |
| | | | |
|
| | | int manager_get_unit_by_path(Manager *m, const char *path, const char *suff | |
| | | ix, Unit **_found); | |
| | | | |
| int manager_get_job_from_dbus_path(Manager *m, const char *s, Job **_j); | | int manager_get_job_from_dbus_path(Manager *m, const char *s, Job **_j); | |
| | | | |
| int manager_load_unit_prepare(Manager *m, const char *name, const char *pat
h, DBusError *e, Unit **_ret); | | int manager_load_unit_prepare(Manager *m, const char *name, const char *pat
h, DBusError *e, Unit **_ret); | |
| int manager_load_unit(Manager *m, const char *name, const char *path, DBusE
rror *e, Unit **_ret); | | int manager_load_unit(Manager *m, const char *name, const char *path, DBusE
rror *e, Unit **_ret); | |
| int manager_load_unit_from_dbus_path(Manager *m, const char *s, DBusError *
e, Unit **_u); | | int manager_load_unit_from_dbus_path(Manager *m, const char *s, DBusError *
e, Unit **_u); | |
| | | | |
| int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, boo
l force, DBusError *e, Job **_ret); | | int manager_add_job(Manager *m, JobType type, Unit *unit, JobMode mode, boo
l force, DBusError *e, Job **_ret); | |
| int manager_add_job_by_name(Manager *m, JobType type, const char *name, Job
Mode mode, bool force, DBusError *e, Job **_ret); | | int manager_add_job_by_name(Manager *m, JobType type, const char *name, Job
Mode mode, bool force, DBusError *e, Job **_ret); | |
| | | | |
| void manager_dump_units(Manager *s, FILE *f, const char *prefix); | | void manager_dump_units(Manager *s, FILE *f, const char *prefix); | |
| | | | |
| skipping to change at line 319 | | skipping to change at line 323 | |
| void manager_check_finished(Manager *m); | | void manager_check_finished(Manager *m); | |
| | | | |
| void manager_run_generators(Manager *m); | | void manager_run_generators(Manager *m); | |
| void manager_undo_generators(Manager *m); | | void manager_undo_generators(Manager *m); | |
| | | | |
| void manager_recheck_journal(Manager *m); | | void manager_recheck_journal(Manager *m); | |
| | | | |
| void manager_set_show_status(Manager *m, bool b); | | void manager_set_show_status(Manager *m, bool b); | |
| void manager_status_printf(Manager *m, bool ephemeral, const char *status,
const char *format, ...) _printf_attr_(4,5); | | void manager_status_printf(Manager *m, bool ephemeral, const char *status,
const char *format, ...) _printf_attr_(4,5); | |
| | | | |
|
| | | Set *manager_get_units_requiring_mounts_for(Manager *m, const char *path); | |
| | | | |
| void watch_init(Watch *w); | | void watch_init(Watch *w); | |
| | | | |
End of changes. 4 change blocks. |
| 4 lines changed or deleted | | 10 lines changed or added | |
|
| path-util.h | | path-util.h | |
| | | | |
| skipping to change at line 54 | | skipping to change at line 54 | |
| | | | |
| char** path_strv_make_absolute_cwd(char **l); | | char** path_strv_make_absolute_cwd(char **l); | |
| char** path_strv_canonicalize(char **l); | | char** path_strv_canonicalize(char **l); | |
| char** path_strv_canonicalize_uniq(char **l); | | char** path_strv_canonicalize_uniq(char **l); | |
| | | | |
| int path_is_mount_point(const char *path, bool allow_symlink); | | int path_is_mount_point(const char *path, bool allow_symlink); | |
| int path_is_read_only_fs(const char *path); | | int path_is_read_only_fs(const char *path); | |
| int path_is_os_tree(const char *path); | | int path_is_os_tree(const char *path); | |
| | | | |
| int find_binary(const char *name, char **filename); | | int find_binary(const char *name, char **filename); | |
|
| | | | |
| | | /* Iterates through the path prefixes of the specified path, going up | |
| | | * the tree, to root. Also returns "" (and not "/"!) for the root | |
| | | * directory. Excludes the specified directory itself */ | |
| | | #define PATH_FOREACH_PREFIX(prefix, path) \ | |
| | | for (char *_slash = ({ path_kill_slashes(strcpy(prefix, path)); str | |
| | | eq(prefix, "/") ? NULL : strrchr(prefix, '/'); }); _slash && !(*_slash = 0) | |
| | | ; _slash = strrchr((prefix), '/')) | |
| | | | |
| | | /* Same as PATH_FOREACH_PREFIX but also includes the specified path itself | |
| | | */ | |
| | | #define PATH_FOREACH_PREFIX_MORE(prefix, path) \ | |
| | | for (char *_slash = ({ path_kill_slashes(strcpy(prefix, path)); if | |
| | | (streq(prefix, "/")) prefix[0] = 0; strrchr(prefix, 0); }); _slash && !(*_s | |
| | | lash = 0); _slash = strrchr((prefix), '/')) | |
| | | | |
End of changes. 1 change blocks. |
| 0 lines changed or deleted | | 0 lines changed or added | |
|
| socket-util.h | | socket-util.h | |
| | | | |
| skipping to change at line 95 | | skipping to change at line 95 | |
| | | | |
| bool socket_address_is(const SocketAddress *a, const char *s, int type); | | bool socket_address_is(const SocketAddress *a, const char *s, int type); | |
| bool socket_address_is_netlink(const SocketAddress *a, const char *s); | | bool socket_address_is_netlink(const SocketAddress *a, const char *s); | |
| | | | |
| bool socket_address_matches_fd(const SocketAddress *a, int fd); | | bool socket_address_matches_fd(const SocketAddress *a, int fd); | |
| | | | |
| int make_socket_fd(const char* address, int flags); | | int make_socket_fd(const char* address, int flags); | |
| | | | |
| bool socket_address_equal(const SocketAddress *a, const SocketAddress *b) _
pure_; | | bool socket_address_equal(const SocketAddress *a, const SocketAddress *b) _
pure_; | |
| | | | |
|
| bool socket_address_needs_mount(const SocketAddress *a, const char *prefix)
; | | const char* socket_address_get_path(const SocketAddress *a); | |
| | | | |
| const char* socket_address_bind_ipv6_only_to_string(SocketAddressBindIPv6On
ly b) _const_; | | const char* socket_address_bind_ipv6_only_to_string(SocketAddressBindIPv6On
ly b) _const_; | |
| SocketAddressBindIPv6Only socket_address_bind_ipv6_only_from_string(const c
har *s) _pure_; | | SocketAddressBindIPv6Only socket_address_bind_ipv6_only_from_string(const c
har *s) _pure_; | |
| | | | |
| int netlink_family_to_string_alloc(int b, char **s); | | int netlink_family_to_string_alloc(int b, char **s); | |
| int netlink_family_from_string(const char *s); | | int netlink_family_from_string(const char *s); | |
| | | | |
| bool socket_ipv6_is_supported(void); | | bool socket_ipv6_is_supported(void); | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| specifier.h | | specifier.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| | | | |
| systemd is distributed in the hope that it will be useful, but | | systemd is distributed in the hope that it will be useful, but | |
| WITHOUT ANY WARRANTY; without even the implied warranty of | | WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| Lesser General Public License for more details. | | Lesser General Public License for more details. | |
| | | | |
| You should have received a copy of the GNU Lesser General Public License | | You should have received a copy of the GNU Lesser 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 char* (*SpecifierCallback)(char specifier, void *data, void *userda
ta); | | typedef int (*SpecifierCallback)(char specifier, void *data, void *userdata
, char **ret); | |
| | | | |
| typedef struct Specifier { | | typedef struct Specifier { | |
| const char specifier; | | const char specifier; | |
| const SpecifierCallback lookup; | | const SpecifierCallback lookup; | |
| void *data; | | void *data; | |
| } Specifier; | | } Specifier; | |
| | | | |
|
| char *specifier_printf(const char *text, const Specifier table[], void *use
rdata); | | int specifier_printf(const char *text, const Specifier table[], void *userd
ata, char **ret); | |
| | | | |
|
| char *specifier_string(char specifier, void *data, void *userdata); | | int specifier_string(char specifier, void *data, void *userdata, char **ret
); | |
| | | | |
|
| char *specifier_machine_id(char specifier, void *data, void *userdata); | | int specifier_machine_id(char specifier, void *data, void *userdata, char * | |
| char *specifier_boot_id(char specifier, void *data, void *userdata); | | *ret); | |
| char *specifier_host_name(char specifier, void *data, void *userdata); | | int specifier_boot_id(char specifier, void *data, void *userdata, char **re | |
| char *specifier_kernel_release(char specifier, void *data, void *userdata); | | t); | |
| | | int specifier_host_name(char specifier, void *data, void *userdata, char ** | |
| | | ret); | |
| | | int specifier_kernel_release(char specifier, void *data, void *userdata, ch | |
| | | ar **ret); | |
| | | | |
End of changes. 4 change blocks. |
| 3 lines changed or deleted | | 3 lines changed or added | |
|
| strv.h | | strv.h | |
| | | | |
| skipping to change at line 45 | | skipping to change at line 45 | |
| } | | } | |
| | | | |
| #define _cleanup_strv_free_ _cleanup_(strv_freep) | | #define _cleanup_strv_free_ _cleanup_(strv_freep) | |
| | | | |
| char **strv_copy(char * const *l); | | char **strv_copy(char * const *l); | |
| unsigned strv_length(char * const *l) _pure_; | | unsigned strv_length(char * const *l) _pure_; | |
| | | | |
| char **strv_merge(char **a, char **b); | | char **strv_merge(char **a, char **b); | |
| char **strv_merge_concat(char **a, char **b, const char *suffix); | | char **strv_merge_concat(char **a, char **b, const char *suffix); | |
| char **strv_append(char **l, const char *s); | | char **strv_append(char **l, const char *s); | |
|
| char **strv_appendf(char **l, const char *format, ...) _printf_attr_(2, 3); | | | |
| int strv_extend(char ***l, const char *value); | | int strv_extend(char ***l, const char *value); | |
| int strv_push(char ***l, char *value); | | int strv_push(char ***l, char *value); | |
| | | | |
| char **strv_remove(char **l, const char *s); | | char **strv_remove(char **l, const char *s); | |
| char **strv_remove_prefix(char **l, const char *s); | | char **strv_remove_prefix(char **l, const char *s); | |
| char **strv_uniq(char **l); | | char **strv_uniq(char **l); | |
| | | | |
| #define strv_contains(l, s) (!!strv_find((l), (s))) | | #define strv_contains(l, s) (!!strv_find((l), (s))) | |
| | | | |
| char **strv_new(const char *x, ...) _sentinel_; | | char **strv_new(const char *x, ...) _sentinel_; | |
| | | | |
End of changes. 1 change blocks. |
| 1 lines changed or deleted | | 0 lines changed or added | |
|
| unit.h | | unit.h | |
| | | | |
| skipping to change at line 176 | | skipping to change at line 176 | |
| | | | |
| 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; | |
| | | | |
| /* Counterparts in the cgroup filesystem */ | | /* Counterparts in the cgroup filesystem */ | |
| char *cgroup_path; | | char *cgroup_path; | |
|
| bool cgroup_realized; | | | |
| CGroupControllerMask cgroup_mask; | | CGroupControllerMask cgroup_mask; | |
| | | | |
| UnitRef slice; | | UnitRef slice; | |
| | | | |
| /* Per type list */ | | /* Per type list */ | |
| LIST_FIELDS(Unit, units_by_type); | | LIST_FIELDS(Unit, units_by_type); | |
| | | | |
| /* All units which have requires_mounts_for set */ | | /* All units which have requires_mounts_for set */ | |
| LIST_FIELDS(Unit, has_requires_mounts_for); | | LIST_FIELDS(Unit, has_requires_mounts_for); | |
| | | | |
| | | | |
| skipping to change at line 258 | | skipping to change at line 257 | |
| bool in_dbus_queue:1; | | bool in_dbus_queue:1; | |
| bool in_cleanup_queue:1; | | bool in_cleanup_queue:1; | |
| bool in_gc_queue:1; | | bool in_gc_queue:1; | |
| bool in_cgroup_queue:1; | | bool in_cgroup_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; | |
|
| | | | |
| | | bool cgroup_realized:1; | |
| }; | | }; | |
| | | | |
| struct UnitStatusMessageFormats { | | struct UnitStatusMessageFormats { | |
| const char *starting_stopping[2]; | | const char *starting_stopping[2]; | |
| const char *finished_start_job[_JOB_RESULT_MAX]; | | const char *finished_start_job[_JOB_RESULT_MAX]; | |
| const char *finished_stop_job[_JOB_RESULT_MAX]; | | const char *finished_stop_job[_JOB_RESULT_MAX]; | |
| }; | | }; | |
| | | | |
| typedef enum UnitSetPropertiesMode { | | typedef enum UnitSetPropertiesMode { | |
| UNIT_CHECK = 0, | | UNIT_CHECK = 0, | |
| | | | |
| skipping to change at line 592 | | skipping to change at line 593 | |
| 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); | | Unit* unit_ref_set(UnitRef *ref, Unit *u); | |
| void unit_ref_unset(UnitRef *ref); | | void unit_ref_unset(UnitRef *ref); | |
| | | | |
| #define UNIT_DEREF(ref) ((ref).unit) | | #define UNIT_DEREF(ref) ((ref).unit) | |
| #define UNIT_ISSET(ref) (!!(ref).unit) | | #define UNIT_ISSET(ref) (!!(ref).unit) | |
| | | | |
|
| int unit_add_one_mount_link(Unit *u, Mount *m); | | | |
| int unit_add_mount_links(Unit *u); | | int unit_add_mount_links(Unit *u); | |
| | | | |
| int unit_exec_context_defaults(Unit *u, ExecContext *c); | | int unit_exec_context_defaults(Unit *u, ExecContext *c); | |
| | | | |
| ExecContext *unit_get_exec_context(Unit *u) _pure_; | | ExecContext *unit_get_exec_context(Unit *u) _pure_; | |
| CGroupContext *unit_get_cgroup_context(Unit *u) _pure_; | | CGroupContext *unit_get_cgroup_context(Unit *u) _pure_; | |
| | | | |
| int unit_write_drop_in(Unit *u, UnitSetPropertiesMode mode, const char *nam
e, const char *data); | | int unit_write_drop_in(Unit *u, UnitSetPropertiesMode mode, const char *nam
e, const char *data); | |
| int unit_write_drop_in_format(Unit *u, UnitSetPropertiesMode mode, const ch
ar *name, const char *format, ...) _printf_attr_(4,5); | | int unit_write_drop_in_format(Unit *u, UnitSetPropertiesMode mode, const ch
ar *name, const char *format, ...) _printf_attr_(4,5); | |
| | | | |
| int unit_write_drop_in_private(Unit *u, UnitSetPropertiesMode mode, const c
har *name, const char *data); | | int unit_write_drop_in_private(Unit *u, UnitSetPropertiesMode mode, const c
har *name, const char *data); | |
| int unit_write_drop_in_private_format(Unit *u, UnitSetPropertiesMode mode,
const char *name, const char *format, ...) _printf_attr_(4,5); | | int unit_write_drop_in_private_format(Unit *u, UnitSetPropertiesMode mode,
const char *name, const char *format, ...) _printf_attr_(4,5); | |
| | | | |
| int unit_remove_drop_in(Unit *u, UnitSetPropertiesMode mode, const char *na
me); | | int unit_remove_drop_in(Unit *u, UnitSetPropertiesMode mode, const char *na
me); | |
| | | | |
| int unit_kill_context(Unit *u, KillContext *c, bool sigkill, pid_t main_pid
, pid_t control_pid, bool main_pid_alien); | | int unit_kill_context(Unit *u, KillContext *c, bool sigkill, pid_t main_pid
, pid_t control_pid, bool main_pid_alien); | |
| | | | |
| int unit_make_transient(Unit *u); | | int unit_make_transient(Unit *u); | |
| | | | |
|
| | | int unit_require_mounts_for(Unit *u, const char *path); | |
| | | | |
| const char *unit_active_state_to_string(UnitActiveState i) _const_; | | const char *unit_active_state_to_string(UnitActiveState i) _const_; | |
| UnitActiveState unit_active_state_from_string(const char *s) _pure_; | | UnitActiveState unit_active_state_from_string(const char *s) _pure_; | |
| | | | |
| const char *unit_dependency_to_string(UnitDependency i) _const_; | | const char *unit_dependency_to_string(UnitDependency i) _const_; | |
| UnitDependency unit_dependency_from_string(const char *s) _pure_; | | UnitDependency unit_dependency_from_string(const char *s) _pure_; | |
| | | | |
| /* Macros which append UNIT= or USER_UNIT= to the message */ | | /* Macros which append UNIT= or USER_UNIT= to the message */ | |
| | | | |
| #define log_full_unit(level, unit, ...) log_meta_object(level, __FILE__, __
LINE__, __func__, getpid() == 1 ? "UNIT=" : "USER_UNIT=", unit, __VA_ARGS__
) | | #define log_full_unit(level, unit, ...) log_meta_object(level, __FILE__, __
LINE__, __func__, getpid() == 1 ? "UNIT=" : "USER_UNIT=", unit, __VA_ARGS__
) | |
| #define log_debug_unit(unit, ...) log_full_unit(LOG_DEBUG, unit, __VA
_ARGS__) | | #define log_debug_unit(unit, ...) log_full_unit(LOG_DEBUG, unit, __VA
_ARGS__) | |
| | | | |
End of changes. 4 change blocks. |
| 2 lines changed or deleted | | 4 lines changed or added | |
|