compress.h   compress.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 <inttypes.h> #include <inttypes.h>
#include <stdbool.h> #include <stdbool.h>
bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_size); bool compress_blob(const void *src, uint64_t src_size, void *dst, uint64_t *dst_size);
bool uncompress_blob(const void *src, uint64_t src_size, bool uncompress_blob(const void *src, uint64_t src_size,
void **dst, uint64_t *dst_alloc_size, uint64_t* dst_si ze); void **dst, uint64_t *dst_alloc_size, uint64_t* dst_si ze, uint64_t dst_max);
bool uncompress_startswith(const void *src, uint64_t src_size, bool uncompress_startswith(const void *src, uint64_t src_size,
void **buffer, uint64_t *buffer_size, void **buffer, uint64_t *buffer_size,
const void *prefix, uint64_t prefix_len, const void *prefix, uint64_t prefix_len,
uint8_t extra); uint8_t extra);
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 config.h   config.h 
skipping to change at line 25 skipping to change at line 25
/* 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 to 1 if you have the <attr/xattr.h> header file. */
#define HAVE_ATTR_XATTR_H 1 #define HAVE_ATTR_XATTR_H 1
/* AUDIT available */ /* AUDIT available */
#define HAVE_AUDIT 1 #define HAVE_AUDIT 1
/* Define if blkid is available */
#define HAVE_BLKID 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 /* Define to 1 if you have the declaration of `name_to_handle_at', and to 0 if
you don't. */ you don't. */
#define HAVE_DECL_NAME_TO_HANDLE_AT 0 #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. */
skipping to change at line 55 skipping to change at line 58
/* GCRYPT available */ /* GCRYPT available */
#define HAVE_GCRYPT 1 #define HAVE_GCRYPT 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 <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 HAVE_KMOD 1
/* Define to 1 if you have the <libaudit.h> header file. */ /* Define to 1 if you have the <libaudit.h> header file. */
#define HAVE_LIBAUDIT_H 1 #define HAVE_LIBAUDIT_H 1
/* Define if libcryptsetup is available */ /* Define if libcryptsetup is available */
/* #undef HAVE_LIBCRYPTSETUP */ /* #undef HAVE_LIBCRYPTSETUP */
/* Have tcpwrap? */ /* Have tcpwrap? */
#define HAVE_LIBWRAP /**/ #define HAVE_LIBWRAP /**/
/* Logind support available */ /* Logind support available */
skipping to change at line 153 skipping to change at line 159
/* 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 195" #define PACKAGE_STRING "systemd 196"
/* 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 "195" #define PACKAGE_VERSION "196"
/* 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 228 skipping to change at line 234
/* 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 "195" #define VERSION "196"
/* 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


 dbus-common.h   dbus-common.h 
skipping to change at line 116 skipping to change at line 116
bool indirect; /* data is indirect, ie. not base+ offset, but *(base+offset) */ bool indirect; /* data is indirect, ie. not base+ offset, but *(base+offset) */
BusPropertySetCallback set; /* Optional: Function that is call ed to set this property */ BusPropertySetCallback set; /* Optional: Function that is call ed to set this property */
} BusProperty; } BusProperty;
typedef struct BusBoundProperties { typedef struct BusBoundProperties {
const char *interface; /* interface of the properties */ const char *interface; /* interface of the properties */
const BusProperty *properties; /* array of properties, ended by a NULL-filled element */ const BusProperty *properties; /* array of properties, ended by a NULL-filled element */
const void *const base; /* base pointer to which the offse t must be added to reach data */ const void *const base; /* base pointer to which the offse t must be added to reach data */
} BusBoundProperties; } BusBoundProperties;
dbus_bool_t bus_maybe_send_reply (DBusConnection *c,
DBusMessage *message,
DBusMessage *reply);
DBusHandlerResult bus_send_error_reply( DBusHandlerResult bus_send_error_reply(
DBusConnection *c, DBusConnection *c,
DBusMessage *message, DBusMessage *message,
DBusError *bus_error, DBusError *bus_error,
int error); int error);
DBusHandlerResult bus_default_message_handler( DBusHandlerResult bus_default_message_handler(
DBusConnection *c, DBusConnection *c,
DBusMessage *message, DBusMessage *message,
const char *introspection, const char *introspection,
 End of changes. 1 change blocks. 
0 lines changed or deleted 4 lines changed or added


 hashmap.h   hashmap.h 
skipping to change at line 47 skipping to change at line 47
typedef unsigned (*hash_func_t)(const void *p); typedef unsigned (*hash_func_t)(const void *p);
typedef int (*compare_func_t)(const void *a, const void *b); typedef int (*compare_func_t)(const void *a, const void *b);
unsigned string_hash_func(const void *p); unsigned string_hash_func(const void *p);
int string_compare_func(const void *a, const void *b); int string_compare_func(const void *a, const void *b);
unsigned trivial_hash_func(const void *p); unsigned trivial_hash_func(const void *p);
int trivial_compare_func(const void *a, const void *b); int trivial_compare_func(const void *a, const void *b);
unsigned uint64_hash_func(const void *p);
int uint64_compare_func(const void *a, const void *b);
Hashmap *hashmap_new(hash_func_t hash_func, compare_func_t compare_func); Hashmap *hashmap_new(hash_func_t hash_func, compare_func_t compare_func);
void hashmap_free(Hashmap *h); void hashmap_free(Hashmap *h);
void hashmap_free_free(Hashmap *h); void hashmap_free_free(Hashmap *h);
Hashmap *hashmap_copy(Hashmap *h); Hashmap *hashmap_copy(Hashmap *h);
int hashmap_ensure_allocated(Hashmap **h, hash_func_t hash_func, compare_fu nc_t compare_func); int hashmap_ensure_allocated(Hashmap **h, hash_func_t hash_func, compare_fu nc_t compare_func);
int hashmap_put(Hashmap *h, const void *key, void *value); int hashmap_put(Hashmap *h, const void *key, void *value);
int hashmap_update(Hashmap *h, const void *key, void *value);
int hashmap_replace(Hashmap *h, const void *key, void *value); int hashmap_replace(Hashmap *h, const void *key, void *value);
void* hashmap_get(Hashmap *h, const void *key); void* hashmap_get(Hashmap *h, const void *key);
void* hashmap_get2(Hashmap *h, const void *key, void **rkey);
bool hashmap_contains(Hashmap *h, const void *key); bool hashmap_contains(Hashmap *h, const void *key);
void* hashmap_remove(Hashmap *h, const void *key); void* hashmap_remove(Hashmap *h, const void *key);
void* hashmap_remove_value(Hashmap *h, const void *key, void *value); void* hashmap_remove_value(Hashmap *h, const void *key, void *value);
int hashmap_remove_and_put(Hashmap *h, const void *old_key, const void *new _key, void *value); int hashmap_remove_and_put(Hashmap *h, const void *old_key, const void *new _key, void *value);
int hashmap_remove_and_replace(Hashmap *h, const void *old_key, const void *new_key, void *value); int hashmap_remove_and_replace(Hashmap *h, const void *old_key, const void *new_key, void *value);
int hashmap_merge(Hashmap *h, Hashmap *other); int hashmap_merge(Hashmap *h, Hashmap *other);
void hashmap_move(Hashmap *h, Hashmap *other); void hashmap_move(Hashmap *h, Hashmap *other);
int hashmap_move_one(Hashmap *h, Hashmap *other, const void *key); int hashmap_move_one(Hashmap *h, Hashmap *other, const void *key);
 End of changes. 3 change blocks. 
0 lines changed or deleted 5 lines changed or added


 job.h   job.h 
skipping to change at line 94 skipping to change at line 94
JOB_FAIL, /* Fail if a conflicting job is already qu eued */ JOB_FAIL, /* Fail if a conflicting job is already qu eued */
JOB_REPLACE, /* Replace an existing conflicting job */ JOB_REPLACE, /* Replace an existing conflicting job */
JOB_ISOLATE, /* Start a unit, and stop all others */ JOB_ISOLATE, /* Start a unit, and stop all others */
JOB_IGNORE_DEPENDENCIES, /* Ignore both requirement and ordering de pendencies */ JOB_IGNORE_DEPENDENCIES, /* Ignore both requirement and ordering de pendencies */
JOB_IGNORE_REQUIREMENTS, /* Ignore requirement dependencies */ JOB_IGNORE_REQUIREMENTS, /* Ignore requirement dependencies */
_JOB_MODE_MAX, _JOB_MODE_MAX,
_JOB_MODE_INVALID = -1 _JOB_MODE_INVALID = -1
}; };
enum JobResult { enum JobResult {
JOB_DONE, JOB_DONE, /* Job completed successfully */
JOB_CANCELED, JOB_CANCELED, /* Job canceled by a conflicting job insta
JOB_TIMEOUT, llation or by explicit cancel request */
JOB_FAILED, JOB_TIMEOUT, /* JobTimeout elapsed */
JOB_DEPENDENCY, JOB_FAILED, /* Job failed */
JOB_SKIPPED, JOB_DEPENDENCY, /* A required dependency job did not resul
t in JOB_DONE */
JOB_SKIPPED, /* JOB_RELOAD of inactive unit; negative r
esult of JOB_VERIFY_ACTIVE */
_JOB_RESULT_MAX, _JOB_RESULT_MAX,
_JOB_RESULT_INVALID = -1 _JOB_RESULT_INVALID = -1
}; };
#include "manager.h" #include "manager.h"
#include "unit.h" #include "unit.h"
#include "hashmap.h" #include "hashmap.h"
#include "list.h" #include "list.h"
struct JobDependency { struct JobDependency {
 End of changes. 1 change blocks. 
6 lines changed or deleted 9 lines changed or added


