acl-util.h   acl-util.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/>.
***/ ***/
#include <stdbool.h>
int acl_find_uid(acl_t acl, uid_t uid, acl_entry_t *entry); int acl_find_uid(acl_t acl, uid_t uid, acl_entry_t *entry);
int search_acl_groups(char*** dst, const char* path, bool* belong);
 End of changes. 2 change blocks. 
0 lines changed or deleted 2 lines changed or added


 boot.h   boot.h 
skipping to change at line 48 skipping to change at line 48
char *title; char *title;
sd_id128_t part_uuid; sd_id128_t part_uuid;
char *path; char *path;
}; };
struct boot_info { struct boot_info {
sd_id128_t machine_id; sd_id128_t machine_id;
sd_id128_t boot_id; sd_id128_t boot_id;
char *fw_type; char *fw_type;
char *fw_info; char *fw_info;
int fw_secure_boot;
int fw_secure_boot_setup_mode;
struct boot_info_entry *fw_entries; struct boot_info_entry *fw_entries;
size_t fw_entries_count; size_t fw_entries_count;
uint16_t *fw_entries_order; uint16_t *fw_entries_order;
size_t fw_entries_order_count; size_t fw_entries_order_count;
ssize_t fw_entry_active; ssize_t fw_entry_active;
char *loader; char *loader;
char *loader_image_path; char *loader_image_path;
sd_id128_t loader_part_uuid; sd_id128_t loader_part_uuid;
struct boot_info_entry *loader_entries; struct boot_info_entry *loader_entries;
size_t loader_entries_count; size_t loader_entries_count;
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 bootchart.h   bootchart.h 
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
#pragma once
/*** /***
bootchart.h - This file is part of systemd-bootchart This file is part of systemd.
Copyright (C) 2009-2013 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>
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 <dirent.h> #include <dirent.h>
#include <stdbool.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 */
skipping to change at line 101 skipping to change at line 105
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 bool relative; extern bool arg_relative;
extern bool filter; extern bool arg_filter;
extern bool show_cmdline; extern bool arg_show_cmdline;
extern bool pss; extern bool arg_pss;
extern bool entropy; extern bool arg_entropy;
extern bool initcall; extern bool initcall;
extern int samples; extern int samples;
extern int cpus; extern int cpus;
extern int samples_len; extern int arg_samples_len;
extern double hz; extern double arg_hz;
extern double scale_x; extern double arg_scale_x;
extern double scale_y; extern double arg_scale_y;
extern int overrun; extern int overrun;
extern double interval; extern double interval;
extern char output_path[PATH_MAX]; extern char arg_output_path[PATH_MAX];
extern char init_path[PATH_MAX]; extern char arg_init_path[PATH_MAX];
extern FILE *of; extern FILE *of;
extern DIR *proc;
extern int procfd;
extern int sysfd; extern int sysfd;
extern double gettime_ns(void);
extern void log_uptime(void);
extern void log_sample(int sample);
extern void svg_do(const char *build);
 End of changes. 8 change blocks. 
15 lines changed or deleted 17 lines changed or added


 catalog.h   catalog.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/>.
***/ ***/
#include <stdbool.h>
#include "sd-id128.h" #include "sd-id128.h"
int catalog_update(void); int catalog_update(void);
int catalog_get(sd_id128_t id, char **data); int catalog_get(sd_id128_t id, char **data);
int catalog_list(FILE *f); int catalog_list(FILE *f, bool oneline);
int catalog_list_items(FILE *f, bool oneline, char **items);
 End of changes. 2 change blocks. 
0 lines changed or deleted 2 lines changed or added


 config.h   config.h 
skipping to change at line 73 skipping to change at line 73
/* Define to 1 if you have the `gethostbyaddr' function. */ /* Define to 1 if you have the `gethostbyaddr' function. */
#define HAVE_GETHOSTBYADDR 1 #define HAVE_GETHOSTBYADDR 1
/* Define to 1 if you have the `gethostbyname' function. */ /* Define to 1 if you have the `gethostbyname' function. */
#define HAVE_GETHOSTBYNAME 1 #define HAVE_GETHOSTBYNAME 1
/* Define to 1 if you have the `gettimeofday' function. */ /* Define to 1 if you have the `gettimeofday' function. */
#define HAVE_GETTIMEOFDAY 1 #define HAVE_GETTIMEOFDAY 1
/* Define if glib is available */
#define HAVE_GLIB 1
/* Define if IMA is available */ /* Define if IMA is available */
#define HAVE_IMA 1 #define HAVE_IMA 1
/* Define to 1 if you have the `inet_ntoa' function. */ /* Define to 1 if you have the `inet_ntoa' function. */
#define HAVE_INET_NTOA 1 #define HAVE_INET_NTOA 1
/* Define to 1 if you have the <inttypes.h> header file. */ /* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1 #define HAVE_INTTYPES_H 1
/* Define if kmod is available */ /* Define if kmod is available */
skipping to change at line 241 skipping to change at line 244
/* 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 198" #define PACKAGE_STRING "systemd 199"
/* 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 "198" #define PACKAGE_VERSION "199"
/* Path of /etc/rc.local script */ /* Path of /etc/rc.local script */
#define RC_LOCAL_SCRIPT_PATH_START "/etc/rc.local" #define RC_LOCAL_SCRIPT_PATH_START "/etc/rc.local"
/* Path of /usr/sbin/halt.local script */ /* Path of /usr/sbin/halt.local script */
#define RC_LOCAL_SCRIPT_PATH_STOP "/usr/sbin/halt.local" #define RC_LOCAL_SCRIPT_PATH_STOP "/usr/sbin/halt.local"
/* Define to the type of arg 1 for `select'. */ /* Define to the type of arg 1 for `select'. */
#define SELECT_TYPE_ARG1 int #define SELECT_TYPE_ARG1 int
/* Define to the type of args 2, 3 and 4 for `select'. */ /* Define to the type of args 2, 3 and 4 for `select'. */
#define SELECT_TYPE_ARG234 (fd_set *) #define SELECT_TYPE_ARG234 (fd_set *)
/* Define to the type of arg 5 for `select'. */ /* Define to the type of arg 5 for `select'. */
#define SELECT_TYPE_ARG5 (struct timeval *) #define SELECT_TYPE_ARG5 (struct timeval *)
/* Define to 1 if you have the ANSI C header files. */ /* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1 #define STDC_HEADERS 1
/* Path to telinit */
#define TELINIT "/lib/upstart/telinit"
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
#define TIME_WITH_SYS_TIME 1 #define TIME_WITH_SYS_TIME 1
/* GID of the 'tty' group */ /* GID of the 'tty' group */
/* #undef TTY_GID */ /* #undef TTY_GID */
/* Enable extensions on AIX 3, Interix. */ /* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE #ifndef _ALL_SOURCE
# define _ALL_SOURCE 1 # define _ALL_SOURCE 1
#endif #endif
skipping to change at line 298 skipping to change at line 304
/* 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 "198" #define VERSION "199"
/* Enable large inode numbers on Mac OS X 10.5. */ /* Enable large inode numbers on Mac OS X 10.5. */
#ifndef _DARWIN_USE_64_BIT_INODE #ifndef _DARWIN_USE_64_BIT_INODE
# define _DARWIN_USE_64_BIT_INODE 1 # define _DARWIN_USE_64_BIT_INODE 1
#endif #endif
/* Number of bits in a file offset, on hosts where this is settable. */ /* Number of bits in a file offset, on hosts where this is settable. */
#define _FILE_OFFSET_BITS 64 #define _FILE_OFFSET_BITS 64
/* Define for large files, on AIX-style hosts. */ /* Define for large files, on AIX-style hosts. */
 End of changes. 5 change blocks. 
3 lines changed or deleted 9 lines changed or added


