bootchart.h   bootchart.h 
/* /***
* bootchart.h bootchart.h - This file is part of systemd-bootchart
*
* Copyright (C) 2009-2012 Intel Coproration Copyright (C) 2009-2013 Intel Coproration
*
* Authors: Authors:
* Auke Kok <auke-jan.h.kok@intel.com> Auke Kok <auke-jan.h.kok@intel.com>
*
* This program is free software; you can redistribute it and/or systemd is free software; you can redistribute it and/or modify it
* modify it under the terms of the GNU General Public License under the terms of the GNU Lesser General Public License as published by
* as published by the Free Software Foundation; version 2 the Free Software Foundation; either version 2.1 of the License, or
* of the License. (at your option) any later version.
*/
systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
#include <dirent.h> #include <dirent.h>
#include <stdbool.h>
#define MAXCPUS 16 #define MAXCPUS 16
#define MAXPIDS 65535 #define MAXPIDS 65535
#define MAXSAMPLES 8192 #define MAXSAMPLES 8192
struct block_stat_struct { struct block_stat_struct {
/* /proc/vmstat pgpgin & pgpgout */ /* /proc/vmstat pgpgin & pgpgout */
int bi; int bi;
int bo; int bo;
}; };
struct cpu_stat_sample_struct { struct cpu_stat_sample_struct {
/* /proc/schedstat fields 10 & 11 (after name) */ /* /proc/schedstat fields 10 & 11 (after name) */
double runtime; double runtime;
double waittime; double waittime;
}; };
struct cpu_stat_struct { struct cpu_stat_struct {
/* per cpu array */ /* per cpu array */
struct cpu_stat_sample_struct sample[MAXSAMPLES]; struct cpu_stat_sample_struct sample[MAXSAMPLES];
}; };
/* per process, per sample data we will log */ /* per process, per sample data we will log */
struct ps_sched_struct { struct ps_sched_struct {
/* /proc/<n>/schedstat fields 1 & 2 */ /* /proc/<n>/schedstat fields 1 & 2 */
double runtime; double runtime;
double waittime; double waittime;
int pss; int pss;
}; };
/* process info */ /* process info */
struct ps_struct { struct ps_struct {
struct ps_struct *next_ps; /* SLL pointer */ struct ps_struct *next_ps; /* SLL pointer */
struct ps_struct *parent; /* ppid ref */ struct ps_struct *parent; /* ppid ref */
struct ps_struct *children; /* children */ struct ps_struct *children; /* children */
struct ps_struct *next; /* siblings */ struct ps_struct *next; /* siblings */
/* must match - otherwise it's a new process with same PID */ /* must match - otherwise it's a new process with same PID */
char name[16]; char name[256];
int pid; int pid;
int ppid; int ppid;
/* cache fd's */ /* cache fd's */
int sched; int sched;
int schedstat; int schedstat;
FILE *smaps; FILE *smaps;
/* index to first/last seen timestamps */ /* index to first/last seen timestamps */
int first; int first;
int last; int last;
/* records actual start time, may be way before bootchart runs */ /* records actual start time, may be way before bootchart runs */
double starttime; double starttime;
/* record human readable total cpu time */ /* record human readable total cpu time */
double total; double total;
/* largest PSS size found */ /* largest PSS size found */
int pss_max; int pss_max;
/* for drawing connection lines later */ /* for drawing connection lines later */
double pos_x; double pos_x;
double pos_y; double pos_y;
struct ps_sched_struct *sample; struct ps_sched_struct *sample;
}; };
extern int entropy_avail[]; extern int entropy_avail[];
extern double graph_start; extern double graph_start;
extern double log_start; extern double log_start;
extern double sampletime[]; extern double sampletime[];
extern struct ps_struct *ps_first; extern struct ps_struct *ps_first;
extern struct block_stat_struct blockstat[]; extern struct block_stat_struct blockstat[];
extern struct cpu_stat_struct cpustat[]; extern struct cpu_stat_struct cpustat[];
extern int pscount; extern int pscount;
extern int relative; extern bool relative;
extern int filter; extern bool filter;
extern int pss; extern bool show_cmdline;
extern int entropy; extern bool pss;
extern int initcall; extern bool entropy;
extern bool initcall;
extern int samples; extern int samples;
extern int cpus; extern int cpus;
extern int len; extern int samples_len;
extern double hz; extern double hz;
extern double scale_x; extern double scale_x;
extern double scale_y; extern double scale_y;
extern int overrun; extern int overrun;
extern double interval; extern double interval;
extern char output_path[PATH_MAX]; extern char output_path[PATH_MAX];
extern char init_path[PATH_MAX]; extern char init_path[PATH_MAX];
extern FILE *of; extern FILE *of;
extern DIR *proc; extern DIR *proc;
extern int procfd;
extern int sysfd;
extern double gettime_ns(void); extern double gettime_ns(void);
extern void log_uptime(void); extern void log_uptime(void);
extern void log_sample(int sample); extern void log_sample(int sample);
extern void svg_do(void); extern void svg_do(const char *build);
 End of changes. 12 change blocks. 
63 lines changed or deleted 75 lines changed or added


 cgroup-attr.h   cgroup-attr.h 
skipping to change at line 26 skipping to change at line 26
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 struct CGroupAttribute CGroupAttribute; typedef struct CGroupAttribute CGroupAttribute;
typedef int (*CGroupAttributeMapCallback)(const char *controller, const cha
r*name, const char *value, char **ret);
#include "unit.h" #include "unit.h"
#include "cgroup.h" #include "cgroup.h"
#include "cgroup-semantics.h"
struct CGroupAttribute { struct CGroupAttribute {
char *controller; char *controller;
char *name; char *name;
char *value; char *value;
CGroupAttributeMapCallback map_callback; Unit *unit;
const CGroupSemantics *semantics;
LIST_FIELDS(CGroupAttribute, by_unit); LIST_FIELDS(CGroupAttribute, by_unit);
}; };
int cgroup_attribute_apply(CGroupAttribute *a, CGroupBonding *b); int cgroup_attribute_apply(CGroupAttribute *a, CGroupBonding *b);
int cgroup_attribute_apply_list(CGroupAttribute *first, CGroupBonding *b); int cgroup_attribute_apply_list(CGroupAttribute *first, CGroupBonding *b);
bool cgroup_attribute_matches(CGroupAttribute *a, const char *controller, c onst char *name);
CGroupAttribute *cgroup_attribute_find_list(CGroupAttribute *first, const c har *controller, const char *name); CGroupAttribute *cgroup_attribute_find_list(CGroupAttribute *first, const c har *controller, const char *name);
void cgroup_attribute_free(CGroupAttribute *a);
void cgroup_attribute_free_list(CGroupAttribute *first); void cgroup_attribute_free_list(CGroupAttribute *first);
void cgroup_attribute_free_some(CGroupAttribute *first, const char *control ler, const char *name);
 End of changes. 6 change blocks. 
4 lines changed or deleted 6 lines changed or added


 cgroup-show.h   cgroup-show.h 
skipping to change at line 27 skipping to change at line 27
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/>.
***/ ***/
#include <stdbool.h> #include <stdbool.h>
#include <sys/types.h> #include <sys/types.h>
#include "util.h"
#include "logs-show.h"
int show_cgroup_by_path(const char *path, const char *prefix, unsigned colu int show_cgroup_by_path(const char *path, const char *prefix, unsigned colu
mns, bool kernel_threads, bool all); mns, bool kernel_threads, OutputFlags flags);
int show_cgroup(const char *controller, const char *path, const char *prefi int show_cgroup(const char *controller, const char *path, const char *prefi
x, unsigned columns, bool kernel_threads, bool all); x, unsigned columns, bool kernel_threads, OutputFlags flags);
int show_cgroup_and_extra_by_spec(const char *spec, const char *prefix, uns int show_cgroup_and_extra_by_spec(const char *spec, const char *prefix, uns
igned n_columns, bool kernel_threads, bool all, const pid_t extra_pids[], u igned n_columns, bool kernel_threads, const pid_t extra_pids[], unsigned n_
nsigned n_extra_pids); extra_pids, OutputFlags flags);
int show_cgroup_and_extra(const char *controller, const char *path, const c int show_cgroup_and_extra(const char *controller, const char *path, const c
har *prefix, unsigned n_columns, bool kernel_threads, bool all, const pid_t har *prefix, unsigned n_columns, bool kernel_threads, const pid_t extra_pid
extra_pids[], unsigned n_extra_pids); s[], unsigned n_extra_pids, OutputFlags flags);
#endif #endif
 End of changes. 3 change blocks. 
10 lines changed or deleted 12 lines changed or added


 cgroup-util.h   cgroup-util.h 
skipping to change at line 42 skipping to change at line 42
int cg_enumerate_tasks(const char *controller, const char *path, FILE **_f) ; int cg_enumerate_tasks(const char *controller, const char *path, FILE **_f) ;
int cg_read_pid(FILE *f, pid_t *_pid); int cg_read_pid(FILE *f, pid_t *_pid);
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 *controller, const char *from, const char *to, bo int cg_migrate(const char *cfrom, const char *pfrom, const char *cto, const
ol ignore_self); char *pto, bool ignore_self);
int cg_migrate_recursive(const char *controller, const char *from, const ch int cg_migrate_recursive(const char *cfrom, const char *pfrom, const char *
ar *to, bool ignore_self, bool remove); cto, const char *pto, bool ignore_self, bool remove);
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_fix_path(const char *path, char **result); int cg_fix_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_get_by_pid(const char *controller, pid_t pid, char **path); int cg_get_by_pid(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);
skipping to change at line 74 skipping to change at line 74
int cg_install_release_agent(const char *controller, const char *agent); int cg_install_release_agent(const char *controller, const char *agent);
int cg_is_empty(const char *controller, const char *path, bool ignore_self) ; int cg_is_empty(const char *controller, const char *path, bool ignore_self) ;
int cg_is_empty_by_spec(const char *spec, bool ignore_self); int cg_is_empty_by_spec(const char *spec, bool ignore_self);
int cg_is_empty_recursive(const char *controller, const char *path, bool ig nore_self); int cg_is_empty_recursive(const char *controller, const char *path, bool ig nore_self);
int cg_get_user_path(char **path); int cg_get_user_path(char **path);
int cg_pid_get_cgroup(pid_t pid, char **root, char **cgroup); int cg_pid_get_cgroup(pid_t pid, char **root, char **cgroup);
int cg_pid_get_unit(pid_t pid, char **unit); int cg_pid_get_unit(pid_t pid, char **unit);
int cg_pid_get_user_unit(pid_t pid, char **unit);
int cgroup_to_unit(char *cgroup, char **unit);
char **cg_shorten_controllers(char **controllers); char **cg_shorten_controllers(char **controllers);
int cg_controller_from_attr(const char *attr, char **controller);
 End of changes. 3 change blocks. 
4 lines changed or deleted 7 lines changed or added


 cgroup.h   cgroup.h 
skipping to change at line 61 skipping to change at line 61
int cgroup_bonding_realize(CGroupBonding *b); int cgroup_bonding_realize(CGroupBonding *b);
int cgroup_bonding_realize_list(CGroupBonding *first); int cgroup_bonding_realize_list(CGroupBonding *first);
void cgroup_bonding_free(CGroupBonding *b, bool trim); void cgroup_bonding_free(CGroupBonding *b, bool trim);
void cgroup_bonding_free_list(CGroupBonding *first, bool trim); void cgroup_bonding_free_list(CGroupBonding *first, bool trim);
int cgroup_bonding_install(CGroupBonding *b, pid_t pid, const char *suffix) ; int cgroup_bonding_install(CGroupBonding *b, pid_t pid, const char *suffix) ;
int cgroup_bonding_install_list(CGroupBonding *first, pid_t pid, const char *suffix); int cgroup_bonding_install_list(CGroupBonding *first, pid_t pid, const char *suffix);
int cgroup_bonding_migrate(CGroupBonding *b, CGroupBonding *list);
int cgroup_bonding_migrate_to(CGroupBonding *b, const char *target, bool re
m);
int cgroup_bonding_set_group_access(CGroupBonding *b, mode_t mode, uid_t ui d, gid_t gid); int cgroup_bonding_set_group_access(CGroupBonding *b, mode_t mode, uid_t ui d, gid_t gid);
int cgroup_bonding_set_group_access_list(CGroupBonding *b, mode_t mode, uid _t uid, gid_t gid); int cgroup_bonding_set_group_access_list(CGroupBonding *b, mode_t mode, uid _t uid, gid_t gid);
int cgroup_bonding_set_task_access(CGroupBonding *b, mode_t mode, uid_t uid , gid_t gid, int sticky); int cgroup_bonding_set_task_access(CGroupBonding *b, mode_t mode, uid_t uid , gid_t gid, int sticky);
int cgroup_bonding_set_task_access_list(CGroupBonding *b, mode_t mode, uid_ t uid, gid_t gid, int sticky); int cgroup_bonding_set_task_access_list(CGroupBonding *b, mode_t mode, uid_ t uid, gid_t gid, int sticky);
int cgroup_bonding_kill(CGroupBonding *b, int sig, bool sigcont, bool rem, Set *s, const char *suffix); int cgroup_bonding_kill(CGroupBonding *b, int sig, bool sigcont, bool rem, Set *s, const char *suffix);
int cgroup_bonding_kill_list(CGroupBonding *first, int sig, bool sigcont, b ool rem, Set *s, const char *suffix); int cgroup_bonding_kill_list(CGroupBonding *first, int sig, bool sigcont, b ool rem, Set *s, const char *suffix);
void cgroup_bonding_trim(CGroupBonding *first, bool delete_root); void cgroup_bonding_trim(CGroupBonding *first, bool delete_root);
 End of changes. 1 change blocks. 
0 lines changed or deleted 4 lines changed or added


 conf-files.h   conf-files.h 
skipping to change at line 28 skipping to change at line 28
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/>.
***/ ***/
#include "macro.h" #include "macro.h"
int conf_files_list(char ***strv, const char *suffix, const char *dir, ...) int conf_files_list(char ***strv, const char *suffix, const char *root, con
; st char *dir, ...);
int conf_files_list_strv(char ***strv, const char *suffix, const char **dir int conf_files_list_strv(char ***strv, const char *suffix, const char *root
s); , const char **dirs);
int conf_files_list_nulstr(char ***strv, const char *suffix, const char *ro
ot, const char *dirs);
#endif #endif
 End of changes. 1 change blocks. 
4 lines changed or deleted 6 lines changed or added


 conf-parser.h   conf-parser.h 
