config.h   config.h 
skipping to change at line 100 skipping to change at line 100
/* Define to 1 if you have the <libaudit.h> header file. */ /* Define to 1 if you have the <libaudit.h> header file. */
#define HAVE_LIBAUDIT_H 1 #define HAVE_LIBAUDIT_H 1
/* Define if libcryptsetup is available */ /* Define if libcryptsetup is available */
/* #undef HAVE_LIBCRYPTSETUP */ /* #undef HAVE_LIBCRYPTSETUP */
/* Have tcpwrap? */ /* Have tcpwrap? */
#define HAVE_LIBWRAP /**/ #define HAVE_LIBWRAP /**/
/* Define to 1 if you have the <linux/btrfs.h> header file. */
/* #undef HAVE_LINUX_BTRFS_H */
/* Logind support available */ /* Logind support available */
#define HAVE_LOGIND 1 #define HAVE_LOGIND 1
/* Machined support available */ /* Machined support available */
#define HAVE_MACHINED 1 #define HAVE_MACHINED 1
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and /* Define to 1 if your system has a GNU libc compatible `malloc' function, and
to 0 otherwise. */ to 0 otherwise. */
#define HAVE_MALLOC 1 #define HAVE_MALLOC 1
skipping to change at line 256 skipping to change at line 259
/* 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 206" #define PACKAGE_STRING "systemd 207"
/* 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 "206" #define PACKAGE_VERSION "207"
/* 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 316 skipping to change at line 319
/* 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 "206" #define VERSION "207"
/* 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 6 lines changed or added


 dbus-kill.h   dbus-kill.h 
skipping to change at line 32 skipping to change at line 32
***/ ***/
#include <dbus/dbus.h> #include <dbus/dbus.h>
#include "manager.h" #include "manager.h"
#include "dbus-common.h" #include "dbus-common.h"
#define BUS_KILL_CONTEXT_INTERFACE \ #define BUS_KILL_CONTEXT_INTERFACE \
" <property name=\"KillMode\" type=\"s\" access=\"read\"/>\n" \ " <property name=\"KillMode\" type=\"s\" access=\"read\"/>\n" \
" <property name=\"KillSignal\" type=\"i\" access=\"read\"/>\n" \ " <property name=\"KillSignal\" type=\"i\" access=\"read\"/>\n" \
" <property name=\"SendSIGKILL\" type=\"b\" access=\"read\"/>\n" " <property name=\"SendSIGKILL\" type=\"b\" access=\"read\"/>\n" \
" <property name=\"SendSIGHUP\" type=\"b\" access=\"read\"/>\n"
#define BUS_KILL_COMMAND_INTERFACE(name) \
" <property name=\"" name "\" type=\"a(sasbttuii)\" access=\"read\
"/>\n"
extern const BusProperty bus_kill_context_properties[]; extern const BusProperty bus_kill_context_properties[];
int bus_kill_append_mode(DBusMessageIter *i, const char *property, void *da ta); int bus_kill_context_set_transient_property(Unit *u, KillContext *c, const char *name, DBusMessageIter *i, UnitSetPropertiesMode mode, DBusError *erro r);
 End of changes. 2 change blocks. 
5 lines changed or deleted 2 lines changed or added


 fileio.h   fileio.h 