 efivars.h   efivars.h 
skipping to change at line 35 skipping to change at line 35
#include <inttypes.h> #include <inttypes.h>
#include <stdbool.h> #include <stdbool.h>
#include "sd-id128.h" #include "sd-id128.h"
#include "time-util.h" #include "time-util.h"
#define EFI_VENDOR_LOADER SD_ID128_MAKE(4a,67,b0,82,0a,4c,41,cf,b6,c7,44,0b ,29,bb,8c,4f) #define EFI_VENDOR_LOADER SD_ID128_MAKE(4a,67,b0,82,0a,4c,41,cf,b6,c7,44,0b ,29,bb,8c,4f)
#define EFI_VENDOR_GLOBAL SD_ID128_MAKE(8b,e4,df,61,93,ca,11,d2,aa,0d,00,e0 ,98,03,2b,8c) #define EFI_VENDOR_GLOBAL SD_ID128_MAKE(8b,e4,df,61,93,ca,11,d2,aa,0d,00,e0 ,98,03,2b,8c)
bool is_efi_boot(void); bool is_efi_boot(void);
int is_efi_secure_boot(void);
int is_efi_secure_boot_setup_mode(void);
int efi_get_variable(sd_id128_t vendor, const char *name, uint32_t *attribu te, void **value, size_t *size); int efi_get_variable(sd_id128_t vendor, const char *name, uint32_t *attribu te, void **value, size_t *size);
int efi_get_variable_string(sd_id128_t vendor, const char *name, char **p); int efi_get_variable_string(sd_id128_t vendor, const char *name, char **p);
int efi_get_boot_option(uint16_t nr, char **title, sd_id128_t *partuuid, ch ar **path); int efi_get_boot_option(uint16_t nr, char **title, sd_id128_t *partuuid, ch ar **path);
int efi_get_boot_order(uint16_t **order); int efi_get_boot_order(uint16_t **order);
int efi_get_boot_options(uint16_t **options); int efi_get_boot_options(uint16_t **options);
int efi_get_boot_timestamps(const dual_timestamp *n, dual_timestamp *firmwa re, dual_timestamp *loader); int efi_get_boot_timestamps(const dual_timestamp *n, dual_timestamp *firmwa re, dual_timestamp *loader);
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 execute.h   execute.h 
skipping to change at line 39 skipping to change at line 39
#include <sys/time.h> #include <sys/time.h>
#include <sys/resource.h> #include <sys/resource.h>
#include <sys/capability.h> #include <sys/capability.h>
#include <stdbool.h> #include <stdbool.h>
#include <stdio.h> #include <stdio.h>
#include <sched.h> #include <sched.h>
struct CGroupBonding; struct CGroupBonding;
struct CGroupAttribute; struct CGroupAttribute;
typedef struct Unit Unit;
#include "list.h" #include "list.h"
#include "util.h" #include "util.h"
typedef enum ExecInput { typedef enum ExecInput {
EXEC_INPUT_NULL, EXEC_INPUT_NULL,
EXEC_INPUT_TTY, EXEC_INPUT_TTY,
EXEC_INPUT_TTY_FORCE, EXEC_INPUT_TTY_FORCE,
EXEC_INPUT_TTY_FAIL, EXEC_INPUT_TTY_FAIL,
EXEC_INPUT_SOCKET, EXEC_INPUT_SOCKET,
_EXEC_INPUT_MAX, _EXEC_INPUT_MAX,
skipping to change at line 144 skipping to change at line 146
int secure_bits; int secure_bits;
int syslog_priority; int syslog_priority;
char *syslog_identifier; char *syslog_identifier;
bool syslog_level_prefix; bool syslog_level_prefix;
bool cpu_sched_reset_on_fork; bool cpu_sched_reset_on_fork;
bool non_blocking; bool non_blocking;
bool private_tmp; bool private_tmp;
bool private_network; bool private_network;
char *tmp_dir;
char *var_tmp_dir;
bool no_new_privileges; bool no_new_privileges;
bool control_group_modify; bool control_group_modify;
int control_group_persistent; int control_group_persistent;
/* This is not exposed to the user but available /* This is not exposed to the user but available
* internally. We need it to make sure that whenever we spawn * internally. We need it to make sure that whenever we spawn
* /bin/mount it is run in the same process group as us so * /bin/mount it is run in the same process group as us so
* that the autofs logic detects that it belongs to us and we * that the autofs logic detects that it belongs to us and we
skipping to change at line 167 skipping to change at line 171
uint32_t *syscall_filter; uint32_t *syscall_filter;
bool oom_score_adjust_set:1; bool oom_score_adjust_set:1;
bool nice_set:1; bool nice_set:1;
bool ioprio_set:1; bool ioprio_set:1;
bool cpu_sched_set:1; bool cpu_sched_set:1;
}; };
int exec_spawn(ExecCommand *command, int exec_spawn(ExecCommand *command,
char **argv, char **argv,
const ExecContext *context, ExecContext *context,
int fds[], unsigned n_fds, int fds[], unsigned n_fds,
char **environment, char **environment,
bool apply_permissions, bool apply_permissions,
bool apply_chroot, bool apply_chroot,
bool apply_tty_stdin, bool apply_tty_stdin,
bool confirm_spawn, bool confirm_spawn,
struct CGroupBonding *cgroup_bondings, struct CGroupBonding *cgroup_bondings,
struct CGroupAttribute *cgroup_attributes, struct CGroupAttribute *cgroup_attributes,
const char *cgroup_suffix, const char *cgroup_suffix,
const char *unit_id, const char *unit_id,
skipping to change at line 195 skipping to change at line 199
void exec_command_free_array(ExecCommand **c, unsigned n); void exec_command_free_array(ExecCommand **c, unsigned n);
char *exec_command_line(char **argv); char *exec_command_line(char **argv);
void exec_command_dump(ExecCommand *c, FILE *f, const char *prefix); void exec_command_dump(ExecCommand *c, FILE *f, const char *prefix);
void exec_command_dump_list(ExecCommand *c, FILE *f, const char *prefix); void exec_command_dump_list(ExecCommand *c, FILE *f, const char *prefix);
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, bool reloading_or_reexecuting);
void exec_context_tmp_dirs_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); bool exec_context_may_touch_console(ExecContext *c);
void exec_context_serialize(const ExecContext *c, Unit *u, FILE *f);
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. 5 change blocks. 
2 lines changed or deleted 8 lines changed or added


 journal-file.h   journal-file.h 
skipping to change at line 109 skipping to change at line 109
const char *fname, const char *fname,
int flags, int flags,
mode_t mode, mode_t mode,
bool compress, bool compress,
bool seal, bool seal,
JournalMetrics *metrics, JournalMetrics *metrics,
MMapCache *mmap_cache, MMapCache *mmap_cache,
JournalFile *template, JournalFile *template,
JournalFile **ret); JournalFile **ret);
int journal_file_set_offline(JournalFile *f);
int journal_file_set_online(JournalFile *f);
void journal_file_close(JournalFile *j); void journal_file_close(JournalFile *j);
int journal_file_open_reliably( int journal_file_open_reliably(
const char *fname, const char *fname,
int flags, int flags,
mode_t mode, mode_t mode,
bool compress, bool compress,
bool seal, bool seal,
JournalMetrics *metrics, JournalMetrics *metrics,
MMapCache *mmap_cache, MMapCache *mmap_cache,
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 journal-internal.h   journal-internal.h 
skipping to change at line 33 skipping to change at line 33
#include <sys/types.h> #include <sys/types.h>
#include <inttypes.h> #include <inttypes.h>
#include <stdbool.h> #include <stdbool.h>
#include <systemd/sd-id128.h> #include <systemd/sd-id128.h>
#include "journal-def.h" #include "journal-def.h"
#include "list.h" #include "list.h"
#include "hashmap.h" #include "hashmap.h"
#include "set.h"
#include "journal-file.h" #include "journal-file.h"
typedef struct Match Match; typedef struct Match Match;
typedef struct Location Location; typedef struct Location Location;
typedef struct Directory Directory; typedef struct Directory Directory;
typedef enum MatchType { typedef enum MatchType {
MATCH_DISCRETE, MATCH_DISCRETE,
MATCH_OR_TERM, MATCH_OR_TERM,
MATCH_AND_TERM MATCH_AND_TERM
skipping to change at line 126 skipping to change at line 127
unsigned current_invalidate_counter, last_invalidate_counter; unsigned current_invalidate_counter, last_invalidate_counter;
char *unique_field; char *unique_field;
JournalFile *unique_file; JournalFile *unique_file;
uint64_t unique_offset; uint64_t unique_offset;
bool on_network; bool on_network;
size_t data_threshold; size_t data_threshold;
Set *errors;
}; };
char *journal_make_match_string(sd_journal *j); char *journal_make_match_string(sd_journal *j);
void journal_print_header(sd_journal *j); void journal_print_header(sd_journal *j);
 End of changes. 2 change blocks. 
0 lines changed or deleted 3 lines changed or added


 journald-server.h   journald-server.h 
skipping to change at line 74 skipping to change at line 74
JournalFile *runtime_journal; JournalFile *runtime_journal;
JournalFile *system_journal; JournalFile *system_journal;
Hashmap *user_journals; Hashmap *user_journals;
uint64_t seqnum; uint64_t seqnum;
char *buffer; char *buffer;
size_t buffer_size; size_t buffer_size;
JournalRateLimit *rate_limit; JournalRateLimit *rate_limit;
usec_t sync_interval_usec;
usec_t rate_limit_interval; usec_t rate_limit_interval;
unsigned rate_limit_burst; unsigned rate_limit_burst;
JournalMetrics runtime_metrics; JournalMetrics runtime_metrics;
JournalMetrics system_metrics; JournalMetrics system_metrics;
bool compress; bool compress;
bool seal; bool seal;
bool forward_to_kmsg; bool forward_to_kmsg;
skipping to change at line 122 skipping to change at line 123
Storage storage; Storage storage;
SplitMode split_mode; SplitMode split_mode;
MMapCache *mmap; MMapCache *mmap;
bool dev_kmsg_readable; bool dev_kmsg_readable;
uint64_t *kernel_seqnum; uint64_t *kernel_seqnum;
struct udev *udev; struct udev *udev;
int sync_timer_fd;
bool sync_scheduled;
} Server; } Server;
#define N_IOVEC_META_FIELDS 17 #define N_IOVEC_META_FIELDS 17
#define N_IOVEC_KERNEL_FIELDS 64 #define N_IOVEC_KERNEL_FIELDS 64
#define N_IOVEC_UDEV_FIELDS 32 #define N_IOVEC_UDEV_FIELDS 32
void server_dispatch_message(Server *s, struct iovec *iovec, unsigned n, un signed m, struct ucred *ucred, struct timeval *tv, const char *label, size_ t label_len, const char *unit_id, int priority); void server_dispatch_message(Server *s, struct iovec *iovec, unsigned n, un signed m, struct ucred *ucred, struct timeval *tv, const char *label, size_ t label_len, const char *unit_id, int priority);
void server_driver_message(Server *s, sd_id128_t message_id, const char *fo rmat, ...); void server_driver_message(Server *s, sd_id128_t message_id, const char *fo rmat, ...);
/* gperf lookup function */ /* gperf lookup function */
skipping to change at line 148 skipping to change at line 152
int config_parse_split_mode(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, v oid *userdata); int config_parse_split_mode(const char *filename, unsigned line, const char *section, const char *lvalue, int ltype, const char *rvalue, void *data, v oid *userdata);
const char *split_mode_to_string(SplitMode s); const char *split_mode_to_string(SplitMode s);
SplitMode split_mode_from_string(const char *s); SplitMode split_mode_from_string(const char *s);
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_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_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. 4 change blocks. 
0 lines changed or deleted 6 lines changed or added


 keys-to-name.h   keys-to-name.h 
skipping to change at line 111 skipping to change at line 111
[KEY_KPPLUSMINUS] = "KEY_KPPLUSMINUS", [KEY_KPPLUSMINUS] = "KEY_KPPLUSMINUS",
[KEY_SHOP] = "KEY_SHOP", [KEY_SHOP] = "KEY_SHOP",
[KEY_LEFTSHIFT] = "KEY_LEFTSHIFT", [KEY_LEFTSHIFT] = "KEY_LEFTSHIFT",
[KEY_BASSBOOST] = "KEY_BASSBOOST", [KEY_BASSBOOST] = "KEY_BASSBOOST",
[KEY_BRIGHTNESS_CYCLE] = "KEY_BRIGHTNESS_CYCLE", [KEY_BRIGHTNESS_CYCLE] = "KEY_BRIGHTNESS_CYCLE",
[KEY_TAB] = "KEY_TAB", [KEY_TAB] = "KEY_TAB",
[KEY_UNKNOWN] = "KEY_UNKNOWN", [KEY_UNKNOWN] = "KEY_UNKNOWN",
[KEY_KPLEFTPAREN] = "KEY_KPLEFTPAREN", [KEY_KPLEFTPAREN] = "KEY_KPLEFTPAREN",
[KEY_EDITOR] = "KEY_EDITOR", [KEY_EDITOR] = "KEY_EDITOR",
[KEY_EMAIL] = "KEY_EMAIL", [KEY_EMAIL] = "KEY_EMAIL",
[KEY_MEMO] = "KEY_MEMO",
[KEY_102ND] = "KEY_102ND", [KEY_102ND] = "KEY_102ND",
[KEY_MENU] = "KEY_MENU", [KEY_MENU] = "KEY_MENU",
[KEY_SPACE] = "KEY_SPACE", [KEY_SPACE] = "KEY_SPACE",
[KEY_INFO] = "KEY_INFO", [KEY_INFO] = "KEY_INFO",
[KEY_WAKEUP] = "KEY_WAKEUP", [KEY_WAKEUP] = "KEY_WAKEUP",
[KEY_BLUE] = "KEY_BLUE", [KEY_BLUE] = "KEY_BLUE",
[KEY_HOMEPAGE] = "KEY_HOMEPAGE", [KEY_HOMEPAGE] = "KEY_HOMEPAGE",
[KEY_KPCOMMA] = "KEY_KPCOMMA", [KEY_KPCOMMA] = "KEY_KPCOMMA",
[KEY_ZOOMRESET] = "KEY_ZOOMRESET", [KEY_ZOOMRESET] = "KEY_ZOOMRESET",
[KEY_FAVORITES] = "KEY_FAVORITES", [KEY_FAVORITES] = "KEY_FAVORITES",
skipping to change at line 384 skipping to change at line 383
[KEY_TIME] = "KEY_TIME", [KEY_TIME] = "KEY_TIME",
[KEY_FIND] = "KEY_FIND", [KEY_FIND] = "KEY_FIND",
[KEY_STOPCD] = "KEY_STOPCD", [KEY_STOPCD] = "KEY_STOPCD",
[KEY_SPELLCHECK] = "KEY_SPELLCHECK", [KEY_SPELLCHECK] = "KEY_SPELLCHECK",
[KEY_DOCUMENTS] = "KEY_DOCUMENTS", [KEY_DOCUMENTS] = "KEY_DOCUMENTS",
[KEY_LEFT] = "KEY_LEFT", [KEY_LEFT] = "KEY_LEFT",
[KEY_EJECTCLOSECD] = "KEY_EJECTCLOSECD", [KEY_EJECTCLOSECD] = "KEY_EJECTCLOSECD",
[KEY_KPMINUS] = "KEY_KPMINUS", [KEY_KPMINUS] = "KEY_KPMINUS",
[KEY_GOTO] = "KEY_GOTO", [KEY_GOTO] = "KEY_GOTO",
[KEY_MEDIA_REPEAT] = "KEY_MEDIA_REPEAT", [KEY_MEDIA_REPEAT] = "KEY_MEDIA_REPEAT",
[KEY_MEMO] = "KEY_MEMO",
[KEY_SLASH] = "KEY_SLASH", [KEY_SLASH] = "KEY_SLASH",
[KEY_KEYBOARD] = "KEY_KEYBOARD", [KEY_KEYBOARD] = "KEY_KEYBOARD",
[KEY_CAMERA_UP] = "KEY_CAMERA_UP", [KEY_CAMERA_UP] = "KEY_CAMERA_UP",
[KEY_DEL_LINE] = "KEY_DEL_LINE", [KEY_DEL_LINE] = "KEY_DEL_LINE",
[KEY_CLOSE] = "KEY_CLOSE", [KEY_CLOSE] = "KEY_CLOSE",
[KEY_DOT] = "KEY_DOT", [KEY_DOT] = "KEY_DOT",
[KEY_NUMERIC_6] = "KEY_NUMERIC_6", [KEY_NUMERIC_6] = "KEY_NUMERIC_6",
[KEY_HANGEUL] = "KEY_HANGEUL", [KEY_HANGEUL] = "KEY_HANGEUL",
[KEY_BOOKMARKS] = "KEY_BOOKMARKS", [KEY_BOOKMARKS] = "KEY_BOOKMARKS",
}; };
 End of changes. 2 change blocks. 
1 lines changed or deleted 1 lines changed or added