 journal-file.h   journal-file.h 
skipping to change at line 36 skipping to change at line 36
#ifdef HAVE_GCRYPT #ifdef HAVE_GCRYPT
#include <gcrypt.h> #include <gcrypt.h>
#endif #endif
#include <systemd/sd-id128.h> #include <systemd/sd-id128.h>
#include "sparse-endian.h" #include "sparse-endian.h"
#include "journal-def.h" #include "journal-def.h"
#include "util.h" #include "util.h"
#include "mmap-cache.h" #include "mmap-cache.h"
#include "hashmap.h"
typedef struct JournalMetrics { typedef struct JournalMetrics {
uint64_t max_use; uint64_t max_use;
uint64_t max_size; uint64_t max_size;
uint64_t min_size; uint64_t min_size;
uint64_t keep_free; uint64_t keep_free;
} JournalMetrics; } JournalMetrics;
typedef struct JournalFile { typedef struct JournalFile {
int fd; int fd;
skipping to change at line 67 skipping to change at line 68
Header *header; Header *header;
HashItem *data_hash_table; HashItem *data_hash_table;
HashItem *field_hash_table; HashItem *field_hash_table;
uint64_t current_offset; uint64_t current_offset;
JournalMetrics metrics; JournalMetrics metrics;
MMapCache *mmap; MMapCache *mmap;
Hashmap *chain_cache;
#ifdef HAVE_XZ #ifdef HAVE_XZ
void *compress_buffer; void *compress_buffer;
uint64_t compress_buffer_size; uint64_t compress_buffer_size;
#endif #endif
#ifdef HAVE_GCRYPT #ifdef HAVE_GCRYPT
gcry_md_hd_t hmac; gcry_md_hd_t hmac;
bool hmac_running; bool hmac_running;
FSSHeader *fss_file; FSSHeader *fss_file;
 End of changes. 2 change blocks. 
0 lines changed or deleted 3 lines changed or added


 journal-internal.h   journal-internal.h 
skipping to change at line 122 skipping to change at line 122
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; char *unique_field;
JournalFile *unique_file; JournalFile *unique_file;
uint64_t unique_offset; uint64_t unique_offset;
bool on_network;
size_t data_threshold;
}; };
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. 1 change blocks. 
0 lines changed or deleted 4 lines changed or added


 journald-console.h   journald-console.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 "journald.h" #include "journald-server.h"
void server_forward_console(Server *s, int priority, const char *identifier , const char *message, struct ucred *ucred); void server_forward_console(Server *s, int priority, const char *identifier , const char *message, struct ucred *ucred);
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 journald-kmsg.h   journald-kmsg.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 "journald.h" #include "journald-server.h"
int server_open_dev_kmsg(Server *s); int server_open_dev_kmsg(Server *s);
int server_read_dev_kmsg(Server *s); int server_read_dev_kmsg(Server *s);
int server_flush_dev_kmsg(Server *s); int server_flush_dev_kmsg(Server *s);
void server_forward_kmsg(Server *s, int priority, const char *identifier, c onst char *message, struct ucred *ucred); void server_forward_kmsg(Server *s, int priority, const char *identifier, c onst char *message, struct ucred *ucred);
int server_open_kernel_seqnum(Server *s); int server_open_kernel_seqnum(Server *s);
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 journald-native.h   journald-native.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 "journald.h" #include "journald-server.h"
void server_process_native_message(Server *s, const void *buffer, size_t bu ffer_size, struct ucred *ucred, struct timeval *tv, const char *label, size _t label_len); void server_process_native_message(Server *s, const void *buffer, size_t bu ffer_size, struct ucred *ucred, struct timeval *tv, const char *label, size _t label_len);
void server_process_native_file(Server *s, int fd, struct ucred *ucred, str uct timeval *tv, const char *label, size_t label_len); void server_process_native_file(Server *s, int fd, struct ucred *ucred, str uct timeval *tv, const char *label, size_t label_len);
int server_open_native_socket(Server*s); int server_open_native_socket(Server*s);
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 journald-stream.h   journald-stream.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 "journald.h" #include "journald-server.h"
int server_open_stdout_socket(Server *s); int server_open_stdout_socket(Server *s);
int stdout_stream_new(Server *s); int stdout_stream_new(Server *s);
void stdout_stream_free(StdoutStream *s); void stdout_stream_free(StdoutStream *s);
int stdout_stream_process(StdoutStream *s); int stdout_stream_process(StdoutStream *s);
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


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