skipping to change at line 38 skipping to change at line 38
int write_string_to_file(FILE *f, const char *line); int write_string_to_file(FILE *f, const char *line);
int write_string_file(const char *fn, const char *line); int write_string_file(const char *fn, const char *line);
int write_string_file_atomic(const char *fn, const char *line); int write_string_file_atomic(const char *fn, const char *line);
int read_one_line_file(const char *fn, 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 read_full_file(const char *fn, char **contents, size_t *size);
int parse_env_file(const char *fname, const char *separator, ...) _sentinel _; int parse_env_file(const char *fname, const char *separator, ...) _sentinel _;
int load_env_file(const char *fname, const char *separator, char ***l); int load_env_file(const char *fname, const char *separator, char ***l);
int write_env_file(const char *fname, char **l); int write_env_file(const char *fname, char **l);
int executable_is_script(const char *path, char **interpreter);
 End of changes. 1 change blocks. 
0 lines changed or deleted 0 lines changed or added


 journald-server.h   journald-server.h 
skipping to change at line 156 skipping to change at line 156
const char *split_mode_to_string(SplitMode s) _const_; const char *split_mode_to_string(SplitMode s) _const_;
SplitMode split_mode_from_string(const char *s) _pure_; SplitMode split_mode_from_string(const char *s) _pure_;
void server_fix_perms(Server *s, JournalFile *f, uid_t uid); void server_fix_perms(Server *s, JournalFile *f, uid_t uid);
bool shall_try_append_again(JournalFile *f, int r); bool shall_try_append_again(JournalFile *f, int r);
int server_init(Server *s); int server_init(Server *s);
void server_done(Server *s); void server_done(Server *s);
void server_sync(Server *s); void server_sync(Server *s);
void server_vacuum(Server *s); void server_vacuum(Server *s);
void server_rotate(Server *s); void server_rotate(Server *s);
int server_schedule_sync(Server *s); int server_schedule_sync(Server *s, int priority);
int server_flush_to_var(Server *s); int server_flush_to_var(Server *s);
int process_event(Server *s, struct epoll_event *ev); int process_event(Server *s, struct epoll_event *ev);
void server_maybe_append_tags(Server *s); void server_maybe_append_tags(Server *s);
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 journald-syslog.h   journald-syslog.h 
skipping to change at line 28 skipping to change at line 28
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 "journald-server.h" #include "journald-server.h"
int syslog_fixup_facility(int priority) _const_; int syslog_fixup_facility(int priority) _const_;
void syslog_parse_priority(char **p, int *priority); void syslog_parse_priority(char **p, int *priority, bool with_facility);
size_t syslog_parse_identifier(const char **buf, char **identifier, char ** pid); size_t syslog_parse_identifier(const char **buf, char **identifier, char ** pid);
void server_forward_syslog(Server *s, int priority, const char *identifier, const char *message, struct ucred *ucred, struct timeval *tv); void server_forward_syslog(Server *s, int priority, const char *identifier, const char *message, struct ucred *ucred, struct timeval *tv);
void server_process_syslog_message(Server *s, const char *buf, struct ucred *ucred, struct timeval *tv, const char *label, size_t label_len); void server_process_syslog_message(Server *s, const char *buf, struct ucred *ucred, struct timeval *tv, const char *label, size_t label_len);
int server_open_syslog_socket(Server *s); int server_open_syslog_socket(Server *s);
void server_maybe_warn_forward_syslog_missed(Server *s); void server_maybe_warn_forward_syslog_missed(Server *s);
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 kill.h   kill.h 
skipping to change at line 44 skipping to change at line 44
KILL_PROCESS, KILL_PROCESS,
KILL_NONE, KILL_NONE,
_KILL_MODE_MAX, _KILL_MODE_MAX,
_KILL_MODE_INVALID = -1 _KILL_MODE_INVALID = -1
} KillMode; } KillMode;
struct KillContext { struct KillContext {
KillMode kill_mode; KillMode kill_mode;
int kill_signal; int kill_signal;
bool send_sigkill; bool send_sigkill;
bool send_sighup;
}; };
typedef enum KillWho { typedef enum KillWho {
/* Kill who is a property of an operation */ /* Kill who is a property of an operation */
KILL_MAIN, KILL_MAIN,
KILL_CONTROL, KILL_CONTROL,
KILL_ALL, KILL_ALL,
_KILL_WHO_MAX, _KILL_WHO_MAX,
_KILL_WHO_INVALID = -1 _KILL_WHO_INVALID = -1
} KillWho; } KillWho;
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 label.h   label.h 
skipping to change at line 43 skipping to change at line 43
int label_socket_set(const char *label); int label_socket_set(const char *label);
void label_socket_clear(void); void label_socket_clear(void);
int label_context_set(const char *path, mode_t mode); int label_context_set(const char *path, mode_t mode);
void label_context_clear(void); void label_context_clear(void);
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);
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_one_line_file_atomic(const char *fn, const char *line);
int label_write_env_file(const char *fname, char **l); int label_write_env_file(const char *fname, char **l);
int label_fopen_temporary(const char *path, FILE **_f, char **_temp_path); int label_fopen_temporary(const char *path, FILE **_f, char **_temp_path);
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 locale-setup.h   locale-setup.h 
skipping to change at line 24 skipping to change at line 24
systemd is distributed in the hope that it will be useful, but systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details. Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>. along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/ ***/
int locale_setup(void); int locale_setup(char ***environment);
 End of changes. 1 change blocks. 
0 lines changed or deleted 0 lines changed or added


 logind-session.h   logind-session.h 
skipping to change at line 104 skipping to change at line 104
uint32_t audit_id; uint32_t audit_id;
int fifo_fd; int fifo_fd;
char *fifo_path; char *fifo_path;
bool idle_hint; bool idle_hint;
dual_timestamp idle_hint_timestamp; dual_timestamp idle_hint_timestamp;
bool in_gc_queue:1; bool in_gc_queue:1;
bool started:1; bool started:1;
bool closing:1;
DBusMessage *create_message; DBusMessage *create_message;
LIST_FIELDS(Session, sessions_by_user); LIST_FIELDS(Session, sessions_by_user);
LIST_FIELDS(Session, sessions_by_seat); LIST_FIELDS(Session, sessions_by_seat);
LIST_FIELDS(Session, gc_queue); LIST_FIELDS(Session, gc_queue);
}; };
Session *session_new(Manager *m, const char *id); Session *session_new(Manager *m, const char *id);
skipping to change at line 126 skipping to change at line 127
int session_check_gc(Session *s, bool drop_not_started); int session_check_gc(Session *s, bool drop_not_started);
void session_add_to_gc_queue(Session *s); void session_add_to_gc_queue(Session *s);
int session_activate(Session *s); int session_activate(Session *s);
bool session_is_active(Session *s); bool session_is_active(Session *s);
int session_get_idle_hint(Session *s, dual_timestamp *t); int session_get_idle_hint(Session *s, dual_timestamp *t);
void session_set_idle_hint(Session *s, bool b); void session_set_idle_hint(Session *s, bool b);
int session_create_fifo(Session *s); int session_create_fifo(Session *s);
void session_remove_fifo(Session *s); void session_remove_fifo(Session *s);
int session_start(Session *s); int session_start(Session *s);
int session_stop(Session *s); int session_stop(Session *s);
int session_finalize(Session *s);
int session_save(Session *s); int session_save(Session *s);
int session_load(Session *s); int session_load(Session *s);
int session_kill(Session *s, KillWho who, int signo); int session_kill(Session *s, KillWho who, int signo);
char *session_bus_path(Session *s); char *session_bus_path(Session *s);
SessionState session_get_state(Session *u); SessionState session_get_state(Session *u);
extern const DBusObjectPathVTable bus_session_vtable; extern const DBusObjectPathVTable bus_session_vtable;
 End of changes. 2 change blocks. 