 libudev.h   libudev.h 
skipping to change at line 110 skipping to change at line 110
struct udev_list_entry *udev_device_get_properties_list_entry(struct udev_d evice *udev_device); struct udev_list_entry *udev_device_get_properties_list_entry(struct udev_d evice *udev_device);
struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_device *udev_device); struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_device *udev_device);
struct udev_list_entry *udev_device_get_sysattr_list_entry(struct udev_devi ce *udev_device); struct udev_list_entry *udev_device_get_sysattr_list_entry(struct udev_devi ce *udev_device);
const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key); const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key);
const char *udev_device_get_driver(struct udev_device *udev_device); const char *udev_device_get_driver(struct udev_device *udev_device);
dev_t udev_device_get_devnum(struct udev_device *udev_device); dev_t udev_device_get_devnum(struct udev_device *udev_device);
const char *udev_device_get_action(struct udev_device *udev_device); const char *udev_device_get_action(struct udev_device *udev_device);
unsigned long long int udev_device_get_seqnum(struct udev_device *udev_devi ce); unsigned long long int udev_device_get_seqnum(struct udev_device *udev_devi ce);
unsigned long long int udev_device_get_usec_since_initialized(struct udev_d evice *udev_device); unsigned long long int udev_device_get_usec_since_initialized(struct udev_d evice *udev_device);
const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr); const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr);
int udev_device_set_sysattr_value(struct udev_device *udev_device, const ch ar *sysattr, char *value);
int udev_device_has_tag(struct udev_device *udev_device, const char *tag); int udev_device_has_tag(struct udev_device *udev_device, const char *tag);
/* /*
* udev_monitor * udev_monitor
* *
* access to kernel uevents and udev events * access to kernel uevents and udev events
*/ */
struct udev_monitor; struct udev_monitor;
struct udev_monitor *udev_monitor_ref(struct udev_monitor *udev_monitor); struct udev_monitor *udev_monitor_ref(struct udev_monitor *udev_monitor);
struct udev_monitor *udev_monitor_unref(struct udev_monitor *udev_monitor); struct udev_monitor *udev_monitor_unref(struct udev_monitor *udev_monitor);
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 logs-show.h   logs-show.h 
skipping to change at line 40 skipping to change at line 40
#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);
int show_journal_by_unit( int add_matches_for_unit(
FILE *f, sd_journal *j,
const char *unit);
int add_matches_for_user_unit(
sd_journal *j,
const char *unit, const char *unit,
OutputMode mode, uid_t uid);
unsigned n_columns,
usec_t not_before,
unsigned how_many,
OutputFlags flags);
int show_journal_by_user_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);
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. 4 change blocks. 
9 lines changed or deleted 10 lines changed or added


 macro.h   macro.h 