skipping to change at line 95 skipping to change at line 95
ConfigItemLookup lookup, ConfigItemLookup lookup,
void *table, void *table,
bool relaxed, bool relaxed,
void *userdata); void *userdata);
/* Generic parsers */ /* Generic parsers */
int config_parse_int(const char *filename, unsigned line, const char *secti on, const char *lvalue, int ltype, const char *rvalue, void *data, void *us erdata); int config_parse_int(const char *filename, unsigned line, const char *secti on, const char *lvalue, int ltype, const char *rvalue, void *data, void *us erdata);
int config_parse_unsigned(const char *filename, unsigned line, const char * section, const char *lvalue, int ltype, const char *rvalue, void *data, voi d *userdata); int config_parse_unsigned(const char *filename, unsigned line, const char * section, const char *lvalue, int ltype, const char *rvalue, void *data, voi d *userdata);
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_double(const char *filename, unsigned line, const char *se ction, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_bytes_size(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, v oid *userdata); int config_parse_bytes_size(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, v oid *userdata);
int config_parse_bytes_off(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, vo id *userdata); int config_parse_bytes_off(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, vo id *userdata);
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_tristate(const char *filename, unsigned line, const char * section, const char *lvalue, int ltype, const char *rvalue, void *data, voi d *userdata); int config_parse_tristate(const char *filename, unsigned line, const char * section, const char *lvalue, int ltype, const char *rvalue, void *data, voi d *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_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_nsec(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_nsec(const char *filename, unsigned line, const char *sect ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u serdata);
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 config.h   config.h 
/* config.h. Generated from config.h.in by configure. */ /* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.ac by autoheader. */ /* config.h.in. Generated from configure.ac by autoheader. */
/* Whether on mips arch */ /* Whether on mips arch */
/* #undef ARCH_MIPS */ /* #undef ARCH_MIPS */
/* Canonical host string. */ /* Canonical host string. */
#define CANONICAL_HOST "i686-pc-linux-gnu" #define CANONICAL_HOST "i686-pc-linux-gnu"
/* Define if EFI support is to be enabled */
#define ENABLE_EFI 1
/* Define if PolicyKit support is to be enabled */
#define ENABLE_POLKIT 1
/* ACL available */ /* ACL available */
#define HAVE_ACL 1 #define HAVE_ACL 1
/* Define to 1 if you have the <acl/libacl.h> header file. */ /* Define to 1 if you have the <acl/libacl.h> header file. */
#define HAVE_ACL_LIBACL_H 1 #define HAVE_ACL_LIBACL_H 1
/* Define to 1 if you have the <arpa/inet.h> header file. */ /* Define to 1 if you have the <arpa/inet.h> header file. */
#define HAVE_ARPA_INET_H 1 #define HAVE_ARPA_INET_H 1
/* Define to 1 if you have the <attr/xattr.h> header file. */ /* Define to 1 if you have the <attr/xattr.h> header file. */
skipping to change at line 235 skipping to change at line 241
/* 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 197" #define PACKAGE_STRING "systemd 198"
/* 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 "197" #define PACKAGE_VERSION "198"
/* 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
skipping to change at line 292 skipping to change at line 298
/* 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 "197" #define VERSION "198"
/* 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. 4 change blocks. 
3 lines changed or deleted 9 lines changed or added


 dbus-common.h   dbus-common.h 
skipping to change at line 200 skipping to change at line 200
const char *bus_errno_to_dbus(int error); const char *bus_errno_to_dbus(int error);
DBusMessage* bus_properties_changed_new(const char *path, const char *inter face, const char *properties); DBusMessage* bus_properties_changed_new(const char *path, const char *inter face, const char *properties);
DBusMessage* bus_properties_changed_one_new(const char *path, const char *i nterface, const char *property); DBusMessage* bus_properties_changed_one_new(const char *path, const char *i nterface, const char *property);
uint32_t bus_flags_to_events(DBusWatch *bus_watch); uint32_t bus_flags_to_events(DBusWatch *bus_watch);
unsigned bus_events_to_flags(uint32_t events); unsigned bus_events_to_flags(uint32_t events);
int bus_parse_strv(DBusMessage *m, char ***_l); int bus_parse_strv(DBusMessage *m, char ***_l);
int bus_parse_strv_iter(DBusMessageIter *iter, char ***_l); int bus_parse_strv_iter(DBusMessageIter *iter, char ***_l);
int bus_parse_strv_pairs_iter(DBusMessageIter *iter, char ***_l);
struct unit_info {
const char *id;
const char *description;
const char *load_state;
const char *active_state;
const char *sub_state;
const char *following;
const char *unit_path;
uint32_t job_id;
const char *job_type;
const char *job_path;
};
int bus_parse_unit_info(DBusMessageIter *iter, struct unit_info *u);
int bus_append_strv_iter(DBusMessageIter *iter, char **l); int bus_append_strv_iter(DBusMessageIter *iter, char **l);
int bus_iter_get_basic_and_next(DBusMessageIter *iter, int type, void *data , bool next); int bus_iter_get_basic_and_next(DBusMessageIter *iter, int type, void *data , bool next);
int generic_print_property(const char *name, DBusMessageIter *iter, bool al l); int generic_print_property(const char *name, DBusMessageIter *iter, bool al l);
void bus_async_unregister_and_exit(DBusConnection *bus, const char *name); void bus_async_unregister_and_exit(DBusConnection *bus, const char *name);
DBusHandlerResult bus_exit_idle_filter(DBusConnection *bus, DBusMessage *m, void *userdata); DBusHandlerResult bus_exit_idle_filter(DBusConnection *bus, DBusMessage *m, void *userdata);
 End of changes. 1 change blocks. 
0 lines changed or deleted 16 lines changed or added


 dbus-unit.h   dbus-unit.h 
skipping to change at line 72 skipping to change at line 72
" </method>\n" \ " </method>\n" \
" <method name=\"ResetFailed\"/>\n" \ " <method name=\"ResetFailed\"/>\n" \
" <property name=\"Id\" type=\"s\" access=\"read\"/>\n" \ " <property name=\"Id\" type=\"s\" access=\"read\"/>\n" \
" <property name=\"Names\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"Names\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"Following\" type=\"s\" access=\"read\"/>\n" \ " <property name=\"Following\" type=\"s\" access=\"read\"/>\n" \
" <property name=\"Requires\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"Requires\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"RequiresOverridable\" type=\"as\" access=\"read \"/>\n" \ " <property name=\"RequiresOverridable\" type=\"as\" access=\"read \"/>\n" \
" <property name=\"Requisite\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"Requisite\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"RequisiteOverridable\" type=\"as\" access=\"rea d\"/>\n" \ " <property name=\"RequisiteOverridable\" type=\"as\" access=\"rea d\"/>\n" \
" <property name=\"Wants\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"Wants\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"BindsTo\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"BindsTo\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"PartOf\" 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=\"ConsistsOf\" 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=\"Triggers\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"TriggeredBy\" type=\"as\" access=\"read\"/>\n" \ " <property name=\"TriggeredBy\" type=\"as\" access=\"read\"/>\n" \
" <property name=\"PropagatesReloadTo\" type=\"as\" access=\"read\ "/>\n" \ " <property name=\"PropagatesReloadTo\" type=\"as\" access=\"read\ "/>\n" \
" <property name=\"ReloadPropagatedFrom\" type=\"as\" access=\"rea d\"/>\n" \ " <property name=\"ReloadPropagatedFrom\" type=\"as\" access=\"rea d\"/>\n" \
" <property name=\"RequiresMountsFor\" type=\"as\" access=\"read\" />\n" \ " <property name=\"RequiresMountsFor\" type=\"as\" access=\"read\" />\n" \
skipping to change at line 116 skipping to change at line 118
" <property name=\"CanIsolate\" type=\"b\" access=\"read\"/>\n" \ " <property name=\"CanIsolate\" type=\"b\" access=\"read\"/>\n" \
" <property name=\"Job\" type=\"(uo)\" access=\"read\"/>\n" \ " <property name=\"Job\" type=\"(uo)\" access=\"read\"/>\n" \
" <property name=\"StopWhenUnneeded\" type=\"b\" access=\"read\"/> \n" \ " <property name=\"StopWhenUnneeded\" type=\"b\" access=\"read\"/> \n" \
" <property name=\"RefuseManualStart\" type=\"b\" access=\"read\"/ >\n" \ " <property name=\"RefuseManualStart\" type=\"b\" access=\"read\"/ >\n" \
" <property name=\"RefuseManualStop\" type=\"b\" access=\"read\"/> \n" \ " <property name=\"RefuseManualStop\" type=\"b\" access=\"read\"/> \n" \
" <property name=\"AllowIsolate\" type=\"b\" access=\"read\"/>\n" \ " <property name=\"AllowIsolate\" type=\"b\" access=\"read\"/>\n" \
" <property name=\"DefaultDependencies\" type=\"b\" access=\"read\ "/>\n" \ " <property name=\"DefaultDependencies\" type=\"b\" access=\"read\ "/>\n" \
" <property name=\"OnFailureIsolate\" type=\"b\" access=\"read\"/> \n" \ " <property name=\"OnFailureIsolate\" type=\"b\" access=\"read\"/> \n" \
" <property name=\"IgnoreOnIsolate\" type=\"b\" access=\"read\"/>\ n" \ " <property name=\"IgnoreOnIsolate\" type=\"b\" access=\"read\"/>\ n" \
" <property name=\"IgnoreOnSnapshot\" type=\"b\" access=\"read\"/> \n" \ " <property name=\"IgnoreOnSnapshot\" type=\"b\" access=\"read\"/> \n" \
" <property name=\"DefaultControlGroup\" type=\"s\" access=\"read\
"/>\n" \
" <property name=\"ControlGroup\" type=\"as\" access=\"read\"/>\n"
\
" <property name=\"ControlGroupAttributes\" type=\"a(sss)\" access
=\"read\"/>\n" \
" <property name=\"NeedDaemonReload\" type=\"b\" access=\"read\"/> \n" \ " <property name=\"NeedDaemonReload\" type=\"b\" access=\"read\"/> \n" \
" <property name=\"JobTimeoutUSec\" type=\"t\" access=\"read\"/>\n " \ " <property name=\"JobTimeoutUSec\" type=\"t\" access=\"read\"/>\n " \
" <property name=\"ConditionTimestamp\" type=\"t\" access=\"read\" />\n" \ " <property name=\"ConditionTimestamp\" type=\"t\" access=\"read\" />\n" \
" <property name=\"ConditionTimestampMonotonic\" type=\"t\" access =\"read\"/>\n" \ " <property name=\"ConditionTimestampMonotonic\" type=\"t\" access =\"read\"/>\n" \
" <property name=\"ConditionResult\" type=\"b\" access=\"read\"/>\ n" \ " <property name=\"ConditionResult\" type=\"b\" access=\"read\"/>\ n" \
" <property name=\"LoadError\" type=\"(ss)\" access=\"read\"/>\n" \ " <property name=\"LoadError\" type=\"(ss)\" access=\"read\"/>\n" \
" </interface>\n" " </interface>\n"
#define BUS_UNIT_CGROUP_INTERFACE \
" <property name=\"DefaultControlGroup\" type=\"s\" access=\"read\
"/>\n" \
" <property name=\"ControlGroups\" type=\"as\" access=\"read\"/>\n
" \
" <property name=\"ControlGroupAttributes\" type=\"a(sss)\" access
=\"read\"/>\n" \
" <method name=\"SetControlGroup\">\n" \
" <arg name=\"group\" type=\"s\" direction=\"in\"/>\n" \
" <arg name=\"mode\" type=\"s\" direction=\"in\"/>\n" \
" </method>\n" \
" <method name=\"UnsetControlGroup\">\n" \
" <arg name=\"group\" type=\"s\" direction=\"in\"/>\n" \
" <arg name=\"mode\" type=\"s\" direction=\"in\"/>\n" \
" </method>\n" \
" <method name=\"GetControlGroupAttribute\">\n" \
" <arg name=\"attribute\" type=\"s\" direction=\"in\"/>\n" \
" <arg name=\"values\" type=\"as\" direction=\"out\"/>\n" \
" </method>\n" \
" <method name=\"SetControlGroupAttribute\">\n" \
" <arg name=\"attribute\" type=\"s\" direction=\"in\"/>\n" \
" <arg name=\"values\" type=\"as\" direction=\"in\"/>\n" \
" <arg name=\"mode\" type=\"s\" direction=\"in\"/>\n" \
" </method>\n" \
" <method name=\"UnsetControlGroupAttribute\">\n" \
" <arg name=\"attribute\" type=\"s\" direction=\"in\"/>\n" \
" <arg name=\"mode\" type=\"s\" direction=\"in\"/>\n" \
" </method>\n"
#define BUS_UNIT_INTERFACES_LIST \ #define BUS_UNIT_INTERFACES_LIST \
BUS_GENERIC_INTERFACES_LIST \ BUS_GENERIC_INTERFACES_LIST \
"org.freedesktop.systemd1.Unit\0" "org.freedesktop.systemd1.Unit\0"
extern const BusProperty bus_unit_properties[]; extern const BusProperty bus_unit_properties[];
extern const BusProperty bus_unit_cgroup_properties[];
void bus_unit_send_change_signal(Unit *u); void bus_unit_send_change_signal(Unit *u);
void bus_unit_send_removed_signal(Unit *u); void bus_unit_send_removed_signal(Unit *u);
DBusHandlerResult bus_unit_queue_job( DBusHandlerResult bus_unit_queue_job(
DBusConnection *connection, DBusConnection *connection,
DBusMessage *message, DBusMessage *message,
Unit *u, Unit *u,
JobType type, JobType type,
JobMode mode, JobMode mode,
bool reload_if_possible); bool reload_if_possible);
int bus_unit_cgroup_set(Unit *u, DBusMessageIter *iter);
int bus_unit_cgroup_unset(Unit *u, DBusMessageIter *iter);
int bus_unit_cgroup_attribute_get(Unit *u, DBusMessageIter *iter, char ***_
result);
int bus_unit_cgroup_attribute_set(Unit *u, DBusMessageIter *iter);
int bus_unit_cgroup_attribute_unset(Unit *u, DBusMessageIter *iter);
extern const DBusObjectPathVTable bus_unit_vtable; extern const DBusObjectPathVTable bus_unit_vtable;
extern const char bus_unit_interface[]; extern const char bus_unit_interface[];
 End of changes. 6 change blocks. 
7 lines changed or deleted 40 lines changed or added


 execute.h   execute.h 
skipping to change at line 201 skipping to change at line 201
void exec_command_append_list(ExecCommand **l, ExecCommand *e); void exec_command_append_list(ExecCommand **l, ExecCommand *e);
int exec_command_set(ExecCommand *c, const char *path, ...); int exec_command_set(ExecCommand *c, const char *path, ...);
void exec_context_init(ExecContext *c); void exec_context_init(ExecContext *c);
void exec_context_done(ExecContext *c); void exec_context_done(ExecContext *c);
void exec_context_dump(ExecContext *c, FILE* f, const char *prefix); void exec_context_dump(ExecContext *c, FILE* f, const char *prefix);
void exec_context_tty_reset(const ExecContext *context); void exec_context_tty_reset(const ExecContext *context);
int exec_context_load_environment(const ExecContext *c, char ***l); int exec_context_load_environment(const ExecContext *c, char ***l);
bool exec_context_may_touch_console(ExecContext *c);
void exec_status_start(ExecStatus *s, pid_t pid); void exec_status_start(ExecStatus *s, pid_t pid);
void exec_status_exit(ExecStatus *s, ExecContext *context, pid_t pid, int c ode, int status); void exec_status_exit(ExecStatus *s, ExecContext *context, pid_t pid, int c ode, int status);
void exec_status_dump(ExecStatus *s, FILE *f, const char *prefix); void exec_status_dump(ExecStatus *s, FILE *f, const char *prefix);
const char* exec_output_to_string(ExecOutput i); const char* exec_output_to_string(ExecOutput i);
ExecOutput exec_output_from_string(const char *s); ExecOutput exec_output_from_string(const char *s);
const char* exec_input_to_string(ExecInput i); const char* exec_input_to_string(ExecInput i);
ExecInput exec_input_from_string(const char *s); ExecInput exec_input_from_string(const char *s);
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 hashmap.h   hashmap.h 
skipping to change at line 53 skipping to change at line 53
unsigned trivial_hash_func(const void *p); unsigned trivial_hash_func(const void *p);
int trivial_compare_func(const void *a, const void *b); int trivial_compare_func(const void *a, const void *b);
unsigned uint64_hash_func(const void *p); unsigned uint64_hash_func(const void *p);
int uint64_compare_func(const void *a, const void *b); int uint64_compare_func(const void *a, const void *b);
Hashmap *hashmap_new(hash_func_t hash_func, compare_func_t compare_func); Hashmap *hashmap_new(hash_func_t hash_func, compare_func_t compare_func);
void hashmap_free(Hashmap *h); void hashmap_free(Hashmap *h);
void hashmap_free_free(Hashmap *h); void hashmap_free_free(Hashmap *h);
void hashmap_free_free_free(Hashmap *h);
Hashmap *hashmap_copy(Hashmap *h); Hashmap *hashmap_copy(Hashmap *h);
int hashmap_ensure_allocated(Hashmap **h, hash_func_t hash_func, compare_fu nc_t compare_func); int hashmap_ensure_allocated(Hashmap **h, hash_func_t hash_func, compare_fu nc_t compare_func);
int hashmap_put(Hashmap *h, const void *key, void *value); int hashmap_put(Hashmap *h, const void *key, void *value);
int hashmap_update(Hashmap *h, const void *key, void *value); int hashmap_update(Hashmap *h, const void *key, void *value);
int hashmap_replace(Hashmap *h, const void *key, void *value); int hashmap_replace(Hashmap *h, const void *key, void *value);
void* hashmap_get(Hashmap *h, const void *key); void* hashmap_get(Hashmap *h, const void *key);
void* hashmap_get2(Hashmap *h, const void *key, void **rkey); void* hashmap_get2(Hashmap *h, const void *key, void **rkey);
bool hashmap_contains(Hashmap *h, const void *key); bool hashmap_contains(Hashmap *h, const void *key);
void* hashmap_remove(Hashmap *h, const void *key); void* hashmap_remove(Hashmap *h, const void *key);
skipping to change at line 80 skipping to change at line 81
unsigned hashmap_size(Hashmap *h); unsigned hashmap_size(Hashmap *h);
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_clear_free(Hashmap *h); void hashmap_clear_free(Hashmap *h);
void hashmap_clear_free_free(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_first_key(Hashmap *h);
void* hashmap_last(Hashmap *h); void* hashmap_last(Hashmap *h);
void *hashmap_next(Hashmap *h, const void *key); void *hashmap_next(Hashmap *h, const void *key);
char **hashmap_get_strv(Hashmap *h); char **hashmap_get_strv(Hashmap *h);
 End of changes. 2 change blocks. 
0 lines changed or deleted 2 lines changed or added


 install.h   install.h 
skipping to change at line 66 skipping to change at line 66
UnitFileChangeType type; UnitFileChangeType type;
char *path; char *path;
char *source; char *source;
} UnitFileChange; } UnitFileChange;
typedef struct UnitFileList { typedef struct UnitFileList {
char *path; char *path;
UnitFileState state; UnitFileState state;
} UnitFileList; } UnitFileList;
typedef struct {
char *name;
char *path;
char *user;
char **aliases;
char **wanted_by;
char **required_by;
} InstallInfo;
int unit_file_enable(UnitFileScope scope, bool runtime, const char *root_di r, char *files[], bool force, UnitFileChange **changes, unsigned *n_changes ); int unit_file_enable(UnitFileScope scope, bool runtime, const char *root_di r, char *files[], bool force, UnitFileChange **changes, unsigned *n_changes );
int unit_file_disable(UnitFileScope scope, bool runtime, const char *root_d ir, char *files[], UnitFileChange **changes, unsigned *n_changes); int unit_file_disable(UnitFileScope scope, bool runtime, const char *root_d ir, char *files[], UnitFileChange **changes, unsigned *n_changes);
int unit_file_reenable(UnitFileScope scope, bool runtime, const char *root_ dir, char *files[], bool force, UnitFileChange **changes, unsigned *n_chang es); int unit_file_reenable(UnitFileScope scope, bool runtime, const char *root_ dir, char *files[], bool force, UnitFileChange **changes, unsigned *n_chang es);
int unit_file_link(UnitFileScope scope, bool runtime, const char *root_dir, char *files[], bool force, UnitFileChange **changes, unsigned *n_changes); int unit_file_link(UnitFileScope scope, bool runtime, const char *root_dir, char *files[], bool force, UnitFileChange **changes, unsigned *n_changes);
int unit_file_preset(UnitFileScope scope, bool runtime, const char *root_di r, char *files[], bool force, UnitFileChange **changes, unsigned *n_changes ); int unit_file_preset(UnitFileScope scope, bool runtime, const char *root_di r, char *files[], bool force, UnitFileChange **changes, unsigned *n_changes );
int unit_file_mask(UnitFileScope scope, bool runtime, const char *root_dir, char *files[], bool force, UnitFileChange **changes, unsigned *n_changes); int unit_file_mask(UnitFileScope scope, bool runtime, const char *root_dir, char *files[], bool force, UnitFileChange **changes, unsigned *n_changes);
int unit_file_unmask(UnitFileScope scope, bool runtime, const char *root_di r, char *files[], UnitFileChange **changes, unsigned *n_changes); int unit_file_unmask(UnitFileScope scope, bool runtime, const char *root_di r, char *files[], UnitFileChange **changes, unsigned *n_changes);
UnitFileState unit_file_get_state(UnitFileScope scope, const char *root_dir , const char *filename); UnitFileState unit_file_get_state(UnitFileScope scope, const char *root_dir , const char *filename);
 End of changes. 1 change blocks. 
0 lines changed or deleted 10 lines changed or added


 job.h   job.h 
skipping to change at line 86 skipping to change at line 86
enum JobState { enum JobState {
JOB_WAITING, JOB_WAITING,
JOB_RUNNING, JOB_RUNNING,
_JOB_STATE_MAX, _JOB_STATE_MAX,
_JOB_STATE_INVALID = -1 _JOB_STATE_INVALID = -1
}; };
enum JobMode { enum JobMode {
JOB_FAIL, /* Fail if a conflicting job is already qu eued */ JOB_FAIL, /* Fail if a conflicting job is already qu eued */
JOB_REPLACE, /* Replace an existing conflicting job */ JOB_REPLACE, /* Replace an existing conflicting job */
JOB_REPLACE_IRREVERSIBLY, /* Like JOB_REPLACE + produce irreversibl e jobs */
JOB_ISOLATE, /* Start a unit, and stop all others */ JOB_ISOLATE, /* Start a unit, and stop all others */
JOB_IGNORE_DEPENDENCIES, /* Ignore both requirement and ordering de pendencies */ JOB_IGNORE_DEPENDENCIES, /* Ignore both requirement and ordering de pendencies */
JOB_IGNORE_REQUIREMENTS, /* Ignore requirement dependencies */ JOB_IGNORE_REQUIREMENTS, /* Ignore requirement dependencies */
_JOB_MODE_MAX, _JOB_MODE_MAX,
_JOB_MODE_INVALID = -1 _JOB_MODE_INVALID = -1
}; };
enum JobResult { enum JobResult {
JOB_DONE, /* Job completed successfully */ JOB_DONE, /* Job completed successfully */
JOB_CANCELED, /* Job canceled by a conflicting job insta llation or by explicit cancel request */ JOB_CANCELED, /* Job canceled by a conflicting job insta llation or by explicit cancel request */
skipping to change at line 164 skipping to change at line 165
JobResult result; JobResult result;
bool installed:1; bool installed:1;
bool in_run_queue:1; bool in_run_queue:1;
bool matters_to_anchor:1; bool matters_to_anchor:1;
bool override:1; bool override:1;
bool in_dbus_queue:1; bool in_dbus_queue:1;
bool sent_dbus_new_signal:1; bool sent_dbus_new_signal:1;
bool ignore_order:1; bool ignore_order:1;
bool forgot_bus_clients:1; bool forgot_bus_clients:1;
bool irreversible:1;
}; };
JobBusClient* job_bus_client_new(DBusConnection *connection, const char *na me); JobBusClient* job_bus_client_new(DBusConnection *connection, const char *na me);
Job* job_new(Unit *unit, JobType type); Job* job_new(Unit *unit, JobType type);
Job* job_new_raw(Unit *unit); Job* job_new_raw(Unit *unit);
void job_free(Job *job); void job_free(Job *job);
Job* job_install(Job *j); Job* job_install(Job *j);
int job_install_deserialized(Job *j); int job_install_deserialized(Job *j);
void job_uninstall(Job *j); void job_uninstall(Job *j);
skipping to change at line 220 skipping to change at line 222
void job_add_to_dbus_queue(Job *j); void job_add_to_dbus_queue(Job *j);
int job_start_timer(Job *j); int job_start_timer(Job *j);
void job_timer_event(Job *j, uint64_t n_elapsed, Watch *w); void job_timer_event(Job *j, uint64_t n_elapsed, Watch *w);
int job_run_and_invalidate(Job *j); int job_run_and_invalidate(Job *j);
int job_finish_and_invalidate(Job *j, JobResult result, bool recursive); int job_finish_and_invalidate(Job *j, JobResult result, bool recursive);
char *job_dbus_path(Job *j); char *job_dbus_path(Job *j);
void job_shutdown_magic(Job *j);
const char* job_type_to_string(JobType t); const char* job_type_to_string(JobType t);
JobType job_type_from_string(const char *s); JobType job_type_from_string(const char *s);
const char* job_state_to_string(JobState t); const char* job_state_to_string(JobState t);
JobState job_state_from_string(const char *s); JobState job_state_from_string(const char *s);
const char* job_mode_to_string(JobMode t); const char* job_mode_to_string(JobMode t);
JobMode job_mode_from_string(const char *s); JobMode job_mode_from_string(const char *s);
const char* job_result_to_string(JobResult t); const char* job_result_to_string(JobResult t);
 End of changes. 3 change blocks. 
0 lines changed or deleted 4 lines changed or added


 label.h   label.h 
skipping to change at line 48 skipping to change at line 48
void label_free(const char *label); void label_free(const char *label);
int label_get_create_label_from_exe(const char *exe, char **label); int label_get_create_label_from_exe(const char *exe, char **label);
int label_mkdir(const char *path, mode_t mode, bool apply); int label_mkdir(const char *path, mode_t mode, bool apply);
void label_retest_selinux(void); void label_retest_selinux(void);
int label_bind(int fd, const struct sockaddr *addr, socklen_t addrlen); int label_bind(int fd, const struct sockaddr *addr, socklen_t addrlen);
int label_write_one_line_file_atomic(const char *fn, const char *line);
int label_write_env_file(const char *fname, char **l);
int label_fopen_temporary(const char *path, FILE **_f, char **_temp_path);
 End of changes. 1 change blocks. 
0 lines changed or deleted 0 lines changed or added


 libudev-private.h   libudev-private.h 
skipping to change at line 32 skipping to change at line 32
#include <syslog.h> #include <syslog.h>
#include <signal.h> #include <signal.h>
#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
#include "libudev.h" #include "libudev.h"
#include "macro.h" #include "macro.h"
#include "util.h" #include "util.h"
#include "mkdir.h" #include "mkdir.h"
#include "strxcpyx.h"
#define READ_END 0 #define READ_END 0
#define WRITE_END 1 #define WRITE_END 1
/* avoid (sometimes expensive) calculations of parameters for debug output */ /* avoid (sometimes expensive) calculations of parameters for debug output */
#define udev_log_cond(udev, prio, arg...) \ #define udev_log_cond(udev, prio, arg...) \
do { \ do { \
if (udev_get_log_priority(udev) >= prio) \ if (udev_get_log_priority(udev) >= prio) \
udev_log(udev, prio, __FILE__, __LINE__, __FUNCTION__, ## arg); \ udev_log(udev, prio, __FILE__, __LINE__, __FUNCTION__, ## arg); \
} while (0) } while (0)
skipping to change at line 167 skipping to change at line 168
/* libudev-util.c */ /* libudev-util.c */
#define UTIL_PATH_SIZE 1024 #define UTIL_PATH_SIZE 1024
#define UTIL_NAME_SIZE 512 #define UTIL_NAME_SIZE 512
#define UTIL_LINE_SIZE 16384 #define UTIL_LINE_SIZE 16384
#define UDEV_ALLOWED_CHARS_INPUT "/ $%?," #define UDEV_ALLOWED_CHARS_INPUT "/ $%?,"
ssize_t util_get_sys_core_link_value(struct udev *udev, const char *slink, const char *syspath, char *value, size_t size); ssize_t util_get_sys_core_link_value(struct udev *udev, const char *slink, const char *syspath, char *value, size_t size);
int util_resolve_sys_link(struct udev *udev, char *syspath, size_t size); int util_resolve_sys_link(struct udev *udev, char *syspath, size_t size);
int util_log_priority(const char *priority); int util_log_priority(const char *priority);
size_t util_path_encode(const char *src, char *dest, size_t size); size_t util_path_encode(const char *src, char *dest, size_t size);
void util_remove_trailing_chars(char *path, char c); void util_remove_trailing_chars(char *path, char c);
size_t util_strpcpy(char **dest, size_t size, const char *src);
size_t util_strpcpyf(char **dest, size_t size, const char *src, ...) __attr
ibute__((format(printf, 3, 4)));
size_t util_strpcpyl(char **dest, size_t size, const char *src, ...) __attr
ibute__((sentinel));
size_t util_strscpy(char *dest, size_t size, const char *src);
size_t util_strscpyl(char *dest, size_t size, const char *src, ...) __attri
bute__((sentinel));
int util_replace_whitespace(const char *str, char *to, size_t len); int util_replace_whitespace(const char *str, char *to, size_t len);
int util_replace_chars(char *str, const char *white); int util_replace_chars(char *str, const char *white);
unsigned int util_string_hash32(const char *key); unsigned int util_string_hash32(const char *key);
uint64_t util_string_bloom64(const char *str); uint64_t util_string_bloom64(const char *str);
/* libudev-util-private.c */ /* libudev-util-private.c */
int util_delete_path(struct udev *udev, const char *path); int util_delete_path(struct udev *udev, const char *path);
uid_t util_lookup_user(struct udev *udev, const char *user); uid_t util_lookup_user(struct udev *udev, const char *user);
gid_t util_lookup_group(struct udev *udev, const char *group); gid_t util_lookup_group(struct udev *udev, const char *group);
int util_resolve_subsys_kernel(struct udev *udev, const char *string, char *result, size_t maxsize, int read_value); int util_resolve_subsys_kernel(struct udev *udev, const char *string, char *result, size_t maxsize, int read_value);
 End of changes. 2 change blocks. 
8 lines changed or deleted 1 lines changed or added


 load-fragment.h   load-fragment.h 
skipping to change at line 78 skipping to change at line 78
int config_parse_service_sockets(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *da ta, void *userdata); int config_parse_service_sockets(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *da ta, void *userdata);
int config_parse_unit_env_file(const char *filename, unsigned line, const c har *section, const char *lvalue, int ltype, const char *rvalue, void *data , void *userdata); int config_parse_unit_env_file(const char *filename, unsigned line, const c har *section, const char *lvalue, int ltype, const char *rvalue, void *data , void *userdata);
int config_parse_ip_tos(const char *filename, unsigned line, const char *se ction, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); int config_parse_ip_tos(const char *filename, unsigned line, const char *se ction, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_unit_condition_path(const char *filename, unsigned line, c onst char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); int config_parse_unit_condition_path(const char *filename, unsigned line, c onst char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_unit_condition_string(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, vo id *data, void *userdata); int config_parse_unit_condition_string(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, vo id *data, void *userdata);
int config_parse_unit_condition_null(const char *filename, unsigned line, c onst char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); int config_parse_unit_condition_null(const char *filename, unsigned line, c onst char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_kill_mode(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, vo id *userdata); int config_parse_kill_mode(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, vo id *userdata);
int config_parse_notify_access(const char *filename, unsigned line, const c har *section, const char *lvalue, int ltype, const char *rvalue, void *data , void *userdata); int config_parse_notify_access(const char *filename, unsigned line, const c har *section, const char *lvalue, int ltype, const char *rvalue, void *data , void *userdata);
int config_parse_start_limit_action(const char *filename, unsigned line, co nst char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); int config_parse_start_limit_action(const char *filename, unsigned line, co nst char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_unit_cgroup_attr(const char *filename, unsigned line, cons t char *section, const char *lvalue, int ltype, const char *rvalue, void *d ata, void *userdata); int config_parse_unit_cgroup_attr(const char *filename, unsigned line, cons t char *section, const char *lvalue, int ltype, const char *rvalue, void *d ata, void *userdata);
int config_parse_unit_cpu_shares(const char *filename, unsigned line, const int config_parse_unit_cgroup_attr_pretty(const char *filename, unsigned lin
char *section, const char *lvalue, int ltype, const char *rvalue, void *da e, const char *section, const char *lvalue, int ltype, const char *rvalue,
ta, void *userdata); void *data, void *userdata);
int config_parse_unit_memory_limit(const char *filename, unsigned line, con
st char *section, const char *lvalue, int ltype, const char *rvalue, void *
data, void *userdata);
int config_parse_unit_device_allow(const char *filename, unsigned line, con
st char *section, const char *lvalue, int ltype, const char *rvalue, void *
data, void *userdata);
int config_parse_unit_blkio_weight(const char *filename, unsigned line, con
st char *section, const char *lvalue, int ltype, const char *rvalue, void *
data, void *userdata);
int config_parse_unit_blkio_bandwidth(const char *filename, unsigned line,
const char *section, const char *lvalue, int ltype, const char *rvalue, voi
d *data, void *userdata);
int config_parse_unit_requires_mounts_for(const char *filename, unsigned li ne, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); int config_parse_unit_requires_mounts_for(const char *filename, unsigned li ne, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
int config_parse_syscall_filter(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *dat a, void *userdata); int config_parse_syscall_filter(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *dat a, void *userdata);
int config_parse_environ(const char *filename, unsigned line, const char *s ection, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata);
/* gperf prototypes */ /* gperf prototypes */
const struct ConfigPerfItem* load_fragment_gperf_lookup(const char *key, un signed length); const struct ConfigPerfItem* load_fragment_gperf_lookup(const char *key, un signed length);
extern const char load_fragment_gperf_nulstr[]; extern const char load_fragment_gperf_nulstr[];
 End of changes. 2 change blocks. 
15 lines changed or deleted 4 lines changed or added


 logind.h   logind.h 
skipping to change at line 94 skipping to change at line 94
unsigned long session_counter; unsigned long session_counter;
unsigned long inhibit_counter; unsigned long inhibit_counter;
Hashmap *session_cgroups; Hashmap *session_cgroups;
Hashmap *user_cgroups; Hashmap *user_cgroups;
Hashmap *session_fds; Hashmap *session_fds;
Hashmap *inhibitor_fds; Hashmap *inhibitor_fds;
Hashmap *button_fds; Hashmap *button_fds;
/* If a shutdown was delayed due to a inhibitor this contains
the unit name we are supposed to start after the delay is
over */
const char *delayed_unit;
InhibitWhat delayed_what;
usec_t delayed_timestamp;
usec_t inhibit_delay_max; usec_t inhibit_delay_max;
int idle_action_fd; /* If an action is currently being executed or is delayed,
* this is != 0 and encodes what is being done */
InhibitWhat action_what;
/* If a shutdown/suspend was delayed due to a inhibitor this
contains the unit name we are supposed to start after the
delay is over */
const char *action_unit;
/* If a shutdown/suspend is currently executed, then this is
* the job of it */
char *action_job;
usec_t action_timestamp;
int idle_action_fd; /* the timer_fd */
usec_t idle_action_usec; usec_t idle_action_usec;
usec_t idle_action_not_before_usec; usec_t idle_action_not_before_usec;
HandleAction idle_action; HandleAction idle_action;
HandleAction handle_power_key; HandleAction handle_power_key;
HandleAction handle_suspend_key; HandleAction handle_suspend_key;
HandleAction handle_hibernate_key; HandleAction handle_hibernate_key;
HandleAction handle_lid_switch; HandleAction handle_lid_switch;
bool power_key_ignore_inhibited; bool power_key_ignore_inhibited;
 End of changes. 2 change blocks. 
8 lines changed or deleted 15 lines changed or added


 logs-show.h   logs-show.h 
skipping to change at line 25 skipping to change at line 25
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/>.
***/ ***/
#include <stdbool.h> #include <stdbool.h>
#include <unistd.h>
#include <sys/types.h>
#include <systemd/sd-journal.h> #include <systemd/sd-journal.h>
#include "util.h" #include "util.h"
#include "output-mode.h"
typedef enum OutputMode {
OUTPUT_SHORT,
OUTPUT_SHORT_MONOTONIC,
OUTPUT_VERBOSE,
OUTPUT_EXPORT,
OUTPUT_JSON,
OUTPUT_JSON_PRETTY,
OUTPUT_JSON_SSE,
OUTPUT_CAT,
_OUTPUT_MODE_MAX,
_OUTPUT_MODE_INVALID = -1
} OutputMode;
typedef enum OutputFlags {
OUTPUT_SHOW_ALL = 1 << 0,
OUTPUT_FOLLOW = 1 << 1,
OUTPUT_WARN_CUTOFF = 1 << 2,
OUTPUT_FULL_WIDTH = 1 << 3,
OUTPUT_COLOR = 1 << 4,
OUTPUT_CATALOG = 1 << 5
} OutputFlags;
int output_journal( int output_journal(
FILE *f, FILE *f,
sd_journal *j, sd_journal *j,
OutputMode mode, OutputMode mode,
unsigned n_columns, unsigned n_columns,
OutputFlags flags); OutputFlags flags);
int show_journal_by_unit( int show_journal_by_unit(
FILE *f, FILE *f,
const char *unit, const char *unit,
OutputMode mode, OutputMode mode,
unsigned n_columns, unsigned n_columns,
usec_t not_before, usec_t not_before,
unsigned how_many, unsigned how_many,
OutputFlags flags); OutputFlags flags);
int show_journal_by_user_unit(
FILE *f,
const char *unit,
OutputMode mode,
unsigned n_columns,
usec_t not_before,
unsigned how_many,
uid_t uid,
OutputFlags flags);
void json_escape( void json_escape(
FILE *f, FILE *f,
const char* p, const char* p,
size_t l, size_t l,
OutputFlags flags); OutputFlags flags);
const char* output_mode_to_string(OutputMode m); const char* output_mode_to_string(OutputMode m);
OutputMode output_mode_from_string(const char *s); OutputMode output_mode_from_string(const char *s);
 End of changes. 3 change blocks. 
22 lines changed or deleted 13 lines changed or added


 macro.h   macro.h 
skipping to change at line 199 skipping to change at line 199
i[j].iov_len -= sub; i[j].iov_len -= sub;
i[j].iov_base = (uint8_t*) i[j].iov_base + sub; i[j].iov_base = (uint8_t*) i[j].iov_base + sub;
k -= sub; k -= sub;
} }
return k; return k;
} }
#define _cleanup_free_ __attribute__((cleanup(freep))) #define _cleanup_free_ __attribute__((cleanup(freep)))
#define _cleanup_fclose_ __attribute__((cleanup(fclosep))) #define _cleanup_fclose_ __attribute__((cleanup(fclosep)))
#define _cleanup_pclose_ __attribute__((cleanup(pclosep)))
#define _cleanup_close_ __attribute__((cleanup(closep))) #define _cleanup_close_ __attribute__((cleanup(closep)))
#define _cleanup_closedir_ __attribute__((cleanup(closedirp))) #define _cleanup_closedir_ __attribute__((cleanup(closedirp)))
#define _cleanup_umask_ __attribute__((cleanup(umaskp))) #define _cleanup_umask_ __attribute__((cleanup(umaskp)))
#define _cleanup_set_free_ __attribute__((cleanup(set_freep))) #define _cleanup_set_free_ __attribute__((cleanup(set_freep)))
#define _cleanup_set_free_free_ __attribute__((cleanup(set_free_freep)))
#define _cleanup_strv_free_ __attribute__((cleanup(strv_freep))) #define _cleanup_strv_free_ __attribute__((cleanup(strv_freep)))
#define VA_FORMAT_ADVANCE(format, ap) \ #define VA_FORMAT_ADVANCE(format, ap) \
do { \ do { \
int _argtypes[128]; \ int _argtypes[128]; \
size_t _i, _k; \ size_t _i, _k; \
_k = parse_printf_format((format), ELEMENTSOF(_argtypes), _argtypes ); \ _k = parse_printf_format((format), ELEMENTSOF(_argtypes), _argtypes ); \
assert(_k < ELEMENTSOF(_argtypes)); \ assert(_k < ELEMENTSOF(_argtypes)); \
for (_i = 0; _i < _k; _i++) { \ for (_i = 0; _i < _k; _i++) { \
if (_argtypes[_i] & PA_FLAG_PTR) { \ if (_argtypes[_i] & PA_FLAG_PTR) { \
 End of changes. 2 change blocks. 
0 lines changed or deleted 2 lines changed or added


 manager.h   manager.h 
skipping to change at line 64 skipping to change at line 64
WATCH_SIGNAL, WATCH_SIGNAL,
WATCH_NOTIFY, WATCH_NOTIFY,
WATCH_FD, WATCH_FD,
WATCH_UNIT_TIMER, WATCH_UNIT_TIMER,
WATCH_JOB_TIMER, WATCH_JOB_TIMER,
WATCH_MOUNT, WATCH_MOUNT,
WATCH_SWAP, WATCH_SWAP,
WATCH_UDEV, WATCH_UDEV,
WATCH_DBUS_WATCH, WATCH_DBUS_WATCH,
WATCH_DBUS_TIMEOUT, WATCH_DBUS_TIMEOUT,
WATCH_TIME_CHANGE WATCH_TIME_CHANGE,
WATCH_JOBS_IN_PROGRESS
}; };
struct Watch { struct Watch {
int fd; int fd;
WatchType type; WatchType type;
union { union {
struct Unit *unit; struct Unit *unit;
struct Job *job; struct Job *job;
DBusWatch *bus_watch; DBusWatch *bus_watch;
DBusTimeout *bus_timeout; DBusTimeout *bus_timeout;
skipping to change at line 130 skipping to change at line 131
/* Units to check when doing GC */ /* Units to check when doing GC */
LIST_HEAD(Unit, gc_queue); LIST_HEAD(Unit, gc_queue);
Hashmap *watch_pids; /* pid => Unit object n:1 */ Hashmap *watch_pids; /* pid => Unit object n:1 */
char *notify_socket; char *notify_socket;
Watch notify_watch; Watch notify_watch;
Watch signal_watch; Watch signal_watch;
Watch time_change_watch; Watch time_change_watch;
Watch jobs_in_progress_watch;
int epoll_fd; int epoll_fd;
unsigned n_snapshots; unsigned n_snapshots;
LookupPaths lookup_paths; LookupPaths lookup_paths;
Set *unit_path_cache; Set *unit_path_cache;
char **environment; char **environment;
char **default_controllers; char **default_controllers;
skipping to change at line 228 skipping to change at line 230
ExecOutput default_std_output, default_std_error; ExecOutput default_std_output, default_std_error;
struct rlimit *rlimit[RLIMIT_NLIMITS]; struct rlimit *rlimit[RLIMIT_NLIMITS];
/* non-zero if we are reloading or reexecuting, */ /* non-zero if we are reloading or reexecuting, */
int n_reloading; int n_reloading;
unsigned n_installed_jobs; unsigned n_installed_jobs;
unsigned n_failed_jobs; unsigned n_failed_jobs;
/* Jobs in progress watching */
unsigned n_running_jobs;
unsigned n_on_console;
unsigned jobs_in_progress_iteration;
/* Type=idle pipes */ /* Type=idle pipes */
int idle_pipe[2]; int idle_pipe[2];
char *switch_root; char *switch_root;
char *switch_root_init; char *switch_root_init;
}; };
int manager_new(SystemdRunningAs running_as, Manager **m); int manager_new(SystemdRunningAs running_as, Manager **m);
void manager_free(Manager *m); void manager_free(Manager *m);
skipping to change at line 279 skipping to change at line 286
void manager_dispatch_bus_query_pid_done(Manager *m, const char *name, pid_ t pid); void manager_dispatch_bus_query_pid_done(Manager *m, const char *name, pid_ t pid);
int manager_open_serialization(Manager *m, FILE **_f); int manager_open_serialization(Manager *m, FILE **_f);
int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool serialize_jobs) ; int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool serialize_jobs) ;
int manager_deserialize(Manager *m, FILE *f, FDSet *fds); int manager_deserialize(Manager *m, FILE *f, FDSet *fds);
int manager_distribute_fds(Manager *m, FDSet *fds); int manager_distribute_fds(Manager *m, FDSet *fds);
int manager_reload(Manager *m); int manager_reload(Manager *m);
bool manager_is_booting_or_shutting_down(Manager *m);
void manager_reset_failed(Manager *m); void manager_reset_failed(Manager *m);
void manager_send_unit_audit(Manager *m, Unit *u, int type, bool success); void manager_send_unit_audit(Manager *m, Unit *u, int type, bool success);
void manager_send_unit_plymouth(Manager *m, Unit *u); void manager_send_unit_plymouth(Manager *m, Unit *u);
bool manager_unit_pending_inactive(Manager *m, const char *name); bool manager_unit_pending_inactive(Manager *m, const char *name);
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);
bool manager_get_show_status(Manager *m); void manager_status_printf(Manager *m, bool ephemeral, const char *status, const char *format, ...);
void watch_init(Watch *w); void watch_init(Watch *w);
 End of changes. 5 change blocks. 
4 lines changed or deleted 9 lines changed or added


 missing.h   missing.h 
skipping to change at line 199 skipping to change at line 199
#endif #endif
#ifndef SCM_SECURITY #ifndef SCM_SECURITY
#define SCM_SECURITY 0x03 #define SCM_SECURITY 0x03
#endif #endif
#ifndef MS_STRICTATIME #ifndef MS_STRICTATIME
#define MS_STRICTATIME (1<<24) #define MS_STRICTATIME (1<<24)
#endif #endif
#ifndef MS_REC
#define MS_REC 16384
#endif
#ifndef MS_SHARED
#define MS_SHARED (1<<20)
#endif
#ifndef PR_SET_NO_NEW_PRIVS #ifndef PR_SET_NO_NEW_PRIVS
#define PR_SET_NO_NEW_PRIVS 38 #define PR_SET_NO_NEW_PRIVS 38
#endif #endif
#ifndef PR_SET_CHILD_SUBREAPER #ifndef PR_SET_CHILD_SUBREAPER
#define PR_SET_CHILD_SUBREAPER 36 #define PR_SET_CHILD_SUBREAPER 36
#endif #endif
#ifndef MAX_HANDLE_SZ #ifndef MAX_HANDLE_SZ
#define MAX_HANDLE_SZ 128 #define MAX_HANDLE_SZ 128
 End of changes. 1 change blocks. 
0 lines changed or deleted 8 lines changed or added


 pager.h   pager.h 
skipping to change at line 26 skipping to change at line 26
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/>.
***/ ***/
#include <stdbool.h> #include <stdbool.h>
int pager_open(void); int pager_open(bool jump_to_end);
void pager_close(void); void pager_close(void);
bool pager_have(void); bool pager_have(void);
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 path-util.h   path-util.h 
skipping to change at line 40 skipping to change at line 40
int path_get_parent(const char *path, char **parent); int path_get_parent(const char *path, char **parent);
bool path_is_absolute(const char *p); bool path_is_absolute(const char *p);
char *path_make_absolute(const char *p, const char *prefix); char *path_make_absolute(const char *p, const char *prefix);
char *path_make_absolute_cwd(const char *p); char *path_make_absolute_cwd(const char *p);
char *path_kill_slashes(char *path); char *path_kill_slashes(char *path);
char *path_startswith(const char *path, const char *prefix); char *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 **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_remove_empty(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);
#endif #endif
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 path.h   path.h 
skipping to change at line 101 skipping to change at line 101
PathResult result; PathResult result;
}; };
void path_unit_notify(Unit *u, UnitActiveState new_state); void path_unit_notify(Unit *u, UnitActiveState new_state);
/* 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 paths of this path object */ * any of the paths of this path object */
int path_add_one_mount_link(Path *p, Mount *m); int path_add_one_mount_link(Path *p, Mount *m);
void path_free_specs(Path *p);
extern const UnitVTable path_vtable; extern const UnitVTable path_vtable;
const char* path_state_to_string(PathState i); const char* path_state_to_string(PathState i);
PathState path_state_from_string(const char *s); PathState path_state_from_string(const char *s);
const char* path_type_to_string(PathType i); const char* path_type_to_string(PathType i);
PathType path_type_from_string(const char *s); PathType path_type_from_string(const char *s);
const char* path_result_to_string(PathResult i); const char* path_result_to_string(PathResult i);
PathResult path_result_from_string(const char *s); PathResult path_result_from_string(const char *s);
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 sd-login.h   sd-login.h 
skipping to change at line 111 skipping to change at line 111
/* Determine the type of this session, i.e. one of "tty", "x11" or "unspeci fied". */ /* Determine the type of this session, i.e. one of "tty", "x11" or "unspeci fied". */
int sd_session_get_type(const char *session, char **type); int sd_session_get_type(const char *session, char **type);
/* Determine the class of this session, i.e. one of "user", "greeter" or "l ock-screen". */ /* Determine the class of this session, i.e. one of "user", "greeter" or "l ock-screen". */
int sd_session_get_class(const char *session, char **clazz); int sd_session_get_class(const char *session, char **clazz);
/* Determine the X11 display of this session. */ /* Determine the X11 display of this session. */
int sd_session_get_display(const char *session, char **display); int sd_session_get_display(const char *session, char **display);
/* Determine the TTY of this session. */
int sd_session_get_tty(const char *session, char **display);
/* 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. 1 change blocks. 
0 lines changed or deleted 3 lines changed or added


 sd-messages.h   sd-messages.h 
skipping to change at line 70 skipping to change at line 70
#define SD_MESSAGE_UNIT_FAILED SD_ID128_MAKE(be,02,cf,68,55,d2,42,8b,a 4,0d,f7,e9,d0,22,f0,3d) #define SD_MESSAGE_UNIT_FAILED SD_ID128_MAKE(be,02,cf,68,55,d2,42,8b,a 4,0d,f7,e9,d0,22,f0,3d)
#define SD_MESSAGE_UNIT_RELOADING SD_ID128_MAKE(d3,4d,03,7f,ff,18,47,e6,a e,66,9a,37,0e,69,47,25) #define SD_MESSAGE_UNIT_RELOADING SD_ID128_MAKE(d3,4d,03,7f,ff,18,47,e6,a e,66,9a,37,0e,69,47,25)
#define SD_MESSAGE_UNIT_RELOADED SD_ID128_MAKE(7b,05,eb,c6,68,38,42,22,b a,a8,88,11,79,cf,da,54) #define SD_MESSAGE_UNIT_RELOADED SD_ID128_MAKE(7b,05,eb,c6,68,38,42,22,b a,a8,88,11,79,cf,da,54)
#define SD_MESSAGE_SPAWN_FAILED SD_ID128_MAKE(64,12,57,65,1c,1b,4e,c9,a 8,62,4d,7a,40,a9,e1,e7) #define SD_MESSAGE_SPAWN_FAILED SD_ID128_MAKE(64,12,57,65,1c,1b,4e,c9,a 8,62,4d,7a,40,a9,e1,e7)
#define SD_MESSAGE_FORWARD_SYSLOG_MISSED SD_ID128_MAKE(00,27,22,9c,a0,64,41 ,81,a7,6c,4e,92,45,8a,fa,2e) #define SD_MESSAGE_FORWARD_SYSLOG_MISSED SD_ID128_MAKE(00,27,22,9c,a0,64,41 ,81,a7,6c,4e,92,45,8a,fa,2e)
#define SD_MESSAGE_OVERMOUNTING SD_ID128_MAKE(1d,ee,03,69,c7,fc,47,36,b 7,09,9b,38,ec,b4,6e,e7) #define SD_MESSAGE_OVERMOUNTING SD_ID128_MAKE(1d,ee,03,69,c7,fc,47,36,b 7,09,9b,38,ec,b4,6e,e7)
#define SD_MESSAGE_LID_OPENED SD_ID128_MAKE(b7,2e,a4,a2,88,15,45,a0,b
5,0e,20,0e,55,b9,b0,6f)
#define SD_MESSAGE_LID_CLOSED SD_ID128_MAKE(b7,2e,a4,a2,88,15,45,a0,b
5,0e,20,0e,55,b9,b0,70)
#define SD_MESSAGE_POWER_KEY SD_ID128_MAKE(b7,2e,a4,a2,88,15,45,a0,b
5,0e,20,0e,55,b9,b0,71)
#define SD_MESSAGE_SUSPEND_KEY SD_ID128_MAKE(b7,2e,a4,a2,88,15,45,a0,b
5,0e,20,0e,55,b9,b0,72)
#define SD_MESSAGE_HIBERNATE_KEY SD_ID128_MAKE(b7,2e,a4,a2,88,15,45,a0,b
5,0e,20,0e,55,b9,b0,73)
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif
 End of changes. 1 change blocks. 
0 lines changed or deleted 11 lines changed or added


 set.h   set.h 
skipping to change at line 38 skipping to change at line 38
* for each set use. */ * for each set use. */
#include "hashmap.h" #include "hashmap.h"
typedef struct Set Set; typedef struct Set Set;
Set *set_new(hash_func_t hash_func, compare_func_t compare_func); Set *set_new(hash_func_t hash_func, compare_func_t compare_func);
void set_free(Set* s); void set_free(Set* s);
void set_freep(Set **s); void set_freep(Set **s);
void set_free_free(Set *s); void set_free_free(Set *s);
void set_free_freep(Set **s);
Set* set_copy(Set *s); Set* set_copy(Set *s);
int set_ensure_allocated(Set **s, hash_func_t hash_func, compare_func_t com pare_func); int set_ensure_allocated(Set **s, hash_func_t hash_func, compare_func_t com pare_func);
int set_put(Set *s, void *value); int set_put(Set *s, void *value);
int set_replace(Set *s, void *value); int set_replace(Set *s, void *value);
void *set_get(Set *s, void *value); void *set_get(Set *s, void *value);
bool set_contains(Set *s, void *value); bool set_contains(Set *s, void *value);
void *set_remove(Set *s, void *value); void *set_remove(Set *s, void *value);
int set_remove_and_put(Set *s, void *old_value, void *new_value); int set_remove_and_put(Set *s, void *old_value, void *new_value);
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 socket-util.h   socket-util.h 
skipping to change at line 91 skipping to change at line 91
mode_t directory_mode, mode_t directory_mode,
mode_t socket_mode, mode_t socket_mode,
const char *label, const char *label,
int *ret); int *ret);
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);
bool socket_address_equal(const SocketAddress *a, const SocketAddress *b); bool socket_address_equal(const SocketAddress *a, const SocketAddress *b);
bool socket_address_needs_mount(const SocketAddress *a, const char *prefix) ; bool socket_address_needs_mount(const SocketAddress *a, const char *prefix) ;
const char* socket_address_bind_ipv6_only_to_string(SocketAddressBindIPv6On ly b); const char* socket_address_bind_ipv6_only_to_string(SocketAddressBindIPv6On ly b);
SocketAddressBindIPv6Only socket_address_bind_ipv6_only_from_string(const c har *s); SocketAddressBindIPv6Only socket_address_bind_ipv6_only_from_string(const c har *s);
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);
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 socket.h   socket.h 
skipping to change at line 166 skipping to change at line 166
/* Called from the service when it shut down */ /* Called from the service when it shut down */
void socket_notify_service_dead(Socket *s, bool failed_permanent); void socket_notify_service_dead(Socket *s, bool failed_permanent);
/* 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 */
int socket_add_one_mount_link(Socket *s, Mount *m); int socket_add_one_mount_link(Socket *s, Mount *m);
/* Called from the service code when a per-connection service ended */ /* Called from the service code when a per-connection service ended */
void socket_connection_unref(Socket *s); void socket_connection_unref(Socket *s);
void socket_free_ports(Socket *s);
extern const UnitVTable socket_vtable; extern const UnitVTable socket_vtable;
const char* socket_state_to_string(SocketState i); const char* socket_state_to_string(SocketState i);
SocketState socket_state_from_string(const char *s); SocketState socket_state_from_string(const char *s);
const char* socket_exec_command_to_string(SocketExecCommand i); const char* socket_exec_command_to_string(SocketExecCommand i);
SocketExecCommand socket_exec_command_from_string(const char *s); SocketExecCommand socket_exec_command_from_string(const char *s);
const char* socket_result_to_string(SocketResult i); const char* socket_result_to_string(SocketResult i);
SocketResult socket_result_from_string(const char *s); SocketResult socket_result_from_string(const char *s);
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 special.h   special.h 
skipping to change at line 49 skipping to change at line 49
#define SPECIAL_HIBERNATE_TARGET "hibernate.target" #define SPECIAL_HIBERNATE_TARGET "hibernate.target"
#define SPECIAL_HYBRID_SLEEP_TARGET "hybrid-sleep.target" #define SPECIAL_HYBRID_SLEEP_TARGET "hybrid-sleep.target"
/* Special boot targets */ /* Special boot targets */
#define SPECIAL_RESCUE_TARGET "rescue.target" #define SPECIAL_RESCUE_TARGET "rescue.target"
#define SPECIAL_EMERGENCY_TARGET "emergency.target" #define SPECIAL_EMERGENCY_TARGET "emergency.target"
/* Early boot targets */ /* Early boot targets */
#define SPECIAL_SYSINIT_TARGET "sysinit.target" #define SPECIAL_SYSINIT_TARGET "sysinit.target"
#define SPECIAL_SOCKETS_TARGET "sockets.target" #define SPECIAL_SOCKETS_TARGET "sockets.target"
#define SPECIAL_LOCAL_FS_TARGET "local-fs.target" /* LSB's $local_f s */ #define SPECIAL_LOCAL_FS_TARGET "local-fs.target"
#define SPECIAL_LOCAL_FS_PRE_TARGET "local-fs-pre.target" #define SPECIAL_LOCAL_FS_PRE_TARGET "local-fs-pre.target"
#define SPECIAL_REMOTE_FS_TARGET "remote-fs.target" /* LSB's $remote_ fs */ #define SPECIAL_REMOTE_FS_TARGET "remote-fs.target" /* LSB's $remote_ fs */
#define SPECIAL_REMOTE_FS_PRE_TARGET "remote-fs-pre.target" #define SPECIAL_REMOTE_FS_PRE_TARGET "remote-fs-pre.target"
#define SPECIAL_SWAP_TARGET "swap.target" #define SPECIAL_SWAP_TARGET "swap.target"
#define SPECIAL_BASIC_TARGET "basic.target" #define SPECIAL_BASIC_TARGET "basic.target"
/* LSB compatibility */ /* LSB compatibility */
#define SPECIAL_NETWORK_TARGET "network.target" /* LSB's $network */ #define SPECIAL_NETWORK_TARGET "network.target" /* LSB's $network */
#define SPECIAL_NSS_LOOKUP_TARGET "nss-lookup.target" /* LSB's $named * / #define SPECIAL_NSS_LOOKUP_TARGET "nss-lookup.target" /* LSB's $named * /
#define SPECIAL_RPCBIND_TARGET "rpcbind.target" /* LSB's $portmap */ #define SPECIAL_RPCBIND_TARGET "rpcbind.target" /* LSB's $portmap */
#define SPECIAL_SYSLOG_TARGET "syslog.target" /* LSB's $syslog */
#define SPECIAL_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */ #define SPECIAL_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */
#define SPECIAL_DISPLAY_MANAGER_SERVICE "display-manager.service" /* Common
extension of LSB */
#define SPECIAL_MAIL_TRANSFER_AGENT_TARGET "mail-transfer-agent.target" /*
Common extension of LSB */
/* /*
* Rules regarding adding further high level targets like the above: * Rules regarding adding further high level targets like the above:
* *
* - Be conservative, only add more of these when we really need * - Be conservative, only add more of these when we really need
* them. We need strong usecases for further additions. * them. We need strong usecases for further additions.
* *
* - When there can be multiple implementations running side-by-side, * - When there can be multiple implementations running side-by-side,
* it needs to be a .target unit which can pull in all * it needs to be a .target unit which can pull in all
* implementations. * implementations.
 End of changes. 3 change blocks. 
6 lines changed or deleted 1 lines changed or added


 specifier.h   specifier.h 
skipping to change at line 34 skipping to change at line 34
typedef char* (*SpecifierCallback)(char specifier, void *data, void *userda ta); typedef char* (*SpecifierCallback)(char specifier, void *data, void *userda ta);
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); char *specifier_printf(const char *text, const Specifier table[], void *use rdata);
char* specifier_string(char specifier, void *data, void *userdata); char *specifier_string(char specifier, void *data, void *userdata);
char *specifier_machine_id(char specifier, void *data, void *userdata);
char *specifier_boot_id(char specifier, void *data, void *userdata);
char *specifier_host_name(char specifier, void *data, void *userdata);
 End of changes. 1 change blocks. 
0 lines changed or deleted 0 lines changed or added


 strv.h   strv.h 
skipping to change at line 40 skipping to change at line 40
char *strv_find_prefix(char **l, const char *name); char *strv_find_prefix(char **l, const char *name);
void strv_free(char **l); void strv_free(char **l);
void strv_freep(char ***l); void strv_freep(char ***l);
char **strv_copy(char **l) _malloc_; char **strv_copy(char **l) _malloc_;
unsigned strv_length(char **l); unsigned strv_length(char **l);
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);
int strv_extend(char ***l, const 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_ _malloc_; char **strv_new(const char *x, ...) _sentinel_ _malloc_;
char **strv_new_ap(const char *x, va_list ap) _malloc_; char **strv_new_ap(const char *x, va_list ap) _malloc_;
static inline const char* STRV_IFNOTNULL(const char *x) { static inline const char* STRV_IFNOTNULL(const char *x) {
return x ? x : (const char *) -1; return x ? x : (const char *) -1;
} }
static inline bool strv_isempty(char **l) { static inline bool strv_isempty(char **l) {
return !l || !*l; return !l || !*l;
} }
char **strv_split(const char *s, const char *separator) _malloc_; char **strv_split(const char *s, const char *separator) _malloc_;
char **strv_split_quoted(const char *s) _malloc_; char **strv_split_quoted(const char *s) _malloc_;
char **strv_split_newlines(const char *s) _malloc_;
char *strv_join(char **l, const char *separator) _malloc_; char *strv_join(char **l, const char *separator) _malloc_;
char **strv_env_merge(unsigned n_lists, ...);
char **strv_env_delete(char **x, unsigned n_lists, ...);
char **strv_env_set(char **x, const char *p);
char **strv_env_unset(char **l, const char *p);
char *strv_env_get_with_length(char **l, const char *name, size_t k);
char *strv_env_get(char **x, const char *n);
char **strv_env_clean(char **l);
char **strv_parse_nulstr(const char *s, size_t l); char **strv_parse_nulstr(const char *s, size_t l);
char **strv_split_nulstr(const char *s);
bool strv_overlap(char **a, char **b); bool strv_overlap(char **a, char **b);
#define STRV_FOREACH(s, l) \ #define STRV_FOREACH(s, l) \
for ((s) = (l); (s) && *(s); (s)++) for ((s) = (l); (s) && *(s); (s)++)
#define STRV_FOREACH_BACKWARDS(s, l) \ #define STRV_FOREACH_BACKWARDS(s, l) \
for (; (l) && ((s) >= (l)); (s)--) for (; (l) && ((s) >= (l)); (s)--)
#define STRV_FOREACH_PAIR(x, y, l) \
for ((x) = (l), (y) = (x+1); (x) && *(x) && *(y); (x) += 2)
char **strv_sort(char **l); char **strv_sort(char **l);
void strv_print(char **l);
 End of changes. 6 change blocks. 
11 lines changed or deleted 6 lines changed or added


 syscall-list.h   syscall-list.h 
skipping to change at line 25 skipping to change at line 25
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/>.
***/ ***/
#if defined __x86_64__ && defined __ILP32__
/* The x32 ABI defines all of its syscalls with bit 30 set, which causes
issues when attempting to use syscalls as simple indicies into an array.
Instead, use the syscall id & ~SYSCALL_MASK as the index, and | the
internal id with the syscall mask as needed.
*/
#include <asm/unistd.h>
#define SYSCALL_TO_INDEX(x) ((x) & ~__X32_SYSCALL_BIT)
#define INDEX_TO_SYSCALL(x) ((x) | __X32_SYSCALL_BIT)
#else
#define SYSCALL_TO_INDEX(x) (x)
#define INDEX_TO_SYSCALL(x) (x)
#endif
const char *syscall_to_name(int id); const char *syscall_to_name(int id);
int syscall_from_name(const char *name); int syscall_from_name(const char *name);
int syscall_max(void); int syscall_max(void);
#endif #endif
 End of changes. 1 change blocks. 