 libudev-private.h   libudev-private.h 
/* /***
* libudev - interface to udev device information This file is part of systemd.
*
* Copyright (C) 2008-2012 Kay Sievers <kay.sievers@vrfy.org> Copyright 2008-2012 Kay Sievers <kay@vrfy.org>
*
* This library is free software; you can redistribute it and/or systemd is free software; you can redistribute it and/or modify it
* modify it under the terms of the GNU Lesser General Public under the terms of the GNU Lesser General Public License as published by
* License as published by the Free Software Foundation; either the Free Software Foundation; either version 2.1 of the License, or
* 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
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef _LIBUDEV_PRIVATE_H_ #ifndef _LIBUDEV_PRIVATE_H_
#define _LIBUDEV_PRIVATE_H_ #define _LIBUDEV_PRIVATE_H_
#include <syslog.h> #include <syslog.h>
#include <signal.h> #include <signal.h>
#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
#include "libudev.h" #include "libudev.h"
skipping to change at line 44 skipping to change at line 52
#define udev_dbg(udev, arg...) udev_log_cond(udev, LOG_DEBUG, ## arg) #define udev_dbg(udev, arg...) udev_log_cond(udev, LOG_DEBUG, ## arg)
#define udev_info(udev, arg...) udev_log_cond(udev, LOG_INFO, ## arg) #define udev_info(udev, arg...) udev_log_cond(udev, LOG_INFO, ## arg)
#define udev_err(udev, arg...) udev_log_cond(udev, LOG_ERR, ## arg) #define udev_err(udev, arg...) udev_log_cond(udev, LOG_ERR, ## arg)
/* libudev.c */ /* libudev.c */
void udev_log(struct udev *udev, void udev_log(struct udev *udev,
int priority, const char *file, int line, const char *fn, int priority, const char *file, int line, const char *fn,
const char *format, ...) const char *format, ...)
__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[], usec_t *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_subsystem(struct udev_device *udev_device, const char * subsystem);
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 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);
const char *udev_device_get_id_filename(struct udev_device *udev_device); const char *udev_device_get_id_filename(struct udev_device *udev_device);
void udev_device_set_is_initialized(struct udev_device *udev_device); void udev_device_set_is_initialized(struct udev_device *udev_device);
int udev_device_add_tag(struct udev_device *udev_device, const char *tag); int udev_device_add_tag(struct udev_device *udev_device, const char *tag);
void udev_device_cleanup_tags_list(struct udev_device *udev_device); void udev_device_cleanup_tags_list(struct udev_device *udev_device);
unsigned long long udev_device_get_usec_initialized(struct udev_device *ude usec_t udev_device_get_usec_initialized(struct udev_device *udev_device);
v_device); void udev_device_set_usec_initialized(struct udev_device *udev_device, usec
void udev_device_set_usec_initialized(struct udev_device *udev_device, unsi _t usec_initialized);
gned long long usec_initialized);
int udev_device_get_devlink_priority(struct udev_device *udev_device); int udev_device_get_devlink_priority(struct udev_device *udev_device);
int udev_device_set_devlink_priority(struct udev_device *udev_device, int p rio); int udev_device_set_devlink_priority(struct udev_device *udev_device, int p rio);
int udev_device_get_watch_handle(struct udev_device *udev_device); int udev_device_get_watch_handle(struct udev_device *udev_device);
int udev_device_set_watch_handle(struct udev_device *udev_device, int handl e); int udev_device_set_watch_handle(struct udev_device *udev_device, int handl e);
int udev_device_get_ifindex(struct udev_device *udev_device); int udev_device_get_ifindex(struct udev_device *udev_device);
void udev_device_set_info_loaded(struct udev_device *device); void udev_device_set_info_loaded(struct udev_device *device);
bool udev_device_get_db_persist(struct udev_device *udev_device); bool udev_device_get_db_persist(struct udev_device *udev_device);
void udev_device_set_db_persist(struct udev_device *udev_device); void udev_device_set_db_persist(struct udev_device *udev_device);
/* libudev-device-private.c */ /* libudev-device-private.c */
skipping to change at line 143 skipping to change at line 152
ssize_t udev_queue_read_devpath(FILE *queue_file, char *devpath, size_t siz e); ssize_t udev_queue_read_devpath(FILE *queue_file, char *devpath, size_t siz e);
ssize_t udev_queue_skip_devpath(FILE *queue_file); ssize_t udev_queue_skip_devpath(FILE *queue_file);
/* libudev-queue-private.c */ /* libudev-queue-private.c */
struct udev_queue_export *udev_queue_export_new(struct udev *udev); struct udev_queue_export *udev_queue_export_new(struct udev *udev);
struct udev_queue_export *udev_queue_export_unref(struct udev_queue_export *udev_queue_export); struct udev_queue_export *udev_queue_export_unref(struct udev_queue_export *udev_queue_export);
void udev_queue_export_cleanup(struct udev_queue_export *udev_queue_export) ; void udev_queue_export_cleanup(struct udev_queue_export *udev_queue_export) ;
int udev_queue_export_device_queued(struct udev_queue_export *udev_queue_ex port, struct udev_device *udev_device); int udev_queue_export_device_queued(struct udev_queue_export *udev_queue_ex port, struct udev_device *udev_device);
int udev_queue_export_device_finished(struct udev_queue_export *udev_queue_ export, struct udev_device *udev_device); int udev_queue_export_device_finished(struct udev_queue_export *udev_queue_ export, struct udev_device *udev_device);
/* libudev-hwdb.c */
bool udev_hwdb_validate(struct udev_hwdb *hwdb);
/* libudev-util.c */ /* libudev-util.c */
#define UTIL_PATH_SIZE 1024 #define UTIL_PATH_SIZE 1024
#define UTIL_NAME_SIZE 512 #define UTIL_NAME_SIZE 512
#define UTIL_LINE_SIZE 16384 #define UTIL_LINE_SIZE 16384
#define UDEV_ALLOWED_CHARS_INPUT "/ $%?," #define UDEV_ALLOWED_CHARS_INPUT "/ $%?,"
ssize_t util_get_sys_core_link_value(struct udev *udev, const char *slink, const char *syspath, char *value, size_t size); ssize_t util_get_sys_core_link_value(struct udev *udev, const char *slink, const char *syspath, char *value, size_t size);
int util_resolve_sys_link(struct udev *udev, char *syspath, size_t size); int util_resolve_sys_link(struct udev *udev, char *syspath, size_t size);
int util_log_priority(const char *priority); int util_log_priority(const char *priority);
size_t util_path_encode(const char *src, char *dest, size_t size); size_t util_path_encode(const char *src, char *dest, size_t size);
void util_remove_trailing_chars(char *path, char c); void util_remove_trailing_chars(char *path, char c);
size_t util_strpcpy(char **dest, size_t size, const char *src); size_t util_strpcpy(char **dest, size_t size, const char *src);
size_t util_strpcpyl(char **dest, size_t size, const char *src, ...) __attr ibute__((sentinel)); size_t util_strpcpyl(char **dest, size_t size, const char *src, ...) __attr ibute__((sentinel));
size_t util_strscpy(char *dest, size_t size, const char *src); size_t util_strscpy(char *dest, size_t size, const char *src);
size_t util_strscpyl(char *dest, size_t size, const char *src, ...) __attri bute__((sentinel)); size_t util_strscpyl(char *dest, size_t size, const char *src, ...) __attri bute__((sentinel));
int util_replace_whitespace(const char *str, char *to, size_t len); int util_replace_whitespace(const char *str, char *to, size_t len);
int util_replace_chars(char *str, const char *white); int util_replace_chars(char *str, const char *white);
unsigned int util_string_hash32(const char *key); unsigned int util_string_hash32(const char *key);
uint64_t util_string_bloom64(const char *str); uint64_t util_string_bloom64(const char *str);
/* libudev-util-private.c */ /* libudev-util-private.c */
int util_delete_path(struct udev *udev, const char *path); int util_delete_path(struct udev *udev, const char *path);
uid_t util_lookup_user(struct udev *udev, const char *user); uid_t util_lookup_user(struct udev *udev, const char *user);
gid_t util_lookup_group(struct udev *udev, const char *group); gid_t util_lookup_group(struct udev *udev, const char *group);
int util_resolve_subsys_kernel(struct udev *udev, const char *string, int util_resolve_subsys_kernel(struct udev *udev, const char *string, char
char *result, size_t maxsize, int rea *result, size_t maxsize, int read_value);
d_value);
unsigned long long ts_usec(const struct timespec *ts);
unsigned long long now_usec(void);
ssize_t print_kmsg(const char *fmt, ...) __attribute__((format(printf, 1, 2 ))); ssize_t print_kmsg(const char *fmt, ...) __attribute__((format(printf, 1, 2 )));
#endif #endif
 End of changes. 7 change blocks. 
24 lines changed or deleted 32 lines changed or added


 libudev.h   libudev.h 
/* /***
* libudev - interface to udev device information This file is part of systemd.
*
* Copyright (C) 2008-2011 Kay Sievers <kay.sievers@vrfy.org> Copyright 2008-2012 Kay Sievers <kay@vrfy.org>
*
* This library is free software; you can redistribute it and/or systemd is free software; you can redistribute it and/or modify it
* modify it under the terms of the GNU Lesser General Public under the terms of the GNU Lesser General Public License as published by
* License as published by the Free Software Foundation; either the Free Software Foundation; either version 2.1 of the License, or
* 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
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef _LIBUDEV_H_ #ifndef _LIBUDEV_H_
#define _LIBUDEV_H_ #define _LIBUDEV_H_
#include <stdarg.h> #include <stdarg.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
skipping to change at line 174 skipping to change at line 182
unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev _queue); unsigned long long int udev_queue_get_kernel_seqnum(struct udev_queue *udev _queue);
unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_q ueue); unsigned long long int udev_queue_get_udev_seqnum(struct udev_queue *udev_q ueue);
int udev_queue_get_udev_is_active(struct udev_queue *udev_queue); int udev_queue_get_udev_is_active(struct udev_queue *udev_queue);
int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue); int udev_queue_get_queue_is_empty(struct udev_queue *udev_queue);
int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsign ed long long int seqnum); int udev_queue_get_seqnum_is_finished(struct udev_queue *udev_queue, unsign ed long long int seqnum);
int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queu e, int udev_queue_get_seqnum_sequence_is_finished(struct udev_queue *udev_queu e,
unsigned long long int start , unsigned long long int end); unsigned long long int start , unsigned long long int end);
struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue); struct udev_list_entry *udev_queue_get_queued_list_entry(struct udev_queue *udev_queue);
/* /*
* udev_hwdb
*
* access to the static hardware properties database
*/
struct udev_hwdb;
struct udev_hwdb *udev_hwdb_new(struct udev *udev);
struct udev_hwdb *udev_hwdb_ref(struct udev_hwdb *hwdb);
struct udev_hwdb *udev_hwdb_unref(struct udev_hwdb *hwdb);
struct udev_list_entry *udev_hwdb_get_properties_list_entry(struct udev_hwd
b *hwdb, const char *modalias, unsigned int flags);
/*
* udev_util * udev_util
* *
* udev specific utilities * udev specific utilities
*/ */
int udev_util_encode_string(const char *str, char *str_enc, size_t len); int udev_util_encode_string(const char *str, char *str_enc, size_t len);
#ifdef __cplusplus #ifdef __cplusplus
} /* extern "C" */ } /* extern "C" */
#endif #endif
 End of changes. 2 change blocks. 