skipping to change at line 95 skipping to change at line 95
__extension__ ({ \ __extension__ ({ \
typeof(a) _a = (a); \ typeof(a) _a = (a); \
typeof(b) _b = (b); \ typeof(b) _b = (b); \
_a < _b ? _a : _b; \ _a < _b ? _a : _b; \
}) })
#endif #endif
#define MIN3(a,b,c) \ #define MIN3(a,b,c) \
MIN(MIN(a,b),c) MIN(MIN(a,b),c)
#ifndef CLAMP
#define CLAMP(x, low, high) \ #define CLAMP(x, low, high) \
__extension__ ({ \ __extension__ ({ \
typeof(x) _x = (x); \ typeof(x) _x = (x); \
typeof(low) _low = (low); \ typeof(low) _low = (low); \
typeof(high) _high = (high); \ typeof(high) _high = (high); \
((_x > _high) ? _high : ((_x < _low) ? _low : _x)); \ ((_x > _high) ? _high : ((_x < _low) ? _low : _x)); \
}) })
#endif
#define assert_se(expr) \ #define assert_se(expr) \
do { \ do { \
if (_unlikely_(!(expr))) \ if (_unlikely_(!(expr))) \
log_assert_failed(#expr, __FILE__, __LINE__, __PRET TY_FUNCTION__); \ log_assert_failed(#expr, __FILE__, __LINE__, __PRET TY_FUNCTION__); \
} while (false) \ } while (false) \
/* We override the glibc assert() here. */ /* We override the glibc assert() here. */
#undef assert #undef assert
#ifdef NDEBUG #ifdef NDEBUG
skipping to change at line 159 skipping to change at line 161
#define TO_INT32(p) ((int32_t) ((intptr_t) (p))) #define TO_INT32(p) ((int32_t) ((intptr_t) (p)))
#define INT32_TO_PTR(u) ((void*) ((intptr_t) (u))) #define INT32_TO_PTR(u) ((void*) ((intptr_t) (u)))
#define PTR_TO_LONG(p) ((long) ((intptr_t) (p))) #define PTR_TO_LONG(p) ((long) ((intptr_t) (p)))
#define LONG_TO_PTR(u) ((void*) ((intptr_t) (u))) #define LONG_TO_PTR(u) ((void*) ((intptr_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_array_0(x) x[sizeof(x)-1] = 0; #define char_array_0(x) x[sizeof(x)-1] = 0;
#define IOVEC_SET_STRING(i, s) \ #define IOVEC_SET_STRING(i, s) \
do { \ do { \
struct iovec *_i = &(i); \ struct iovec *_i = &(i); \
char *_s = (char *)(s); \ char *_s = (char *)(s); \
_i->iov_base = _s; \ _i->iov_base = _s; \
_i->iov_len = strlen(_s); \ _i->iov_len = strlen(_s); \
} while(false) } while(false)
skipping to change at line 206 skipping to change at line 210
#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_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_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 _cleanup_journal_close_ __attribute__((cleanup(journal_closep)))
#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) { \
(void) va_arg(ap, void*); \ (void) va_arg(ap, void*); \
 End of changes. 4 change blocks. 
0 lines changed or deleted 5 lines changed or added


 manager.h   manager.h 
skipping to change at line 88 skipping to change at line 88
bool socket_accept:1; bool socket_accept:1;
}; };
#include "unit.h" #include "unit.h"
#include "job.h" #include "job.h"
#include "hashmap.h" #include "hashmap.h"
#include "list.h" #include "list.h"
#include "set.h" #include "set.h"
#include "dbus.h" #include "dbus.h"
#include "path-lookup.h" #include "path-lookup.h"
#include "execute.h"
struct Manager { struct Manager {
/* Note that the set of units we know of is allowed to be /* Note that the set of units we know of is allowed to be
* inconsistent. However the subset of it that is loaded may * inconsistent. However the subset of it that is loaded may
* not, and the list of jobs may neither. */ * not, and the list of jobs may neither. */
/* Active jobs and units */ /* Active jobs and units */
Hashmap *units; /* name string => Unit object n:1 */ Hashmap *units; /* name string => Unit object n:1 */
Hashmap *jobs; /* job id => Job object 1:1 */ Hashmap *jobs; /* job id => Job object 1:1 */
skipping to change at line 286 skipping to change at line 287
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_reloading_or_reexecuting(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);
 End of changes. 2 change blocks. 
0 lines changed or deleted 3 lines changed or added