0 lines changed or deleted 14 lines changed or added


 syscall-to-name.h   syscall-to-name.h 
const char* const syscall_names[] = { const char* const syscall_names[] = {
[__NR_waitid] = "waitid", [SYSCALL_TO_INDEX(__NR_waitid)] = "waitid",
[__NR_fdatasync] = "fdatasync", [SYSCALL_TO_INDEX(__NR_fdatasync)] = "fdatasync",
[__NR_mq_getsetattr] = "mq_getsetattr", [SYSCALL_TO_INDEX(__NR_mq_getsetattr)] = "mq_getsetattr",
[__NR_sched_getaffinity] = "sched_getaffinity", [SYSCALL_TO_INDEX(__NR_sched_getaffinity)] = "sched_getaffinity",
[__NR_epoll_pwait] = "epoll_pwait", [SYSCALL_TO_INDEX(__NR_epoll_pwait)] = "epoll_pwait",
[__NR_init_module] = "init_module", [SYSCALL_TO_INDEX(__NR_init_module)] = "init_module",
[__NR_delete_module] = "delete_module", [SYSCALL_TO_INDEX(__NR_delete_module)] = "delete_module",
[__NR_setresgid32] = "setresgid32", [SYSCALL_TO_INDEX(__NR_setresgid32)] = "setresgid32",
[__NR_mkdirat] = "mkdirat", [SYSCALL_TO_INDEX(__NR_mkdirat)] = "mkdirat",
[__NR_rt_sigsuspend] = "rt_sigsuspend", [SYSCALL_TO_INDEX(__NR_rt_sigsuspend)] = "rt_sigsuspend",
[__NR_openat] = "openat", [SYSCALL_TO_INDEX(__NR_openat)] = "openat",
[__NR_rt_tgsigqueueinfo] = "rt_tgsigqueueinfo", [SYSCALL_TO_INDEX(__NR_rt_tgsigqueueinfo)] = "rt_tgsigqueueinfo",
[__NR_name_to_handle_at] = "name_to_handle_at", [SYSCALL_TO_INDEX(__NR_name_to_handle_at)] = "name_to_handle_at",
[__NR_create_module] = "create_module", [SYSCALL_TO_INDEX(__NR_create_module)] = "create_module",
[__NR_setdomainname] = "setdomainname", [SYSCALL_TO_INDEX(__NR_setdomainname)] = "setdomainname",
[__NR_open] = "open", [SYSCALL_TO_INDEX(__NR_open)] = "open",
[__NR_timerfd_settime] = "timerfd_settime", [SYSCALL_TO_INDEX(__NR_timerfd_settime)] = "timerfd_settime",
[__NR_getxattr] = "getxattr", [SYSCALL_TO_INDEX(__NR_getxattr)] = "getxattr",
[__NR_pause] = "pause", [SYSCALL_TO_INDEX(__NR_pause)] = "pause",
[__NR_swapoff] = "swapoff", [SYSCALL_TO_INDEX(__NR_swapoff)] = "swapoff",
[__NR_ftruncate64] = "ftruncate64", [SYSCALL_TO_INDEX(__NR_ftruncate64)] = "ftruncate64",
[__NR_mmap2] = "mmap2", [SYSCALL_TO_INDEX(__NR_mmap2)] = "mmap2",
[__NR_ioperm] = "ioperm", [SYSCALL_TO_INDEX(__NR_ioperm)] = "ioperm",
[__NR_ioprio_get] = "ioprio_get", [SYSCALL_TO_INDEX(__NR_ioprio_get)] = "ioprio_get",
[__NR_setpriority] = "setpriority", [SYSCALL_TO_INDEX(__NR_setpriority)] = "setpriority",
[__NR_rt_sigqueueinfo] = "rt_sigqueueinfo", [SYSCALL_TO_INDEX(__NR_rt_sigqueueinfo)] = "rt_sigqueueinfo",
[__NR_nanosleep] = "nanosleep", [SYSCALL_TO_INDEX(__NR_nanosleep)] = "nanosleep",
[__NR_fanotify_init] = "fanotify_init", [SYSCALL_TO_INDEX(__NR_fanotify_init)] = "fanotify_init",
[__NR_lremovexattr] = "lremovexattr", [SYSCALL_TO_INDEX(__NR_lremovexattr)] = "lremovexattr",
[__NR_read] = "read", [SYSCALL_TO_INDEX(__NR_read)] = "read",
[__NR_fadvise64_64] = "fadvise64_64", [SYSCALL_TO_INDEX(__NR_fadvise64_64)] = "fadvise64_64",
[__NR_sched_setparam] = "sched_setparam", [SYSCALL_TO_INDEX(__NR_sched_setparam)] = "sched_setparam",
[__NR_swapon] = "swapon", [SYSCALL_TO_INDEX(__NR_swapon)] = "swapon",
[__NR_io_getevents] = "io_getevents", [SYSCALL_TO_INDEX(__NR_io_getevents)] = "io_getevents",
[__NR_olduname] = "olduname", [SYSCALL_TO_INDEX(__NR_olduname)] = "olduname",
[__NR_link] = "link", [SYSCALL_TO_INDEX(__NR_link)] = "link",
[__NR_timer_gettime] = "timer_gettime", [SYSCALL_TO_INDEX(__NR_timer_gettime)] = "timer_gettime",
[__NR_sendmmsg] = "sendmmsg", [SYSCALL_TO_INDEX(__NR_sendmmsg)] = "sendmmsg",
[__NR_ulimit] = "ulimit", [SYSCALL_TO_INDEX(__NR_ulimit)] = "ulimit",
[__NR_truncate64] = "truncate64", [SYSCALL_TO_INDEX(__NR_truncate64)] = "truncate64",
[__NR_timerfd_create] = "timerfd_create", [SYSCALL_TO_INDEX(__NR_timerfd_create)] = "timerfd_create",
[__NR_gettid] = "gettid", [SYSCALL_TO_INDEX(__NR_gettid)] = "gettid",
[__NR_madvise1] = "madvise1", [SYSCALL_TO_INDEX(__NR_madvise1)] = "madvise1",
[__NR_set_tid_address] = "set_tid_address", [SYSCALL_TO_INDEX(__NR_set_tid_address)] = "set_tid_address",
[__NR_setregid] = "setregid", [SYSCALL_TO_INDEX(__NR_setregid)] = "setregid",
[__NR_inotify_rm_watch] = "inotify_rm_watch", [SYSCALL_TO_INDEX(__NR_inotify_rm_watch)] = "inotify_rm_watch",
[__NR_mq_unlink] = "mq_unlink", [SYSCALL_TO_INDEX(__NR_mq_unlink)] = "mq_unlink",
[__NR_oldfstat] = "oldfstat", [SYSCALL_TO_INDEX(__NR_oldfstat)] = "oldfstat",
[__NR_ioprio_set] = "ioprio_set", [SYSCALL_TO_INDEX(__NR_ioprio_set)] = "ioprio_set",
[__NR_lchown] = "lchown", [SYSCALL_TO_INDEX(__NR_lchown)] = "lchown",
[__NR_request_key] = "request_key", [SYSCALL_TO_INDEX(__NR_request_key)] = "request_key",
[__NR_fremovexattr] = "fremovexattr", [SYSCALL_TO_INDEX(__NR_fremovexattr)] = "fremovexattr",
[__NR_get_kernel_syms] = "get_kernel_syms", [SYSCALL_TO_INDEX(__NR_get_kernel_syms)] = "get_kernel_syms",
[__NR_mkdir] = "mkdir", [SYSCALL_TO_INDEX(__NR_mkdir)] = "mkdir",
[__NR_sysinfo] = "sysinfo", [SYSCALL_TO_INDEX(__NR_sysinfo)] = "sysinfo",
[__NR_utime] = "utime", [SYSCALL_TO_INDEX(__NR_utime)] = "utime",
[__NR_poll] = "poll", [SYSCALL_TO_INDEX(__NR_poll)] = "poll",
[__NR_inotify_add_watch] = "inotify_add_watch", [SYSCALL_TO_INDEX(__NR_inotify_add_watch)] = "inotify_add_watch",
[__NR_mq_timedsend] = "mq_timedsend", [SYSCALL_TO_INDEX(__NR_mq_timedsend)] = "mq_timedsend",
[__NR_prlimit64] = "prlimit64", [SYSCALL_TO_INDEX(__NR_prlimit64)] = "prlimit64",
[__NR_stat64] = "stat64", [SYSCALL_TO_INDEX(__NR_stat64)] = "stat64",
[__NR_timerfd_gettime] = "timerfd_gettime", [SYSCALL_TO_INDEX(__NR_timerfd_gettime)] = "timerfd_gettime",
[__NR_removexattr] = "removexattr", [SYSCALL_TO_INDEX(__NR_removexattr)] = "removexattr",
[__NR_inotify_init1] = "inotify_init1", [SYSCALL_TO_INDEX(__NR_inotify_init1)] = "inotify_init1",
[__NR_nfsservctl] = "nfsservctl", [SYSCALL_TO_INDEX(__NR_nfsservctl)] = "nfsservctl",
[__NR_perf_event_open] = "perf_event_open", [SYSCALL_TO_INDEX(__NR_perf_event_open)] = "perf_event_open",
[__NR_io_destroy] = "io_destroy", [SYSCALL_TO_INDEX(__NR_io_destroy)] = "io_destroy",
[__NR_prctl] = "prctl", [SYSCALL_TO_INDEX(__NR_prctl)] = "prctl",
[__NR_rt_sigpending] = "rt_sigpending", [SYSCALL_TO_INDEX(__NR_rt_sigpending)] = "rt_sigpending",
[__NR_fchown32] = "fchown32", [SYSCALL_TO_INDEX(__NR_fchown32)] = "fchown32",
[__NR_fcntl64] = "fcntl64", [SYSCALL_TO_INDEX(__NR_fcntl64)] = "fcntl64",
[__NR_mq_notify] = "mq_notify", [SYSCALL_TO_INDEX(__NR_mq_notify)] = "mq_notify",
[__NR_pwritev] = "pwritev", [SYSCALL_TO_INDEX(__NR_pwritev)] = "pwritev",
[__NR_get_mempolicy] = "get_mempolicy", [SYSCALL_TO_INDEX(__NR_get_mempolicy)] = "get_mempolicy",
[__NR_quotactl] = "quotactl", [SYSCALL_TO_INDEX(__NR_quotactl)] = "quotactl",
[__NR_epoll_ctl] = "epoll_ctl", [SYSCALL_TO_INDEX(__NR_epoll_ctl)] = "epoll_ctl",
[__NR_setresuid] = "setresuid", [SYSCALL_TO_INDEX(__NR_setresuid)] = "setresuid",
[__NR_mincore] = "mincore", [SYSCALL_TO_INDEX(__NR_mincore)] = "mincore",
[__NR_rt_sigreturn] = "rt_sigreturn", [SYSCALL_TO_INDEX(__NR_rt_sigreturn)] = "rt_sigreturn",
[__NR_restart_syscall] = "restart_syscall", [SYSCALL_TO_INDEX(__NR_restart_syscall)] = "restart_syscall",
[__NR_setreuid32] = "setreuid32", [SYSCALL_TO_INDEX(__NR_setreuid32)] = "setreuid32",
[__NR_vhangup] = "vhangup", [SYSCALL_TO_INDEX(__NR_vhangup)] = "vhangup",
[__NR_oldstat] = "oldstat", [SYSCALL_TO_INDEX(__NR_oldstat)] = "oldstat",
[__NR_query_module] = "query_module", [SYSCALL_TO_INDEX(__NR_query_module)] = "query_module",
[__NR_pread64] = "pread64", [SYSCALL_TO_INDEX(__NR_pread64)] = "pread64",
[__NR_renameat] = "renameat", [SYSCALL_TO_INDEX(__NR_renameat)] = "renameat",
[__NR_clock_getres] = "clock_getres", [SYSCALL_TO_INDEX(__NR_clock_getres)] = "clock_getres",
[__NR_exit_group] = "exit_group", [SYSCALL_TO_INDEX(__NR_exit_group)] = "exit_group",
[__NR_lsetxattr] = "lsetxattr", [SYSCALL_TO_INDEX(__NR_lsetxattr)] = "lsetxattr",
[__NR_inotify_init] = "inotify_init", [SYSCALL_TO_INDEX(__NR_inotify_init)] = "inotify_init",
[__NR_setregid32] = "setregid32", [SYSCALL_TO_INDEX(__NR_setregid32)] = "setregid32",
[__NR_mount] = "mount", [SYSCALL_TO_INDEX(__NR_mount)] = "mount",
[__NR_wait4] = "wait4", [SYSCALL_TO_INDEX(__NR_wait4)] = "wait4",
[__NR_ftime] = "ftime", [SYSCALL_TO_INDEX(__NR_ftime)] = "ftime",
[__NR_clone] = "clone", [SYSCALL_TO_INDEX(__NR_clone)] = "clone",
[__NR_select] = "select", [SYSCALL_TO_INDEX(__NR_select)] = "select",
[__NR_syslog] = "syslog", [SYSCALL_TO_INDEX(__NR_syslog)] = "syslog",
[__NR_setuid32] = "setuid32", [SYSCALL_TO_INDEX(__NR_setuid32)] = "setuid32",
[__NR_getresuid] = "getresuid", [SYSCALL_TO_INDEX(__NR_getresuid)] = "getresuid",
[__NR_fsync] = "fsync", [SYSCALL_TO_INDEX(__NR_fsync)] = "fsync",
[__NR_sched_getparam] = "sched_getparam", [SYSCALL_TO_INDEX(__NR_sched_getparam)] = "sched_getparam",
[__NR_close] = "close", [SYSCALL_TO_INDEX(__NR_close)] = "close",
[__NR_capset] = "capset", [SYSCALL_TO_INDEX(__NR_capset)] = "capset",
[__NR_chmod] = "chmod", [SYSCALL_TO_INDEX(__NR_chmod)] = "chmod",
[__NR_getdents] = "getdents", [SYSCALL_TO_INDEX(__NR_getdents)] = "getdents",
[__NR_ftruncate] = "ftruncate", [SYSCALL_TO_INDEX(__NR_ftruncate)] = "ftruncate",
[__NR_setgid32] = "setgid32", [SYSCALL_TO_INDEX(__NR_setgid32)] = "setgid32",
[__NR_stime] = "stime", [SYSCALL_TO_INDEX(__NR_stime)] = "stime",
[__NR_madvise] = "madvise", [SYSCALL_TO_INDEX(__NR_madvise)] = "madvise",
[__NR_sigprocmask] = "sigprocmask", [SYSCALL_TO_INDEX(__NR_sigprocmask)] = "sigprocmask",
[__NR_mbind] = "mbind", [SYSCALL_TO_INDEX(__NR_mbind)] = "mbind",
[__NR_unlinkat] = "unlinkat", [SYSCALL_TO_INDEX(__NR_unlinkat)] = "unlinkat",
[__NR_fstatat64] = "fstatat64", [SYSCALL_TO_INDEX(__NR_fstatat64)] = "fstatat64",
[__NR_pivot_root] = "pivot_root", [SYSCALL_TO_INDEX(__NR_pivot_root)] = "pivot_root",
[__NR_write] = "write", [SYSCALL_TO_INDEX(__NR_write)] = "write",
[__NR_getppid] = "getppid", [SYSCALL_TO_INDEX(__NR_getppid)] = "getppid",
[__NR_symlink] = "symlink", [SYSCALL_TO_INDEX(__NR_symlink)] = "symlink",
[__NR_lseek] = "lseek", [SYSCALL_TO_INDEX(__NR_lseek)] = "lseek",
[__NR_clock_adjtime] = "clock_adjtime", [SYSCALL_TO_INDEX(__NR_clock_adjtime)] = "clock_adjtime",
[__NR_unshare] = "unshare", [SYSCALL_TO_INDEX(__NR_unshare)] = "unshare",
[__NR_io_setup] = "io_setup", [SYSCALL_TO_INDEX(__NR_io_setup)] = "io_setup",
[__NR_gtty] = "gtty", [SYSCALL_TO_INDEX(__NR_gtty)] = "gtty",
[__NR_getresuid32] = "getresuid32", [SYSCALL_TO_INDEX(__NR_getresuid32)] = "getresuid32",
[__NR_times] = "times", [SYSCALL_TO_INDEX(__NR_times)] = "times",
[__NR_set_thread_area] = "set_thread_area", [SYSCALL_TO_INDEX(__NR_set_thread_area)] = "set_thread_area",
[__NR_statfs] = "statfs", [SYSCALL_TO_INDEX(__NR_statfs)] = "statfs",
[__NR_truncate] = "truncate", [SYSCALL_TO_INDEX(__NR_truncate)] = "truncate",
[__NR_getuid] = "getuid", [SYSCALL_TO_INDEX(__NR_getuid)] = "getuid",
[__NR_setresgid] = "setresgid", [SYSCALL_TO_INDEX(__NR_setresgid)] = "setresgid",
[__NR_getresgid32] = "getresgid32", [SYSCALL_TO_INDEX(__NR_getresgid32)] = "getresgid32",
[__NR_umount] = "umount", [SYSCALL_TO_INDEX(__NR_umount)] = "umount",
[__NR_signalfd4] = "signalfd4", [SYSCALL_TO_INDEX(__NR_signalfd4)] = "signalfd4",
[__NR_rt_sigtimedwait] = "rt_sigtimedwait", [SYSCALL_TO_INDEX(__NR_rt_sigtimedwait)] = "rt_sigtimedwait",
[__NR_get_robust_list] = "get_robust_list", [SYSCALL_TO_INDEX(__NR_get_robust_list)] = "get_robust_list",
[__NR_reboot] = "reboot", [SYSCALL_TO_INDEX(__NR_reboot)] = "reboot",
[__NR_dup] = "dup", [SYSCALL_TO_INDEX(__NR_dup)] = "dup",
[__NR_signalfd] = "signalfd", [SYSCALL_TO_INDEX(__NR_signalfd)] = "signalfd",
[__NR_geteuid32] = "geteuid32", [SYSCALL_TO_INDEX(__NR_geteuid32)] = "geteuid32",
[__NR_profil] = "profil", [SYSCALL_TO_INDEX(__NR_profil)] = "profil",
[__NR_mprotect] = "mprotect", [SYSCALL_TO_INDEX(__NR_mprotect)] = "mprotect",
[__NR_getpriority] = "getpriority", [SYSCALL_TO_INDEX(__NR_getpriority)] = "getpriority",
[__NR_rt_sigaction] = "rt_sigaction", [SYSCALL_TO_INDEX(__NR_rt_sigaction)] = "rt_sigaction",
[__NR_timer_delete] = "timer_delete", [SYSCALL_TO_INDEX(__NR_timer_delete)] = "timer_delete",
[__NR_munmap] = "munmap", [SYSCALL_TO_INDEX(__NR_munmap)] = "munmap",
[__NR_getegid32] = "getegid32", [SYSCALL_TO_INDEX(__NR_getegid32)] = "getegid32",
[__NR_lstat] = "lstat", [SYSCALL_TO_INDEX(__NR_lstat)] = "lstat",
[__NR_mremap] = "mremap", [SYSCALL_TO_INDEX(__NR_mremap)] = "mremap",
[__NR_epoll_create1] = "epoll_create1", [SYSCALL_TO_INDEX(__NR_epoll_create1)] = "epoll_create1",
[__NR_readlinkat] = "readlinkat", [SYSCALL_TO_INDEX(__NR_readlinkat)] = "readlinkat",
[__NR_fchmodat] = "fchmodat", [SYSCALL_TO_INDEX(__NR_fchmodat)] = "fchmodat",
[__NR_chroot] = "chroot", [SYSCALL_TO_INDEX(__NR_chroot)] = "chroot",
[__NR_lgetxattr] = "lgetxattr", [SYSCALL_TO_INDEX(__NR_lgetxattr)] = "lgetxattr",
[__NR_preadv] = "preadv", [SYSCALL_TO_INDEX(__NR_preadv)] = "preadv",
[__NR_getresgid] = "getresgid", [SYSCALL_TO_INDEX(__NR_getresgid)] = "getresgid",
[__NR_pselect6] = "pselect6", [SYSCALL_TO_INDEX(__NR_pselect6)] = "pselect6",
[__NR_eventfd] = "eventfd", [SYSCALL_TO_INDEX(__NR_eventfd)] = "eventfd",
[__NR_setitimer] = "setitimer", [SYSCALL_TO_INDEX(__NR_setitimer)] = "setitimer",
[__NR_vserver] = "vserver", [SYSCALL_TO_INDEX(__NR_vserver)] = "vserver",
[__NR_sched_get_priority_max] = "sched_get_priority_max", [SYSCALL_TO_INDEX(__NR_sched_get_priority_max)] = "sched_get_priority_max",
[__NR_getuid32] = "getuid32", [SYSCALL_TO_INDEX(__NR_getuid32)] = "getuid32",
[__NR_getcpu] = "getcpu", [SYSCALL_TO_INDEX(__NR_getcpu)] = "getcpu",
[__NR_sendfile] = "sendfile", [SYSCALL_TO_INDEX(__NR_sendfile)] = "sendfile",
[__NR_pipe2] = "pipe2", [SYSCALL_TO_INDEX(__NR_pipe2)] = "pipe2",
[__NR_acct] = "acct", [SYSCALL_TO_INDEX(__NR_acct)] = "acct",
[__NR_afs_syscall] = "afs_syscall", [SYSCALL_TO_INDEX(__NR_afs_syscall)] = "afs_syscall",
[__NR_fchdir] = "fchdir", [SYSCALL_TO_INDEX(__NR_fchdir)] = "fchdir",
[__NR_mlock] = "mlock", [SYSCALL_TO_INDEX(__NR_mlock)] = "mlock",
[__NR_mmap] = "mmap", [SYSCALL_TO_INDEX(__NR_mmap)] = "mmap",
[__NR_getgid32] = "getgid32", [SYSCALL_TO_INDEX(__NR_getgid32)] = "getgid32",
[__NR_utimes] = "utimes", [SYSCALL_TO_INDEX(__NR_utimes)] = "utimes",
[__NR_getcwd] = "getcwd", [SYSCALL_TO_INDEX(__NR_getcwd)] = "getcwd",
[__NR_sched_get_priority_min] = "sched_get_priority_min", [SYSCALL_TO_INDEX(__NR_sched_get_priority_min)] = "sched_get_priority_min",
[__NR_putpmsg] = "putpmsg", [SYSCALL_TO_INDEX(__NR_putpmsg)] = "putpmsg",
[__NR_rt_sigprocmask] = "rt_sigprocmask", [SYSCALL_TO_INDEX(__NR_rt_sigprocmask)] = "rt_sigprocmask",
[__NR_sigreturn] = "sigreturn", [SYSCALL_TO_INDEX(__NR_sigreturn)] = "sigreturn",
[__NR_clock_settime] = "clock_settime", [SYSCALL_TO_INDEX(__NR_clock_settime)] = "clock_settime",
[__NR_sched_yield] = "sched_yield", [SYSCALL_TO_INDEX(__NR_sched_yield)] = "sched_yield",
[__NR_access] = "access", [SYSCALL_TO_INDEX(__NR_access)] = "access",
[__NR_munlock] = "munlock", [SYSCALL_TO_INDEX(__NR_munlock)] = "munlock",
[__NR_dup2] = "dup2", [SYSCALL_TO_INDEX(__NR_dup2)] = "dup2",
[__NR_dup3] = "dup3", [SYSCALL_TO_INDEX(__NR_dup3)] = "dup3",
[__NR_pipe] = "pipe", [SYSCALL_TO_INDEX(__NR_pipe)] = "pipe",
[__NR_readdir] = "readdir", [SYSCALL_TO_INDEX(__NR_readdir)] = "readdir",
[__NR_munlockall] = "munlockall", [SYSCALL_TO_INDEX(__NR_munlockall)] = "munlockall",
[__NR_getitimer] = "getitimer", [SYSCALL_TO_INDEX(__NR_getitimer)] = "getitimer",
[__NR_vm86] = "vm86", [SYSCALL_TO_INDEX(__NR_vm86)] = "vm86",
[__NR_setuid] = "setuid", [SYSCALL_TO_INDEX(__NR_setuid)] = "setuid",
[__NR_getgid] = "getgid", [SYSCALL_TO_INDEX(__NR_getgid)] = "getgid",
[__NR_pwrite64] = "pwrite64", [SYSCALL_TO_INDEX(__NR_pwrite64)] = "pwrite64",
[__NR_getpmsg] = "getpmsg", [SYSCALL_TO_INDEX(__NR_getpmsg)] = "getpmsg",
[__NR_llistxattr] = "llistxattr", [SYSCALL_TO_INDEX(__NR_llistxattr)] = "llistxattr",
[__NR_readlink] = "readlink", [SYSCALL_TO_INDEX(__NR_readlink)] = "readlink",
[__NR_fchown] = "fchown", [SYSCALL_TO_INDEX(__NR_fchown)] = "fchown",
[__NR_stat] = "stat", [SYSCALL_TO_INDEX(__NR_stat)] = "stat",
[__NR_execve] = "execve", [SYSCALL_TO_INDEX(__NR_execve)] = "execve",
[__NR_vmsplice] = "vmsplice", [SYSCALL_TO_INDEX(__NR_vmsplice)] = "vmsplice",
[__NR_sync_file_range] = "sync_file_range", [SYSCALL_TO_INDEX(__NR_sync_file_range)] = "sync_file_range",
[__NR_splice] = "splice", [SYSCALL_TO_INDEX(__NR_splice)] = "splice",
[__NR_umask] = "umask", [SYSCALL_TO_INDEX(__NR_umask)] = "umask",
[__NR_open_by_handle_at] = "open_by_handle_at", [SYSCALL_TO_INDEX(__NR_open_by_handle_at)] = "open_by_handle_at",
[__NR_futimesat] = "futimesat", [SYSCALL_TO_INDEX(__NR_futimesat)] = "futimesat",
[__NR_fcntl] = "fcntl", [SYSCALL_TO_INDEX(__NR_fcntl)] = "fcntl",
[__NR_rmdir] = "rmdir", [SYSCALL_TO_INDEX(__NR_rmdir)] = "rmdir",
[__NR_getdents64] = "getdents64", [SYSCALL_TO_INDEX(__NR_getdents64)] = "getdents64",
[__NR_mq_open] = "mq_open", [SYSCALL_TO_INDEX(__NR_mq_open)] = "mq_open",
[__NR_alarm] = "alarm", [SYSCALL_TO_INDEX(__NR_alarm)] = "alarm",
[__NR_futex] = "futex", [SYSCALL_TO_INDEX(__NR_futex)] = "futex",
[__NR_lchown32] = "lchown32", [SYSCALL_TO_INDEX(__NR_lchown32)] = "lchown32",
[__NR_prof] = "prof", [SYSCALL_TO_INDEX(__NR_prof)] = "prof",
[__NR_umount2] = "umount2", [SYSCALL_TO_INDEX(__NR_umount2)] = "umount2",
[__NR_mknodat] = "mknodat", [SYSCALL_TO_INDEX(__NR_mknodat)] = "mknodat",
[__NR_fork] = "fork", [SYSCALL_TO_INDEX(__NR_fork)] = "fork",
[__NR_setgroups32] = "setgroups32", [SYSCALL_TO_INDEX(__NR_setgroups32)] = "setgroups32",
[__NR_creat] = "creat", [SYSCALL_TO_INDEX(__NR_creat)] = "creat",
[__NR_getrusage] = "getrusage", [SYSCALL_TO_INDEX(__NR_getrusage)] = "getrusage",
[__NR_sched_rr_get_interval] = "sched_rr_get_interval", [SYSCALL_TO_INDEX(__NR_sched_rr_get_interval)] = "sched_rr_get_interval",
[__NR_ssetmask] = "ssetmask", [SYSCALL_TO_INDEX(__NR_ssetmask)] = "ssetmask",
[__NR_stty] = "stty", [SYSCALL_TO_INDEX(__NR_stty)] = "stty",
[__NR_set_mempolicy] = "set_mempolicy", [SYSCALL_TO_INDEX(__NR_set_mempolicy)] = "set_mempolicy",
[__NR_ioctl] = "ioctl", [SYSCALL_TO_INDEX(__NR_ioctl)] = "ioctl",
[__NR_clock_gettime] = "clock_gettime", [SYSCALL_TO_INDEX(__NR_clock_gettime)] = "clock_gettime",
[__NR_modify_ldt] = "modify_ldt", [SYSCALL_TO_INDEX(__NR_modify_ldt)] = "modify_ldt",
[__NR_idle] = "idle", [SYSCALL_TO_INDEX(__NR_idle)] = "idle",
[__NR_signal] = "signal", [SYSCALL_TO_INDEX(__NR_signal)] = "signal",
[__NR_linkat] = "linkat", [SYSCALL_TO_INDEX(__NR_linkat)] = "linkat",
[__NR_lstat64] = "lstat64", [SYSCALL_TO_INDEX(__NR_lstat64)] = "lstat64",
[__NR_keyctl] = "keyctl", [SYSCALL_TO_INDEX(__NR_keyctl)] = "keyctl",
[__NR_sched_setaffinity] = "sched_setaffinity", [SYSCALL_TO_INDEX(__NR_sched_setaffinity)] = "sched_setaffinity",
[__NR_exit] = "exit", [SYSCALL_TO_INDEX(__NR_exit)] = "exit",
[__NR_sched_setscheduler] = "sched_setscheduler", [SYSCALL_TO_INDEX(__NR_sched_setscheduler)] = "sched_setscheduler",
[__NR_io_submit] = "io_submit", [SYSCALL_TO_INDEX(__NR_io_submit)] = "io_submit",
[__NR_break] = "break", [SYSCALL_TO_INDEX(__NR_break)] = "break",
[__NR_socketcall] = "socketcall", [SYSCALL_TO_INDEX(__NR_socketcall)] = "socketcall",
[__NR_lock] = "lock", [SYSCALL_TO_INDEX(__NR_lock)] = "lock",
[__NR_oldlstat] = "oldlstat", [SYSCALL_TO_INDEX(__NR_oldlstat)] = "oldlstat",
[__NR_symlinkat] = "symlinkat", [SYSCALL_TO_INDEX(__NR_symlinkat)] = "symlinkat",
[__NR_setfsuid32] = "setfsuid32", [SYSCALL_TO_INDEX(__NR_setfsuid32)] = "setfsuid32",
[__NR_setgid] = "setgid", [SYSCALL_TO_INDEX(__NR_setgid)] = "setgid",
[__NR_sigaction] = "sigaction", [SYSCALL_TO_INDEX(__NR_sigaction)] = "sigaction",
[__NR_tee] = "tee", [SYSCALL_TO_INDEX(__NR_tee)] = "tee",
[__NR__llseek] = "_llseek", [SYSCALL_TO_INDEX(__NR__llseek)] = "_llseek",
[__NR_utimensat] = "utimensat", [SYSCALL_TO_INDEX(__NR_utimensat)] = "utimensat",
[__NR_move_pages] = "move_pages", [SYSCALL_TO_INDEX(__NR_move_pages)] = "move_pages",
[__NR_fstat64] = "fstat64", [SYSCALL_TO_INDEX(__NR_fstat64)] = "fstat64",
[__NR_setfsgid32] = "setfsgid32", [SYSCALL_TO_INDEX(__NR_setfsgid32)] = "setfsgid32",
[__NR_kill] = "kill", [SYSCALL_TO_INDEX(__NR_kill)] = "kill",
[__NR_ppoll] = "ppoll", [SYSCALL_TO_INDEX(__NR_ppoll)] = "ppoll",
[__NR_mq_timedreceive] = "mq_timedreceive", [SYSCALL_TO_INDEX(__NR_mq_timedreceive)] = "mq_timedreceive",
[__NR_setpgid] = "setpgid", [SYSCALL_TO_INDEX(__NR_setpgid)] = "setpgid",
[__NR_ipc] = "ipc", [SYSCALL_TO_INDEX(__NR_ipc)] = "ipc",
[__NR_get_thread_area] = "get_thread_area", [SYSCALL_TO_INDEX(__NR_get_thread_area)] = "get_thread_area",
[__NR_sgetmask] = "sgetmask", [SYSCALL_TO_INDEX(__NR_sgetmask)] = "sgetmask",
[__NR_vfork] = "vfork", [SYSCALL_TO_INDEX(__NR_vfork)] = "vfork",
[__NR_chown32] = "chown32", [SYSCALL_TO_INDEX(__NR_chown32)] = "chown32",
[__NR_readahead] = "readahead", [SYSCALL_TO_INDEX(__NR_readahead)] = "readahead",
[__NR_writev] = "writev", [SYSCALL_TO_INDEX(__NR_writev)] = "writev",
[__NR_io_cancel] = "io_cancel", [SYSCALL_TO_INDEX(__NR_io_cancel)] = "io_cancel",
[__NR_nice] = "nice", [SYSCALL_TO_INDEX(__NR_nice)] = "nice",
[__NR_personality] = "personality", [SYSCALL_TO_INDEX(__NR_personality)] = "personality",
[__NR_flistxattr] = "flistxattr", [SYSCALL_TO_INDEX(__NR_flistxattr)] = "flistxattr",
[__NR_mlockall] = "mlockall", [SYSCALL_TO_INDEX(__NR_mlockall)] = "mlockall",
[__NR_ustat] = "ustat", [SYSCALL_TO_INDEX(__NR_ustat)] = "ustat",
[__NR_ugetrlimit] = "ugetrlimit", [SYSCALL_TO_INDEX(__NR_ugetrlimit)] = "ugetrlimit",
[__NR_geteuid] = "geteuid", [SYSCALL_TO_INDEX(__NR_geteuid)] = "geteuid",
[__NR_timer_create] = "timer_create", [SYSCALL_TO_INDEX(__NR_timer_create)] = "timer_create",
[__NR_msync] = "msync", [SYSCALL_TO_INDEX(__NR_msync)] = "msync",
[__NR_settimeofday] = "settimeofday", [SYSCALL_TO_INDEX(__NR_settimeofday)] = "settimeofday",
[__NR_fsetxattr] = "fsetxattr", [SYSCALL_TO_INDEX(__NR_fsetxattr)] = "fsetxattr",
[__NR_sigsuspend] = "sigsuspend", [SYSCALL_TO_INDEX(__NR_sigsuspend)] = "sigsuspend",
[__NR_lookup_dcookie] = "lookup_dcookie", [SYSCALL_TO_INDEX(__NR_lookup_dcookie)] = "lookup_dcookie",
[__NR_bdflush] = "bdflush", [SYSCALL_TO_INDEX(__NR_bdflush)] = "bdflush",
[__NR_readv] = "readv", [SYSCALL_TO_INDEX(__NR_readv)] = "readv",
[__NR_remap_file_pages] = "remap_file_pages", [SYSCALL_TO_INDEX(__NR_remap_file_pages)] = "remap_file_pages",
[__NR_sendfile64] = "sendfile64", [SYSCALL_TO_INDEX(__NR_sendfile64)] = "sendfile64",
[__NR_setgroups] = "setgroups", [SYSCALL_TO_INDEX(__NR_setgroups)] = "setgroups",
[__NR_sched_getscheduler] = "sched_getscheduler", [SYSCALL_TO_INDEX(__NR_sched_getscheduler)] = "sched_getscheduler",
[__NR_sysfs] = "sysfs", [SYSCALL_TO_INDEX(__NR_sysfs)] = "sysfs",
[__NR_chdir] = "chdir", [SYSCALL_TO_INDEX(__NR_chdir)] = "chdir",
[__NR_uname] = "uname", [SYSCALL_TO_INDEX(__NR_uname)] = "uname",
[__NR_setfsuid] = "setfsuid", [SYSCALL_TO_INDEX(__NR_setfsuid)] = "setfsuid",
[__NR_getsid] = "getsid", [SYSCALL_TO_INDEX(__NR_getsid)] = "getsid",
[__NR_fstatfs64] = "fstatfs64", [SYSCALL_TO_INDEX(__NR_fstatfs64)] = "fstatfs64",
[__NR_rename] = "rename", [SYSCALL_TO_INDEX(__NR_rename)] = "rename",
[__NR_brk] = "brk", [SYSCALL_TO_INDEX(__NR_brk)] = "brk",
[__NR_mpx] = "mpx", [SYSCALL_TO_INDEX(__NR_mpx)] = "mpx",
[__NR_clock_nanosleep] = "clock_nanosleep", [SYSCALL_TO_INDEX(__NR_clock_nanosleep)] = "clock_nanosleep",
[__NR_setxattr] = "setxattr", [SYSCALL_TO_INDEX(__NR_setxattr)] = "setxattr",
[__NR_adjtimex] = "adjtimex", [SYSCALL_TO_INDEX(__NR_adjtimex)] = "adjtimex",
[__NR_getpgid] = "getpgid", [SYSCALL_TO_INDEX(__NR_getpgid)] = "getpgid",
[__NR_fstat] = "fstat", [SYSCALL_TO_INDEX(__NR_fstat)] = "fstat",
[__NR_vm86old] = "vm86old", [SYSCALL_TO_INDEX(__NR_vm86old)] = "vm86old",
[__NR_getgroups] = "getgroups", [SYSCALL_TO_INDEX(__NR_getgroups)] = "getgroups",
[__NR_sigaltstack] = "sigaltstack", [SYSCALL_TO_INDEX(__NR_sigaltstack)] = "sigaltstack",
[__NR_chown] = "chown", [SYSCALL_TO_INDEX(__NR_chown)] = "chown",
[__NR_timer_getoverrun] = "timer_getoverrun", [SYSCALL_TO_INDEX(__NR_timer_getoverrun)] = "timer_getoverrun",
[__NR_fchownat] = "fchownat", [SYSCALL_TO_INDEX(__NR_fchownat)] = "fchownat",
[__NR_uselib] = "uselib", [SYSCALL_TO_INDEX(__NR_uselib)] = "uselib",
[__NR_iopl] = "iopl", [SYSCALL_TO_INDEX(__NR_iopl)] = "iopl",
[__NR_gettimeofday] = "gettimeofday", [SYSCALL_TO_INDEX(__NR_gettimeofday)] = "gettimeofday",
[__NR_fallocate] = "fallocate", [SYSCALL_TO_INDEX(__NR_fallocate)] = "fallocate",
[__NR_getpgrp] = "getpgrp", [SYSCALL_TO_INDEX(__NR_getpgrp)] = "getpgrp",
[__NR_recvmmsg] = "recvmmsg", [SYSCALL_TO_INDEX(__NR_recvmmsg)] = "recvmmsg",
[__NR_eventfd2] = "eventfd2", [SYSCALL_TO_INDEX(__NR_eventfd2)] = "eventfd2",
[__NR_mknod] = "mknod", [SYSCALL_TO_INDEX(__NR_mknod)] = "mknod",
[__NR_statfs64] = "statfs64", [SYSCALL_TO_INDEX(__NR_statfs64)] = "statfs64",
[__NR_faccessat] = "faccessat", [SYSCALL_TO_INDEX(__NR_faccessat)] = "faccessat",
[__NR_fstatfs] = "fstatfs", [SYSCALL_TO_INDEX(__NR_fstatfs)] = "fstatfs",
[__NR_kexec_load] = "kexec_load", [SYSCALL_TO_INDEX(__NR_kexec_load)] = "kexec_load",
[__NR_migrate_pages] = "migrate_pages", [SYSCALL_TO_INDEX(__NR_migrate_pages)] = "migrate_pages",
[__NR_listxattr] = "listxattr", [SYSCALL_TO_INDEX(__NR_listxattr)] = "listxattr",
[__NR_ptrace] = "ptrace", [SYSCALL_TO_INDEX(__NR_ptrace)] = "ptrace",
[__NR_fadvise64] = "fadvise64", [SYSCALL_TO_INDEX(__NR_fadvise64)] = "fadvise64",
[__NR_getegid] = "getegid", [SYSCALL_TO_INDEX(__NR_getegid)] = "getegid",
[__NR_setrlimit] = "setrlimit", [SYSCALL_TO_INDEX(__NR_setrlimit)] = "setrlimit",
[__NR_sigpending] = "sigpending", [SYSCALL_TO_INDEX(__NR_sigpending)] = "sigpending",
[__NR_time] = "time", [SYSCALL_TO_INDEX(__NR_time)] = "time",
[__NR_unlink] = "unlink", [SYSCALL_TO_INDEX(__NR_unlink)] = "unlink",
[__NR_setreuid] = "setreuid", [SYSCALL_TO_INDEX(__NR_setreuid)] = "setreuid",
[__NR__sysctl] = "_sysctl", [SYSCALL_TO_INDEX(__NR__sysctl)] = "_sysctl",
[__NR__newselect] = "_newselect", [SYSCALL_TO_INDEX(__NR__newselect)] = "_newselect",
[__NR_getgroups32] = "getgroups32", [SYSCALL_TO_INDEX(__NR_getgroups32)] = "getgroups32",
[__NR_setns] = "setns", [SYSCALL_TO_INDEX(__NR_setns)] = "setns",
[__NR_fgetxattr] = "fgetxattr", [SYSCALL_TO_INDEX(__NR_fgetxattr)] = "fgetxattr",
[__NR_fchmod] = "fchmod", [SYSCALL_TO_INDEX(__NR_fchmod)] = "fchmod",
[__NR_timer_settime] = "timer_settime", [SYSCALL_TO_INDEX(__NR_timer_settime)] = "timer_settime",
[__NR_oldolduname] = "oldolduname", [SYSCALL_TO_INDEX(__NR_oldolduname)] = "oldolduname",
[__NR_sync] = "sync", [SYSCALL_TO_INDEX(__NR_sync)] = "sync",
[__NR_fanotify_mark] = "fanotify_mark", [SYSCALL_TO_INDEX(__NR_fanotify_mark)] = "fanotify_mark",
[__NR_syncfs] = "syncfs", [SYSCALL_TO_INDEX(__NR_syncfs)] = "syncfs",
[__NR_setsid] = "setsid", [SYSCALL_TO_INDEX(__NR_setsid)] = "setsid",
[__NR_setfsgid] = "setfsgid", [SYSCALL_TO_INDEX(__NR_setfsgid)] = "setfsgid",
[__NR_epoll_create] = "epoll_create", [SYSCALL_TO_INDEX(__NR_epoll_create)] = "epoll_create",
[__NR_tgkill] = "tgkill", [SYSCALL_TO_INDEX(__NR_tgkill)] = "tgkill",
[__NR_flock] = "flock", [SYSCALL_TO_INDEX(__NR_flock)] = "flock",
[__NR_capget] = "capget", [SYSCALL_TO_INDEX(__NR_capget)] = "capget",
[__NR_getpid] = "getpid", [SYSCALL_TO_INDEX(__NR_getpid)] = "getpid",
[__NR_add_key] = "add_key", [SYSCALL_TO_INDEX(__NR_add_key)] = "add_key",
[__NR_getrlimit] = "getrlimit", [SYSCALL_TO_INDEX(__NR_getrlimit)] = "getrlimit",
[__NR_set_robust_list] = "set_robust_list", [SYSCALL_TO_INDEX(__NR_set_robust_list)] = "set_robust_list",
[__NR_setresuid32] = "setresuid32", [SYSCALL_TO_INDEX(__NR_setresuid32)] = "setresuid32",
[__NR_waitpid] = "waitpid", [SYSCALL_TO_INDEX(__NR_waitpid)] = "waitpid",
[__NR_tkill] = "tkill", [SYSCALL_TO_INDEX(__NR_tkill)] = "tkill",
[__NR_epoll_wait] = "epoll_wait", [SYSCALL_TO_INDEX(__NR_epoll_wait)] = "epoll_wait",
[__NR_sethostname] = "sethostname", [SYSCALL_TO_INDEX(__NR_sethostname)] = "sethostname",
}; };
 End of changes. 1 change blocks. 