10 lines changed or deleted 30 lines changed or added


 logind-button.h   logind-button.h 
skipping to change at line 35 skipping to change at line 35
typedef struct Button Button; typedef struct Button Button;
typedef enum HandleButton { typedef enum HandleButton {
HANDLE_IGNORE, HANDLE_IGNORE,
HANDLE_POWEROFF, HANDLE_POWEROFF,
HANDLE_REBOOT, HANDLE_REBOOT,
HANDLE_HALT, HANDLE_HALT,
HANDLE_KEXEC, HANDLE_KEXEC,
HANDLE_SUSPEND, HANDLE_SUSPEND,
HANDLE_HIBERNATE, HANDLE_HIBERNATE,
HANDLE_HYBRID_SLEEP,
HANDLE_LOCK,
_HANDLE_BUTTON_MAX, _HANDLE_BUTTON_MAX,
_HANDLE_BUTTON_INVALID = -1 _HANDLE_BUTTON_INVALID = -1
} HandleButton; } HandleButton;
#include "list.h" #include "list.h"
#include "util.h" #include "util.h"
#include "logind.h" #include "logind.h"
struct Button { struct Button {
Manager *manager; Manager *manager;
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 logind-session.h   logind-session.h 
skipping to change at line 135 skipping to change at line 135
char *session_bus_path(Session *s); char *session_bus_path(Session *s);
SessionState session_get_state(Session *u); SessionState session_get_state(Session *u);
extern const DBusObjectPathVTable bus_session_vtable; extern const DBusObjectPathVTable bus_session_vtable;
int session_send_signal(Session *s, bool new_session); int session_send_signal(Session *s, bool new_session);
int session_send_changed(Session *s, const char *properties); int session_send_changed(Session *s, const char *properties);
int session_send_lock(Session *s, bool lock); int session_send_lock(Session *s, bool lock);
int session_send_lock_all(Manager *m, bool lock);
const char* session_state_to_string(SessionState t); const char* session_state_to_string(SessionState t);
SessionState session_state_from_string(const char *s); SessionState session_state_from_string(const char *s);
const char* session_type_to_string(SessionType t); const char* session_type_to_string(SessionType t);
SessionType session_type_from_string(const char *s); SessionType session_type_from_string(const char *s);
const char* session_class_to_string(SessionClass t); const char* session_class_to_string(SessionClass t);
SessionClass session_class_from_string(const char *s); SessionClass session_class_from_string(const char *s);
 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 48 skipping to change at line 48
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,
OUTPUT_COLOR = 1 << 4 OUTPUT_COLOR = 1 << 4,
OUTPUT_CATALOG = 1 << 5
} OutputFlags; } OutputFlags;
int output_journal( int output_journal(
FILE *f, FILE *f,
sd_journal *j, sd_journal *j,
OutputMode mode, OutputMode mode,
unsigned n_columns, unsigned n_columns,
OutputFlags flags); OutputFlags flags);
int show_journal_by_unit( int show_journal_by_unit(
 End of changes. 1 change blocks. 
1 lines changed or deleted 2 lines changed or added


 missing.h   missing.h 
skipping to change at line 252 skipping to change at line 252
} }
#endif #endif
#ifndef HAVE_SECURE_GETENV #ifndef HAVE_SECURE_GETENV
# ifdef HAVE___SECURE_GETENV # ifdef HAVE___SECURE_GETENV
# define secure_getenv __secure_getenv # define secure_getenv __secure_getenv
# else # else
# error neither secure_getenv nor __secure_getenv are available # error neither secure_getenv nor __secure_getenv are available
# endif # endif
#endif #endif
#ifndef CIFS_MAGIC_NUMBER
#define CIFS_MAGIC_NUMBER 0xFF534D42
#endif
 End of changes. 1 change blocks. 
0 lines changed or deleted 0 lines changed or added


 sd-journal.h   sd-journal.h 
skipping to change at line 100 skipping to change at line 100
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);
int sd_journal_get_realtime_usec(sd_journal *j, uint64_t *ret); int sd_journal_get_realtime_usec(sd_journal *j, uint64_t *ret);
int sd_journal_get_monotonic_usec(sd_journal *j, uint64_t *ret, sd_id128_t *ret_boot_id); int sd_journal_get_monotonic_usec(sd_journal *j, uint64_t *ret, sd_id128_t *ret_boot_id);
int sd_journal_set_data_threshold(sd_journal *j, size_t sz);
int sd_journal_get_data_threshold(sd_journal *j, size_t *sz);
int sd_journal_get_data(sd_journal *j, const char *field, const void **data , size_t *l); int sd_journal_get_data(sd_journal *j, const char *field, const void **data , size_t *l);
int sd_journal_enumerate_data(sd_journal *j, const void **data, size_t *l); int sd_journal_enumerate_data(sd_journal *j, const void **data, size_t *l);
void sd_journal_restart_data(sd_journal *j); void sd_journal_restart_data(sd_journal *j);
int sd_journal_add_match(sd_journal *j, const void *data, size_t size); int sd_journal_add_match(sd_journal *j, const void *data, size_t size);
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);
skipping to change at line 127 skipping to change at line 130
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);
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 );
void sd_journal_restart_unique(sd_journal *j); void sd_journal_restart_unique(sd_journal *j);
int sd_journal_get_fd(sd_journal *j); int sd_journal_get_fd(sd_journal *j);
int sd_journal_reliable_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);
int sd_journal_get_catalog(sd_journal *j, char **text);
int sd_journal_get_catalog_for_message_id(sd_id128_t id, char **ret);
#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; )
 End of changes. 3 change blocks. 
0 lines changed or deleted 7 lines changed or added


 sd-messages.h   sd-messages.h 