 namespace.h   namespace.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 setup_namespace( typedef struct ExecContext ExecContext;
char **writable,
char **readable, int setup_tmpdirs(char **tmp_dir, char **var_tmp_dir);
char **inaccessible, int setup_namespace(char **read_write_dirs,
bool private_tmp, char **read_only_dirs,
unsigned long flags); char **inaccessible_dirs,
char *tmp_dir,
char *var_tmp_dir,
bool private_tmp,
unsigned mount_flags);
 End of changes. 1 change blocks. 
0 lines changed or deleted 0 lines changed or added


 pyutil.h   pyutil.h 
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
#pragma once
/*** /***
This file is part of systemd. This file is part of systemd.
Copyright 2013 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> Copyright 2013 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
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.
skipping to change at line 30 skipping to change at line 32
***/ ***/
#ifndef Py_TYPE #ifndef Py_TYPE
/* avoid duplication warnings from errors in Python 2.7 headers */ /* avoid duplication warnings from errors in Python 2.7 headers */
# include <Python.h> # include <Python.h>
#endif #endif
void cleanup_Py_DECREFp(PyObject **p); void cleanup_Py_DECREFp(PyObject **p);
#define _cleanup_Py_DECREF_ __attribute__((cleanup(cleanup_Py_DECREFp))) #define _cleanup_Py_DECREF_ __attribute__((cleanup(cleanup_Py_DECREFp)))
#if PY_MAJOR_VERSION >=3
# define unicode_FromStringAndSize PyUnicode_FromStringAndSize
# define unicode_FromString PyUnicode_FromString
# define long_FromLong PyLong_FromLong
# define long_FromSize_t PyLong_FromSize_t
# define long_Check PyLong_Check
# define long_AsLong PyLong_AsLong
#else
/* Python 3 type naming convention is used */
# define unicode_FromStringAndSize PyString_FromStringAndSize
# define unicode_FromString PyString_FromString
# define long_FromLong PyInt_FromLong
# define long_FromSize_t PyInt_FromSize_t
# define long_Check PyInt_Check
# define long_AsLong PyInt_AsLong
#endif
 End of changes. 2 change blocks. 
0 lines changed or deleted 2 lines changed or added