344 lines changed or deleted 344 lines changed or added


 timer.h   timer.h 
skipping to change at line 55 skipping to change at line 55
TIMER_CALENDAR, TIMER_CALENDAR,
_TIMER_BASE_MAX, _TIMER_BASE_MAX,
_TIMER_BASE_INVALID = -1 _TIMER_BASE_INVALID = -1
} TimerBase; } TimerBase;
typedef struct TimerValue { typedef struct TimerValue {
TimerBase base; TimerBase base;
bool disabled; bool disabled;
clockid_t clock_id; clockid_t clock_id;
usec_t value; usec_t value; /* only for monotonic events */
CalendarSpec *calendar_spec; CalendarSpec *calendar_spec; /* only for calendar events */
usec_t next_elapse; usec_t next_elapse;
LIST_FIELDS(struct TimerValue, value); LIST_FIELDS(struct TimerValue, value);
} TimerValue; } TimerValue;
typedef enum TimerResult { typedef enum TimerResult {
TIMER_SUCCESS, TIMER_SUCCESS,
TIMER_FAILURE_RESOURCES, TIMER_FAILURE_RESOURCES,
_TIMER_RESULT_MAX, _TIMER_RESULT_MAX,
_TIMER_RESULT_INVALID = -1 _TIMER_RESULT_INVALID = -1
skipping to change at line 87 skipping to change at line 87
UnitRef unit; UnitRef unit;
Watch monotonic_watch; Watch monotonic_watch;
Watch realtime_watch; Watch realtime_watch;
TimerResult result; TimerResult result;
}; };
void timer_unit_notify(Unit *u, UnitActiveState new_state); void timer_unit_notify(Unit *u, UnitActiveState new_state);
void timer_free_values(Timer *t);
extern const UnitVTable timer_vtable; extern const UnitVTable timer_vtable;
const char *timer_state_to_string(TimerState i); const char *timer_state_to_string(TimerState i);
TimerState timer_state_from_string(const char *s); TimerState timer_state_from_string(const char *s);
const char *timer_base_to_string(TimerBase i); const char *timer_base_to_string(TimerBase i);
TimerBase timer_base_from_string(const char *s); TimerBase timer_base_from_string(const char *s);
const char* timer_result_to_string(TimerResult i); const char* timer_result_to_string(TimerResult i);
TimerResult timer_result_from_string(const char *s); TimerResult timer_result_from_string(const char *s);
 End of changes. 2 change blocks. 
