config.h   config.h 
skipping to change at line 19 skipping to change at line 19
/* Target Distribution */ /* Target Distribution */
#define DISTRIBUTION "other" #define DISTRIBUTION "other"
/* ACL available */ /* ACL available */
#define HAVE_ACL 1 #define HAVE_ACL 1
/* Define to 1 if you have the <acl/libacl.h> header file. */ /* Define to 1 if you have the <acl/libacl.h> header file. */
#define HAVE_ACL_LIBACL_H 1 #define HAVE_ACL_LIBACL_H 1
/* Define to 1 if you have the <attr/xattr.h> header file. */
#define HAVE_ATTR_XATTR_H 1
/* AUDIT available */ /* AUDIT available */
#define HAVE_AUDIT 1 #define HAVE_AUDIT 1
/* Define to 1 if you have the declaration of `gettid', and to 0 if you don 't. /* Define to 1 if you have the declaration of `gettid', and to 0 if you don 't.
*/ */
#define HAVE_DECL_GETTID 0 #define HAVE_DECL_GETTID 0
/* Define to 1 if you have the declaration of `name_to_handle_at', and to 0
if
you don't. */
#define HAVE_DECL_NAME_TO_HANDLE_AT 0
/* Define to 1 if you have the declaration of `pivot_root', and to 0 if you /* Define to 1 if you have the declaration of `pivot_root', and to 0 if you
don't. */ don't. */
#define HAVE_DECL_PIVOT_ROOT 0 #define HAVE_DECL_PIVOT_ROOT 0
/* Define to 1 if you have the <dlfcn.h> header file. */ /* Define to 1 if you have the <dlfcn.h> header file. */
#define HAVE_DLFCN_H 1 #define HAVE_DLFCN_H 1
/* Define to 1 if you have the `fanotify_init' function. */ /* Define to 1 if you have the `fanotify_init' function. */
#define HAVE_FANOTIFY_INIT 1 #define HAVE_FANOTIFY_INIT 1
skipping to change at line 66 skipping to change at line 73
/* Logind support available */ /* Logind support available */
#define HAVE_LOGIND 1 #define HAVE_LOGIND 1
/* Define to 1 if you have the <memory.h> header file. */ /* Define to 1 if you have the <memory.h> header file. */
#define HAVE_MEMORY_H 1 #define HAVE_MEMORY_H 1
/* Define if microhttpd is available */ /* Define if microhttpd is available */
#define HAVE_MICROHTTPD 1 #define HAVE_MICROHTTPD 1
/* Define to 1 if you have the `name_to_handle_at' function. */
/* #undef HAVE_NAME_TO_HANDLE_AT */
/* PAM available */ /* PAM available */
#define HAVE_PAM 1 #define HAVE_PAM 1
/* Define if qrencode is available */ /* Define if qrencode is available */
#define HAVE_QRENCODE 1 #define HAVE_QRENCODE 1
/* Define to 1 if you have the `secure_getenv' function. */ /* Define to 1 if you have the `secure_getenv' function. */
/* #undef HAVE_SECURE_GETENV */ /* #undef HAVE_SECURE_GETENV */
/* Define to 1 if you have the <security/pam_ext.h> header file. */ /* Define to 1 if you have the <security/pam_ext.h> header file. */
skipping to change at line 123 skipping to change at line 127
/* Define to 1 if you have the <sys/stat.h> header file. */ /* Define to 1 if you have the <sys/stat.h> header file. */
#define HAVE_SYS_STAT_H 1 #define HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */ /* Define to 1 if you have the <sys/types.h> header file. */
#define HAVE_SYS_TYPES_H 1 #define HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */ /* Define to 1 if you have the <unistd.h> header file. */
#define HAVE_UNISTD_H 1 #define HAVE_UNISTD_H 1
/* XATTR available */
#define HAVE_XATTR 1
/* Define if XZ is available */ /* Define if XZ is available */
#define HAVE_XZ 1 #define HAVE_XZ 1
/* Define to 1 if you have the `__secure_getenv' function. */ /* Define to 1 if you have the `__secure_getenv' function. */
#define HAVE___SECURE_GETENV 1 #define HAVE___SECURE_GETENV 1
/* Define to the sub-directory in which libtool stores uninstalled librarie s. /* Define to the sub-directory in which libtool stores uninstalled librarie s.
*/ */
#define LT_OBJDIR ".libs/" #define LT_OBJDIR ".libs/"
skipping to change at line 146 skipping to change at line 153
/* 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 194" #define PACKAGE_STRING "systemd 195"
/* 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 "194" #define PACKAGE_VERSION "195"
/* Define to 1 if you have the ANSI C header files. */ /* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1 #define STDC_HEADERS 1
/* Target is ALTLinux */ /* Target is ALTLinux */
/* #undef TARGET_ALTLINUX */ /* #undef TARGET_ALTLINUX */
/* Target is Ångström */ /* Target is Ångström */
/* #undef TARGET_ANGSTROM */ /* #undef TARGET_ANGSTROM */
skipping to change at line 221 skipping to change at line 228
/* 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 "194" #define VERSION "195"
/* 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. 7 change blocks. 
6 lines changed or deleted 14 lines changed or added


 dbus-common.h   dbus-common.h 
skipping to change at line 25 skipping to change at line 25
systemd is distributed in the hope that it will be useful, but systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details. Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>. along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/ ***/
#include <dbus/dbus.h> #include <dbus/dbus.h>
#include <inttypes.h>
#ifndef DBUS_ERROR_UNKNOWN_OBJECT #ifndef DBUS_ERROR_UNKNOWN_OBJECT
#define DBUS_ERROR_UNKNOWN_OBJECT "org.freedesktop.DBus.Error.UnknownObject " #define DBUS_ERROR_UNKNOWN_OBJECT "org.freedesktop.DBus.Error.UnknownObject "
#endif #endif
#ifndef DBUS_ERROR_UNKNOWN_INTERFACE #ifndef DBUS_ERROR_UNKNOWN_INTERFACE
#define DBUS_ERROR_UNKNOWN_INTERFACE "org.freedesktop.DBus.Error.UnknownInt erface" #define DBUS_ERROR_UNKNOWN_INTERFACE "org.freedesktop.DBus.Error.UnknownInt erface"
#endif #endif
#ifndef DBUS_ERROR_UNKNOWN_PROPERTY #ifndef DBUS_ERROR_UNKNOWN_PROPERTY
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 hashmap.h   hashmap.h 
skipping to change at line 82 skipping to change at line 82
void hashmap_clear(Hashmap *h); void hashmap_clear(Hashmap *h);
void hashmap_clear_free(Hashmap *h); void hashmap_clear_free(Hashmap *h);
void *hashmap_steal_first(Hashmap *h); void *hashmap_steal_first(Hashmap *h);
void *hashmap_steal_first_key(Hashmap *h); void *hashmap_steal_first_key(Hashmap *h);
void* hashmap_first(Hashmap *h); void* hashmap_first(Hashmap *h);
void* hashmap_first_key(Hashmap *h); void* hashmap_first_key(Hashmap *h);
void* hashmap_last(Hashmap *h); void* hashmap_last(Hashmap *h);
void *hashmap_next(Hashmap *h, const void *key);
char **hashmap_get_strv(Hashmap *h); char **hashmap_get_strv(Hashmap *h);
#define HASHMAP_FOREACH(e, h, i) \ #define HASHMAP_FOREACH(e, h, i) \
for ((i) = ITERATOR_FIRST, (e) = hashmap_iterate((h), &(i), NULL); (e); (e) = hashmap_iterate((h), &(i), NULL)) for ((i) = ITERATOR_FIRST, (e) = hashmap_iterate((h), &(i), NULL); (e); (e) = hashmap_iterate((h), &(i), NULL))
#define HASHMAP_FOREACH_KEY(e, k, h, i) \ #define HASHMAP_FOREACH_KEY(e, k, h, i) \
for ((i) = ITERATOR_FIRST, (e) = hashmap_iterate((h), &(i), (const void**) &(k)); (e); (e) = hashmap_iterate((h), &(i), (const void**) &(k))) for ((i) = ITERATOR_FIRST, (e) = hashmap_iterate((h), &(i), (const void**) &(k)); (e); (e) = hashmap_iterate((h), &(i), (const void**) &(k)))
#define HASHMAP_FOREACH_BACKWARDS(e, h, i) \ #define HASHMAP_FOREACH_BACKWARDS(e, h, i) \
for ((i) = ITERATOR_LAST, (e) = hashmap_iterate_backwards((h), &(i) , NULL); (e); (e) = hashmap_iterate_backwards((h), &(i), NULL)) for ((i) = ITERATOR_LAST, (e) = hashmap_iterate_backwards((h), &(i) , NULL); (e); (e) = hashmap_iterate_backwards((h), &(i), NULL))
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 journal-def.h   journal-def.h 
skipping to change at line 30 skipping to change at line 30
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 "sparse-endian.h" #include "sparse-endian.h"
#include <systemd/sd-id128.h> #include <systemd/sd-id128.h>
#include "macro.h" #include "macro.h"
/*
* If you change this file you probably should also change its documentatio
n:
*
* http://www.freedesktop.org/wiki/Software/systemd/journal-files
*
*/
typedef struct Header Header; typedef struct Header Header;
typedef struct ObjectHeader ObjectHeader; typedef struct ObjectHeader ObjectHeader;
typedef union Object Object; typedef union Object Object;
typedef struct DataObject DataObject; typedef struct DataObject DataObject;
typedef struct FieldObject FieldObject; typedef struct FieldObject FieldObject;
typedef struct EntryObject EntryObject; typedef struct EntryObject EntryObject;
typedef struct HashTableObject HashTableObject; typedef struct HashTableObject HashTableObject;
typedef struct EntryArrayObject EntryArrayObject; typedef struct EntryArrayObject EntryArrayObject;
typedef struct TagObject TagObject; typedef struct TagObject TagObject;
typedef struct EntryItem EntryItem; typedef struct EntryItem EntryItem;
typedef struct HashItem HashItem; typedef struct HashItem HashItem;
typedef struct FSSHeader FSSHeader; typedef struct FSSHeader FSSHeader;
/* Object types */ /* Object types */
enum { enum {
OBJECT_UNUSED, OBJECT_UNUSED,
OBJECT_DATA, /* !!! */ OBJECT_DATA,
OBJECT_FIELD, OBJECT_FIELD,
OBJECT_ENTRY, OBJECT_ENTRY,
OBJECT_DATA_HASH_TABLE, OBJECT_DATA_HASH_TABLE,
OBJECT_FIELD_HASH_TABLE, OBJECT_FIELD_HASH_TABLE,
OBJECT_ENTRY_ARRAY, /* !!! */ OBJECT_ENTRY_ARRAY,
OBJECT_TAG, OBJECT_TAG,
_OBJECT_TYPE_MAX _OBJECT_TYPE_MAX
}; };
/* Object flags */ /* Object flags */
enum { enum {
OBJECT_COMPRESSED = 1 OBJECT_COMPRESSED = 1
}; };
_packed_ struct ObjectHeader { _packed_ struct ObjectHeader {
skipping to change at line 127 skipping to change at line 134
_packed_ struct EntryArrayObject { _packed_ struct EntryArrayObject {
ObjectHeader object; ObjectHeader object;
le64_t next_entry_array_offset; le64_t next_entry_array_offset;
le64_t items[]; le64_t items[];
}; };
#define TAG_LENGTH (256/8) #define TAG_LENGTH (256/8)
_packed_ struct TagObject { _packed_ struct TagObject {
ObjectHeader object; ObjectHeader object;
uint64_t seqnum; le64_t seqnum;
uint64_t epoch; le64_t epoch;
uint8_t tag[TAG_LENGTH]; /* SHA-256 HMAC */ uint8_t tag[TAG_LENGTH]; /* SHA-256 HMAC */
}; };
union Object { union Object {
ObjectHeader object; ObjectHeader object;
DataObject data; DataObject data;
FieldObject field; FieldObject field;
EntryObject entry; EntryObject entry;
HashTableObject hash_table; HashTableObject hash_table;
EntryArrayObject entry_array; EntryArrayObject entry_array;
skipping to change at line 172 skipping to change at line 179
le32_t compatible_flags; le32_t compatible_flags;
le32_t incompatible_flags; le32_t incompatible_flags;
uint8_t state; uint8_t state;
uint8_t reserved[7]; uint8_t reserved[7];
sd_id128_t file_id; sd_id128_t file_id;
sd_id128_t machine_id; sd_id128_t machine_id;
sd_id128_t boot_id; /* last writer */ sd_id128_t boot_id; /* last writer */
sd_id128_t seqnum_id; sd_id128_t seqnum_id;
le64_t header_size; le64_t header_size;
le64_t arena_size; le64_t arena_size;
le64_t data_hash_table_offset; /* for looking up data objects * / le64_t data_hash_table_offset;
le64_t data_hash_table_size; le64_t data_hash_table_size;
le64_t field_hash_table_offset; /* for looking up field objects */ le64_t field_hash_table_offset;
le64_t field_hash_table_size; le64_t field_hash_table_size;
le64_t tail_object_offset; le64_t tail_object_offset;
le64_t n_objects; le64_t n_objects;
le64_t n_entries; le64_t n_entries;
le64_t tail_entry_seqnum; le64_t tail_entry_seqnum;
le64_t head_entry_seqnum; le64_t head_entry_seqnum;
le64_t entry_array_offset; le64_t entry_array_offset;
le64_t head_entry_realtime; le64_t head_entry_realtime;
le64_t tail_entry_realtime; le64_t tail_entry_realtime;
le64_t tail_entry_monotonic; le64_t tail_entry_monotonic;
 End of changes. 6 change blocks. 
6 lines changed or deleted 14 lines changed or added


 journal-file.h   journal-file.h 
skipping to change at line 158 skipping to change at line 158
uint64_t journal_file_entry_n_items(Object *o); uint64_t journal_file_entry_n_items(Object *o);
uint64_t journal_file_entry_array_n_items(Object *o); uint64_t journal_file_entry_array_n_items(Object *o);
uint64_t journal_file_hash_table_n_items(Object *o); uint64_t journal_file_hash_table_n_items(Object *o);
int journal_file_append_object(JournalFile *f, int type, uint64_t size, Obj ect **ret, uint64_t *offset); int journal_file_append_object(JournalFile *f, int type, uint64_t size, Obj ect **ret, uint64_t *offset);
int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, con st struct iovec iovec[], unsigned n_iovec, uint64_t *seqno, Object **ret, u int64_t *offset); int journal_file_append_entry(JournalFile *f, const dual_timestamp *ts, con st struct iovec iovec[], unsigned n_iovec, uint64_t *seqno, Object **ret, u int64_t *offset);
int journal_file_find_data_object(JournalFile *f, const void *data, uint64_ t size, Object **ret, uint64_t *offset); int journal_file_find_data_object(JournalFile *f, const void *data, uint64_ t size, Object **ret, uint64_t *offset);
int journal_file_find_data_object_with_hash(JournalFile *f, const void *dat a, uint64_t size, uint64_t hash, Object **ret, uint64_t *offset); int journal_file_find_data_object_with_hash(JournalFile *f, const void *dat a, uint64_t size, uint64_t hash, Object **ret, uint64_t *offset);
int journal_file_find_field_object(JournalFile *f, const void *field, uint6
4_t size, Object **ret, uint64_t *offset);
int journal_file_find_field_object_with_hash(JournalFile *f, const void *fi
eld, uint64_t size, uint64_t hash, Object **ret, uint64_t *offset);
int journal_file_next_entry(JournalFile *f, Object *o, uint64_t p, directio n_t direction, Object **ret, uint64_t *offset); int journal_file_next_entry(JournalFile *f, Object *o, uint64_t p, directio n_t direction, Object **ret, uint64_t *offset);
int journal_file_skip_entry(JournalFile *f, Object *o, uint64_t p, int64_t skip, Object **ret, uint64_t *offset); int journal_file_skip_entry(JournalFile *f, Object *o, uint64_t p, int64_t skip, Object **ret, uint64_t *offset);
int journal_file_next_entry_for_data(JournalFile *f, Object *o, uint64_t p, uint64_t data_offset, direction_t direction, Object **ret, uint64_t *offse t); int journal_file_next_entry_for_data(JournalFile *f, Object *o, uint64_t p, uint64_t data_offset, direction_t direction, Object **ret, uint64_t *offse t);
int journal_file_move_to_entry_by_offset(JournalFile *f, uint64_t seqnum, d irection_t direction, Object **ret, uint64_t *offset); int journal_file_move_to_entry_by_offset(JournalFile *f, uint64_t seqnum, d irection_t direction, Object **ret, uint64_t *offset);
int journal_file_move_to_entry_by_seqnum(JournalFile *f, uint64_t seqnum, d irection_t direction, Object **ret, uint64_t *offset); int journal_file_move_to_entry_by_seqnum(JournalFile *f, uint64_t seqnum, d irection_t direction, Object **ret, uint64_t *offset);
int journal_file_move_to_entry_by_realtime(JournalFile *f, uint64_t realtim e, direction_t direction, Object **ret, uint64_t *offset); int journal_file_move_to_entry_by_realtime(JournalFile *f, uint64_t realtim e, direction_t direction, Object **ret, uint64_t *offset);
int journal_file_move_to_entry_by_monotonic(JournalFile *f, sd_id128_t boot _id, uint64_t monotonic, direction_t direction, Object **ret, uint64_t *off set); int journal_file_move_to_entry_by_monotonic(JournalFile *f, sd_id128_t boot _id, uint64_t monotonic, direction_t direction, Object **ret, uint64_t *off set);
skipping to change at line 187 skipping to change at line 190
int journal_file_rotate(JournalFile **f, bool compress, bool seal); int journal_file_rotate(JournalFile **f, bool compress, bool seal);
void journal_file_post_change(JournalFile *f); void journal_file_post_change(JournalFile *f);
void journal_default_metrics(JournalMetrics *m, int fd); void journal_default_metrics(JournalMetrics *m, int fd);
int journal_file_get_cutoff_realtime_usec(JournalFile *f, usec_t *from, use c_t *to); int journal_file_get_cutoff_realtime_usec(JournalFile *f, usec_t *from, use c_t *to);
int journal_file_get_cutoff_monotonic_usec(JournalFile *f, sd_id128_t boot, usec_t *from, usec_t *to); int journal_file_get_cutoff_monotonic_usec(JournalFile *f, sd_id128_t boot, usec_t *from, usec_t *to);
bool journal_file_rotate_suggested(JournalFile *f); bool journal_file_rotate_suggested(JournalFile *f, usec_t max_file_usec);
 End of changes. 2 change blocks. 
0 lines changed or deleted 5 lines changed or added


 journal-internal.h   journal-internal.h 
skipping to change at line 60 skipping to change at line 60
/* For concrete matches */ /* For concrete matches */
char *data; char *data;
size_t size; size_t size;
le64_t le_hash; le64_t le_hash;
/* For terms */ /* For terms */
LIST_HEAD(Match, matches); LIST_HEAD(Match, matches);
}; };
typedef enum LocationType { typedef enum LocationType {
/* The first and last entries, resp. */
LOCATION_HEAD, LOCATION_HEAD,
LOCATION_TAIL, LOCATION_TAIL,
LOCATION_DISCRETE
/* We already read the entry we currently point to, and the
* next one to read should probably not be this one again. */
LOCATION_DISCRETE,
/* We should seek to the precise location specified, and
* return it, as we haven't read it yet. */
LOCATION_SEEK
} LocationType; } LocationType;
struct Location { struct Location {
LocationType type; LocationType type;
uint64_t seqnum; uint64_t seqnum;
sd_id128_t seqnum_id; sd_id128_t seqnum_id;
bool seqnum_set; bool seqnum_set;
uint64_t realtime; uint64_t realtime;
skipping to change at line 110 skipping to change at line 118
uint64_t current_field; uint64_t current_field;
Hashmap *directories_by_path; Hashmap *directories_by_path;
Hashmap *directories_by_wd; Hashmap *directories_by_wd;
int inotify_fd; int inotify_fd;
Match *level0, *level1; Match *level0, *level1;
unsigned current_invalidate_counter, last_invalidate_counter; unsigned current_invalidate_counter, last_invalidate_counter;
char *unique_field;
JournalFile *unique_file;
uint64_t unique_offset;
}; };
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. 3 change blocks. 
1 lines changed or deleted 13 lines changed or added


 journal-vacuum.h   journal-vacuum.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 <inttypes.h> #include <inttypes.h>
int journal_directory_vacuum(const char *directory, uint64_t max_use, uint6 4_t min_free); int journal_directory_vacuum(const char *directory, uint64_t max_use, uint6 4_t min_free, usec_t max_retention_usec, usec_t *oldest_usec);
 End of changes. 1 change blocks. 
0 lines changed or deleted 0 lines changed or added


 journald-syslog.h   journald-syslog.h 
skipping to change at line 29 skipping to change at line 29
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.h" #include "journald.h"
int syslog_fixup_facility(int priority); int syslog_fixup_facility(int priority);
void syslog_parse_priority(char **p, int *priority); void syslog_parse_priority(char **p, int *priority);
void syslog_parse_identifier(const char **buf, char **identifier, char **pi d); 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


 journald.h   journald.h 
skipping to change at line 25 skipping to change at line 25
systemd is distributed in the hope that it will be useful, but systemd is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details. Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>. along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/ ***/
#include <inttypes.h> #include <inttypes.h>
#include <sys/types.h>
#include <stdbool.h> #include <stdbool.h>
#include <sys/types.h>
#include <sys/socket.h>
#include "journal-file.h" #include "journal-file.h"
#include "hashmap.h" #include "hashmap.h"
#include "util.h" #include "util.h"
#include "audit.h" #include "audit.h"
#include "journald-rate-limit.h" #include "journald-rate-limit.h"
#include "list.h" #include "list.h"
typedef enum Storage { typedef enum Storage {
STORAGE_AUTO, STORAGE_AUTO,
skipping to change at line 93 skipping to change at line 94
bool forward_to_console; bool forward_to_console;
unsigned n_forward_syslog_missed; unsigned n_forward_syslog_missed;
usec_t last_warn_forward_syslog_missed; usec_t last_warn_forward_syslog_missed;
uint64_t cached_available_space; uint64_t cached_available_space;
usec_t cached_available_space_timestamp; usec_t cached_available_space_timestamp;
uint64_t var_available_timestamp; uint64_t var_available_timestamp;
usec_t max_retention_usec;
usec_t max_file_usec;
usec_t oldest_file_usec;
gid_t file_gid; gid_t file_gid;
bool file_gid_valid; bool file_gid_valid;
LIST_HEAD(StdoutStream, stdout_streams); LIST_HEAD(StdoutStream, stdout_streams);
unsigned n_stdout_streams; unsigned n_stdout_streams;
char *tty_path; char *tty_path;
int max_level_store; int max_level_store;
int max_level_syslog; int max_level_syslog;
 End of changes. 3 change blocks. 
1 lines changed or deleted 6 lines changed or added


 libudev-private.h   libudev-private.h 
skipping to change at line 53 skipping to change at line 53
__attribute__((format(printf, 6, 7))); __attribute__((format(printf, 6, 7)));
int udev_get_rules_path(struct udev *udev, char **path[], unsigned long lon g *ts_usec[]); int udev_get_rules_path(struct udev *udev, char **path[], unsigned long lon g *ts_usec[]);
struct udev_list_entry *udev_add_property(struct udev *udev, const char *ke y, const char *value); struct udev_list_entry *udev_add_property(struct udev *udev, const char *ke y, const char *value);
struct udev_list_entry *udev_get_properties_list_entry(struct udev *udev); struct udev_list_entry *udev_get_properties_list_entry(struct udev *udev);
/* libudev-device.c */ /* libudev-device.c */
struct udev_device *udev_device_new(struct udev *udev); struct udev_device *udev_device_new(struct udev *udev);
mode_t udev_device_get_devnode_mode(struct udev_device *udev_device); mode_t udev_device_get_devnode_mode(struct udev_device *udev_device);
int udev_device_set_syspath(struct udev_device *udev_device, const char *sy spath); int udev_device_set_syspath(struct udev_device *udev_device, const char *sy spath);
int udev_device_set_devnode(struct udev_device *udev_device, const char *de vnode); int udev_device_set_devnode(struct udev_device *udev_device, const char *de vnode);
int udev_device_add_devlink(struct udev_device *udev_device, const char *de vlink, int unique); int udev_device_add_devlink(struct udev_device *udev_device, const char *de vlink);
void udev_device_cleanup_devlinks_list(struct udev_device *udev_device); void udev_device_cleanup_devlinks_list(struct udev_device *udev_device);
struct udev_list_entry *udev_device_add_property(struct udev_device *udev_d evice, const char *key, const char *value); struct udev_list_entry *udev_device_add_property(struct udev_device *udev_d evice, const char *key, const char *value);
void udev_device_add_property_from_string_parse(struct udev_device *udev_de vice, const char *property); void udev_device_add_property_from_string_parse(struct udev_device *udev_de vice, const char *property);
int udev_device_add_property_from_string_parse_finish(struct udev_device *u dev_device); int udev_device_add_property_from_string_parse_finish(struct udev_device *u dev_device);
char **udev_device_get_properties_envp(struct udev_device *udev_device); char **udev_device_get_properties_envp(struct udev_device *udev_device);
ssize_t udev_device_get_properties_monitor_buf(struct udev_device *udev_dev ice, const char **buf); ssize_t udev_device_get_properties_monitor_buf(struct udev_device *udev_dev ice, const char **buf);
int udev_device_read_db(struct udev_device *udev_device, const char *dbfile ); int udev_device_read_db(struct udev_device *udev_device, const char *dbfile );
int udev_device_read_uevent_file(struct udev_device *udev_device); int udev_device_read_uevent_file(struct udev_device *udev_device);
int udev_device_set_action(struct udev_device *udev_device, const char *act ion); int udev_device_set_action(struct udev_device *udev_device, const char *act ion);
const char *udev_device_get_devpath_old(struct udev_device *udev_device); const char *udev_device_get_devpath_old(struct udev_device *udev_device);
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 log.h   log.h 
skipping to change at line 138 skipping to change at line 138
#define log_oom() log_oom_internal(__FILE__, __LINE__, __func__) #define log_oom() log_oom_internal(__FILE__, __LINE__, __func__)
/* This modifies the buffer passed! */ /* This modifies the buffer passed! */
#define log_dump(level, buffer) log_dump_internal(level, __FILE__, __LINE__ , __func__, buffer) #define log_dump(level, buffer) log_dump_internal(level, __FILE__, __LINE__ , __func__, buffer)
bool log_on_console(void); bool log_on_console(void);
const char *log_target_to_string(LogTarget target); const char *log_target_to_string(LogTarget target);
LogTarget log_target_from_string(const char *s); LogTarget log_target_from_string(const char *s);
#define MESSAGE_ID(x) "MESSAGE_ID=" SD_ID128_FORMAT_STR, SD_ID128_FORMAT_VA
L(x)
 End of changes. 1 change blocks. 
0 lines changed or deleted 0 lines changed or added


 logs-show.h   logs-show.h 
skipping to change at line 37 skipping to change at line 37
#include "util.h" #include "util.h"
typedef enum OutputMode { typedef enum OutputMode {
OUTPUT_SHORT, OUTPUT_SHORT,
OUTPUT_SHORT_MONOTONIC, 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_CAT, OUTPUT_CAT,
_OUTPUT_MODE_MAX, _OUTPUT_MODE_MAX,
_OUTPUT_MODE_INVALID = -1 _OUTPUT_MODE_INVALID = -1
} OutputMode; } OutputMode;
typedef enum OutputFlags { typedef enum OutputFlags {
OUTPUT_SHOW_ALL = 1 << 0, OUTPUT_SHOW_ALL = 1 << 0,
OUTPUT_FOLLOW = 1 << 1, OUTPUT_FOLLOW = 1 << 1,
OUTPUT_WARN_CUTOFF = 1 << 2, OUTPUT_WARN_CUTOFF = 1 << 2,
OUTPUT_FULL_WIDTH = 1 << 3, OUTPUT_FULL_WIDTH = 1 << 3,
skipping to change at line 66 skipping to change at line 67
int show_journal_by_unit( int show_journal_by_unit(
FILE *f, FILE *f,
const char *unit, const char *unit,
OutputMode mode, OutputMode mode,
unsigned n_columns, unsigned n_columns,
usec_t not_before, usec_t not_before,
unsigned how_many, unsigned how_many,
OutputFlags flags); OutputFlags flags);
void json_escape(
FILE *f,
const char* p,
size_t l,
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. 2 change blocks. 
0 lines changed or deleted 7 lines changed or added


 macro.h   macro.h 
skipping to change at line 195 skipping to change at line 195
} }
return k; return k;
} }
#define _cleanup_free_ __attribute__((cleanup(freep))) #define _cleanup_free_ __attribute__((cleanup(freep)))
#define _cleanup_fclose_ __attribute__((cleanup(fclosep))) #define _cleanup_fclose_ __attribute__((cleanup(fclosep)))
#define _cleanup_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_strv_free_ __attribute__((cleanup(strv_freep)))
#define VA_FORMAT_ADVANCE(format, ap) \ #define VA_FORMAT_ADVANCE(format, ap) \
do { \ do { \
int _argtypes[128]; \ int _argtypes[128]; \
size_t _i, _k; \ size_t _i, _k; \
_k = parse_printf_format((format), ELEMENTSOF(_argtypes), _argtypes ); \ _k = parse_printf_format((format), ELEMENTSOF(_argtypes), _argtypes ); \
assert(_k < ELEMENTSOF(_argtypes)); \ assert(_k < ELEMENTSOF(_argtypes)); \
for (_i = 0; _i < _k; _i++) { \ for (_i = 0; _i < _k; _i++) { \
if (_argtypes[_i] & PA_FLAG_PTR) { \ if (_argtypes[_i] & PA_FLAG_PTR) { \
(void) va_arg(ap, void*); \ (void) va_arg(ap, void*); \
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 missing.h   missing.h 
skipping to change at line 211 skipping to change at line 211
#endif #endif
#ifndef PR_SET_CHILD_SUBREAPER #ifndef PR_SET_CHILD_SUBREAPER
#define PR_SET_CHILD_SUBREAPER 36 #define PR_SET_CHILD_SUBREAPER 36
#endif #endif
#ifndef MAX_HANDLE_SZ #ifndef MAX_HANDLE_SZ
#define MAX_HANDLE_SZ 128 #define MAX_HANDLE_SZ 128
#endif #endif
#ifdef __x86_64__ #if defined __x86_64__
# ifndef __NR_name_to_handle_at # ifndef __NR_name_to_handle_at
# define __NR_name_to_handle_at 303 # define __NR_name_to_handle_at 303
# endif # endif
#else #elif defined __i386__
# ifndef __NR_name_to_handle_at # ifndef __NR_name_to_handle_at
# define __NR_name_to_handle_at 341 # define __NR_name_to_handle_at 341
# endif # endif
#elif defined __arm__
# ifndef __NR_name_to_handle_at
# define __NR_name_to_handle_at 370
# endif
#elif defined __powerpc__
# ifndef __NR_name_to_handle_at
# define __NR_name_to_handle_at 345
# endif
#else
# ifndef __NR_name_to_handle_at
# error __NR_name_to_handle_at is not defined
# endif
#endif #endif
#ifndef HAVE_NAME_TO_HANDLE_AT #if !HAVE_DECL_NAME_TO_HANDLE_AT
struct file_handle { struct file_handle {
unsigned int handle_bytes; unsigned int handle_bytes;
int handle_type; int handle_type;
unsigned char f_handle[0]; unsigned char f_handle[0];
}; };
static inline int name_to_handle_at(int fd, const char *name, struct file_h andle *handle, int *mnt_id, int flags) { static inline int name_to_handle_at(int fd, const char *name, struct file_h andle *handle, int *mnt_id, int flags) {
return syscall(__NR_name_to_handle_at, fd, name, handle, mnt_id, fl ags); return syscall(__NR_name_to_handle_at, fd, name, handle, mnt_id, fl ags);
} }
#endif #endif
 End of changes. 4 change blocks. 
3 lines changed or deleted 15 lines changed or added


 pager.h   pager.h 
skipping to change at line 26 skipping to change at line 26
WITHOUT ANY WARRANTY; without even the implied warranty of WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details. Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>. along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/ ***/
#include <stdbool.h> #include <stdbool.h>
bool pager_open(void); int pager_open(void);
void pager_close(void); void pager_close(void);
bool pager_have(void);
 End of changes. 2 change blocks. 
1 lines changed or deleted 1 lines changed or added


 sd-id128.h   sd-id128.h 
skipping to change at line 63 skipping to change at line 63
0x##v8, 0x##v9, 0x##v10, 0x##v11, 0x##v1 2, 0x##v13, 0x##v14, 0x##v15 }}) 0x##v8, 0x##v9, 0x##v10, 0x##v11, 0x##v1 2, 0x##v13, 0x##v14, 0x##v15 }})
/* Note that SD_ID128_FORMAT_VAL will evaluate the passed argument 16 /* Note that SD_ID128_FORMAT_VAL will evaluate the passed argument 16
* times. It is hence not a good idea to call this macro with an * times. It is hence not a good idea to call this macro with an
* expensive function as paramater or an expression with side * expensive function as paramater or an expression with side
* effects */ * effects */
#define SD_ID128_FORMAT_STR "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%0 2x%02x%02x%02x%02x" #define SD_ID128_FORMAT_STR "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%0 2x%02x%02x%02x%02x"
#define SD_ID128_FORMAT_VAL(x) (x).bytes[0], (x).bytes[1], (x).bytes[2], (x ).bytes[3], (x).bytes[4], (x).bytes[5], (x).bytes[6], (x).bytes[7], (x).byt es[8], (x).bytes[9], (x).bytes[10], (x).bytes[11], (x).bytes[12], (x).bytes [13], (x).bytes[14], (x).bytes[15] #define SD_ID128_FORMAT_VAL(x) (x).bytes[0], (x).bytes[1], (x).bytes[2], (x ).bytes[3], (x).bytes[4], (x).bytes[5], (x).bytes[6], (x).bytes[7], (x).byt es[8], (x).bytes[9], (x).bytes[10], (x).bytes[11], (x).bytes[12], (x).bytes [13], (x).bytes[14], (x).bytes[15]
#define SD_ID128_CONST_STR(x) \
((char[33]) { \
((x).bytes[0] >> 4) >= 10 ? 'a' + ((x).bytes[0] >> 4) - 10
: '0' + ((x).bytes[0] >> 4), \
((x).bytes[0] & 15) >= 10 ? 'a' + ((x).bytes[0] & 15) - 10
: '0' + ((x).bytes[0] & 15), \
((x).bytes[1] >> 4) >= 10 ? 'a' + ((x).bytes[1] >> 4) - 10
: '0' + ((x).bytes[1] >> 4), \
((x).bytes[1] & 15) >= 10 ? 'a' + ((x).bytes[1] & 15) - 10
: '0' + ((x).bytes[1] & 15), \
((x).bytes[2] >> 4) >= 10 ? 'a' + ((x).bytes[2] >> 4) - 10
: '0' + ((x).bytes[2] >> 4), \
((x).bytes[2] & 15) >= 10 ? 'a' + ((x).bytes[2] & 15) - 10
: '0' + ((x).bytes[2] & 15), \
((x).bytes[3] >> 4) >= 10 ? 'a' + ((x).bytes[3] >> 4) - 10
: '0' + ((x).bytes[3] >> 4), \
((x).bytes[3] & 15) >= 10 ? 'a' + ((x).bytes[3] & 15) - 10
: '0' + ((x).bytes[3] & 15), \
((x).bytes[4] >> 4) >= 10 ? 'a' + ((x).bytes[4] >> 4) - 10
: '0' + ((x).bytes[4] >> 4), \
((x).bytes[4] & 15) >= 10 ? 'a' + ((x).bytes[4] & 15) - 10
: '0' + ((x).bytes[4] & 15), \
((x).bytes[5] >> 4) >= 10 ? 'a' + ((x).bytes[5] >> 4) - 10
: '0' + ((x).bytes[5] >> 4), \
((x).bytes[5] & 15) >= 10 ? 'a' + ((x).bytes[5] & 15) - 10
: '0' + ((x).bytes[5] & 15), \
((x).bytes[6] >> 4) >= 10 ? 'a' + ((x).bytes[6] >> 4) - 10
: '0' + ((x).bytes[6] >> 4), \
((x).bytes[6] & 15) >= 10 ? 'a' + ((x).bytes[6] & 15) - 10
: '0' + ((x).bytes[6] & 15), \
((x).bytes[7] >> 4) >= 10 ? 'a' + ((x).bytes[7] >> 4) - 10
: '0' + ((x).bytes[7] >> 4), \
((x).bytes[7] & 15) >= 10 ? 'a' + ((x).bytes[7] & 15) - 10
: '0' + ((x).bytes[7] & 15), \
((x).bytes[8] >> 4) >= 10 ? 'a' + ((x).bytes[8] >> 4) - 10
: '0' + ((x).bytes[8] >> 4), \
((x).bytes[8] & 15) >= 10 ? 'a' + ((x).bytes[8] & 15) - 10
: '0' + ((x).bytes[8] & 15), \
((x).bytes[9] >> 4) >= 10 ? 'a' + ((x).bytes[9] >> 4) - 10
: '0' + ((x).bytes[9] >> 4), \
((x).bytes[9] & 15) >= 10 ? 'a' + ((x).bytes[9] & 15) - 10
: '0' + ((x).bytes[9] & 15), \
((x).bytes[10] >> 4) >= 10 ? 'a' + ((x).bytes[10] >> 4) - 1
0 : '0' + ((x).bytes[10] >> 4), \
((x).bytes[10] & 15) >= 10 ? 'a' + ((x).bytes[10] & 15) - 1
0 : '0' + ((x).bytes[10] & 15), \
((x).bytes[11] >> 4) >= 10 ? 'a' + ((x).bytes[11] >> 4) - 1
0 : '0' + ((x).bytes[11] >> 4), \
((x).bytes[11] & 15) >= 10 ? 'a' + ((x).bytes[11] & 15) - 1
0 : '0' + ((x).bytes[11] & 15), \
((x).bytes[12] >> 4) >= 10 ? 'a' + ((x).bytes[12] >> 4) - 1
0 : '0' + ((x).bytes[12] >> 4), \
((x).bytes[12] & 15) >= 10 ? 'a' + ((x).bytes[12] & 15) - 1
0 : '0' + ((x).bytes[12] & 15), \
((x).bytes[13] >> 4) >= 10 ? 'a' + ((x).bytes[13] >> 4) - 1
0 : '0' + ((x).bytes[13] >> 4), \
((x).bytes[13] & 15) >= 10 ? 'a' + ((x).bytes[13] & 15) - 1
0 : '0' + ((x).bytes[13] & 15), \
((x).bytes[14] >> 4) >= 10 ? 'a' + ((x).bytes[14] >> 4) - 1
0 : '0' + ((x).bytes[14] >> 4), \
((x).bytes[14] & 15) >= 10 ? 'a' + ((x).bytes[14] & 15) - 1
0 : '0' + ((x).bytes[14] & 15), \
((x).bytes[15] >> 4) >= 10 ? 'a' + ((x).bytes[15] >> 4) - 1
0 : '0' + ((x).bytes[15] >> 4), \
((x).bytes[15] & 15) >= 10 ? 'a' + ((x).bytes[15] & 15) - 1
0 : '0' + ((x).bytes[15] & 15), \
0 })
static inline int sd_id128_equal(sd_id128_t a, sd_id128_t b) { static inline int sd_id128_equal(sd_id128_t a, sd_id128_t b) {
return memcmp(&a, &b, 16) == 0; return memcmp(&a, &b, 16) == 0;
} }
#define SD_ID128_NULL ((sd_id128_t) { .qwords = { 0, 0 }}) #define SD_ID128_NULL ((sd_id128_t) { .qwords = { 0, 0 }})
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
 End of changes. 1 change blocks. 
0 lines changed or deleted 68 lines changed or added


 sd-journal.h   sd-journal.h 
skipping to change at line 73 skipping to change at line 73
#define sd_journal_perror(message) sd_journal_perror_with_location("CODE_FI LE=" __FILE__, "CODE_LINE=" _sd_STRINGIFY(__LINE__), __func__, message) #define sd_journal_perror(message) sd_journal_perror_with_location("CODE_FI LE=" __FILE__, "CODE_LINE=" _sd_STRINGIFY(__LINE__), __func__, message)
#endif #endif
int sd_journal_stream_fd(const char *identifier, int priority, int level_pr efix); int sd_journal_stream_fd(const char *identifier, int priority, int level_pr efix);
/* Browse journal stream */ /* Browse journal stream */
typedef struct sd_journal sd_journal; typedef struct sd_journal sd_journal;
/* Open flags */
enum { enum {
SD_JOURNAL_LOCAL_ONLY = 1, SD_JOURNAL_LOCAL_ONLY = 1,
SD_JOURNAL_RUNTIME_ONLY = 2, SD_JOURNAL_RUNTIME_ONLY = 2,
SD_JOURNAL_SYSTEM_ONLY = 4 SD_JOURNAL_SYSTEM_ONLY = 4
}; };
/* Wakeup event types */
enum {
SD_JOURNAL_NOP,
SD_JOURNAL_APPEND,
SD_JOURNAL_INVALIDATE
};
int sd_journal_open(sd_journal **ret, int flags); int sd_journal_open(sd_journal **ret, int flags);
int sd_journal_open_directory(sd_journal **ret, const char *path, int flags ); int sd_journal_open_directory(sd_journal **ret, const char *path, int flags );
void sd_journal_close(sd_journal *j); void sd_journal_close(sd_journal *j);
int sd_journal_previous(sd_journal *j); int sd_journal_previous(sd_journal *j);
int sd_journal_next(sd_journal *j); int sd_journal_next(sd_journal *j);
int sd_journal_previous_skip(sd_journal *j, uint64_t skip); int sd_journal_previous_skip(sd_journal *j, uint64_t skip);
int sd_journal_next_skip(sd_journal *j, uint64_t skip); int sd_journal_next_skip(sd_journal *j, uint64_t skip);
skipping to change at line 107 skipping to change at line 115
int sd_journal_add_disjunction(sd_journal *j); int sd_journal_add_disjunction(sd_journal *j);
void sd_journal_flush_matches(sd_journal *j); void sd_journal_flush_matches(sd_journal *j);
int sd_journal_seek_head(sd_journal *j); int sd_journal_seek_head(sd_journal *j);
int sd_journal_seek_tail(sd_journal *j); int sd_journal_seek_tail(sd_journal *j);
int sd_journal_seek_monotonic_usec(sd_journal *j, sd_id128_t boot_id, uint6 4_t usec); int sd_journal_seek_monotonic_usec(sd_journal *j, sd_id128_t boot_id, uint6 4_t usec);
int sd_journal_seek_realtime_usec(sd_journal *j, uint64_t usec); int sd_journal_seek_realtime_usec(sd_journal *j, uint64_t usec);
int sd_journal_seek_cursor(sd_journal *j, const char *cursor); int sd_journal_seek_cursor(sd_journal *j, const char *cursor);
int sd_journal_get_cursor(sd_journal *j, char **cursor); int sd_journal_get_cursor(sd_journal *j, char **cursor);
int sd_journal_test_cursor(sd_journal *j, const char *cursor);
int sd_journal_get_cutoff_realtime_usec(sd_journal *j, uint64_t *from, uint 64_t *to); int sd_journal_get_cutoff_realtime_usec(sd_journal *j, uint64_t *from, uint 64_t *to);
int sd_journal_get_cutoff_monotonic_usec(sd_journal *j, const sd_id128_t bo ot_id, uint64_t *from, uint64_t *to); int sd_journal_get_cutoff_monotonic_usec(sd_journal *j, const sd_id128_t bo ot_id, uint64_t *from, uint64_t *to);
int sd_journal_get_usage(sd_journal *j, uint64_t *bytes); int sd_journal_get_usage(sd_journal *j, uint64_t *bytes);
/* int sd_journal_query_unique(sd_journal *j, const char *field); /\* int sd_journal_query_unique(sd_journal *j, const char *field);
missing *\/ */ int sd_journal_enumerate_unique(sd_journal *j, const void **data, size_t *l
/* int sd_journal_enumerate_unique(sd_journal *j, const void **data, size_t );
*l); /\* missing *\/ */ void sd_journal_restart_unique(sd_journal *j);
/* void sd_journal_restart_unique(sd_journal *j); /\*
missing *\/ */
enum {
SD_JOURNAL_NOP,
SD_JOURNAL_APPEND,
SD_JOURNAL_INVALIDATE
};
int sd_journal_get_fd(sd_journal *j); int sd_journal_get_fd(sd_journal *j);
int sd_journal_process(sd_journal *j); int sd_journal_process(sd_journal *j);
int sd_journal_wait(sd_journal *j, uint64_t timeout_usec); int sd_journal_wait(sd_journal *j, uint64_t timeout_usec);
#define SD_JOURNAL_FOREACH(j) \ #define SD_JOURNAL_FOREACH(j) \
if (sd_journal_seek_head(j) >= 0) \ if (sd_journal_seek_head(j) >= 0) \
while (sd_journal_next(j) > 0) while (sd_journal_next(j) > 0)
#define SD_JOURNAL_FOREACH_BACKWARDS(j) \ #define SD_JOURNAL_FOREACH_BACKWARDS(j) \
if (sd_journal_seek_tail(j) >= 0) \ if (sd_journal_seek_tail(j) >= 0) \
while (sd_journal_previous(j) > 0) while (sd_journal_previous(j) > 0)
#define SD_JOURNAL_FOREACH_DATA(j, data, l) \ #define SD_JOURNAL_FOREACH_DATA(j, data, l) \
for (sd_journal_restart_data(j); sd_journal_enumerate_data((j), &(d ata), &(l)) > 0; ) for (sd_journal_restart_data(j); sd_journal_enumerate_data((j), &(d ata), &(l)) > 0; )
/* #define SD_JOURNAL_FOREACH_UNIQUE(j, data, l) #define SD_JOURNAL_FOREACH_UNIQUE(j, data, l) \
\ */ for (sd_journal_restart_unique(j); sd_journal_enumerate_unique((j),
/* for (sd_journal_restart_unique(j); sd_journal_enumerate_data((j) &(data), &(l)) > 0; )
, &(data), &(l)) > 0; ) */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif
 End of changes. 5 change blocks. 
16 lines changed or deleted 16 lines changed or added


 sd-messages.h   sd-messages.h 
skipping to change at line 61 skipping to change at line 61
#define SD_MESSAGE_SHUTDOWN SD_ID128_MAKE(98,26,88,66,d1,d5,4a,49,9 c,4e,98,92,1d,93,bc,40) #define SD_MESSAGE_SHUTDOWN SD_ID128_MAKE(98,26,88,66,d1,d5,4a,49,9 c,4e,98,92,1d,93,bc,40)
#define SD_MESSAGE_UNIT_STARTING SD_ID128_MAKE(7d,49,58,e8,42,da,4a,75,8 f,6c,1c,dc,7b,36,dc,c5) #define SD_MESSAGE_UNIT_STARTING SD_ID128_MAKE(7d,49,58,e8,42,da,4a,75,8 f,6c,1c,dc,7b,36,dc,c5)
#define SD_MESSAGE_UNIT_STARTED SD_ID128_MAKE(39,f5,34,79,d3,a0,45,ac,8 e,11,78,62,48,23,1f,bf) #define SD_MESSAGE_UNIT_STARTED SD_ID128_MAKE(39,f5,34,79,d3,a0,45,ac,8 e,11,78,62,48,23,1f,bf)
#define SD_MESSAGE_UNIT_STOPPING SD_ID128_MAKE(de,5b,42,6a,63,be,47,a7,b 6,ac,3e,aa,c8,2e,2f,6f) #define SD_MESSAGE_UNIT_STOPPING SD_ID128_MAKE(de,5b,42,6a,63,be,47,a7,b 6,ac,3e,aa,c8,2e,2f,6f)
#define SD_MESSAGE_UNIT_STOPPED SD_ID128_MAKE(9d,1a,aa,27,d6,01,40,bd,9 6,36,54,38,aa,d2,02,86) #define SD_MESSAGE_UNIT_STOPPED SD_ID128_MAKE(9d,1a,aa,27,d6,01,40,bd,9 6,36,54,38,aa,d2,02,86)
#define SD_MESSAGE_UNIT_FAILED SD_ID128_MAKE(be,02,cf,68,55,d2,42,8b,a 4,0d,f7,e9,d0,22,f0,3d) #define SD_MESSAGE_UNIT_FAILED SD_ID128_MAKE(be,02,cf,68,55,d2,42,8b,a 4,0d,f7,e9,d0,22,f0,3d)
#define SD_MESSAGE_UNIT_RELOADING SD_ID128_MAKE(d3,4d,03,7f,ff,18,47,e6,a e,66,9a,37,0e,69,47,25) #define SD_MESSAGE_UNIT_RELOADING SD_ID128_MAKE(d3,4d,03,7f,ff,18,47,e6,a e,66,9a,37,0e,69,47,25)
#define SD_MESSAGE_UNIT_RELOADED SD_ID128_MAKE(7b,05,eb,c6,68,38,42,22,b a,a8,88,11,79,cf,da,54) #define SD_MESSAGE_UNIT_RELOADED SD_ID128_MAKE(7b,05,eb,c6,68,38,42,22,b a,a8,88,11,79,cf,da,54)
#define SD_MESSAGE_SPAWN_FAILED SD_ID128_MAKE(64,12,57,65,1c,1b,4e,c9,a
8,62,4d,7a,40,a9,e1,e7)
#define SD_MESSAGE_FORWARD_SYSLOG_MISSED SD_ID128_MAKE(00,27,22,9c,a0,64,41 ,81,a7,6c,4e,92,45,8a,fa,2e) #define SD_MESSAGE_FORWARD_SYSLOG_MISSED SD_ID128_MAKE(00,27,22,9c,a0,64,41 ,81,a7,6c,4e,92,45,8a,fa,2e)
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif #endif
 End of changes. 1 change blocks. 
0 lines changed or deleted 3 lines changed or added


 set.h   set.h 
skipping to change at line 65 skipping to change at line 65
void *set_iterate_backwards(Set *s, Iterator *i); void *set_iterate_backwards(Set *s, Iterator *i);
void *set_iterate_skip(Set *s, void *value, Iterator *i); void *set_iterate_skip(Set *s, void *value, Iterator *i);
void set_clear(Set *s); void set_clear(Set *s);
void set_clear_free(Set *s); void set_clear_free(Set *s);
void *set_steal_first(Set *s); void *set_steal_first(Set *s);
void* set_first(Set *s); void* set_first(Set *s);
void* set_last(Set *s); void* set_last(Set *s);
char **set_get_strv(Set *s);
#define SET_FOREACH(e, s, i) \ #define SET_FOREACH(e, s, i) \
for ((i) = ITERATOR_FIRST, (e) = set_iterate((s), &(i)); (e); (e) = set_iterate((s), &(i))) for ((i) = ITERATOR_FIRST, (e) = set_iterate((s), &(i)); (e); (e) = set_iterate((s), &(i)))
#define SET_FOREACH_BACKWARDS(e, s, i) \ #define SET_FOREACH_BACKWARDS(e, s, i) \
for ((i) = ITERATOR_LAST, (e) = set_iterate_backwards((s), &(i)); ( e); (e) = set_iterate_backwards((s), &(i))) for ((i) = ITERATOR_LAST, (e) = set_iterate_backwards((s), &(i)); ( e); (e) = set_iterate_backwards((s), &(i)))
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 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);
char **strv_copy(char **l) _malloc_; char **strv_copy(char **l) _malloc_;
unsigned strv_length(char **l); unsigned strv_length(char **l);
char **strv_merge(char **a, char **b); char **strv_merge(char **a, char **b);
char **strv_merge_concat(char **a, char **b, const char *suffix); char **strv_merge_concat(char **a, char **b, const char *suffix);
char **strv_append(char **l, const char *s); char **strv_append(char **l, const char *s);
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);
skipping to change at line 82 skipping to change at line 83
char **strv_parse_nulstr(const char *s, size_t l); char **strv_parse_nulstr(const char *s, size_t l);
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)--)
char **strv_sort(char **l);
 End of changes. 2 change blocks. 
0 lines changed or deleted 1 lines changed or added


 util.h   util.h 
skipping to change at line 144 skipping to change at line 144
} }
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];
} }
bool endswith(const char *s, const char *postfix); char *endswith(const char *s, const char *postfix);
bool startswith(const char *s, const char *prefix); bool startswith(const char *s, const char *prefix);
bool startswith_no_case(const char *s, const char *prefix); bool startswith_no_case(const char *s, const char *prefix);
bool first_word(const char *s, const char *word); bool first_word(const char *s, const char *word);
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); int parse_boolean(const char *v);
skipping to change at line 387 skipping to change at line 387
int pipe_eof(int fd); int pipe_eof(int fd);
cpu_set_t* cpu_set_malloc(unsigned *ncpus); cpu_set_t* cpu_set_malloc(unsigned *ncpus);
int status_vprintf(const char *status, bool ellipse, const char *format, va _list ap); int status_vprintf(const char *status, bool ellipse, const char *format, va _list ap);
int status_printf(const char *status, bool ellipse, const char *format, ... ); int status_printf(const char *status, bool ellipse, const char *format, ... );
int status_welcome(void); int status_welcome(void);
int fd_columns(int fd); int fd_columns(int fd);
unsigned columns(void); unsigned columns(void);
unsigned columns_uncached(void);
void columns_cache_reset(int _unused_ signum);
int fd_lines(int fd); int fd_lines(int fd);
unsigned lines(void); unsigned lines(void);
void columns_lines_cache_reset(int _unused_ signum);
bool on_tty(void);
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);
skipping to change at line 564 skipping to change at line 564
_malloc_ static inline void *memdup_multiply(const void *p, size_t a, size_ t b) { _malloc_ static inline void *memdup_multiply(const void *p, size_t a, size_ t b) {
if (_unlikely_(b == 0 || a > ((size_t) -1) / b)) if (_unlikely_(b == 0 || a > ((size_t) -1) / b))
return NULL; return NULL;
return memdup(p, a * b); return memdup(p, a * b);
} }
bool filename_is_safe(const char *p); bool filename_is_safe(const char *p);
bool string_is_safe(const char *p); bool string_is_safe(const char *p);
int parse_timestamp(const char *t, usec_t *usec);
void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t si
ze,
int (*compar) (const void *, const void *, void *),
void *arg);
 End of changes. 4 change blocks. 
4 lines changed or deleted 4 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/