 sd-shutdown.h   sd-shutdown.h 
skipping to change at line 40 skipping to change at line 40
SD_SHUTDOWN_NONE = 0, SD_SHUTDOWN_NONE = 0,
SD_SHUTDOWN_REBOOT = 'r', SD_SHUTDOWN_REBOOT = 'r',
SD_SHUTDOWN_POWEROFF = 'P', SD_SHUTDOWN_POWEROFF = 'P',
SD_SHUTDOWN_HALT = 'H', SD_SHUTDOWN_HALT = 'H',
SD_SHUTDOWN_KEXEC = 'K' SD_SHUTDOWN_KEXEC = 'K'
} sd_shutdown_mode_t; } sd_shutdown_mode_t;
/* Calculate the size of the message as "offsetof(struct /* Calculate the size of the message as "offsetof(struct
* sd_shutdown_command, wall_message) + * sd_shutdown_command, wall_message) +
* strlen(command.wall_message)" */ * strlen(command.wall_message)" */
__attribute__((packed)) struct sd_shutdown_command { struct sd_shutdown_command {
/* Microseconds after the epoch 1970 UTC */ /* Microseconds after the epoch 1970 UTC */
uint64_t usec; uint64_t usec;
/* H, P, r, i.e. the switches usually passed to /* H, P, r, i.e. the switches usually passed to
* /usr/bin/shutdown to select whether to halt, power-off or * /usr/bin/shutdown to select whether to halt, power-off or
* reboot the machine */ * reboot the machine */
sd_shutdown_mode_t mode:8; sd_shutdown_mode_t mode:8;
/* If non-zero, don't actually shut down, just pretend */ /* If non-zero, don't actually shut down, just pretend */
unsigned dry_run:1; unsigned dry_run:1;
/* If non-zero, send our wall message */ /* If non-zero, send our wall message */
unsigned warn_wall:1; unsigned warn_wall:1;
/* The wall message to send around. Leave empty for the /* The wall message to send around. Leave empty for the
* default wall message */ * default wall message */
char wall_message[]; char wall_message[];
}; } __attribute__((packed));
/* The scheme is very simple: /* The scheme is very simple:
* *
* To schedule a shutdown, simply fill in and send a single * To schedule a shutdown, simply fill in and send a single
* AF_UNIX/SOCK_DGRAM datagram with the structure above suffixed with * AF_UNIX/SOCK_DGRAM datagram with the structure above suffixed with
* the wall message to the socket /run/systemd/shutdownd (leave an * the wall message to the socket /run/systemd/shutdownd (leave an
* empty wall message for the default shutdown message). To calculate * empty wall message for the default shutdown message). To calculate
* the size of the message use "offsetof(struct sd_shutdown_command, * the size of the message use "offsetof(struct sd_shutdown_command,
* wall_message) + strlen(command.wall_message)". * wall_message) + strlen(command.wall_message)".
* *
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 set.h   set.h 
skipping to change at line 36 skipping to change at line 36
* object will be treated as empty set for all read * object will be treated as empty set for all read
* operations. That way it is not necessary to instantiate an object * operations. That way it is not necessary to instantiate an object
* 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); static inline void set_freep(Set **s) {
set_free(*s);
}
void set_free_free(Set *s); void set_free_free(Set *s);
void set_free_freep(Set **s); static inline void set_free_freep(Set **s) {
set_free_free(*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. 2 change blocks. 
2 lines changed or deleted 8 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_TIMERS_TARGET "timers.target"
#define SPECIAL_PATHS_TARGET "paths.target"
#define SPECIAL_LOCAL_FS_TARGET "local-fs.target" #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_INITRD_FS_TARGET "initrd-fs.target"
#define SPECIAL_INITRD_ROOT_FS_TARGET "initrd-root-fs.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_REMOTE_FS_SETUP_TARGET "remote-fs-setup.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_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */ #define SPECIAL_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */
/* /*
 End of changes. 3 change blocks. 
0 lines changed or deleted 5 lines changed or added


 strv.h   strv.h 
skipping to change at line 33 skipping to change at line 33
#include <stdarg.h> #include <stdarg.h>
#include <stdbool.h> #include <stdbool.h>
#include "macro.h" #include "macro.h"
char *strv_find(char **l, const char *name); char *strv_find(char **l, const char *name);
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); static inline void strv_freep(char ***l) {
char **strv_copy(char **l) _malloc_; strv_free(*l);
unsigned strv_length(char **l); }
char **strv_copy(char * const *l) _malloc_;
unsigned strv_length(char * const *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); int strv_extend(char ***l, const 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_ _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 * const *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_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_parse_nulstr(const char *s, size_t l); char **strv_parse_nulstr(const char *s, size_t l);
skipping to change at line 77 skipping to change at line 81
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) \ #define STRV_FOREACH_PAIR(x, y, l) \
for ((x) = (l), (y) = (x+1); (x) && *(x) && *(y); (x) += 2) for ((x) = (l), (y) = (x+1); (x) && *(x) && *(y); (x) += 2, (y) = ( x + 1))
char **strv_sort(char **l); char **strv_sort(char **l);
void strv_print(char **l); void strv_print(char **l);
 End of changes. 4 change blocks. 
5 lines changed or deleted 9 lines changed or added


 udev.h   udev.h 
skipping to change at line 143 skipping to change at line 143
int udev_ctrl_get_exit(struct udev_ctrl_msg *ctrl_msg); int udev_ctrl_get_exit(struct udev_ctrl_msg *ctrl_msg);
const char *udev_ctrl_get_set_env(struct udev_ctrl_msg *ctrl_msg); const char *udev_ctrl_get_set_env(struct udev_ctrl_msg *ctrl_msg);
int udev_ctrl_get_set_children_max(struct udev_ctrl_msg *ctrl_msg); int udev_ctrl_get_set_children_max(struct udev_ctrl_msg *ctrl_msg);
/* built-in commands */ /* built-in commands */
enum udev_builtin_cmd { enum udev_builtin_cmd {
#ifdef HAVE_BLKID #ifdef HAVE_BLKID
UDEV_BUILTIN_BLKID, UDEV_BUILTIN_BLKID,
#endif #endif
UDEV_BUILTIN_BTRFS, UDEV_BUILTIN_BTRFS,
#ifdef ENABLE_FIRMWARE
UDEV_BUILTIN_FIRMWARE, UDEV_BUILTIN_FIRMWARE,
#endif
UDEV_BUILTIN_HWDB, UDEV_BUILTIN_HWDB,
UDEV_BUILTIN_INPUT_ID, UDEV_BUILTIN_INPUT_ID,
#ifdef HAVE_KMOD #ifdef HAVE_KMOD
UDEV_BUILTIN_KMOD, UDEV_BUILTIN_KMOD,
#endif #endif
UDEV_BUILTIN_NET_ID, UDEV_BUILTIN_NET_ID,
UDEV_BUILTIN_PATH_ID, UDEV_BUILTIN_PATH_ID,
UDEV_BUILTIN_USB_ID, UDEV_BUILTIN_USB_ID,
#ifdef HAVE_ACL #ifdef HAVE_ACL
UDEV_BUILTIN_UACCESS, UDEV_BUILTIN_UACCESS,
skipping to change at line 170 skipping to change at line 172
const char *help; const char *help;
int (*init)(struct udev *udev); int (*init)(struct udev *udev);
void (*exit)(struct udev *udev); void (*exit)(struct udev *udev);
bool (*validate)(struct udev *udev); bool (*validate)(struct udev *udev);
bool run_once; bool run_once;
}; };
#ifdef HAVE_BLKID #ifdef HAVE_BLKID
extern const struct udev_builtin udev_builtin_blkid; extern const struct udev_builtin udev_builtin_blkid;
#endif #endif
extern const struct udev_builtin udev_builtin_btrfs; extern const struct udev_builtin udev_builtin_btrfs;
#ifdef ENABLE_FIRMWARE
extern const struct udev_builtin udev_builtin_firmware; extern const struct udev_builtin udev_builtin_firmware;
#endif
extern const struct udev_builtin udev_builtin_hwdb; extern const struct udev_builtin udev_builtin_hwdb;
extern const struct udev_builtin udev_builtin_input_id; extern const struct udev_builtin udev_builtin_input_id;
#ifdef HAVE_KMOD #ifdef HAVE_KMOD
extern const struct udev_builtin udev_builtin_kmod; extern const struct udev_builtin udev_builtin_kmod;
#endif #endif
extern const struct udev_builtin udev_builtin_net_id; extern const struct udev_builtin udev_builtin_net_id;
extern const struct udev_builtin udev_builtin_path_id; extern const struct udev_builtin udev_builtin_path_id;
extern const struct udev_builtin udev_builtin_usb_id; extern const struct udev_builtin udev_builtin_usb_id;
extern const struct udev_builtin udev_builtin_uaccess; extern const struct udev_builtin udev_builtin_uaccess;
void udev_builtin_init(struct udev *udev); void udev_builtin_init(struct udev *udev);
 End of changes. 4 change blocks. 