0 lines changed or deleted 2 lines changed or added


 logind-user.h   logind-user.h 
skipping to change at line 64 skipping to change at line 64
char *service_job; char *service_job;
char *slice_job; char *slice_job;
Session *display; Session *display;
dual_timestamp timestamp; dual_timestamp timestamp;
bool in_gc_queue:1; bool in_gc_queue:1;
bool started:1; bool started:1;
bool slice_created:1; bool closing:1;
bool service_created:1;
LIST_HEAD(Session, sessions); LIST_HEAD(Session, sessions);
LIST_FIELDS(User, gc_queue); LIST_FIELDS(User, gc_queue);
}; };
User* user_new(Manager *m, uid_t uid, gid_t gid, const char *name); User* user_new(Manager *m, uid_t uid, gid_t gid, const char *name);
void user_free(User *u); void user_free(User *u);
int user_check_gc(User *u, bool drop_not_started); int user_check_gc(User *u, bool drop_not_started);
void user_add_to_gc_queue(User *u); void user_add_to_gc_queue(User *u);
int user_start(User *u); int user_start(User *u);
int user_stop(User *u); int user_stop(User *u);
int user_finalize(User *u);
UserState user_get_state(User *u); UserState user_get_state(User *u);
int user_get_idle_hint(User *u, dual_timestamp *t); int user_get_idle_hint(User *u, dual_timestamp *t);
int user_save(User *u); int user_save(User *u);
int user_load(User *u); int user_load(User *u);
int user_kill(User *u, int signo); int user_kill(User *u, int signo);
char *user_bus_path(User *s); char *user_bus_path(User *s);
extern const DBusObjectPathVTable bus_user_vtable; extern const DBusObjectPathVTable bus_user_vtable;
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 logind.h   logind.h 
skipping to change at line 166 skipping to change at line 166
int manager_enumerate_sessions(Manager *m); int manager_enumerate_sessions(Manager *m);
int manager_enumerate_users(Manager *m); int manager_enumerate_users(Manager *m);
int manager_enumerate_inhibitors(Manager *m); int manager_enumerate_inhibitors(Manager *m);
int manager_startup(Manager *m); int manager_startup(Manager *m);
int manager_run(Manager *m); int manager_run(Manager *m);
int manager_spawn_autovt(Manager *m, int vtnr); int manager_spawn_autovt(Manager *m, int vtnr);
void manager_gc(Manager *m, bool drop_not_started); void manager_gc(Manager *m, bool drop_not_started);
bool manager_shall_kill(Manager *m, const char *user);
int manager_get_idle_hint(Manager *m, dual_timestamp *t); int manager_get_idle_hint(Manager *m, dual_timestamp *t);
int manager_get_user_by_pid(Manager *m, pid_t pid, User **user); int manager_get_user_by_pid(Manager *m, pid_t pid, User **user);
int manager_get_session_by_pid(Manager *m, pid_t pid, Session **session); int manager_get_session_by_pid(Manager *m, pid_t pid, Session **session);
extern const DBusObjectPathVTable bus_manager_vtable; extern const DBusObjectPathVTable bus_manager_vtable;
DBusHandlerResult bus_message_filter(DBusConnection *c, DBusMessage *messag e, void *userdata); DBusHandlerResult bus_message_filter(DBusConnection *c, DBusMessage *messag e, void *userdata);
int bus_manager_shutdown_or_sleep_now_or_later(Manager *m, const char *unit _name, InhibitWhat w, DBusError *error); int bus_manager_shutdown_or_sleep_now_or_later(Manager *m, const char *unit _name, InhibitWhat w, DBusError *error);
int manager_send_changed(Manager *manager, const char *properties); int manager_send_changed(Manager *manager, const char *properties);
int manager_dispatch_delayed(Manager *manager); int manager_dispatch_delayed(Manager *manager);
int manager_start_scope(Manager *manager, const char *scope, pid_t pid, con st char *slice, const char *description, const char *after, DBusError *erro r, char **job); int manager_start_scope(Manager *manager, const char *scope, pid_t pid, con st char *slice, const char *description, const char *after, const char *kil l_mode, DBusError *error, char **job);
int manager_start_unit(Manager *manager, const char *unit, DBusError *error , char **job); int manager_start_unit(Manager *manager, const char *unit, DBusError *error , char **job);
int manager_stop_unit(Manager *manager, const char *unit, DBusError *error, char **job); int manager_stop_unit(Manager *manager, const char *unit, DBusError *error, char **job);
int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo, DBusError *error); int manager_kill_unit(Manager *manager, const char *unit, KillWho who, int signo, DBusError *error);
int manager_unit_is_active(Manager *manager, const char *unit); int manager_unit_is_active(Manager *manager, const char *unit);
/* gperf lookup function */ /* gperf lookup function */
const struct ConfigPerfItem* logind_gperf_lookup(const char *key, unsigned length); const struct ConfigPerfItem* logind_gperf_lookup(const char *key, unsigned length);
 End of changes. 2 change blocks. 