skipping to change at line 31 skipping to change at line 31
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 <systemd/sd-id128.h> #include <systemd/sd-id128.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/* Hey! If you add a new message here, you *must* also update the
* message catalog with an appropriate explanation */
#define SD_MESSAGE_JOURNAL_START SD_ID128_MAKE(f7,73,79,a8,49,0b,40,8b,b e,5f,69,40,50,5a,77,7b) #define SD_MESSAGE_JOURNAL_START SD_ID128_MAKE(f7,73,79,a8,49,0b,40,8b,b e,5f,69,40,50,5a,77,7b)
#define SD_MESSAGE_JOURNAL_STOP SD_ID128_MAKE(d9,3f,b3,c9,c2,4d,45,1a,9 7,ce,a6,15,ce,59,c0,0b) #define SD_MESSAGE_JOURNAL_STOP SD_ID128_MAKE(d9,3f,b3,c9,c2,4d,45,1a,9 7,ce,a6,15,ce,59,c0,0b)
#define SD_MESSAGE_JOURNAL_DROPPED SD_ID128_MAKE(a5,96,d6,fe,7b,fa,49,94,8 2,8e,72,30,9e,95,d6,1e) #define SD_MESSAGE_JOURNAL_DROPPED SD_ID128_MAKE(a5,96,d6,fe,7b,fa,49,94,8 2,8e,72,30,9e,95,d6,1e)
#define SD_MESSAGE_JOURNAL_MISSED SD_ID128_MAKE(e9,bf,28,e6,e8,34,48,1b,b 6,f4,8f,54,8a,d1,36,06) #define SD_MESSAGE_JOURNAL_MISSED SD_ID128_MAKE(e9,bf,28,e6,e8,34,48,1b,b 6,f4,8f,54,8a,d1,36,06)
#define SD_MESSAGE_COREDUMP SD_ID128_MAKE(fc,2e,22,bc,6e,e6,47,b6,b 9,07,29,ab,34,a2,50,b1) #define SD_MESSAGE_COREDUMP SD_ID128_MAKE(fc,2e,22,bc,6e,e6,47,b6,b 9,07,29,ab,34,a2,50,b1)
#define SD_MESSAGE_SESSION_START SD_ID128_MAKE(8d,45,62,0c,1a,43,48,db,b 1,74,10,da,57,c6,0c,66) #define SD_MESSAGE_SESSION_START SD_ID128_MAKE(8d,45,62,0c,1a,43,48,db,b 1,74,10,da,57,c6,0c,66)
#define SD_MESSAGE_SESSION_STOP SD_ID128_MAKE(33,54,93,94,24,b4,45,6d,9 8,02,ca,83,33,ed,42,4a) #define SD_MESSAGE_SESSION_STOP SD_ID128_MAKE(33,54,93,94,24,b4,45,6d,9 8,02,ca,83,33,ed,42,4a)
#define SD_MESSAGE_SEAT_START SD_ID128_MAKE(fc,be,fc,5d,a2,3d,42,80,9 3,f9,7c,82,a9,29,0f,7b) #define SD_MESSAGE_SEAT_START SD_ID128_MAKE(fc,be,fc,5d,a2,3d,42,80,9 3,f9,7c,82,a9,29,0f,7b)
 End of changes. 1 change blocks. 
0 lines changed or deleted 3 lines changed or added


 socket-util.h   socket-util.h 
skipping to change at line 96 skipping to change at line 96
bool socket_address_is(const SocketAddress *a, const char *s, int type); bool socket_address_is(const SocketAddress *a, const char *s, int type);
bool socket_address_is_netlink(const SocketAddress *a, const char *s); bool socket_address_is_netlink(const SocketAddress *a, const char *s);
bool socket_address_equal(const SocketAddress *a, const SocketAddress *b); bool socket_address_equal(const SocketAddress *a, const SocketAddress *b);
bool socket_address_needs_mount(const SocketAddress *a, const char *prefix) ; bool socket_address_needs_mount(const SocketAddress *a, const char *prefix) ;
const char* socket_address_bind_ipv6_only_to_string(SocketAddressBindIPv6On ly b); const char* socket_address_bind_ipv6_only_to_string(SocketAddressBindIPv6On ly b);
SocketAddressBindIPv6Only socket_address_bind_ipv6_only_from_string(const c har *s); SocketAddressBindIPv6Only socket_address_bind_ipv6_only_from_string(const c har *s);
const char* netlink_family_to_string(int b); int netlink_family_to_string_alloc(int b, char **s);
int netlink_family_from_string(const char *s); int netlink_family_from_string(const char *s);
bool socket_ipv6_is_supported(void); bool socket_ipv6_is_supported(void);
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 socket.h   socket.h 
skipping to change at line 147 skipping to change at line 147
int ip_tos; int ip_tos;
int ip_ttl; int ip_ttl;
size_t pipe_size; size_t pipe_size;
char *bind_to_device; char *bind_to_device;
char *tcp_congestion; char *tcp_congestion;
long mq_maxmsg; long mq_maxmsg;
long mq_msgsize; long mq_msgsize;
/* Only for INET6 sockets: issue IPV6_V6ONLY sockopt */ /* Only for INET6 sockets: issue IPV6_V6ONLY sockopt */
SocketAddressBindIPv6Only bind_ipv6_only; SocketAddressBindIPv6Only bind_ipv6_only;
char *smack;
char *smack_ip_in;
char *smack_ip_out;
}; };
/* Called from the service code when collecting fds */ /* Called from the service code when collecting fds */
int socket_collect_fds(Socket *s, int **fds, unsigned *n_fds); int socket_collect_fds(Socket *s, int **fds, unsigned *n_fds);
/* Called from the service when it shut down */ /* Called from the service when it shut down */
void socket_notify_service_dead(Socket *s, bool failed_permanent); void socket_notify_service_dead(Socket *s, bool failed_permanent);
/* Called from the mount code figure out if a mount is a dependency of /* Called from the mount code figure out if a mount is a dependency of
* any of the sockets of this socket */ * any of the sockets of this socket */
 End of changes. 1 change blocks. 
0 lines changed or deleted 4 lines changed or added


 special.h   special.h 
skipping to change at line 40 skipping to change at line 40
* it to bring all services down that want to be brought down on * it to bring all services down that want to be brought down on
* system shutdown. */ * system shutdown. */
#define SPECIAL_SHUTDOWN_TARGET "shutdown.target" #define SPECIAL_SHUTDOWN_TARGET "shutdown.target"
#define SPECIAL_HALT_TARGET "halt.target" #define SPECIAL_HALT_TARGET "halt.target"
#define SPECIAL_POWEROFF_TARGET "poweroff.target" #define SPECIAL_POWEROFF_TARGET "poweroff.target"
#define SPECIAL_REBOOT_TARGET "reboot.target" #define SPECIAL_REBOOT_TARGET "reboot.target"
#define SPECIAL_KEXEC_TARGET "kexec.target" #define SPECIAL_KEXEC_TARGET "kexec.target"
#define SPECIAL_EXIT_TARGET "exit.target" #define SPECIAL_EXIT_TARGET "exit.target"
#define SPECIAL_SUSPEND_TARGET "suspend.target" #define SPECIAL_SUSPEND_TARGET "suspend.target"
#define SPECIAL_HIBERNATE_TARGET "hibernate.target" #define SPECIAL_HIBERNATE_TARGET "hibernate.target"
#define SPECIAL_HYBRID_SLEEP_TARGET "hybrid-sleep.target"
/* Special boot targets */ /* Special boot targets */
#define SPECIAL_RESCUE_TARGET "rescue.target" #define SPECIAL_RESCUE_TARGET "rescue.target"
#define SPECIAL_EMERGENCY_TARGET "emergency.target" #define SPECIAL_EMERGENCY_TARGET "emergency.target"
/* Early boot targets */ /* Early boot targets */
#define SPECIAL_SYSINIT_TARGET "sysinit.target" #define SPECIAL_SYSINIT_TARGET "sysinit.target"
#define SPECIAL_SOCKETS_TARGET "sockets.target" #define SPECIAL_SOCKETS_TARGET "sockets.target"
#define SPECIAL_LOCAL_FS_TARGET "local-fs.target" /* LSB's $local_f s */ #define SPECIAL_LOCAL_FS_TARGET "local-fs.target" /* LSB's $local_f s */
#define SPECIAL_LOCAL_FS_PRE_TARGET "local-fs-pre.target" #define SPECIAL_LOCAL_FS_PRE_TARGET "local-fs-pre.target"
skipping to change at line 61 skipping to change at line 62
#define SPECIAL_REMOTE_FS_PRE_TARGET "remote-fs-pre.target" #define SPECIAL_REMOTE_FS_PRE_TARGET "remote-fs-pre.target"
#define SPECIAL_SWAP_TARGET "swap.target" #define SPECIAL_SWAP_TARGET "swap.target"
#define SPECIAL_BASIC_TARGET "basic.target" #define SPECIAL_BASIC_TARGET "basic.target"
/* LSB compatibility */ /* LSB compatibility */
#define SPECIAL_NETWORK_TARGET "network.target" /* LSB's $network */ #define SPECIAL_NETWORK_TARGET "network.target" /* LSB's $network */
#define SPECIAL_NSS_LOOKUP_TARGET "nss-lookup.target" /* LSB's $named * / #define SPECIAL_NSS_LOOKUP_TARGET "nss-lookup.target" /* LSB's $named * /
#define SPECIAL_RPCBIND_TARGET "rpcbind.target" /* LSB's $portmap */ #define SPECIAL_RPCBIND_TARGET "rpcbind.target" /* LSB's $portmap */
#define SPECIAL_SYSLOG_TARGET "syslog.target" /* LSB's $syslog */ #define SPECIAL_SYSLOG_TARGET "syslog.target" /* LSB's $syslog */
#define SPECIAL_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */ #define SPECIAL_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */
#define SPECIAL_DISPLAY_MANAGER_SERVICE "display-manager.service" /* #define SPECIAL_DISPLAY_MANAGER_SERVICE "display-manager.service" /* Common
Debian's $x-display-manager */ extension of LSB */
#define SPECIAL_MAIL_TRANSFER_AGENT_TARGET "mail-transfer-agent.target" /* #define SPECIAL_MAIL_TRANSFER_AGENT_TARGET "mail-transfer-agent.target" /*
Debian's $mail-{transport|transfer-agent */ Common extension of LSB */
#define SPECIAL_HTTP_DAEMON_TARGET "http-daemon.target"
/*
* Rules regarding adding further high level targets like the above:
*
* - Be conservative, only add more of these when we really need
* them. We need strong usecases for further additions.
*
* - When there can be multiple implementations running side-by-side,
* it needs to be a .target unit which can pull in all
* implementations.
*
* - If something can be implemented with socket activation, and
* without, it needs to be a .target unit, so that it can pull in
* the appropriate unit.
*
* - Otherwise, it should be a .service unit.
*
* - In some cases it is OK to have both a .service and a .target
* unit, i.e. if there can be multiple parallel implementations, but
* only one is the "system" one. Example: syslog.
*
* Or to put this in other words: .service symlinks can be used to
* arbitrate between multiple implementations if there can be only one
* of a kind. .target units can be used to support multiple
* implementations that can run side-by-side.
*/
/* Magic early boot services */ /* Magic early boot services */
#define SPECIAL_FSCK_SERVICE "systemd-fsck@.service" #define SPECIAL_FSCK_SERVICE "systemd-fsck@.service"
#define SPECIAL_QUOTACHECK_SERVICE "systemd-quotacheck.service" #define SPECIAL_QUOTACHECK_SERVICE "systemd-quotacheck.service"
#define SPECIAL_QUOTAON_SERVICE "quotaon.service" #define SPECIAL_QUOTAON_SERVICE "quotaon.service"
#define SPECIAL_REMOUNT_FS_SERVICE "systemd-remount-fs.service" #define SPECIAL_REMOUNT_FS_SERVICE "systemd-remount-fs.service"
/* Services systemd relies on */ /* Services systemd relies on */
#define SPECIAL_DBUS_SERVICE "dbus.service" #define SPECIAL_DBUS_SERVICE "dbus.service"
#define SPECIAL_DBUS_SOCKET "dbus.socket" #define SPECIAL_DBUS_SOCKET "dbus.socket"
 End of changes. 2 change blocks. 