0 lines changed or deleted 4 lines changed or added


 unit.h   unit.h 
skipping to change at line 489 skipping to change at line 489
bool unit_can_reload(Unit *u); bool unit_can_reload(Unit *u);
bool unit_can_start(Unit *u); bool unit_can_start(Unit *u);
bool unit_can_isolate(Unit *u); bool unit_can_isolate(Unit *u);
int unit_start(Unit *u); int unit_start(Unit *u);
int unit_stop(Unit *u); int unit_stop(Unit *u);
int unit_reload(Unit *u); int unit_reload(Unit *u);
int unit_kill(Unit *u, KillWho w, int signo, DBusError *error); int unit_kill(Unit *u, KillWho w, int signo, DBusError *error);
int unit_kill_common(Unit *u, KillWho who, int signo, pid_t main_pid, pid_t control_pid, DBusError *error);
void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool relo ad_success); void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool relo ad_success);
int unit_watch_fd(Unit *u, int fd, uint32_t events, Watch *w); int unit_watch_fd(Unit *u, int fd, uint32_t events, Watch *w);
void unit_unwatch_fd(Unit *u, Watch *w); void unit_unwatch_fd(Unit *u, Watch *w);
int unit_watch_pid(Unit *u, pid_t pid); int unit_watch_pid(Unit *u, pid_t pid);
void unit_unwatch_pid(Unit *u, pid_t pid); void unit_unwatch_pid(Unit *u, pid_t pid);
int unit_watch_timer(Unit *u, clockid_t, bool relative, usec_t usec, Watch *w); int unit_watch_timer(Unit *u, clockid_t, bool relative, usec_t usec, Watch *w);
 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 39 skipping to change at line 39
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <signal.h> #include <signal.h>
#include <sched.h> #include <sched.h>
#include <limits.h> #include <limits.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <dirent.h> #include <dirent.h>
#include <sys/resource.h> #include <sys/resource.h>
#include <stddef.h> #include <stddef.h>
#include <systemd/sd-journal.h>
#include "macro.h" #include "macro.h"
#include "time-util.h" #include "time-util.h"
union dirent_storage { union dirent_storage {
struct dirent de; struct dirent de;
uint8_t storage[offsetof(struct dirent, d_name) + uint8_t storage[offsetof(struct dirent, d_name) +
((NAME_MAX + 1 + sizeof(long)) & ~(sizeof(long) - 1 ))]; ((NAME_MAX + 1 + sizeof(long)) & ~(sizeof(long) - 1 ))];
}; };
skipping to change at line 431 skipping to change at line 432
int symlink_atomic(const char *from, const char *to); int symlink_atomic(const char *from, const char *to);
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_gid(gid_t gid);
int in_group(const char *name); int in_group(const char *name);
char* uid_to_name(uid_t uid); char* uid_to_name(uid_t uid);
char* gid_to_name(gid_t gid);
int glob_exists(const char *path); int glob_exists(const char *path);
int dirent_ensure_type(DIR *d, struct dirent *de); int dirent_ensure_type(DIR *d, struct dirent *de);
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_;
skipping to change at line 522 skipping to change at line 525
bool is_valid_documentation_url(const char *url); bool is_valid_documentation_url(const char *url);
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); static inline void freep(void *p) {
free(*(void**) p);
}
void fclosep(FILE **f); void fclosep(FILE **f);
void pclosep(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); static inline void umaskp(mode_t *u) {
umask(*u);
}
static inline void journal_closep(sd_journal **j) {
sd_journal_close(*j);
}
_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))
skipping to change at line 572 skipping to change at line 584
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(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); int search_and_fopen_nulstr(const char *path, const char *mode, const char *search, FILE **_f);
int create_tmp_dir(char template[], char** dir_name);
#define FOREACH_LINE(line, f, on_error) \ #define FOREACH_LINE(line, f, on_error) \
for (;;) \ for (;;) \
if (!fgets(line, sizeof(line), f)) { \ if (!fgets(line, sizeof(line), f)) { \
if (ferror(f)) { \ if (ferror(f)) { \
on_error; \ on_error; \
} \ } \
break; \ break; \
} else } else
#define FOREACH_DIRENT(de, d, on_error) \ #define FOREACH_DIRENT(de, d, on_error) \
for (errno = 0, de = readdir(d);; errno = 0, de = readdir(d)) \ for (errno = 0, de = readdir(d);; errno = 0, de = readdir(d)) \
if (!de) { \ if (!de) { \
if (errno != 0) { \ if (errno != 0) { \
on_error; \ on_error; \
} \ } \
break; \ break; \
} else if (ignore_file((de)->d_name)) \ } else if (ignore_file((de)->d_name)) \
continue; \ continue; \
else else
static inline void *mempset(void *s, int c, size_t n) {
memset(s, c, n);
return (char*)s + n;
}
char *hexmem(const void *p, size_t l);
char *strextend(char **x, ...);
char *strrep(const char *s, unsigned n);
 End of changes. 7 change blocks. 
2 lines changed or deleted 15 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/