1 lines changed or deleted 3 lines changed or added


 logs-show.h   logs-show.h 
skipping to change at line 38 skipping to change at line 38
#include <systemd/sd-journal.h> #include <systemd/sd-journal.h>
#include "util.h" #include "util.h"
#include "output-mode.h" #include "output-mode.h"
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,
bool *ellipsized);
int add_match_this_boot(sd_journal *j); int add_match_this_boot(sd_journal *j);
int add_matches_for_unit( int add_matches_for_unit(
sd_journal *j, sd_journal *j,
const char *unit); const char *unit);
int add_matches_for_user_unit( int add_matches_for_user_unit(
sd_journal *j, sd_journal *j,
const char *unit, const char *unit,
skipping to change at line 60 skipping to change at line 61
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,
uid_t uid, uid_t uid,
OutputFlags flags, OutputFlags flags,
bool system); bool system,
bool *ellipsized);
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_; const char* output_mode_to_string(OutputMode m) _const_;
OutputMode output_mode_from_string(const char *s) _pure_; OutputMode output_mode_from_string(const char *s) _pure_;
 End of changes. 2 change blocks. 
2 lines changed or deleted 4 lines changed or added


 macro.h   macro.h 
skipping to change at line 189 skipping to change at line 189
#define PTR_TO_UINT64(p) ((uint64_t) ((uintptr_t) (p))) #define PTR_TO_UINT64(p) ((uint64_t) ((uintptr_t) (p)))
#define UINT64_TO_PTR(u) ((void *) ((uintptr_t) (u))) #define UINT64_TO_PTR(u) ((void *) ((uintptr_t) (u)))
#define memzero(x,l) (memset((x), 0, (l))) #define memzero(x,l) (memset((x), 0, (l)))
#define zero(x) (memzero(&(x), sizeof(x))) #define zero(x) (memzero(&(x), sizeof(x)))
#define CHAR_TO_STR(x) ((char[2]) { x, 0 }) #define CHAR_TO_STR(x) ((char[2]) { x, 0 })
#define char_array_0(x) x[sizeof(x)-1] = 0; #define char_array_0(x) x[sizeof(x)-1] = 0;
#define hasprefix(s, prefix) (memcmp(s, prefix, strlen(prefix)) == 0)
#define IOVEC_SET_STRING(i, s) \ #define IOVEC_SET_STRING(i, s) \
do { \ do { \
struct iovec *_i = &(i); \ struct iovec *_i = &(i); \
char *_s = (char *)(s); \ char *_s = (char *)(s); \
_i->iov_base = _s; \ _i->iov_base = _s; \
_i->iov_len = strlen(_s); \ _i->iov_len = strlen(_s); \
} while(false) } while(false)
static inline size_t IOVEC_TOTAL_SIZE(const struct iovec *i, unsigned n) { static inline size_t IOVEC_TOTAL_SIZE(const struct iovec *i, unsigned n) {
unsigned j; unsigned j;
skipping to change at line 276 skipping to change at line 274
default: \ default: \
assert_not_reached("Unknown format string argument. "); \ assert_not_reached("Unknown format string argument. "); \
} \ } \
} \ } \
} while(false) } while(false)
/* Because statfs.t_type can be int on some architecures, we have to cast /* Because statfs.t_type can be int on some architecures, we have to cast
* the const magic to the type, otherwise the compiler warns about * the const magic to the type, otherwise the compiler warns about
* signed/unsigned comparison, because the magic can be 32 bit unsigned. * signed/unsigned comparison, because the magic can be 32 bit unsigned.
*/ */
#define F_TYPE_CMP(a, b) (a == (typeof(a)) b) #define F_TYPE_EQUAL(a, b) (a == (typeof(a)) b)
/* Returns the number of chars needed to format variables of the /* Returns the number of chars needed to format variables of the
* specified type as a decimal string. Adds in extra space for a * specified type as a decimal string. Adds in extra space for a
* negative '-' prefix. */ * negative '-' prefix. */
#define DECIMAL_STR_MAX(type) \ #define DECIMAL_STR_MAX(type) \
(1+(sizeof(type) <= 1 ? 3 : \ (1+(sizeof(type) <= 1 ? 3 : \
sizeof(type) <= 2 ? 5 : \ sizeof(type) <= 2 ? 5 : \
sizeof(type) <= 4 ? 10 : \ sizeof(type) <= 4 ? 10 : \
sizeof(type) <= 8 ? 20 : sizeof(int[-2*(sizeof(type) > 8)]))) sizeof(type) <= 8 ? 20 : sizeof(int[-2*(sizeof(type) > 8)])))
 End of changes. 2 change blocks. 
3 lines changed or deleted 1 lines changed or added


 manager.h   manager.h 