5 lines changed or deleted 31 lines changed or added


 strbuf.h   strbuf.h 
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
#pragma once #pragma once
/*** /***
This file is part of systemd. This file is part of systemd.
Copyright 2012 Kay Sievers <kay.sievers@vrfy.org> Copyright 2012 Kay Sievers <kay@vrfy.org>
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.
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 udev.h   udev.h 
/* /*
* Copyright (C) 2003 Greg Kroah-Hartman <greg@kroah.com> * Copyright (C) 2003 Greg Kroah-Hartman <greg@kroah.com>
* Copyright (C) 2003-2010 Kay Sievers <kay.sievers@vrfy.org> * Copyright (C) 2003-2010 Kay Sievers <kay@vrfy.org>
* *
* This program is free software: you can redistribute it and/or modify * This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or * the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
skipping to change at line 44 skipping to change at line 44
struct udev_device *dev; struct udev_device *dev;
struct udev_device *dev_parent; struct udev_device *dev_parent;
struct udev_device *dev_db; struct udev_device *dev_db;
char *name; char *name;
char *program_result; char *program_result;
mode_t mode; mode_t mode;
uid_t uid; uid_t uid;
gid_t gid; gid_t gid;
struct udev_list run_list; struct udev_list run_list;
int exec_delay; int exec_delay;
unsigned long long birth_usec; usec_t birth_usec;
unsigned long long timeout_usec; usec_t timeout_usec;
int fd_signal; int fd_signal;
unsigned int builtin_run; unsigned int builtin_run;
unsigned int builtin_ret; unsigned int builtin_ret;
bool sigterm; bool sigterm;
bool inotify_watch; bool inotify_watch;
bool inotify_watch_final; bool inotify_watch_final;
bool group_final; bool group_final;
bool owner_final; bool owner_final;
bool mode_set; bool mode_set;
bool mode_final; bool mode_final;
skipping to change at line 137 skipping to change at line 137
int udev_ctrl_get_stop_exec_queue(struct udev_ctrl_msg *ctrl_msg); int udev_ctrl_get_stop_exec_queue(struct udev_ctrl_msg *ctrl_msg);
int udev_ctrl_get_start_exec_queue(struct udev_ctrl_msg *ctrl_msg); int udev_ctrl_get_start_exec_queue(struct udev_ctrl_msg *ctrl_msg);
int udev_ctrl_get_reload(struct udev_ctrl_msg *ctrl_msg); int udev_ctrl_get_reload(struct udev_ctrl_msg *ctrl_msg);
int udev_ctrl_get_ping(struct udev_ctrl_msg *ctrl_msg); int udev_ctrl_get_ping(struct udev_ctrl_msg *ctrl_msg);
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
UDEV_BUILTIN_BLKID, UDEV_BUILTIN_BLKID,
#endif
UDEV_BUILTIN_BTRFS, UDEV_BUILTIN_BTRFS,
UDEV_BUILTIN_FIRMWARE, UDEV_BUILTIN_FIRMWARE,
UDEV_BUILTIN_HWDB,
UDEV_BUILTIN_INPUT_ID, UDEV_BUILTIN_INPUT_ID,
#ifdef HAVE_KMOD
UDEV_BUILTIN_KMOD, UDEV_BUILTIN_KMOD,
#endif
UDEV_BUILTIN_NET_ID,
UDEV_BUILTIN_PATH_ID, UDEV_BUILTIN_PATH_ID,
UDEV_BUILTIN_PCI_DB,
UDEV_BUILTIN_USB_DB,
UDEV_BUILTIN_USB_ID, UDEV_BUILTIN_USB_ID,
#ifdef HAVE_ACL #ifdef HAVE_ACL
UDEV_BUILTIN_UACCESS, UDEV_BUILTIN_UACCESS,
#endif #endif
UDEV_BUILTIN_MAX UDEV_BUILTIN_MAX
}; };
struct udev_builtin { struct udev_builtin {
const char *name; const char *name;
int (*cmd)(struct udev_device *dev, int argc, char *argv[], bool te st); int (*cmd)(struct udev_device *dev, int argc, char *argv[], bool te st);
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
extern const struct udev_builtin udev_builtin_blkid; extern const struct udev_builtin udev_builtin_blkid;
#endif
extern const struct udev_builtin udev_builtin_btrfs; extern const struct udev_builtin udev_builtin_btrfs;
extern const struct udev_builtin udev_builtin_firmware; extern const struct udev_builtin udev_builtin_firmware;
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
extern const struct udev_builtin udev_builtin_kmod; extern const struct udev_builtin udev_builtin_kmod;
#endif
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_pci_db;
extern const struct udev_builtin udev_builtin_usb_db;
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;
int udev_builtin_init(struct udev *udev); void udev_builtin_init(struct udev *udev);
void udev_builtin_exit(struct udev *udev); void udev_builtin_exit(struct udev *udev);
enum udev_builtin_cmd udev_builtin_lookup(const char *command); enum udev_builtin_cmd udev_builtin_lookup(const char *command);
const char *udev_builtin_name(enum udev_builtin_cmd cmd); const char *udev_builtin_name(enum udev_builtin_cmd cmd);
bool udev_builtin_run_once(enum udev_builtin_cmd cmd); bool udev_builtin_run_once(enum udev_builtin_cmd cmd);
int udev_builtin_run(struct udev_device *dev, enum udev_builtin_cmd cmd, co nst char *command, bool test); int udev_builtin_run(struct udev_device *dev, enum udev_builtin_cmd cmd, co nst char *command, bool test);
void udev_builtin_list(struct udev *udev); void udev_builtin_list(struct udev *udev);
bool udev_builtin_validate(struct udev *udev); bool udev_builtin_validate(struct udev *udev);
int udev_builtin_add_property(struct udev_device *dev, bool test, const cha r *key, const char *val); int udev_builtin_add_property(struct udev_device *dev, bool test, const cha r *key, const char *val);
int udev_builtin_hwdb_lookup(struct udev_device *dev, const char *modalias, bool test);
/* udev logging */ /* udev logging */
void udev_main_log(struct udev *udev, int priority, void udev_main_log(struct udev *udev, int priority,
const char *file, int line, const char *fn, const char *file, int line, const char *fn,
const char *format, va_list args); const char *format, va_list args);
/* udevadm commands */ /* udevadm commands */
struct udevadm_cmd { struct udevadm_cmd {
const char *name; const char *name;
int (*cmd)(struct udev *udev, int argc, char *argv[]); int (*cmd)(struct udev *udev, int argc, char *argv[]);
const char *help; const char *help;
int debug; int debug;
}; };
extern const struct udevadm_cmd udevadm_info; extern const struct udevadm_cmd udevadm_info;
extern const struct udevadm_cmd udevadm_trigger; extern const struct udevadm_cmd udevadm_trigger;
extern const struct udevadm_cmd udevadm_settle; extern const struct udevadm_cmd udevadm_settle;
extern const struct udevadm_cmd udevadm_control; extern const struct udevadm_cmd udevadm_control;
extern const struct udevadm_cmd udevadm_monitor; extern const struct udevadm_cmd udevadm_monitor;
extern const struct udevadm_cmd udevadm_hwdb;
extern const struct udevadm_cmd udevadm_test; extern const struct udevadm_cmd udevadm_test;
extern const struct udevadm_cmd udevadm_test_builtin; extern const struct udevadm_cmd udevadm_test_builtin;
#endif #endif
 End of changes. 17 change blocks. 