2 lines changed or deleted 4 lines changed or added


 transaction.h   transaction.h 
skipping to change at line 36 skipping to change at line 36
#include "unit.h" #include "unit.h"
#include "manager.h" #include "manager.h"
#include "job.h" #include "job.h"
#include "hashmap.h" #include "hashmap.h"
struct Transaction { struct Transaction {
/* Jobs to be added */ /* Jobs to be added */
Hashmap *jobs; /* Unit object => Job object list 1:1 */ Hashmap *jobs; /* Unit object => Job object list 1:1 */
Job *anchor_job; /* the job the user asked for */ Job *anchor_job; /* the job the user asked for */
bool irreversible;
}; };
Transaction *transaction_new(void); Transaction *transaction_new(bool irreversible);
void transaction_free(Transaction *tr); void transaction_free(Transaction *tr);
int transaction_add_job_and_dependencies( int transaction_add_job_and_dependencies(
Transaction *tr, Transaction *tr,
JobType type, JobType type,
Unit *unit, Unit *unit,
Job *by, Job *by,
bool matters, bool matters,
bool override, bool override,
bool conflicts, bool conflicts,
 End of changes. 2 change blocks. 
1 lines changed or deleted 2 lines changed or added


 udev.h   udev.h 
skipping to change at line 98 skipping to change at line 98
int udev_build_argv(struct udev *udev, char *cmd, int *argc, char *argv[]); int udev_build_argv(struct udev *udev, char *cmd, int *argc, char *argv[]);
/* udev-watch.c */ /* udev-watch.c */
int udev_watch_init(struct udev *udev); int udev_watch_init(struct udev *udev);
void udev_watch_restore(struct udev *udev); void udev_watch_restore(struct udev *udev);
void udev_watch_begin(struct udev *udev, struct udev_device *dev); void udev_watch_begin(struct udev *udev, struct udev_device *dev);
void udev_watch_end(struct udev *udev, struct udev_device *dev); void udev_watch_end(struct udev *udev, struct udev_device *dev);
struct udev_device *udev_watch_lookup(struct udev *udev, int wd); struct udev_device *udev_watch_lookup(struct udev *udev, int wd);
/* udev-node.c */ /* udev-node.c */
void udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t g id); void udev_node_add(struct udev_device *dev, bool apply, mode_t mode, uid_t uid, gid_t gid);
void udev_node_remove(struct udev_device *dev); void udev_node_remove(struct udev_device *dev);
void udev_node_update_old_links(struct udev_device *dev, struct udev_device *dev_old); void udev_node_update_old_links(struct udev_device *dev, struct udev_device *dev_old);
/* udev-ctrl.c */ /* udev-ctrl.c */
struct udev_ctrl; struct udev_ctrl;
struct udev_ctrl *udev_ctrl_new(struct udev *udev); struct udev_ctrl *udev_ctrl_new(struct udev *udev);
struct udev_ctrl *udev_ctrl_new_from_fd(struct udev *udev, int fd); struct udev_ctrl *udev_ctrl_new_from_fd(struct udev *udev, int fd);
int udev_ctrl_enable_receiving(struct udev_ctrl *uctrl); int udev_ctrl_enable_receiving(struct udev_ctrl *uctrl);
struct udev_ctrl *udev_ctrl_ref(struct udev_ctrl *uctrl); struct udev_ctrl *udev_ctrl_ref(struct udev_ctrl *uctrl);
struct udev_ctrl *udev_ctrl_unref(struct udev_ctrl *uctrl); struct udev_ctrl *udev_ctrl_unref(struct udev_ctrl *uctrl);
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 unit-name.h   unit-name.h 
skipping to change at line 97 skipping to change at line 97
char *unit_name_template(const char *f); char *unit_name_template(const char *f);
char *unit_name_from_path(const char *path, const char *suffix); char *unit_name_from_path(const char *path, const char *suffix);
char *unit_name_from_path_instance(const char *prefix, const char *path, co nst char *suffix); char *unit_name_from_path_instance(const char *prefix, const char *path, co nst char *suffix);
char *unit_name_to_path(const char *name); char *unit_name_to_path(const char *name);
char *unit_dbus_path_from_name(const char *name); char *unit_dbus_path_from_name(const char *name);
char *unit_name_mangle(const char *name); char *unit_name_mangle(const char *name);
char *snapshot_name_mangle(const char *name);
 End of changes. 1 change blocks. 
0 lines changed or deleted 0 lines changed or added


 unit.h   unit.h 
skipping to change at line 26 skipping to change at line 26
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/>.
***/ ***/
#include <stdbool.h> #include <stdbool.h>
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h>
typedef struct Unit Unit; typedef struct Unit Unit;
typedef struct UnitVTable UnitVTable; typedef struct UnitVTable UnitVTable;
typedef enum UnitActiveState UnitActiveState; typedef enum UnitActiveState UnitActiveState;
typedef enum UnitDependency UnitDependency; typedef enum UnitDependency UnitDependency;
typedef struct UnitRef UnitRef; typedef struct UnitRef UnitRef;
typedef struct UnitStatusMessageFormats UnitStatusMessageFormats; typedef struct UnitStatusMessageFormats UnitStatusMessageFormats;
#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"
#include "unit-name.h" #include "unit-name.h"
#include "cgroup-semantics.h"
enum UnitActiveState { enum UnitActiveState {
UNIT_ACTIVE, UNIT_ACTIVE,
UNIT_RELOADING, UNIT_RELOADING,
UNIT_INACTIVE, UNIT_INACTIVE,
UNIT_FAILED, UNIT_FAILED,
UNIT_ACTIVATING, UNIT_ACTIVATING,
UNIT_DEACTIVATING, UNIT_DEACTIVATING,
_UNIT_ACTIVE_STATE_MAX, _UNIT_ACTIVE_STATE_MAX,
_UNIT_ACTIVE_STATE_INVALID = -1 _UNIT_ACTIVE_STATE_INVALID = -1
skipping to change at line 273 skipping to change at line 275
#include "path.h" #include "path.h"
struct UnitVTable { struct UnitVTable {
/* How much memory does an object of this unit type need */ /* How much memory does an object of this unit type need */
size_t object_size; size_t object_size;
/* If greater than 0, the offset into the object where /* If greater than 0, the offset into the object where
* ExecContext is found, if the unit type has that */ * ExecContext is found, if the unit type has that */
size_t exec_context_offset; size_t exec_context_offset;
/* The name of the section with the exec settings of ExecContext */
const char *exec_section;
/* Config file sections this unit type understands, separated /* Config file sections this unit type understands, separated
* by NUL chars */ * by NUL chars */
const char *sections; const char *sections;
/* This should reset all type-specific variables. This should /* This should reset all type-specific variables. This should
* not allocate memory, and is called with zero-initialized * not allocate memory, and is called with zero-initialized
* data. It should hence only initialize variables that need * data. It should hence only initialize variables that need
* to be set != 0. */ * to be set != 0. */
void (*init)(Unit *u); void (*init)(Unit *u);
skipping to change at line 441 skipping to change at line 446
int unit_add_dependency_by_name(Unit *u, UnitDependency d, const char *name , const char *filename, bool add_reference); int unit_add_dependency_by_name(Unit *u, UnitDependency d, const char *name , const char *filename, bool add_reference);
int unit_add_two_dependencies_by_name(Unit *u, UnitDependency d, UnitDepend ency e, const char *name, const char *path, bool add_reference); int unit_add_two_dependencies_by_name(Unit *u, UnitDependency d, UnitDepend ency e, const char *name, const char *path, bool add_reference);
int unit_add_dependency_by_name_inverse(Unit *u, UnitDependency d, const ch ar *name, const char *filename, bool add_reference); int unit_add_dependency_by_name_inverse(Unit *u, UnitDependency d, const ch ar *name, const char *filename, bool add_reference);
int unit_add_two_dependencies_by_name_inverse(Unit *u, UnitDependency d, Un itDependency e, const char *name, const char *path, bool add_reference); int unit_add_two_dependencies_by_name_inverse(Unit *u, UnitDependency d, Un itDependency e, const char *name, const char *path, bool add_reference);
int unit_add_exec_dependencies(Unit *u, ExecContext *c); int unit_add_exec_dependencies(Unit *u, ExecContext *c);
int unit_add_cgroup(Unit *u, CGroupBonding *b); int unit_add_cgroup(Unit *u, CGroupBonding *b);
int unit_add_cgroup_from_text(Unit *u, const char *name); int unit_add_cgroup_from_text(Unit *u, const char *name, bool overwrite, CG roupBonding **ret);
int unit_add_default_cgroups(Unit *u); int unit_add_default_cgroups(Unit *u);
CGroupBonding* unit_get_default_cgroup(Unit *u); CGroupBonding* unit_get_default_cgroup(Unit *u);
int unit_add_cgroup_attribute(Unit *u, const char *controller, const char * name, const char *value, CGroupAttributeMapCallback map_callback); int unit_add_cgroup_attribute(Unit *u, const CGroupSemantics *semantics, co nst char *controller, const char *name, const char *value, CGroupAttribute **ret);
int unit_choose_id(Unit *u, const char *name); int unit_choose_id(Unit *u, const char *name);
int unit_set_description(Unit *u, const char *description); int unit_set_description(Unit *u, const char *description);
bool unit_check_gc(Unit *u); bool unit_check_gc(Unit *u);
void unit_add_to_load_queue(Unit *u); void unit_add_to_load_queue(Unit *u);
void unit_add_to_dbus_queue(Unit *u); void unit_add_to_dbus_queue(Unit *u);
void unit_add_to_cleanup_queue(Unit *u); void unit_add_to_cleanup_queue(Unit *u);
void unit_add_to_gc_queue(Unit *u); void unit_add_to_gc_queue(Unit *u);
skipping to change at line 518 skipping to change at line 523
bool unit_can_serialize(Unit *u); bool unit_can_serialize(Unit *u);
int unit_serialize(Unit *u, FILE *f, FDSet *fds, bool serialize_jobs); int unit_serialize(Unit *u, FILE *f, FDSet *fds, bool serialize_jobs);
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 *status, const char *format, .. .); void unit_status_printf(Unit *u, const char *status, const char *unit_statu s_msg_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 553 skipping to change at line 558
#define UNIT_DEREF(ref) ((ref).unit) #define UNIT_DEREF(ref) ((ref).unit)
int unit_add_one_mount_link(Unit *u, Mount *m); 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); ExecContext *unit_get_exec_context(Unit *u);
int unit_write_drop_in(Unit *u, bool runtime, const char *name, const char
*data);
int unit_remove_drop_in(Unit *u, bool runtime, const char *name);
int unit_kill_context(Unit *u, KillContext *c, bool sigkill, pid_t main_pid
, pid_t control_pid, bool main_pid_alien);
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);
#define log_full_unit(level, unit, ...) log_meta_object(level, __FILE__, __LINE__, __func__, "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__)
#define log_info_unit(unit, ...) log_full_unit(LOG_INFO, unit, __VA_ ARGS__) #define log_info_unit(unit, ...) log_full_unit(LOG_INFO, unit, __VA_ ARGS__)
#define log_notice_unit(unit, ...) log_full_unit(LOG_NOTICE, unit, __V A_ARGS__) #define log_notice_unit(unit, ...) log_full_unit(LOG_NOTICE, unit, __V A_ARGS__)
#define log_warning_unit(unit, ...) log_full_unit(LOG_WARNING, unit, __ VA_ARGS__) #define log_warning_unit(unit, ...) log_full_unit(LOG_WARNING, unit, __ VA_ARGS__)
#define log_error_unit(unit, ...) log_full_unit(LOG_ERR, unit, __VA_A RGS__) #define log_error_unit(unit, ...) log_full_unit(LOG_ERR, unit, __VA_A RGS__)
#define log_struct_unit(level, unit, ...) log_struct(level, getpid() == 1 ?
"UNIT=%s" : "USER_UNIT=%s", unit, __VA_ARGS__)
 End of changes. 9 change blocks. 
4 lines changed or deleted 16 lines changed or added


 utf8.h   utf8.h 
skipping to change at line 33 skipping to change at line 33
#include "macro.h" #include "macro.h"
char *utf8_is_valid(const char *s) _pure_; char *utf8_is_valid(const char *s) _pure_;
char *ascii_is_valid(const char *s) _pure_; char *ascii_is_valid(const char *s) _pure_;
char *utf8_is_printable_n(const char* str, size_t length) _pure_; char *utf8_is_printable_n(const char* str, size_t length) _pure_;
char *utf8_filter(const char *s); char *utf8_filter(const char *s);
char *ascii_filter(const char *s); char *ascii_filter(const char *s);
char *utf16_to_utf8(const void *s, size_t length);
 End of changes. 1 change blocks. 
0 lines changed or deleted 0 lines changed or added


 util.h   util.h 
skipping to change at line 58 skipping to change at line 58
/* What is interpreted as whitespace? */ /* What is interpreted as whitespace? */
#define WHITESPACE " \t\n\r" #define WHITESPACE " \t\n\r"
#define NEWLINE "\n\r" #define NEWLINE "\n\r"
#define QUOTES "\"\'" #define QUOTES "\"\'"
#define COMMENTS "#;\n" #define COMMENTS "#;\n"
#define FORMAT_BYTES_MAX 8 #define FORMAT_BYTES_MAX 8
#define ANSI_HIGHLIGHT_ON "\x1B[1;39m" #define ANSI_HIGHLIGHT_ON "\x1B[1;39m"
#define ANSI_RED_ON "\x1B[31m"
#define ANSI_HIGHLIGHT_RED_ON "\x1B[1;31m" #define ANSI_HIGHLIGHT_RED_ON "\x1B[1;31m"
#define ANSI_GREEN_ON "\x1B[32m"
#define ANSI_HIGHLIGHT_GREEN_ON "\x1B[1;32m" #define ANSI_HIGHLIGHT_GREEN_ON "\x1B[1;32m"
#define ANSI_HIGHLIGHT_YELLOW_ON "\x1B[1;33m" #define ANSI_HIGHLIGHT_YELLOW_ON "\x1B[1;33m"
#define ANSI_HIGHLIGHT_OFF "\x1B[0m" #define ANSI_HIGHLIGHT_OFF "\x1B[0m"
#define ANSI_ERASE_TO_END_OF_LINE "\x1B[K"
bool is_efiboot(void);
size_t page_size(void); size_t page_size(void);
#define PAGE_ALIGN(l) ALIGN_TO((l), page_size()) #define PAGE_ALIGN(l) ALIGN_TO((l), page_size())
#define streq(a,b) (strcmp((a),(b)) == 0) #define streq(a,b) (strcmp((a),(b)) == 0)
#define strneq(a, b, n) (strncmp((a), (b), (n)) == 0) #define strneq(a, b, n) (strncmp((a), (b), (n)) == 0)
#define strcaseeq(a,b) (strcasecmp((a),(b)) == 0)
#define strncaseeq(a, b, n) (strncasecmp((a), (b), (n)) == 0)
bool streq_ptr(const char *a, const char *b); bool streq_ptr(const char *a, const char *b);
#define new(t, n) ((t*) malloc_multiply(sizeof(t), (n))) #define new(t, n) ((t*) malloc_multiply(sizeof(t), (n)))
#define new0(t, n) ((t*) calloc((n), sizeof(t))) #define new0(t, n) ((t*) calloc((n), sizeof(t)))
#define newa(t, n) ((t*) alloca(sizeof(t)*(n))) #define newa(t, n) ((t*) alloca(sizeof(t)*(n)))
#define newdup(t, p, n) ((t*) memdup_multiply(p, sizeof(t), (n))) #define newdup(t, p, n) ((t*) memdup_multiply(p, sizeof(t), (n)))
skipping to change at line 125 skipping to change at line 128
int parse_pid(const char *s, pid_t* ret_pid); int parse_pid(const char *s, pid_t* ret_pid);
int parse_uid(const char *s, uid_t* ret_uid); int parse_uid(const char *s, uid_t* ret_uid);
#define parse_gid(s, ret_uid) parse_uid(s, ret_uid) #define parse_gid(s, ret_uid) parse_uid(s, ret_uid)
int safe_atou(const char *s, unsigned *ret_u); int safe_atou(const char *s, unsigned *ret_u);
int safe_atoi(const char *s, int *ret_i); int safe_atoi(const char *s, int *ret_i);
int safe_atollu(const char *s, unsigned long long *ret_u); int safe_atollu(const char *s, unsigned long long *ret_u);
int safe_atolli(const char *s, long long int *ret_i); int safe_atolli(const char *s, long long int *ret_i);
int safe_atod(const char *s, double *ret_d);
#if __WORDSIZE == 32 #if __WORDSIZE == 32
static inline int safe_atolu(const char *s, unsigned long *ret_u) { static inline int safe_atolu(const char *s, unsigned long *ret_u) {
assert_cc(sizeof(unsigned long) == sizeof(unsigned)); assert_cc(sizeof(unsigned long) == sizeof(unsigned));
return safe_atou(s, (unsigned*) ret_u); return safe_atou(s, (unsigned*) ret_u);
} }
static inline int safe_atoli(const char *s, long int *ret_u) { static inline int safe_atoli(const char *s, long int *ret_u) {
assert_cc(sizeof(long int) == sizeof(int)); assert_cc(sizeof(long int) == sizeof(int));
return safe_atoi(s, (int*) ret_u); return safe_atoi(s, (int*) ret_u);
} }
#else #else
skipping to change at line 180 skipping to change at line 185
#define FOREACH_WORD_SEPARATOR(word, length, s, separator, state) \ #define FOREACH_WORD_SEPARATOR(word, length, s, separator, state) \
for ((state) = NULL, (word) = split((s), &(length), (separator), &( state)); (word); (word) = split((s), &(length), (separator), &(state))) for ((state) = NULL, (word) = split((s), &(length), (separator), &( state)); (word); (word) = split((s), &(length), (separator), &(state)))
#define FOREACH_WORD_QUOTED(word, length, s, state) \ #define FOREACH_WORD_QUOTED(word, length, s, state) \
for ((state) = NULL, (word) = split_quoted((s), &(length), &(state) ); (word); (word) = split_quoted((s), &(length), &(state))) for ((state) = NULL, (word) = split_quoted((s), &(length), &(state) ); (word); (word) = split_quoted((s), &(length), &(state)))
pid_t get_parent_of_pid(pid_t pid, pid_t *ppid); pid_t get_parent_of_pid(pid_t pid, pid_t *ppid);
int get_starttime_of_pid(pid_t pid, unsigned long long *st); int get_starttime_of_pid(pid_t pid, unsigned long long *st);
int write_one_line_file(const char *fn, const char *line);
int write_one_line_file_atomic(const char *fn, const char *line);
int read_one_line_file(const char *fn, char **line);
int read_full_file(const char *fn, char **contents, size_t *size);
int parse_env_file(const char *fname, const char *separator, ...) _sentinel
_;
int load_env_file(const char *fname, char ***l);
int write_env_file(const char *fname, char **l);
char *strappend(const char *s, const char *suffix); char *strappend(const char *s, const char *suffix);
char *strnappend(const char *s, const char *suffix, size_t length); char *strnappend(const char *s, const char *suffix, size_t length);
char *replace_env(const char *format, char **env); char *replace_env(const char *format, char **env);
char **replace_env_argv(char **argv, char **env); char **replace_env_argv(char **argv, char **env);
int readlink_malloc(const char *p, char **r); int readlink_malloc(const char *p, char **r);
int readlink_and_make_absolute(const char *p, char **r); int readlink_and_make_absolute(const char *p, char **r);
int readlink_and_canonicalize(const char *p, char **r); int readlink_and_canonicalize(const char *p, char **r);
skipping to change at line 364 skipping to change at line 360
int rm_rf_children(int fd, bool only_dirs, bool honour_sticky, struct stat *root_dev); int rm_rf_children(int fd, bool only_dirs, bool honour_sticky, struct stat *root_dev);
int rm_rf_children_dangerous(int fd, bool only_dirs, bool honour_sticky, st ruct stat *root_dev); int rm_rf_children_dangerous(int fd, bool only_dirs, bool honour_sticky, st ruct stat *root_dev);
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 rm_rf_dangerous(const char *path, bool only_dirs, bool delete_root, boo l honour_sticky); int rm_rf_dangerous(const char *path, bool only_dirs, bool delete_root, boo l honour_sticky);
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);
int status_vprintf(const char *status, bool ellipse, const char *format, va int status_vprintf(const char *status, bool ellipse, bool ephemeral, const
_list ap); char *format, va_list ap);
int status_printf(const char *status, bool ellipse, const char *format, ... int status_printf(const char *status, bool ellipse, bool ephemeral, const c
); har *format, ...);
int status_welcome(void); int status_welcome(void);
int fd_columns(int fd); int fd_columns(int fd);
unsigned columns(void); unsigned columns(void);
int fd_lines(int fd); int fd_lines(int fd);
unsigned lines(void); unsigned lines(void);
void columns_lines_cache_reset(int _unused_ signum); void columns_lines_cache_reset(int _unused_ signum);
bool on_tty(void); bool on_tty(void);
skipping to change at line 398 skipping to change at line 394
_noreturn_ void freeze(void); _noreturn_ void freeze(void);
bool null_or_empty(struct stat *st); bool null_or_empty(struct stat *st);
int null_or_empty_path(const char *fn); int null_or_empty_path(const char *fn);
DIR *xopendirat(int dirfd, const char *name, int flags); DIR *xopendirat(int dirfd, const char *name, int flags);
char *fstab_node_to_udev_node(const char *p); char *fstab_node_to_udev_node(const char *p);
char *resolve_dev_console(char **active);
bool tty_is_vc(const char *tty); bool tty_is_vc(const char *tty);
bool tty_is_vc_resolve(const char *tty); bool tty_is_vc_resolve(const char *tty);
bool tty_is_console(const char *tty); bool tty_is_console(const char *tty);
int vtnr_from_tty(const char *tty); int vtnr_from_tty(const char *tty);
const char *default_term_for_tty(const char *tty); const char *default_term_for_tty(const char *tty);
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);
skipping to change at line 436 skipping to change at line 433
int fchmod_umask(int fd, mode_t mode); int fchmod_umask(int fd, mode_t mode);
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, const char **shell); int get_user_creds(const char **username, uid_t *uid, gid_t *gid, const cha r **home, const char **shell);
int get_group_creds(const char **groupname, gid_t *gid); int get_group_creds(const char **groupname, gid_t *gid);
int in_group(const char *name); int in_group(const char *name);
char* uid_to_name(uid_t uid);
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);
int in_search_path(const char *path, char **search); int in_search_path(const char *path, char **search);
int get_files_in_directory(const char *path, char ***list); int get_files_in_directory(const char *path, char ***list);
char *strjoin(const char *x, ...) _sentinel_; char *strjoin(const char *x, ...) _sentinel_;
bool is_main_thread(void); bool is_main_thread(void);
skipping to change at line 525 skipping to change at line 524
bool in_initrd(void); bool in_initrd(void);
void warn_melody(void); void warn_melody(void);
int get_shell(char **ret); int get_shell(char **ret);
int get_home_dir(char **ret); int get_home_dir(char **ret);
void freep(void *p); void freep(void *p);
void fclosep(FILE **f); void fclosep(FILE **f);
void pclosep(FILE **f);
void closep(int *fd); void closep(int *fd);
void closedirp(DIR **d); void closedirp(DIR **d);
void umaskp(mode_t *u); void umaskp(mode_t *u);
_malloc_ static inline void *malloc_multiply(size_t a, size_t b) { _malloc_ static inline void *malloc_multiply(size_t a, size_t b) {
if (_unlikely_(b == 0 || a > ((size_t) -1) / b)) if (_unlikely_(b == 0 || a > ((size_t) -1) / b))
return NULL; return NULL;
return malloc(a * b); return malloc(a * b);
} }
_malloc_ static inline void *memdup_multiply(const void *p, size_t a, size_ t b) { _malloc_ static inline void *memdup_multiply(const void *p, size_t a, size_ t b) {
if (_unlikely_(b == 0 || a > ((size_t) -1) / b)) if (_unlikely_(b == 0 || a > ((size_t) -1) / b))
return NULL; return NULL;
return memdup(p, a * b); return memdup(p, a * b);
} }
bool filename_is_safe(const char *p); bool filename_is_safe(const char *p);
bool path_is_safe(const char *p);
bool string_is_safe(const char *p); bool string_is_safe(const char *p);
bool string_has_cc(const char *p);
void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t si ze, void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t si ze,
int (*compar) (const void *, const void *, void *), int (*compar) (const void *, const void *, void *),
void *arg); void *arg);
bool is_locale_utf8(void); bool is_locale_utf8(void);
typedef enum DrawSpecialChar { typedef enum DrawSpecialChar {
DRAW_TREE_VERT, DRAW_TREE_VERT,
DRAW_TREE_BRANCH, DRAW_TREE_BRANCH,
DRAW_TREE_RIGHT, DRAW_TREE_RIGHT,
DRAW_TREE_SPACE,
DRAW_TRIANGULAR_BULLET, DRAW_TRIANGULAR_BULLET,
_DRAW_SPECIAL_CHAR_MAX _DRAW_SPECIAL_CHAR_MAX
} DrawSpecialChar; } DrawSpecialChar;
const char *draw_special_char(DrawSpecialChar ch); const char *draw_special_char(DrawSpecialChar ch);
char *strreplace(const char *text, const char *old_string, const char *new_ string); char *strreplace(const char *text, const char *old_string, const char *new_ string);
char *strip_tab_ansi(char **p, size_t *l); char *strip_tab_ansi(char **p, size_t *l);
int on_ac_power(void); int on_ac_power(void);
int search_and_fopen(const char *path, const char *mode, const char **searc
h, FILE **_f);
int search_and_fopen_nulstr(const char *path, const char *mode, const char
*search, FILE **_f);
#define FOREACH_LINE(line, f, on_error) \
for (;;) \
if (!fgets(line, sizeof(line), f)) { \
if (ferror(f)) { \
on_error; \
} \
break; \
} else
#define FOREACH_DIRENT(de, d, on_error) \
for (errno = 0, de = readdir(d);; errno = 0, de = readdir(d)) \
if (!de) { \
if (errno != 0) { \
on_error; \
} \
break; \
} else if (ignore_file((de)->d_name)) \
continue; \
else
 End of changes. 14 change blocks. 
16 lines changed or deleted 18 lines changed or added

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