skipping to change at line 284 skipping to change at line 284
void manager_dump_units(Manager *s, FILE *f, const char *prefix); void manager_dump_units(Manager *s, FILE *f, const char *prefix);
void manager_dump_jobs(Manager *s, FILE *f, const char *prefix); void manager_dump_jobs(Manager *s, FILE *f, const char *prefix);
void manager_clear_jobs(Manager *m); void manager_clear_jobs(Manager *m);
unsigned manager_dispatch_load_queue(Manager *m); unsigned manager_dispatch_load_queue(Manager *m);
unsigned manager_dispatch_run_queue(Manager *m); unsigned manager_dispatch_run_queue(Manager *m);
unsigned manager_dispatch_dbus_queue(Manager *m); unsigned manager_dispatch_dbus_queue(Manager *m);
int manager_set_default_environment(Manager *m, char **environment); int manager_environment_add(Manager *m, char **environment);
int manager_set_default_rlimits(Manager *m, struct rlimit **default_rlimit) ; int manager_set_default_rlimits(Manager *m, struct rlimit **default_rlimit) ;
int manager_loop(Manager *m); int manager_loop(Manager *m);
void manager_dispatch_bus_name_owner_changed(Manager *m, const char *name, const char* old_owner, const char *new_owner); void manager_dispatch_bus_name_owner_changed(Manager *m, const char *name, const char* old_owner, const char *new_owner);
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 switching_root) ; int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool switching_root) ;
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 missing.h   missing.h 
skipping to change at line 165 skipping to change at line 165
#endif #endif
#ifndef BTRFS_IOCTL_MAGIC #ifndef BTRFS_IOCTL_MAGIC
#define BTRFS_IOCTL_MAGIC 0x94 #define BTRFS_IOCTL_MAGIC 0x94
#endif #endif
#ifndef BTRFS_PATH_NAME_MAX #ifndef BTRFS_PATH_NAME_MAX
#define BTRFS_PATH_NAME_MAX 4087 #define BTRFS_PATH_NAME_MAX 4087
#endif #endif
#ifndef BTRFS_DEVICE_PATH_NAME_MAX
#define BTRFS_DEVICE_PATH_NAME_MAX 1024
#endif
#ifndef BTRFS_FSID_SIZE
#define BTRFS_FSID_SIZE 16
#endif
#ifndef BTRFS_UUID_SIZE
#define BTRFS_UUID_SIZE 16
#endif
#ifndef HAVE_LINUX_BTRFS_H
struct btrfs_ioctl_vol_args { struct btrfs_ioctl_vol_args {
int64_t fd; int64_t fd;
char name[BTRFS_PATH_NAME_MAX + 1]; char name[BTRFS_PATH_NAME_MAX + 1];
}; };
struct btrfs_ioctl_dev_info_args {
uint64_t devid; /* in/out */
uint8_t uuid[BTRFS_UUID_SIZE]; /* in/out */
uint64_t bytes_used; /* out */
uint64_t total_bytes; /* out */
uint64_t unused[379]; /* pad to 4k */
char path[BTRFS_DEVICE_PATH_NAME_MAX]; /* out */
};
struct btrfs_ioctl_fs_info_args {
uint64_t max_id; /* out */
uint64_t num_devices; /* out */
uint8_t fsid[BTRFS_FSID_SIZE]; /* out */
uint64_t reserved[124]; /* pad to 1k */
};
#endif
#ifndef BTRFS_IOC_DEFRAG #ifndef BTRFS_IOC_DEFRAG
#define BTRFS_IOC_DEFRAG _IOW(BTRFS_IOCTL_MAGIC, 2, struct btrfs_ioctl_vol_ args) #define BTRFS_IOC_DEFRAG _IOW(BTRFS_IOCTL_MAGIC, 2, struct btrfs_ioctl_vol_ args)
#endif #endif
#ifndef BTRFS_IOC_DEV_INFO
#define BTRFS_IOC_DEV_INFO _IOWR(BTRFS_IOCTL_MAGIC, 30, \
struct btrfs_ioctl_dev_info_args)
#endif
#ifndef BTRFS_IOC_FS_INFO
#define BTRFS_IOC_FS_INFO _IOR(BTRFS_IOCTL_MAGIC, 31, \
struct btrfs_ioctl_fs_info_args)
#endif
#ifndef BTRFS_SUPER_MAGIC #ifndef BTRFS_SUPER_MAGIC
#define BTRFS_SUPER_MAGIC 0x9123683E #define BTRFS_SUPER_MAGIC 0x9123683E
#endif #endif
#ifndef MS_MOVE #ifndef MS_MOVE
#define MS_MOVE 8192 #define MS_MOVE 8192
#endif #endif
#ifndef MS_PRIVATE #ifndef MS_PRIVATE
#define MS_PRIVATE (1 << 18) #define MS_PRIVATE (1 << 18)
 End of changes. 3 change blocks. 