8 lines changed or deleted 18 lines changed or added


 unit-name.h   unit-name.h 
skipping to change at line 47 skipping to change at line 47
UNIT_AUTOMOUNT, UNIT_AUTOMOUNT,
UNIT_SNAPSHOT, UNIT_SNAPSHOT,
UNIT_TIMER, UNIT_TIMER,
UNIT_SWAP, UNIT_SWAP,
UNIT_PATH, UNIT_PATH,
_UNIT_TYPE_MAX, _UNIT_TYPE_MAX,
_UNIT_TYPE_INVALID = -1 _UNIT_TYPE_INVALID = -1
}; };
enum UnitLoadState { enum UnitLoadState {
UNIT_STUB, UNIT_STUB = 0,
UNIT_LOADED, UNIT_LOADED,
UNIT_ERROR, UNIT_ERROR,
UNIT_MERGED, UNIT_MERGED,
UNIT_MASKED, UNIT_MASKED,
_UNIT_LOAD_STATE_MAX, _UNIT_LOAD_STATE_MAX,
_UNIT_LOAD_STATE_INVALID = -1 _UNIT_LOAD_STATE_INVALID = -1
}; };
extern const char* const unit_type_table[];
const char *unit_type_to_string(UnitType i); const char *unit_type_to_string(UnitType i);
UnitType unit_type_from_string(const char *s); UnitType unit_type_from_string(const char *s);
extern const char* const unit_load_state_table[];
const char *unit_load_state_to_string(UnitLoadState i); const char *unit_load_state_to_string(UnitLoadState i);
UnitLoadState unit_load_state_from_string(const char *s); UnitLoadState unit_load_state_from_string(const char *s);
int unit_name_to_instance(const char *n, char **instance); int unit_name_to_instance(const char *n, char **instance);
char* unit_name_to_prefix(const char *n); char* unit_name_to_prefix(const char *n);
char* unit_name_to_prefix_and_instance(const char *n); char* unit_name_to_prefix_and_instance(const char *n);
bool unit_name_is_valid(const char *n, bool template_ok); bool unit_name_is_valid(const char *n, bool template_ok);
bool unit_prefix_is_valid(const char *p); bool unit_prefix_is_valid(const char *p);
bool unit_instance_is_valid(const char *i); bool unit_instance_is_valid(const char *i);
 End of changes. 3 change blocks. 
1 lines changed or deleted 3 lines changed or added


 util.h   util.h 