0 lines changed or deleted 40 lines changed or added


 mkdir.h   mkdir.h 
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
#ifndef foomkdirhfoo #ifndef foomkdirhfoo
#define foomkdirhfoo #define foomkdirhfoo
/*** /***
This file is part of systemd. This file is part of systemd.
Copyright 2010 Lennart Poettering Copyright 2010 Lennart Poettering
Copyright 2013 Kay Sievers
systemd is free software; you can redistribute it and/or modify it systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version. (at your option) any later version.
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 <sys/types.h> #include <sys/types.h>
int mkdir_label(const char *path, mode_t mode);
int mkdir_safe(const char *path, mode_t mode, uid_t uid, gid_t gid); int mkdir_safe(const char *path, mode_t mode, uid_t uid, gid_t gid);
int mkdir_safe_label(const char *path, mode_t mode, uid_t uid, gid_t gid);
int mkdir_parents(const char *path, mode_t mode); int mkdir_parents(const char *path, mode_t mode);
int mkdir_parents_label(const char *path, mode_t mode);
int mkdir_parents_prefix(const char *prefix, const char *path, mode_t mode)
;
int mkdir_p(const char *path, mode_t mode); int mkdir_p(const char *path, mode_t mode);
int mkdir_p_label(const char *path, mode_t mode);
int mkdir_p_prefix(const char *prefix, const char *path, mode_t mode); int mkdir_p_prefix(const char *prefix, const char *path, mode_t mode);
/* selinux versions */
int mkdir_label(const char *path, mode_t mode);
int mkdir_safe_label(const char *path, mode_t mode, uid_t uid, gid_t gid);
int mkdir_parents_label(const char *path, mode_t mode);
int mkdir_p_label(const char *path, mode_t mode);
int mkdir_parents_prefix_label(const char *prefix, const char *path, mode_t
mode);
/* internally used */
typedef int (*mkdir_func_t)(const char *pathname, mode_t mode);
int mkdir_safe_internal(const char *path, mode_t mode, uid_t uid, gid_t gid
, mkdir_func_t _mkdir);
int mkdir_parents_internal(const char *prefix, const char *path, mode_t mod
e, mkdir_func_t _mkdir);
int mkdir_p_internal(const char *prefix, const char *path, mode_t mode, mkd
ir_func_t _mkdir);
#endif #endif
 End of changes. 6 change blocks. 
9 lines changed or deleted 17 lines changed or added


 output-mode.h   output-mode.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 enum OutputMode { typedef enum OutputMode {
OUTPUT_SHORT, OUTPUT_SHORT,
OUTPUT_SHORT_MONOTONIC,
OUTPUT_SHORT_ISO, OUTPUT_SHORT_ISO,
OUTPUT_SHORT_PRECISE,
OUTPUT_SHORT_MONOTONIC,
OUTPUT_VERBOSE, OUTPUT_VERBOSE,
OUTPUT_EXPORT, OUTPUT_EXPORT,
OUTPUT_JSON, OUTPUT_JSON,
OUTPUT_JSON_PRETTY, OUTPUT_JSON_PRETTY,
OUTPUT_JSON_SSE, OUTPUT_JSON_SSE,
OUTPUT_CAT, OUTPUT_CAT,
_OUTPUT_MODE_MAX, _OUTPUT_MODE_MAX,
_OUTPUT_MODE_INVALID = -1 _OUTPUT_MODE_INVALID = -1
} OutputMode; } OutputMode;
 End of changes. 2 change blocks. 
1 lines changed or deleted 2 lines changed or added


 path-util.h   path-util.h 
skipping to change at line 28 skipping to change at line 28
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 "macro.h" #include "macro.h"
#ifdef HAVE_SPLIT_USR
# define DEFAULT_PATH "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/
sbin:/bin"
#else
# define DEFAULT_PATH "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
#endif
bool is_path(const char *p) _pure_; bool is_path(const char *p) _pure_;
char** path_split_and_make_absolute(const char *p); char** path_split_and_make_absolute(const char *p);
char* path_get_file_name(const char *p) _pure_; char* path_get_file_name(const char *p) _pure_;
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) _pure_; bool path_is_absolute(const char *p) _pure_;
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) _pure_; char* path_startswith(const char *path, const char *prefix) _pure_;
bool path_equal(const char *a, const char *b) _pure_; bool path_equal(const char *a, const char *b) _pure_;
char** path_strv_make_absolute_cwd(char **l); char** path_strv_make_absolute_cwd(char **l);
char** path_strv_canonicalize(char **l); char** path_strv_canonicalize(char **l);
char** path_strv_canonicalize_uniq(char **l); char** path_strv_canonicalize_uniq(char **l);
int path_is_mount_point(const char *path, bool allow_symlink); int path_is_mount_point(const char *path, bool allow_symlink);
int path_is_read_only_fs(const char *path); int path_is_read_only_fs(const char *path);
int path_is_os_tree(const char *path); int path_is_os_tree(const char *path);
int find_binary(const char *name, char **filename);
 End of changes. 2 change blocks. 
0 lines changed or deleted 7 lines changed or added


 sd-login.h   sd-login.h 