skipping to change at line 82 skipping to change at line 82
#define NSEC_PER_MONTH (2629800ULL*NSEC_PER_SEC) #define NSEC_PER_MONTH (2629800ULL*NSEC_PER_SEC)
#define USEC_PER_YEAR (31557600ULL*USEC_PER_SEC) #define USEC_PER_YEAR (31557600ULL*USEC_PER_SEC)
#define NSEC_PER_YEAR (31557600ULL*NSEC_PER_SEC) #define NSEC_PER_YEAR (31557600ULL*NSEC_PER_SEC)
/* What is interpreted as whitespace? */ /* What is interpreted as whitespace? */
#define WHITESPACE " \t\n\r" #define WHITESPACE " \t\n\r"
#define NEWLINE "\n\r" #define NEWLINE "\n\r"
#define QUOTES "\"\'" #define QUOTES "\"\'"
#define COMMENTS "#;\n" #define COMMENTS "#;\n"
#define FORMAT_TIMESTAMP_MAX 64 #define FORMAT_TIMESTAMP_MAX (5+11+9+4+1)
#define FORMAT_TIMESTAMP_PRETTY_MAX 256 #define FORMAT_TIMESTAMP_PRETTY_MAX 256
#define FORMAT_TIMESPAN_MAX 64 #define FORMAT_TIMESPAN_MAX 64
#define FORMAT_BYTES_MAX 8 #define FORMAT_BYTES_MAX 8
#define ANSI_HIGHLIGHT_ON "\x1B[1;39m" #define ANSI_HIGHLIGHT_ON "\x1B[1;39m"
#define ANSI_HIGHLIGHT_RED_ON "\x1B[1;31m" #define ANSI_HIGHLIGHT_RED_ON "\x1B[1;31m"
#define ANSI_HIGHLIGHT_GREEN_ON "\x1B[1;32m" #define ANSI_HIGHLIGHT_GREEN_ON "\x1B[1;32m"
#define ANSI_HIGHLIGHT_YELLOW_ON "\x1B[1;33m" #define ANSI_HIGHLIGHT_YELLOW_ON "\x1B[1;33m"
#define ANSI_HIGHLIGHT_OFF "\x1B[0m" #define ANSI_HIGHLIGHT_OFF "\x1B[0m"
bool is_efiboot(void);
usec_t now(clockid_t clock); usec_t now(clockid_t clock);
dual_timestamp* dual_timestamp_get(dual_timestamp *ts); dual_timestamp* dual_timestamp_get(dual_timestamp *ts);
dual_timestamp* dual_timestamp_from_realtime(dual_timestamp *ts, usec_t u); dual_timestamp* dual_timestamp_from_realtime(dual_timestamp *ts, usec_t u);
#define dual_timestamp_is_set(ts) ((ts)->realtime > 0) #define dual_timestamp_is_set(ts) ((ts)->realtime > 0)
usec_t timespec_load(const struct timespec *ts); usec_t timespec_load(const struct timespec *ts);
struct timespec *timespec_store(struct timespec *ts, usec_t u); struct timespec *timespec_store(struct timespec *ts, usec_t u);
skipping to change at line 145 skipping to change at line 147
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];
} }
char *endswith(const char *s, const char *postfix); char *endswith(const char *s, const char *postfix);
bool startswith(const char *s, const char *prefix); char *startswith(const char *s, const char *prefix);
bool startswith_no_case(const char *s, const char *prefix); char *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);
int parse_usec(const char *t, usec_t *usec); int parse_usec(const char *t, usec_t *usec);
int parse_nsec(const char *t, nsec_t *nsec); int parse_nsec(const char *t, nsec_t *nsec);
skipping to change at line 294 skipping to change at line 296
char *format_timestamp(char *buf, size_t l, usec_t t); char *format_timestamp(char *buf, size_t l, usec_t t);
char *format_timestamp_pretty(char *buf, size_t l, usec_t t); char *format_timestamp_pretty(char *buf, size_t l, usec_t t);
char *format_timespan(char *buf, size_t l, usec_t t); char *format_timespan(char *buf, size_t l, usec_t t);
int make_stdio(int fd); int make_stdio(int fd);
int make_null_stdio(void); int make_null_stdio(void);
int make_console_stdio(void); int make_console_stdio(void);
unsigned long long random_ull(void); unsigned long long random_ull(void);
/* For basic lookup tables with strictly enumerated entries */
#define __DEFINE_STRING_TABLE_LOOKUP(name,type,scope) \ #define __DEFINE_STRING_TABLE_LOOKUP(name,type,scope) \
scope const char *name##_to_string(type i) { \ scope const char *name##_to_string(type i) { \
if (i < 0 || i >= (type) ELEMENTSOF(name##_table)) \ if (i < 0 || i >= (type) ELEMENTSOF(name##_table)) \
return NULL; \ return NULL; \
return name##_table[i]; \ return name##_table[i]; \
} \ } \
scope type name##_from_string(const char *s) { \ scope type name##_from_string(const char *s) { \
type i; \ type i; \
unsigned u = 0; \
assert(s); \ assert(s); \
for (i = 0; i < (type)ELEMENTSOF(name##_table); i++) \ for (i = 0; i < (type)ELEMENTSOF(name##_table); i++) \
if (name##_table[i] && \ if (name##_table[i] && \
streq(name##_table[i], s)) \ streq(name##_table[i], s)) \
return i; \ return i; \
if (safe_atou(s, &u) >= 0 && \
u < ELEMENTSOF(name##_table)) \
return (type) u; \
return (type) -1; \ return (type) -1; \
} \ } \
struct __useless_struct_to_allow_trailing_semicolon__ struct __useless_struct_to_allow_trailing_semicolon__
#define DEFINE_STRING_TABLE_LOOKUP(name,type) __DEFINE_STRING_TABLE_LOOKUP( name,type,) #define DEFINE_STRING_TABLE_LOOKUP(name,type) __DEFINE_STRING_TABLE_LOOKUP( name,type,)
#define DEFINE_PRIVATE_STRING_TABLE_LOOKUP(name,type) __DEFINE_STRING_TABLE _LOOKUP(name,type,static) #define DEFINE_PRIVATE_STRING_TABLE_LOOKUP(name,type) __DEFINE_STRING_TABLE _LOOKUP(name,type,static)
/* For string conversions where numbers are also acceptable */
#define DEFINE_STRING_TABLE_LOOKUP_WITH_FALLBACK(name,type,max) \
int name##_to_string_alloc(type i, char **str) { \
char *s; \
int r; \
if (i < 0 || i > max) \
return -ERANGE; \
if (i < (type) ELEMENTSOF(name##_table)) { \
s = strdup(name##_table[i]); \
if (!s) \
return log_oom(); \
} else { \
r = asprintf(&s, "%u", i); \
if (r < 0) \
return log_oom(); \
} \
*str = s; \
return 0; \
} \
type name##_from_string(const char *s) { \
type i; \
unsigned u = 0; \
assert(s); \
for (i = 0; i < (type)ELEMENTSOF(name##_table); i++) \
if (name##_table[i] && \
streq(name##_table[i], s)) \
return i; \
if (safe_atou(s, &u) >= 0 && u <= max) \
return (type) u; \
return (type) -1; \
} \
struct __useless_struct_to_allow_trailing_semicolon__
int fd_nonblock(int fd, bool nonblock); int fd_nonblock(int fd, bool nonblock);
int fd_cloexec(int fd, bool cloexec); int fd_cloexec(int fd, bool cloexec);
int close_all_fds(const int except[], unsigned n_except); int close_all_fds(const int except[], unsigned n_except);
bool fstype_is_network(const char *fstype); bool fstype_is_network(const char *fstype);
int chvt(int vt); int chvt(int vt);
int read_one_char(FILE *f, char *ret, usec_t timeout, bool *need_nl); int read_one_char(FILE *f, char *ret, usec_t timeout, bool *need_nl);
skipping to change at line 481 skipping to change at line 513
int file_is_priv_sticky(const char *p); int file_is_priv_sticky(const char *p);
int strdup_or_null(const char *a, char **b); int strdup_or_null(const char *a, char **b);
#define NULSTR_FOREACH(i, l) \ #define NULSTR_FOREACH(i, l) \
for ((i) = (l); (i) && *(i); (i) = strchr((i), 0)+1) for ((i) = (l); (i) && *(i); (i) = strchr((i), 0)+1)
#define NULSTR_FOREACH_PAIR(i, j, l) \ #define NULSTR_FOREACH_PAIR(i, j, l) \
for ((i) = (l), (j) = strchr((i), 0)+1; (i) && *(i); (i) = strchr(( j), 0)+1, (j) = *(i) ? strchr((i), 0)+1 : (i)) for ((i) = (l), (j) = strchr((i), 0)+1; (i) && *(i); (i) = strchr(( j), 0)+1, (j) = *(i) ? strchr((i), 0)+1 : (i))
const char *ioprio_class_to_string(int i); int ioprio_class_to_string_alloc(int i, char **s);
int ioprio_class_from_string(const char *s); int ioprio_class_from_string(const char *s);
const char *sigchld_code_to_string(int i); const char *sigchld_code_to_string(int i);
int sigchld_code_from_string(const char *s); int sigchld_code_from_string(const char *s);
const char *log_facility_unshifted_to_string(int i); int log_facility_unshifted_to_string_alloc(int i, char **s);
int log_facility_unshifted_from_string(const char *s); int log_facility_unshifted_from_string(const char *s);
const char *log_level_to_string(int i); int log_level_to_string_alloc(int i, char **s);
int log_level_from_string(const char *s); int log_level_from_string(const char *s);
const char *sched_policy_to_string(int i); int sched_policy_to_string_alloc(int i, char **s);
int sched_policy_from_string(const char *s); int sched_policy_from_string(const char *s);
const char *rlimit_to_string(int i); const char *rlimit_to_string(int i);
int rlimit_from_string(const char *s); int rlimit_from_string(const char *s);
const char *ip_tos_to_string(int i); int ip_tos_to_string_alloc(int i, char **s);
int ip_tos_from_string(const char *s); int ip_tos_from_string(const char *s);
const char *signal_to_string(int i); const char *signal_to_string(int i);
int signal_from_string(const char *s); int signal_from_string(const char *s);
int signal_from_string_try_harder(const char *s); int signal_from_string_try_harder(const char *s);
extern int saved_argc; extern int saved_argc;
extern char **saved_argv; extern char **saved_argv;
skipping to change at line 532 skipping to change at line 564
int fd_inc_sndbuf(int fd, size_t n); int fd_inc_sndbuf(int fd, size_t n);
int fd_inc_rcvbuf(int fd, size_t n); int fd_inc_rcvbuf(int fd, size_t n);
int fork_agent(pid_t *pid, const int except[], unsigned n_except, const cha r *path, ...); int fork_agent(pid_t *pid, const int except[], unsigned n_except, const cha r *path, ...);
int setrlimit_closest(int resource, const struct rlimit *rlim); int setrlimit_closest(int resource, const struct rlimit *rlim);
int getenv_for_pid(pid_t pid, const char *field, char **_value); int getenv_for_pid(pid_t pid, const char *field, char **_value);
int can_sleep(const char *type); int can_sleep(const char *type);
int can_sleep_disk(const char *type);
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);
skipping to change at line 570 skipping to change at line 603
} }
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); 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, void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t si ze,
int (*compar) (const void *, const void *, void *), int (*compar) (const void *, const void *, void *),
void *arg); void *arg);
bool is_locale_utf8(void);
typedef enum DrawSpecialChar {
DRAW_TREE_VERT,
DRAW_TREE_BRANCH,
DRAW_TREE_RIGHT,
DRAW_TRIANGULAR_BULLET,
_DRAW_SPECIAL_CHAR_MAX
} DrawSpecialChar;
const char *draw_special_char(DrawSpecialChar ch);
char *strreplace(const char *text, const char *old_string, const char *new_
string);
 End of changes. 14 change blocks. 
12 lines changed or deleted 45 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/