skipping to change at line 127 skipping to change at line 127
/* 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. */ /* Determine the TTY of this session. */
int sd_session_get_tty(const char *session, char **display); int sd_session_get_tty(const char *session, char **display);
/* Determine the VT number of this session. */
int sd_session_get_vt(const char *session, unsigned *vtnr);
/* 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


 selinux-access.h   selinux-access.h 
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
#pragma once #pragma once
/*** /***
This file is part of systemd. This file is part of systemd.
Copyright 2012 Dan Walsh Copyright 2012 Dan Walsh
systemd is free software; you can redistribute it and/or modify it systemd is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2 of the License, or the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version. (at your option) any later version.
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
General Public License for more details. Lesser General Public License for more details.
You should have received a copy of the GNU General Public License You should have received a copy of the GNU 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 <dbus.h> #include <dbus.h>
void selinux_access_free(void); void selinux_access_free(void);
int selinux_access_check(DBusConnection *connection, DBusMessage *message, const char *path, const char *permission, DBusError *error); int selinux_access_check(DBusConnection *connection, DBusMessage *message, const char *path, const char *permission, DBusError *error);
#ifdef HAVE_SELINUX #ifdef HAVE_SELINUX
 End of changes. 3 change blocks. 
4 lines changed or deleted 4 lines changed or added


 service.h   service.h 
skipping to change at line 57 skipping to change at line 57
SERVICE_FAILED, SERVICE_FAILED,
SERVICE_AUTO_RESTART, SERVICE_AUTO_RESTART,
_SERVICE_STATE_MAX, _SERVICE_STATE_MAX,
_SERVICE_STATE_INVALID = -1 _SERVICE_STATE_INVALID = -1
} ServiceState; } ServiceState;
typedef enum ServiceRestart { typedef enum ServiceRestart {
SERVICE_RESTART_NO, SERVICE_RESTART_NO,
SERVICE_RESTART_ON_SUCCESS, SERVICE_RESTART_ON_SUCCESS,
SERVICE_RESTART_ON_FAILURE, SERVICE_RESTART_ON_FAILURE,
SERVICE_RESTART_ON_WATCHDOG,
SERVICE_RESTART_ON_ABORT, SERVICE_RESTART_ON_ABORT,
SERVICE_RESTART_ALWAYS, SERVICE_RESTART_ALWAYS,
_SERVICE_RESTART_MAX, _SERVICE_RESTART_MAX,
_SERVICE_RESTART_INVALID = -1 _SERVICE_RESTART_INVALID = -1
} ServiceRestart; } ServiceRestart;
typedef enum ServiceType { typedef enum ServiceType {
SERVICE_SIMPLE, /* we fork and go on right-away (i.e. modern sock et activated daemons) */ SERVICE_SIMPLE, /* we fork and go on right-away (i.e. modern sock et activated daemons) */
SERVICE_FORKING, /* forks by itself (i.e. traditional daemons) */ SERVICE_FORKING, /* forks by itself (i.e. traditional daemons) */
SERVICE_ONESHOT, /* we fork and wait until the program finishes (i .e. programs like fsck which run and need to finish before we continue) */ SERVICE_ONESHOT, /* we fork and wait until the program finishes (i .e. programs like fsck which run and need to finish before we continue) */
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 socket.h   socket.h 
skipping to change at line 159 skipping to change at line 159
long mq_msgsize; long mq_msgsize;
char *smack; char *smack;
char *smack_ip_in; char *smack_ip_in;
char *smack_ip_out; char *smack_ip_out;
}; };
/* Called from the service code when collecting fds */ /* Called from the service code when collecting fds */
int socket_collect_fds(Socket *s, int **fds, unsigned *n_fds); int socket_collect_fds(Socket *s, int **fds, unsigned *n_fds);
/* Called from the service when it shut down */
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); void socket_free_ports(Socket *s);
extern const UnitVTable socket_vtable; extern const UnitVTable socket_vtable;
 End of changes. 1 change blocks. 
3 lines changed or deleted 0 lines changed or added


 strv.h   strv.h 
skipping to change at line 45 skipping to change at line 45
} }
#define _cleanup_strv_free_ _cleanup_(strv_freep) #define _cleanup_strv_free_ _cleanup_(strv_freep)
char **strv_copy(char * const *l); char **strv_copy(char * const *l);
unsigned strv_length(char * const *l) _pure_; unsigned strv_length(char * const *l) _pure_;
char **strv_merge(char **a, char **b); char **strv_merge(char **a, char **b);
char **strv_merge_concat(char **a, char **b, const char *suffix); char **strv_merge_concat(char **a, char **b, const char *suffix);
char **strv_append(char **l, const char *s); char **strv_append(char **l, const char *s);
char **strv_appendf(char **l, const char *format, ...) _printf_attr_(2, 3);
int strv_extend(char ***l, const char *value); int strv_extend(char ***l, const char *value);
int strv_push(char ***l, char *value); int strv_push(char ***l, char *value);
char **strv_remove(char **l, const char *s); char **strv_remove(char **l, const char *s);
char **strv_remove_prefix(char **l, const char *s); char **strv_remove_prefix(char **l, const char *s);
char **strv_uniq(char **l); char **strv_uniq(char **l);
#define strv_contains(l, s) (!!strv_find((l), (s))) #define strv_contains(l, s) (!!strv_find((l), (s)))
char **strv_new(const char *x, ...) _sentinel_; char **strv_new(const char *x, ...) _sentinel_;
skipping to change at line 70 skipping to change at line 71
static inline bool strv_isempty(char * const *l) { static inline bool strv_isempty(char * const *l) {
return !l || !*l; return !l || !*l;
} }
char **strv_split(const char *s, const char *separator); char **strv_split(const char *s, const char *separator);
char **strv_split_quoted(const char *s); char **strv_split_quoted(const char *s);
char **strv_split_newlines(const char *s); char **strv_split_newlines(const char *s);
char *strv_join(char **l, const char *separator); char *strv_join(char **l, const char *separator);
char *strv_join_quoted(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); char **strv_split_nulstr(const char *s);
bool strv_overlap(char **a, char **b) _pure_; bool strv_overlap(char **a, char **b) _pure_;
#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) \
 End of changes. 2 change blocks. 
0 lines changed or deleted 2 lines changed or added


 time-util.h   time-util.h 
skipping to change at line 76 skipping to change at line 76
#define dual_timestamp_is_set(ts) ((ts)->realtime > 0) #define dual_timestamp_is_set(ts) ((ts)->realtime > 0)
usec_t timespec_load(const struct timespec *ts) _pure_; usec_t timespec_load(const struct timespec *ts) _pure_;
struct timespec *timespec_store(struct timespec *ts, usec_t u); struct timespec *timespec_store(struct timespec *ts, usec_t u);
usec_t timeval_load(const struct timeval *tv) _pure_; usec_t timeval_load(const struct timeval *tv) _pure_;
struct timeval *timeval_store(struct timeval *tv, usec_t u); struct timeval *timeval_store(struct timeval *tv, usec_t u);
char *format_timestamp(char *buf, size_t l, usec_t t); char *format_timestamp(char *buf, size_t l, usec_t t);
char *format_timestamp_us(char *buf, size_t l, usec_t t);
char *format_timestamp_relative(char *buf, size_t l, usec_t t); char *format_timestamp_relative(char *buf, size_t l, usec_t t);
char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy); char *format_timespan(char *buf, size_t l, usec_t t, usec_t accuracy);
void dual_timestamp_serialize(FILE *f, const char *name, dual_timestamp *t) ; void dual_timestamp_serialize(FILE *f, const char *name, dual_timestamp *t) ;
void dual_timestamp_deserialize(const char *value, dual_timestamp *t); void dual_timestamp_deserialize(const char *value, dual_timestamp *t);
int parse_timestamp(const char *t, usec_t *usec); int parse_timestamp(const char *t, usec_t *usec);
int parse_sec(const char *t, usec_t *usec); int parse_sec(const char *t, usec_t *usec);
int parse_nsec(const char *t, nsec_t *nsec); int parse_nsec(const char *t, nsec_t *nsec);
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 util.h   util.h 
skipping to change at line 109 skipping to change at line 109
} }
static inline const char *strna(const char *s) { static inline const char *strna(const char *s) {
return s ? s : "n/a"; return s ? s : "n/a";
} }
static inline bool isempty(const char *p) { static inline bool isempty(const char *p) {
return !p || !p[0]; return !p || !p[0];
} }
static inline const char *startswith(const char *s, const char *prefix) {
if (strncmp(s, prefix, strlen(prefix)) == 0)
return s + strlen(prefix);
return NULL;
}
static inline const char *startswith_no_case(const char *s, const char *pre
fix) {
if (strncasecmp(s, prefix, strlen(prefix)) == 0)
return s + strlen(prefix);
return NULL;
}
char *endswith(const char *s, const char *postfix) _pure_; char *endswith(const char *s, const char *postfix) _pure_;
char *startswith(const char *s, const char *prefix) _pure_;
char *startswith_no_case(const char *s, const char *prefix) _pure_;
bool first_word(const char *s, const char *word) _pure_; bool first_word(const char *s, const char *word) _pure_;
int close_nointr(int fd); int close_nointr(int fd);
void close_nointr_nofail(int fd); void close_nointr_nofail(int fd);
void close_many(const int fds[], unsigned n_fd); void close_many(const int fds[], unsigned n_fd);
int parse_boolean(const char *v) _pure_; int parse_boolean(const char *v) _pure_;
int parse_bytes(const char *t, off_t *bytes); int parse_bytes(const char *t, off_t *bytes);
int parse_pid(const char *s, pid_t* ret_pid); int parse_pid(const char *s, pid_t* ret_pid);
skipping to change at line 377 skipping to change at line 387
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);
static inline const char *ansi_highlight(void) {
return on_tty() ? ANSI_HIGHLIGHT_ON : "";
}
static inline const char *ansi_highlight_red(void) {
return on_tty() ? ANSI_HIGHLIGHT_RED_ON : "";
}
static inline const char *ansi_highlight_green(void) {
return on_tty() ? ANSI_HIGHLIGHT_GREEN_ON : "";
}
static inline const char *ansi_highlight_off(void) {
return on_tty() ? ANSI_HIGHLIGHT_OFF : "";
}
int running_in_chroot(void); int running_in_chroot(void);
char *ellipsize(const char *s, size_t length, unsigned percent); char *ellipsize(const char *s, size_t length, unsigned percent);
char *ellipsize_mem(const char *s, size_t old_length, size_t new_length, un signed percent); char *ellipsize_mem(const char *s, size_t old_length, size_t new_length, un signed percent);
int touch(const char *path); int touch(const char *path);
char *unquote(const char *s, const char *quotes); char *unquote(const char *s, const char *quotes);
char *normalize_env_assignment(const char *s); char *normalize_env_assignment(const char *s);
 End of changes. 3 change blocks. 
2 lines changed or deleted 29 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/