cgroup-util.h   cgroup-util.h 
skipping to change at line 68 skipping to change at line 68
int cg_create(const char *controller, const char *path); int cg_create(const char *controller, const char *path);
int cg_attach(const char *controller, const char *path, pid_t pid); int cg_attach(const char *controller, const char *path, pid_t pid);
int cg_create_and_attach(const char *controller, const char *path, pid_t pi d); int cg_create_and_attach(const char *controller, const char *path, pid_t pi d);
int cg_set_group_access(const char *controller, const char *path, mode_t mo de, uid_t uid, gid_t gid); int cg_set_group_access(const char *controller, const char *path, mode_t mo de, uid_t uid, gid_t gid);
int cg_set_task_access(const char *controller, const char *path, mode_t mod e, uid_t uid, gid_t gid, int sticky); int cg_set_task_access(const char *controller, const char *path, mode_t mod e, uid_t uid, gid_t gid, int sticky);
int cg_install_release_agent(const char *controller, const char *agent); int cg_install_release_agent(const char *controller, const char *agent);
int cg_is_empty(const char *controller, const char *path, bool ignore_self) ; int cg_is_empty(const char *controller, const char *path, bool ignore_self) ;
int cg_is_empty_by_spec(const char *spec, bool ignore_self);
int cg_is_empty_recursive(const char *controller, const char *path, bool ig nore_self); int cg_is_empty_recursive(const char *controller, const char *path, bool ig nore_self);
int cg_get_user_path(char **path); int cg_get_user_path(char **path);
int cg_pid_get_cgroup(pid_t pid, char **root, char **cgroup); int cg_pid_get_cgroup(pid_t pid, char **root, char **cgroup);
int cg_pid_get_unit(pid_t pid, char **unit); int cg_pid_get_unit(pid_t pid, char **unit);
char **cg_shorten_controllers(char **controllers); char **cg_shorten_controllers(char **controllers);
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 condition.h   condition.h 
skipping to change at line 43 skipping to change at line 43
CONDITION_PATH_IS_MOUNT_POINT, CONDITION_PATH_IS_MOUNT_POINT,
CONDITION_PATH_IS_READ_WRITE, CONDITION_PATH_IS_READ_WRITE,
CONDITION_DIRECTORY_NOT_EMPTY, CONDITION_DIRECTORY_NOT_EMPTY,
CONDITION_FILE_NOT_EMPTY, CONDITION_FILE_NOT_EMPTY,
CONDITION_FILE_IS_EXECUTABLE, CONDITION_FILE_IS_EXECUTABLE,
CONDITION_KERNEL_COMMAND_LINE, CONDITION_KERNEL_COMMAND_LINE,
CONDITION_VIRTUALIZATION, CONDITION_VIRTUALIZATION,
CONDITION_SECURITY, CONDITION_SECURITY,
CONDITION_CAPABILITY, CONDITION_CAPABILITY,
CONDITION_HOST, CONDITION_HOST,
CONDITION_AC_POWER,
CONDITION_NULL, CONDITION_NULL,
_CONDITION_TYPE_MAX, _CONDITION_TYPE_MAX,
_CONDITION_TYPE_INVALID = -1 _CONDITION_TYPE_INVALID = -1
} ConditionType; } ConditionType;
typedef struct Condition { typedef struct Condition {
ConditionType type; ConditionType type;
char *parameter; char *parameter;
bool trigger:1; bool trigger:1;
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 config.h   config.h 
/* config.h. Generated from config.h.in by configure. */ /* config.h. Generated from config.h.in by configure. */
/* config.h.in. Generated from configure.ac by autoheader. */ /* config.h.in. Generated from configure.ac by autoheader. */
/* Whether on mips arch */ /* Whether on mips arch */
/* #undef ARCH_MIPS */ /* #undef ARCH_MIPS */
/* Canonical host string. */ /* Canonical host string. */
#define CANONICAL_HOST "i686-pc-linux-gnu" #define CANONICAL_HOST "i686-pc-linux-gnu"
/* Target Distribution */
#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 <arpa/inet.h> header file. */
#define HAVE_ARPA_INET_H 1
/* Define to 1 if you have the <attr/xattr.h> header file. */ /* Define to 1 if you have the <attr/xattr.h> header file. */
#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 if blkid is available */
#define HAVE_BLKID 1 #define HAVE_BLKID 1
/* Define if CHKCONFIG is available */
/* #undef HAVE_CHKCONFIG */
/* 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 49 skipping to change at line 52
/* 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
/* Define to 1 if you have the `fanotify_mark' function. */ /* Define to 1 if you have the `fanotify_mark' function. */
#define HAVE_FANOTIFY_MARK 1 #define HAVE_FANOTIFY_MARK 1
/* Define to 1 if you have the <fcntl.h> header file. */
#define HAVE_FCNTL_H 1
/* GCRYPT available */ /* GCRYPT available */
#define HAVE_GCRYPT 1 #define HAVE_GCRYPT 1
/* Define to 1 if you have the `gethostbyaddr' function. */
#define HAVE_GETHOSTBYADDR 1
/* Define to 1 if you have the `gethostbyname' function. */
#define HAVE_GETHOSTBYNAME 1
/* Define to 1 if you have the `gettimeofday' function. */
#define HAVE_GETTIMEOFDAY 1
/* Define if IMA is available */ /* Define if IMA is available */
#define HAVE_IMA 1 #define HAVE_IMA 1
/* Define to 1 if you have the `inet_ntoa' function. */
#define HAVE_INET_NTOA 1
/* Define to 1 if you have the <inttypes.h> header file. */ /* Define to 1 if you have the <inttypes.h> header file. */
#define HAVE_INTTYPES_H 1 #define HAVE_INTTYPES_H 1
/* Define if kmod is available */ /* Define if kmod is available */
#define HAVE_KMOD 1 #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 */
#define HAVE_LOGIND 1 #define HAVE_LOGIND 1
/* Define to 1 if your system has a GNU libc compatible `malloc' function,
and
to 0 otherwise. */
#define HAVE_MALLOC 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 to 1 if you have the `memset' function. */
#define HAVE_MEMSET 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 <netdb.h> header file. */
#define HAVE_NETDB_H 1
/* Define to 1 if you have the <netinet/in.h> header file. */
#define HAVE_NETINET_IN_H 1
/* Define to 1 if you have the <nss.h> header file. */
#define HAVE_NSS_H 1
/* 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. */
#define HAVE_SECURITY_PAM_EXT_H 1 #define HAVE_SECURITY_PAM_EXT_H 1
/* Define to 1 if you have the <security/pam_modules.h> header file. */ /* Define to 1 if you have the <security/pam_modules.h> header file. */
#define HAVE_SECURITY_PAM_MODULES_H 1 #define HAVE_SECURITY_PAM_MODULES_H 1
/* Define to 1 if you have the <security/pam_modutil.h> header file. */ /* Define to 1 if you have the <security/pam_modutil.h> header file. */
#define HAVE_SECURITY_PAM_MODUTIL_H 1 #define HAVE_SECURITY_PAM_MODUTIL_H 1
/* Define to 1 if you have the `select' function. */
#define HAVE_SELECT 1
/* Define if SELinux is available */ /* Define if SELinux is available */
#define HAVE_SELINUX 1 #define HAVE_SELINUX 1
/* Define to 1 if you have the `socket' function. */
#define HAVE_SOCKET 1
/* Define if /bin, /sbin aren't symlinks into /usr */ /* Define if /bin, /sbin aren't symlinks into /usr */
/* #undef HAVE_SPLIT_USR */ /* #undef HAVE_SPLIT_USR */
/* Define to 1 if you have the <stdint.h> header file. */ /* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1 #define HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */ /* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1 #define HAVE_STDLIB_H 1
/* Define to 1 if you have the `strcasecmp' function. */
#define HAVE_STRCASECMP 1
/* Define to 1 if you have the `strcspn' function. */
#define HAVE_STRCSPN 1
/* Define to 1 if you have the `strdup' function. */
#define HAVE_STRDUP 1
/* Define to 1 if you have the `strerror' function. */
#define HAVE_STRERROR 1
/* Define to 1 if you have the <strings.h> header file. */ /* Define to 1 if you have the <strings.h> header file. */
#define HAVE_STRINGS_H 1 #define HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */ /* Define to 1 if you have the <string.h> header file. */
#define HAVE_STRING_H 1 #define HAVE_STRING_H 1
/* Define to 1 if you have the `strncasecmp' function. */
#define HAVE_STRNCASECMP 1
/* Define to 1 if you have the `strspn' function. */
#define HAVE_STRSPN 1
/* SysV init scripts and rcN.d links are supported. */ /* SysV init scripts and rcN.d links are supported. */
#define HAVE_SYSV_COMPAT /**/ #define HAVE_SYSV_COMPAT /**/
/* Define to 1 if you have the <sys/acl.h> header file. */ /* Define to 1 if you have the <sys/acl.h> header file. */
#define HAVE_SYS_ACL_H 1 #define HAVE_SYS_ACL_H 1
/* Define to 1 if you have the <sys/capability.h> header file. */ /* Define to 1 if you have the <sys/capability.h> header file. */
#define HAVE_SYS_CAPABILITY_H 1 #define HAVE_SYS_CAPABILITY_H 1
/* Define to 1 if you have the <sys/ioctl.h> header file. */
#define HAVE_SYS_IOCTL_H 1
/* Define to 1 if you have the <sys/select.h> header file. */
#define HAVE_SYS_SELECT_H 1
/* Define to 1 if you have the <sys/socket.h> header file. */
#define HAVE_SYS_SOCKET_H 1
/* 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/time.h> header file. */
#define HAVE_SYS_TIME_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 */ /* XATTR available */
#define HAVE_XATTR 1 #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
/* Path of loadkeys */
#define KBD_LOADKEYS "/usr/bin/loadkeys"
/* Path of setfont */
#define KBD_SETFONT "/usr/bin/setfont"
/* 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/"
/* Define to 1 if your C compiler doesn't accept -c and -o together. */ /* Define to 1 if your C compiler doesn't accept -c and -o together. */
/* #undef NO_MINUS_C_MINUS_O */ /* #undef NO_MINUS_C_MINUS_O */
/* 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 196" #define PACKAGE_STRING "systemd 197"
/* 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 "196" #define PACKAGE_VERSION "197"
/* Define to 1 if you have the ANSI C header files. */
#define STDC_HEADERS 1
/* Target is ALTLinux */ /* Path of /etc/rc.local script */
/* #undef TARGET_ALTLINUX */ #define RC_LOCAL_SCRIPT_PATH_START "/etc/rc.local"
/* Target is Ångström */ /* Path of /usr/sbin/halt.local script */
/* #undef TARGET_ANGSTROM */ #define RC_LOCAL_SCRIPT_PATH_STOP "/usr/sbin/halt.local"
/* Target is ArchLinux */ /* Define to the type of arg 1 for `select'. */
/* #undef TARGET_ARCH */ #define SELECT_TYPE_ARG1 int
/* Target is Debian */ /* Define to the type of args 2, 3 and 4 for `select'. */
/* #undef TARGET_DEBIAN */ #define SELECT_TYPE_ARG234 (fd_set *)
/* Target is Fedora/RHEL */ /* Define to the type of arg 5 for `select'. */
/* #undef TARGET_FEDORA */ #define SELECT_TYPE_ARG5 (struct timeval *)
/* Target is Frugalware */ /* Define to 1 if you have the ANSI C header files. */
/* #undef TARGET_FRUGALWARE */ #define STDC_HEADERS 1
/* Target is Gentoo */
/* #undef TARGET_GENTOO */
/* Target is Mageia */
/* #undef TARGET_MAGEIA */
/* Target is Mandriva */
/* #undef TARGET_MANDRIVA */
/* Target is Slackware */
/* #undef TARGET_SLACKWARE */
/* Target is openSUSE/SLE */
/* #undef TARGET_SUSE */
/* Target is Ubuntu */ /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
/* #undef TARGET_UBUNTU */ #define TIME_WITH_SYS_TIME 1
/* GID of the 'tty' group */ /* GID of the 'tty' group */
/* #undef TTY_GID */ /* #undef TTY_GID */
/* Enable extensions on AIX 3, Interix. */ /* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE #ifndef _ALL_SOURCE
# define _ALL_SOURCE 1 # define _ALL_SOURCE 1
#endif #endif
/* Enable GNU extensions on systems that have them. */ /* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE #ifndef _GNU_SOURCE
skipping to change at line 234 skipping to change at line 292
/* 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 "196" #define VERSION "197"
/* 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. */
skipping to change at line 256 skipping to change at line 314
/* Define to 1 if on MINIX. */ /* Define to 1 if on MINIX. */
/* #undef _MINIX */ /* #undef _MINIX */
/* Define to 2 if the system does not provide POSIX.1 features except with /* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */ this defined. */
/* #undef _POSIX_1_SOURCE */ /* #undef _POSIX_1_SOURCE */
/* Define to 1 if you need to in order for `stat' and other things to work. */ /* Define to 1 if you need to in order for `stat' and other things to work. */
/* #undef _POSIX_SOURCE */ /* #undef _POSIX_SOURCE */
/* Define to empty if `const' does not conform to ANSI C. */
/* #undef const */
/* Define to rpl_malloc if the replacement function should be used. */
/* #undef malloc */
/* Define to `unsigned int' if <sys/types.h> does not define. */
/* #undef size_t */
 End of changes. 27 change blocks. 
38 lines changed or deleted 97 lines changed or added


 dbus-common.h   dbus-common.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 <dbus/dbus.h> #include <dbus/dbus.h>
#include <inttypes.h> #include <inttypes.h>
#include <sys/types.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
skipping to change at line 227 skipping to change at line 228
const char *method, const char *method,
DBusMessage **return_reply, DBusMessage **return_reply,
DBusError *return_error, DBusError *return_error,
int first_arg_type, ...); int first_arg_type, ...);
const char *bus_message_get_sender_with_fallback(DBusMessage *m); const char *bus_message_get_sender_with_fallback(DBusMessage *m);
void bus_message_unrefp(DBusMessage **reply); void bus_message_unrefp(DBusMessage **reply);
#define _cleanup_dbus_message_unref_ __attribute__((cleanup(bus_message_unr efp))) #define _cleanup_dbus_message_unref_ __attribute__((cleanup(bus_message_unr efp)))
#define _cleanup_dbus_error_free_ __attribute__((cleanup(dbus_error_free)))
 End of changes. 2 change blocks. 
0 lines changed or deleted 1 lines changed or added


 fdset.h   fdset.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 "set.h"
typedef struct FDSet FDSet; typedef struct FDSet FDSet;
FDSet* fdset_new(void); FDSet* fdset_new(void);
void fdset_free(FDSet *s); void fdset_free(FDSet *s);
int fdset_put(FDSet *s, int fd); int fdset_put(FDSet *s, int fd);
int fdset_put_dup(FDSet *s, int fd); int fdset_put_dup(FDSet *s, int fd);
bool fdset_contains(FDSet *s, int fd); bool fdset_contains(FDSet *s, int fd);
int fdset_remove(FDSet *s, int fd); int fdset_remove(FDSet *s, int fd);
int fdset_new_fill(FDSet **_s); int fdset_new_fill(FDSet **_s);
int fdset_new_listen_fds(FDSet **_s, bool unset);
int fdset_cloexec(FDSet *fds, bool b); int fdset_cloexec(FDSet *fds, bool b);
int fdset_close_others(FDSet *fds);
unsigned fdset_size(FDSet *fds);
int fdset_iterate(FDSet *s, Iterator *i);
#define FDSET_FOREACH(fd, fds, i) \
for ((i) = ITERATOR_FIRST, (fd) = fdset_iterate((fds), &(i)); (fd)
>= 0; (fd) = fdset_iterate((fds), &(i)))
 End of changes. 3 change blocks. 
0 lines changed or deleted 3 lines changed or added


 gudev.h   gudev.h 
/* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- /* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
* *
* Copyright (C) 2008 David Zeuthen <davidz@redhat.com> * Copyright (C) 2008 David Zeuthen <davidz@redhat.com>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either * License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version. * version 2 of the License, or (at your option) any later version.
* *
* This library is distributed in the hope that it will be useful, * This library 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 GNU * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details. * Library General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the * License along with this library; if not, write to the Free Software
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-130
* Boston, MA 02111-1307, USA. 1 USA
*/ */
#ifndef __G_UDEV_H__ #ifndef __G_UDEV_H__
#define __G_UDEV_H__ #define __G_UDEV_H__
#define _GUDEV_INSIDE_GUDEV_H #define _GUDEV_INSIDE_GUDEV_H
#include <gudev/gudevenums.h> #include <gudev/gudevenums.h>
#include <gudev/gudevenumtypes.h> #include <gudev/gudevenumtypes.h>
#include <gudev/gudevtypes.h> #include <gudev/gudevtypes.h>
#include <gudev/gudevclient.h> #include <gudev/gudevclient.h>
 End of changes. 3 change blocks. 
6 lines changed or deleted 6 lines changed or added


 gudevclient.h   gudevclient.h 
/* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- /* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
* *
* Copyright (C) 2008 David Zeuthen <davidz@redhat.com> * Copyright (C) 2008 David Zeuthen <davidz@redhat.com>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either * License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version. * version 2 of the License, or (at your option) any later version.
* *
* This library is distributed in the hope that it will be useful, * This library 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 GNU * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details. * Library General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the * License along with this library; if not, write to the Free Software
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-130
* Boston, MA 02111-1307, USA. 1 USA
*/ */
#if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H) #if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H)
#error "Only <gudev/gudev.h> can be included directly, this file may disapp ear or change contents." #error "Only <gudev/gudev.h> can be included directly, this file may disapp ear or change contents."
#endif #endif
#ifndef __G_UDEV_CLIENT_H__ #ifndef __G_UDEV_CLIENT_H__
#define __G_UDEV_CLIENT_H__ #define __G_UDEV_CLIENT_H__
#include <gudev/gudevtypes.h> #include <gudev/gudevtypes.h>
 End of changes. 3 change blocks. 
6 lines changed or deleted 6 lines changed or added


 gudevdevice.h   gudevdevice.h 
/* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- /* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
* *
* Copyright (C) 2008 David Zeuthen <davidz@redhat.com> * Copyright (C) 2008 David Zeuthen <davidz@redhat.com>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either * License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version. * version 2 of the License, or (at your option) any later version.
* *
* This library is distributed in the hope that it will be useful, * This library 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 GNU * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details. * Library General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the * License along with this library; if not, write to the Free Software
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-130
* Boston, MA 02111-1307, USA. 1 USA
*/ */
#if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H) #if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H)
#error "Only <gudev/gudev.h> can be included directly, this file may disapp ear or change contents." #error "Only <gudev/gudev.h> can be included directly, this file may disapp ear or change contents."
#endif #endif
#ifndef __G_UDEV_DEVICE_H__ #ifndef __G_UDEV_DEVICE_H__
#define __G_UDEV_DEVICE_H__ #define __G_UDEV_DEVICE_H__
#include <gudev/gudevtypes.h> #include <gudev/gudevtypes.h>
 End of changes. 3 change blocks. 
6 lines changed or deleted 6 lines changed or added


 gudevenumerator.h   gudevenumerator.h 
/* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- /* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
* *
* Copyright (C) 2008-2010 David Zeuthen <davidz@redhat.com> * Copyright (C) 2008-2010 David Zeuthen <davidz@redhat.com>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either * License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version. * version 2 of the License, or (at your option) any later version.
* *
* This library is distributed in the hope that it will be useful, * This library 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 GNU * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details. * Library General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the * License along with this library; if not, write to the Free Software
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-130
* Boston, MA 02111-1307, USA. 1 USA
*/ */
#if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H) #if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H)
#error "Only <gudev/gudev.h> can be included directly, this file may disapp ear or change contents." #error "Only <gudev/gudev.h> can be included directly, this file may disapp ear or change contents."
#endif #endif
#ifndef __G_UDEV_ENUMERATOR_H__ #ifndef __G_UDEV_ENUMERATOR_H__
#define __G_UDEV_ENUMERATOR_H__ #define __G_UDEV_ENUMERATOR_H__
#include <gudev/gudevtypes.h> #include <gudev/gudevtypes.h>
 End of changes. 3 change blocks. 
6 lines changed or deleted 6 lines changed or added


 gudevenums.h   gudevenums.h 
/* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- /* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
* *
* Copyright (C) 2008 David Zeuthen <davidz@redhat.com> * Copyright (C) 2008 David Zeuthen <davidz@redhat.com>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either * License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version. * version 2 of the License, or (at your option) any later version.
* *
* This library is distributed in the hope that it will be useful, * This library 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 GNU * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details. * Library General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the * License along with this library; if not, write to the Free Software
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-130
* Boston, MA 02111-1307, USA. 1 USA
*/ */
#if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H) #if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H)
#error "Only <gudev/gudev.h> can be included directly, this file may disapp ear or change contents." #error "Only <gudev/gudev.h> can be included directly, this file may disapp ear or change contents."
#endif #endif
#ifndef __G_UDEV_ENUMS_H__ #ifndef __G_UDEV_ENUMS_H__
#define __G_UDEV_ENUMS_H__ #define __G_UDEV_ENUMS_H__
#include <glib-object.h> #include <glib-object.h>
 End of changes. 3 change blocks. 
6 lines changed or deleted 6 lines changed or added


 gudevprivate.h   gudevprivate.h 
/* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- /* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
* *
* Copyright (C) 2008 David Zeuthen <davidz@redhat.com> * Copyright (C) 2008 David Zeuthen <davidz@redhat.com>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either * License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version. * version 2 of the License, or (at your option) any later version.
* *
* This library is distributed in the hope that it will be useful, * This library 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 GNU * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details. * Library General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the * License along with this library; if not, write to the Free Software
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-130
* Boston, MA 02111-1307, USA. 1 USA
*/ */
#if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H) #if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H)
#error "Only <gudev/gudev.h> can be included directly, this file may disapp ear or change contents." #error "Only <gudev/gudev.h> can be included directly, this file may disapp ear or change contents."
#endif #endif
#ifndef __G_UDEV_PRIVATE_H__ #ifndef __G_UDEV_PRIVATE_H__
#define __G_UDEV_PRIVATE_H__ #define __G_UDEV_PRIVATE_H__
#include <gudev/gudevtypes.h> #include <gudev/gudevtypes.h>
 End of changes. 3 change blocks. 
6 lines changed or deleted 6 lines changed or added


 gudevtypes.h   gudevtypes.h 
/* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- /* -*- Mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
* *
* Copyright (C) 2008 David Zeuthen <davidz@redhat.com> * Copyright (C) 2008 David Zeuthen <davidz@redhat.com>
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either * License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version. * version 2 of the License, or (at your option) any later version.
* *
* This library is distributed in the hope that it will be useful, * This library 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 GNU * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details. * Library General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the * License along with this library; if not, write to the Free Software
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-130
* Boston, MA 02111-1307, USA. 1 USA
*/ */
#if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H) #if !defined (_GUDEV_COMPILATION) && !defined(_GUDEV_INSIDE_GUDEV_H)
#error "Only <gudev/gudev.h> can be included directly, this file may disapp ear or change contents." #error "Only <gudev/gudev.h> can be included directly, this file may disapp ear or change contents."
#endif #endif
#ifndef __G_UDEV_TYPES_H__ #ifndef __G_UDEV_TYPES_H__
#define __G_UDEV_TYPES_H__ #define __G_UDEV_TYPES_H__
#include <gudev/gudevenums.h> #include <gudev/gudevenums.h>
 End of changes. 3 change blocks. 
6 lines changed or deleted 6 lines changed or added


 journal-def.h   journal-def.h 
skipping to change at line 72 skipping to change at line 72
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 { struct ObjectHeader {
uint8_t type; uint8_t type;
uint8_t flags; uint8_t flags;
uint8_t reserved[6]; uint8_t reserved[6];
le64_t size; le64_t size;
uint8_t payload[]; uint8_t payload[];
}; } _packed_;
_packed_ struct DataObject { struct DataObject {
ObjectHeader object; ObjectHeader object;
le64_t hash; le64_t hash;
le64_t next_hash_offset; le64_t next_hash_offset;
le64_t next_field_offset; le64_t next_field_offset;
le64_t entry_offset; /* the first array entry we store inline */ le64_t entry_offset; /* the first array entry we store inline */
le64_t entry_array_offset; le64_t entry_array_offset;
le64_t n_entries; le64_t n_entries;
uint8_t payload[]; uint8_t payload[];
}; } _packed_;
_packed_ struct FieldObject { struct FieldObject {
ObjectHeader object; ObjectHeader object;
le64_t hash; le64_t hash;
le64_t next_hash_offset; le64_t next_hash_offset;
le64_t head_data_offset; le64_t head_data_offset;
uint8_t payload[]; uint8_t payload[];
}; } _packed_;
_packed_ struct EntryItem { struct EntryItem {
le64_t object_offset; le64_t object_offset;
le64_t hash; le64_t hash;
}; } _packed_;
_packed_ struct EntryObject { struct EntryObject {
ObjectHeader object; ObjectHeader object;
le64_t seqnum; le64_t seqnum;
le64_t realtime; le64_t realtime;
le64_t monotonic; le64_t monotonic;
sd_id128_t boot_id; sd_id128_t boot_id;
le64_t xor_hash; le64_t xor_hash;
EntryItem items[]; EntryItem items[];
}; } _packed_;
_packed_ struct HashItem { struct HashItem {
le64_t head_hash_offset; le64_t head_hash_offset;
le64_t tail_hash_offset; le64_t tail_hash_offset;
}; } _packed_;
_packed_ struct HashTableObject { struct HashTableObject {
ObjectHeader object; ObjectHeader object;
HashItem items[]; HashItem items[];
}; } _packed_;
_packed_ struct EntryArrayObject { struct EntryArrayObject {
ObjectHeader object; ObjectHeader object;
le64_t next_entry_array_offset; le64_t next_entry_array_offset;
le64_t items[]; le64_t items[];
}; } _packed_;
#define TAG_LENGTH (256/8) #define TAG_LENGTH (256/8)
_packed_ struct TagObject { struct TagObject {
ObjectHeader object; ObjectHeader object;
le64_t seqnum; le64_t seqnum;
le64_t epoch; le64_t epoch;
uint8_t tag[TAG_LENGTH]; /* SHA-256 HMAC */ uint8_t tag[TAG_LENGTH]; /* SHA-256 HMAC */
}; } _packed_;
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;
TagObject tag; TagObject tag;
}; };
skipping to change at line 167 skipping to change at line 167
enum { enum {
HEADER_INCOMPATIBLE_COMPRESSED = 1 HEADER_INCOMPATIBLE_COMPRESSED = 1
}; };
enum { enum {
HEADER_COMPATIBLE_SEALED = 1 HEADER_COMPATIBLE_SEALED = 1
}; };
#define HEADER_SIGNATURE ((char[]) { 'L', 'P', 'K', 'S', 'H', 'H', 'R', 'H' }) #define HEADER_SIGNATURE ((char[]) { 'L', 'P', 'K', 'S', 'H', 'H', 'R', 'H' })
_packed_ struct Header { struct Header {
uint8_t signature[8]; /* "LPKSHHRH" */ uint8_t signature[8]; /* "LPKSHHRH" */
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;
skipping to change at line 200 skipping to change at line 200
le64_t tail_entry_realtime; le64_t tail_entry_realtime;
le64_t tail_entry_monotonic; le64_t tail_entry_monotonic;
/* Added in 187 */ /* Added in 187 */
le64_t n_data; le64_t n_data;
le64_t n_fields; le64_t n_fields;
/* Added in 189 */ /* Added in 189 */
le64_t n_tags; le64_t n_tags;
le64_t n_entry_arrays; le64_t n_entry_arrays;
/* Size: 224 */ /* Size: 224 */
}; } _packed_;
#define FSS_HEADER_SIGNATURE ((char[]) { 'K', 'S', 'H', 'H', 'R', 'H', 'L', 'P' }) #define FSS_HEADER_SIGNATURE ((char[]) { 'K', 'S', 'H', 'H', 'R', 'H', 'L', 'P' })
_packed_ struct FSSHeader { struct FSSHeader {
uint8_t signature[8]; /* "KSHHRHLP" */ uint8_t signature[8]; /* "KSHHRHLP" */
le32_t compatible_flags; le32_t compatible_flags;
le32_t incompatible_flags; le32_t incompatible_flags;
sd_id128_t machine_id; sd_id128_t machine_id;
sd_id128_t boot_id; /* last writer */ sd_id128_t boot_id; /* last writer */
le64_t header_size; le64_t header_size;
le64_t start_usec; le64_t start_usec;
le64_t interval_usec; le64_t interval_usec;
le16_t fsprg_secpar; le16_t fsprg_secpar;
le16_t reserved[3]; le16_t reserved[3];
le64_t fsprg_state_size; le64_t fsprg_state_size;
}; } _packed_;
 End of changes. 22 change blocks. 
21 lines changed or deleted 21 lines changed or added


 keys-to-name.h   keys-to-name.h 
skipping to change at line 298 skipping to change at line 298
[KEY_PREVIOUS] = "KEY_PREVIOUS", [KEY_PREVIOUS] = "KEY_PREVIOUS",
[KEY_VIDEO_PREV] = "KEY_VIDEO_PREV", [KEY_VIDEO_PREV] = "KEY_VIDEO_PREV",
[KEY_MUTE] = "KEY_MUTE", [KEY_MUTE] = "KEY_MUTE",
[KEY_PAUSE] = "KEY_PAUSE", [KEY_PAUSE] = "KEY_PAUSE",
[KEY_TAPE] = "KEY_TAPE", [KEY_TAPE] = "KEY_TAPE",
[KEY_PROGRAM] = "KEY_PROGRAM", [KEY_PROGRAM] = "KEY_PROGRAM",
[KEY_OPTION] = "KEY_OPTION", [KEY_OPTION] = "KEY_OPTION",
[KEY_ZOOMOUT] = "KEY_ZOOMOUT", [KEY_ZOOMOUT] = "KEY_ZOOMOUT",
[KEY_PLAYPAUSE] = "KEY_PLAYPAUSE", [KEY_PLAYPAUSE] = "KEY_PLAYPAUSE",
[KEY_DISPLAY_OFF] = "KEY_DISPLAY_OFF", [KEY_DISPLAY_OFF] = "KEY_DISPLAY_OFF",
[KEY_HANGEUL] = "KEY_HANGEUL",
[KEY_RED] = "KEY_RED", [KEY_RED] = "KEY_RED",
[KEY_KPPLUS] = "KEY_KPPLUS", [KEY_KPPLUS] = "KEY_KPPLUS",
[KEY_FINANCE] = "KEY_FINANCE", [KEY_FINANCE] = "KEY_FINANCE",
[KEY_BRIGHTNESSDOWN] = "KEY_BRIGHTNESSDOWN", [KEY_BRIGHTNESSDOWN] = "KEY_BRIGHTNESSDOWN",
[KEY_KPDOT] = "KEY_KPDOT", [KEY_KPDOT] = "KEY_KPDOT",
[KEY_TEEN] = "KEY_TEEN", [KEY_TEEN] = "KEY_TEEN",
[KEY_SCREENLOCK] = "KEY_SCREENLOCK", [KEY_SCREENLOCK] = "KEY_SCREENLOCK",
[KEY_FN_F1] = "KEY_FN_F1", [KEY_FN_F1] = "KEY_FN_F1",
[KEY_FN_F2] = "KEY_FN_F2", [KEY_FN_F2] = "KEY_FN_F2",
[KEY_FN_F3] = "KEY_FN_F3", [KEY_FN_F3] = "KEY_FN_F3",
skipping to change at line 392 skipping to change at line 391
[KEY_KPMINUS] = "KEY_KPMINUS", [KEY_KPMINUS] = "KEY_KPMINUS",
[KEY_GOTO] = "KEY_GOTO", [KEY_GOTO] = "KEY_GOTO",
[KEY_MEDIA_REPEAT] = "KEY_MEDIA_REPEAT", [KEY_MEDIA_REPEAT] = "KEY_MEDIA_REPEAT",
[KEY_SLASH] = "KEY_SLASH", [KEY_SLASH] = "KEY_SLASH",
[KEY_KEYBOARD] = "KEY_KEYBOARD", [KEY_KEYBOARD] = "KEY_KEYBOARD",
[KEY_CAMERA_UP] = "KEY_CAMERA_UP", [KEY_CAMERA_UP] = "KEY_CAMERA_UP",
[KEY_DEL_LINE] = "KEY_DEL_LINE", [KEY_DEL_LINE] = "KEY_DEL_LINE",
[KEY_CLOSE] = "KEY_CLOSE", [KEY_CLOSE] = "KEY_CLOSE",
[KEY_DOT] = "KEY_DOT", [KEY_DOT] = "KEY_DOT",
[KEY_NUMERIC_6] = "KEY_NUMERIC_6", [KEY_NUMERIC_6] = "KEY_NUMERIC_6",
[KEY_HANGEUL] = "KEY_HANGEUL",
[KEY_BOOKMARKS] = "KEY_BOOKMARKS", [KEY_BOOKMARKS] = "KEY_BOOKMARKS",
}; };
 End of changes. 2 change blocks. 
1 lines changed or deleted 1 lines changed or added


 libudev-hwdb-def.h   libudev-hwdb-def.h 
skipping to change at line 28 skipping to change at line 28
***/ ***/
#ifndef _LIBUDEV_HWDB_DEF_H_ #ifndef _LIBUDEV_HWDB_DEF_H_
#define _LIBUDEV_HWDB_DEF_H_ #define _LIBUDEV_HWDB_DEF_H_
#include "sparse-endian.h" #include "sparse-endian.h"
#define HWDB_SIG { 'K', 'S', 'L', 'P', 'H', 'H', 'R', 'H' } #define HWDB_SIG { 'K', 'S', 'L', 'P', 'H', 'H', 'R', 'H' }
/* on-disk trie objects */ /* on-disk trie objects */
_packed_ struct trie_header_f { struct trie_header_f {
uint8_t signature[8]; uint8_t signature[8];
/* version of tool which created the file */ /* version of tool which created the file */
le64_t tool_version; le64_t tool_version;
le64_t file_size; le64_t file_size;
/* size of structures to allow them to grow */ /* size of structures to allow them to grow */
le64_t header_size; le64_t header_size;
le64_t node_size; le64_t node_size;
le64_t child_entry_size; le64_t child_entry_size;
le64_t value_entry_size; le64_t value_entry_size;
/* offset of the root trie node */ /* offset of the root trie node */
le64_t nodes_root_off; le64_t nodes_root_off;
/* size of the nodes and string section */ /* size of the nodes and string section */
le64_t nodes_len; le64_t nodes_len;
le64_t strings_len; le64_t strings_len;
}; } _packed_;
_packed_ struct trie_node_f { struct trie_node_f {
/* prefix of lookup string, shared by all children */ /* prefix of lookup string, shared by all children */
le64_t prefix_off; le64_t prefix_off;
/* size of children entry array appended to the node */ /* size of children entry array appended to the node */
uint8_t children_count; uint8_t children_count;
uint8_t padding[7]; uint8_t padding[7];
/* size of value entry array appended to the node */ /* size of value entry array appended to the node */
le64_t values_count; le64_t values_count;
}; } _packed_;
/* array of child entries, follows directly the node record */ /* array of child entries, follows directly the node record */
_packed_ struct trie_child_entry_f { struct trie_child_entry_f {
/* index of the child node */ /* index of the child node */
uint8_t c; uint8_t c;
uint8_t padding[7]; uint8_t padding[7];
/* offset of the child node */ /* offset of the child node */
le64_t child_off; le64_t child_off;
}; } _packed_;
/* array of value entries, follows directly the node record/child array */ /* array of value entries, follows directly the node record/child array */
_packed_ struct trie_value_entry_f { struct trie_value_entry_f {
le64_t key_off; le64_t key_off;
le64_t value_off; le64_t value_off;
}; } _packed_;
#endif #endif
 End of changes. 8 change blocks. 
8 lines changed or deleted 8 lines changed or added


 libudev-private.h   libudev-private.h 
skipping to change at line 59 skipping to change at line 59
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[], usec_t *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);
uid_t udev_device_get_devnode_uid(struct udev_device *udev_device);
gid_t udev_device_get_devnode_gid(struct udev_device *udev_device);
int udev_device_set_subsystem(struct udev_device *udev_device, const char * subsystem); 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);
skipping to change at line 166 skipping to change at line 168
#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_strpcpyf(char **dest, size_t size, const char *src, ...) __attr ibute__((format(printf, 3, 4)));
size_t util_strpcpyl(char **dest, size_t size, const char *src, ...) __attr ibute__((sentinel)); size_t util_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);
 End of changes. 2 change blocks. 
0 lines changed or deleted 3 lines changed or added


 log.h   log.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 <syslog.h> #include <syslog.h>
#include <stdbool.h> #include <stdbool.h>
#include <stdarg.h> #include <stdarg.h>
#include <errno.h> #include <errno.h>
#include "macro.h" #include "macro.h"
#include "sd-id128.h"
typedef enum LogTarget{ typedef enum LogTarget{
LOG_TARGET_CONSOLE, LOG_TARGET_CONSOLE,
LOG_TARGET_KMSG, LOG_TARGET_KMSG,
LOG_TARGET_JOURNAL, LOG_TARGET_JOURNAL,
LOG_TARGET_JOURNAL_OR_KMSG, LOG_TARGET_JOURNAL_OR_KMSG,
LOG_TARGET_SYSLOG, LOG_TARGET_SYSLOG,
LOG_TARGET_SYSLOG_OR_KMSG, LOG_TARGET_SYSLOG_OR_KMSG,
LOG_TARGET_AUTO, /* console if stderr is tty, JOURNAL_OR_KMSG other wise */ LOG_TARGET_AUTO, /* console if stderr is tty, JOURNAL_OR_KMSG other wise */
LOG_TARGET_SAFE, /* console if stderr is tty, KMSG otherwise */ LOG_TARGET_SAFE, /* console if stderr is tty, KMSG otherwise */
skipping to change at line 87 skipping to change at line 88
const char *format, ...) _printf_attr_(5,6); const char *format, ...) _printf_attr_(5,6);
int log_metav( int log_metav(
int level, int level,
const char*file, const char*file,
int line, int line,
const char *func, const char *func,
const char *format, const char *format,
va_list ap); va_list ap);
int log_meta_object(
int level,
const char*file,
int line,
const char *func,
const char *object_name,
const char *object,
const char *format, ...) _printf_attr_(7,8);
int log_metav_object(
int level,
const char*file,
int line,
const char *func,
const char *object_name,
const char *object,
const char *format,
va_list ap);
int log_struct_internal( int log_struct_internal(
int level, int level,
const char *file, const char *file,
int line, int line,
const char *func, const char *func,
const char *format, ...) _sentinel_; const char *format, ...) _sentinel_;
int log_oom_internal( int log_oom_internal(
const char *file, const char *file,
int line, int line,
 End of changes. 2 change blocks. 
0 lines changed or deleted 20 lines changed or added


 logind-button.h   logind-button.h 
skipping to change at line 27 skipping to change at line 27
WITHOUT ANY WARRANTY; without even the implied warranty of WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details. Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>. along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/ ***/
typedef struct Button Button; typedef struct Button Button;
typedef enum HandleButton {
HANDLE_IGNORE,
HANDLE_POWEROFF,
HANDLE_REBOOT,
HANDLE_HALT,
HANDLE_KEXEC,
HANDLE_SUSPEND,
HANDLE_HIBERNATE,
HANDLE_HYBRID_SLEEP,
HANDLE_LOCK,
_HANDLE_BUTTON_MAX,
_HANDLE_BUTTON_INVALID = -1
} 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;
char *name; char *name;
char *seat; char *seat;
int fd; int fd;
skipping to change at line 62 skipping to change at line 48
bool lid_close_queued; bool lid_close_queued;
}; };
Button* button_new(Manager *m, const char *name); Button* button_new(Manager *m, const char *name);
void button_free(Button*b); void button_free(Button*b);
int button_open(Button *b); int button_open(Button *b);
int button_process(Button *b); int button_process(Button *b);
int button_recheck(Button *b); int button_recheck(Button *b);
int button_set_seat(Button *b, const char *sn); int button_set_seat(Button *b, const char *sn);
const char* handle_button_to_string(HandleButton h);
HandleButton handle_button_from_string(const char *s);
int config_parse_handle_button(const char *filename, unsigned line, const c
har *section, const char *lvalue, int ltype, const char *rvalue, void *data
, void *userdata);
#endif #endif
 End of changes. 2 change blocks. 
21 lines changed or deleted 0 lines changed or added


 logind.h   logind.h 
skipping to change at line 43 skipping to change at line 43
#include "cgroup-util.h" #include "cgroup-util.h"
typedef struct Manager Manager; typedef struct Manager Manager;
#include "logind-device.h" #include "logind-device.h"
#include "logind-seat.h" #include "logind-seat.h"
#include "logind-session.h" #include "logind-session.h"
#include "logind-user.h" #include "logind-user.h"
#include "logind-inhibit.h" #include "logind-inhibit.h"
#include "logind-button.h" #include "logind-button.h"
#include "logind-action.h"
struct Manager { struct Manager {
DBusConnection *bus; DBusConnection *bus;
Hashmap *devices; Hashmap *devices;
Hashmap *seats; Hashmap *seats;
Hashmap *sessions; Hashmap *sessions;
Hashmap *users; Hashmap *users;
Hashmap *inhibitors; Hashmap *inhibitors;
Hashmap *buttons; Hashmap *buttons;
skipping to change at line 102 skipping to change at line 103
/* If a shutdown was delayed due to a inhibitor this contains /* If a shutdown was delayed due to a inhibitor this contains
the unit name we are supposed to start after the delay is the unit name we are supposed to start after the delay is
over */ over */
const char *delayed_unit; const char *delayed_unit;
InhibitWhat delayed_what; InhibitWhat delayed_what;
usec_t delayed_timestamp; usec_t delayed_timestamp;
usec_t inhibit_delay_max; usec_t inhibit_delay_max;
HandleButton handle_power_key; int idle_action_fd;
HandleButton handle_suspend_key; usec_t idle_action_usec;
HandleButton handle_hibernate_key; usec_t idle_action_not_before_usec;
HandleButton handle_lid_switch; HandleAction idle_action;
HandleAction handle_power_key;
HandleAction handle_suspend_key;
HandleAction handle_hibernate_key;
HandleAction handle_lid_switch;
bool power_key_ignore_inhibited; bool power_key_ignore_inhibited;
bool suspend_key_ignore_inhibited; bool suspend_key_ignore_inhibited;
bool hibernate_key_ignore_inhibited; bool hibernate_key_ignore_inhibited;
bool lid_switch_ignore_inhibited; bool lid_switch_ignore_inhibited;
}; };
enum { enum {
FD_SEAT_UDEV, FD_SEAT_UDEV,
FD_VCSA_UDEV, FD_VCSA_UDEV,
FD_BUTTON_UDEV, FD_BUTTON_UDEV,
FD_CONSOLE, FD_CONSOLE,
FD_BUS, FD_BUS,
FD_IDLE_ACTION,
FD_OTHER_BASE FD_OTHER_BASE
}; };
Manager *manager_new(void); Manager *manager_new(void);
void manager_free(Manager *m); void manager_free(Manager *m);
int manager_add_device(Manager *m, const char *sysfs, Device **_device); int manager_add_device(Manager *m, const char *sysfs, Device **_device);
int manager_add_button(Manager *m, const char *name, Button **_button); int manager_add_button(Manager *m, const char *name, Button **_button);
int manager_add_seat(Manager *m, const char *id, Seat **_seat); int manager_add_seat(Manager *m, const char *id, Seat **_seat);
int manager_add_session(Manager *m, User *u, const char *id, Session **_ses sion); int manager_add_session(Manager *m, User *u, const char *id, Session **_ses sion);
skipping to change at line 141 skipping to change at line 148
int manager_add_user_by_uid(Manager *m, uid_t uid, User **_user); int manager_add_user_by_uid(Manager *m, uid_t uid, User **_user);
int manager_add_inhibitor(Manager *m, const char* id, Inhibitor **_inhibito r); int manager_add_inhibitor(Manager *m, const char* id, Inhibitor **_inhibito r);
int manager_process_seat_device(Manager *m, struct udev_device *d); int manager_process_seat_device(Manager *m, struct udev_device *d);
int manager_process_button_device(Manager *m, struct udev_device *d); int manager_process_button_device(Manager *m, struct udev_device *d);
int manager_dispatch_seat_udev(Manager *m); int manager_dispatch_seat_udev(Manager *m);
int manager_dispatch_vcsa_udev(Manager *m); int manager_dispatch_vcsa_udev(Manager *m);
int manager_dispatch_button_udev(Manager *m); int manager_dispatch_button_udev(Manager *m);
int manager_dispatch_console(Manager *m); int manager_dispatch_console(Manager *m);
int manager_dispatch_idle_action(Manager *m);
int manager_enumerate_devices(Manager *m); int manager_enumerate_devices(Manager *m);
int manager_enumerate_buttons(Manager *m); int manager_enumerate_buttons(Manager *m);
int manager_enumerate_seats(Manager *m); int manager_enumerate_seats(Manager *m);
int manager_enumerate_sessions(Manager *m); int manager_enumerate_sessions(Manager *m);
int manager_enumerate_users(Manager *m); int manager_enumerate_users(Manager *m);
int manager_enumerate_inhibitors(Manager *m); int manager_enumerate_inhibitors(Manager *m);
int manager_startup(Manager *m); int manager_startup(Manager *m);
int manager_run(Manager *m); int manager_run(Manager *m);
 End of changes. 4 change blocks. 
4 lines changed or deleted 12 lines changed or added


 macro.h   macro.h 
skipping to change at line 122 skipping to change at line 122
#define assert(expr) do {} while(false) #define assert(expr) do {} while(false)
#else #else
#define assert(expr) assert_se(expr) #define assert(expr) assert_se(expr)
#endif #endif
#define assert_not_reached(t) \ #define assert_not_reached(t) \
do { \ do { \
log_assert_failed_unreachable(t, __FILE__, __LINE__, __PRET TY_FUNCTION__); \ log_assert_failed_unreachable(t, __FILE__, __LINE__, __PRET TY_FUNCTION__); \
} while (false) } while (false)
#define assert_cc(expr) \ #if defined(static_assert)
do { \ #define assert_cc(expr) \
switch (0) { \ do { \
case 0: \ static_assert(expr, #expr); \
case !!(expr): \
; \
} \
} while (false) } while (false)
#else
#define assert_cc(expr) \
do { \
switch (0) { \
case 0: \
case !!(expr): \
; \
} \
} while (false)
#endif
#define PTR_TO_UINT(p) ((unsigned int) ((uintptr_t) (p))) #define PTR_TO_UINT(p) ((unsigned int) ((uintptr_t) (p)))
#define UINT_TO_PTR(u) ((void*) ((uintptr_t) (u))) #define UINT_TO_PTR(u) ((void*) ((uintptr_t) (u)))
#define PTR_TO_UINT32(p) ((uint32_t) ((uintptr_t) (p))) #define PTR_TO_UINT32(p) ((uint32_t) ((uintptr_t) (p)))
#define UINT32_TO_PTR(u) ((void*) ((uintptr_t) (u))) #define UINT32_TO_PTR(u) ((void*) ((uintptr_t) (u)))
#define PTR_TO_ULONG(p) ((unsigned long) ((uintptr_t) (p))) #define PTR_TO_ULONG(p) ((unsigned long) ((uintptr_t) (p)))
#define ULONG_TO_PTR(u) ((void*) ((uintptr_t) (u))) #define ULONG_TO_PTR(u) ((void*) ((uintptr_t) (u)))
skipping to change at line 195 skipping to change at line 202
} }
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_set_free_ __attribute__((cleanup(set_freep)))
#define _cleanup_strv_free_ __attribute__((cleanup(strv_freep))) #define _cleanup_strv_free_ __attribute__((cleanup(strv_freep)))
#define VA_FORMAT_ADVANCE(format, ap) \ #define VA_FORMAT_ADVANCE(format, ap) \
do { \ do { \
int _argtypes[128]; \ int _argtypes[128]; \
size_t _i, _k; \ size_t _i, _k; \
_k = parse_printf_format((format), ELEMENTSOF(_argtypes), _argtypes ); \ _k = parse_printf_format((format), ELEMENTSOF(_argtypes), _argtypes ); \
assert(_k < ELEMENTSOF(_argtypes)); \ assert(_k < ELEMENTSOF(_argtypes)); \
for (_i = 0; _i < _k; _i++) { \ for (_i = 0; _i < _k; _i++) { \
if (_argtypes[_i] & PA_FLAG_PTR) { \ if (_argtypes[_i] & PA_FLAG_PTR) { \
 End of changes. 3 change blocks. 
7 lines changed or deleted 15 lines changed or added


 manager.h   manager.h 
skipping to change at line 63 skipping to change at line 63
WATCH_INVALID, WATCH_INVALID,
WATCH_SIGNAL, WATCH_SIGNAL,
WATCH_NOTIFY, WATCH_NOTIFY,
WATCH_FD, WATCH_FD,
WATCH_UNIT_TIMER, WATCH_UNIT_TIMER,
WATCH_JOB_TIMER, WATCH_JOB_TIMER,
WATCH_MOUNT, WATCH_MOUNT,
WATCH_SWAP, WATCH_SWAP,
WATCH_UDEV, WATCH_UDEV,
WATCH_DBUS_WATCH, WATCH_DBUS_WATCH,
WATCH_DBUS_TIMEOUT WATCH_DBUS_TIMEOUT,
WATCH_TIME_CHANGE
}; };
struct Watch { struct Watch {
int fd; int fd;
WatchType type; WatchType type;
union { union {
struct Unit *unit; struct Unit *unit;
struct Job *job; struct Job *job;
DBusWatch *bus_watch; DBusWatch *bus_watch;
DBusTimeout *bus_timeout; DBusTimeout *bus_timeout;
skipping to change at line 128 skipping to change at line 129
/* Units to check when doing GC */ /* Units to check when doing GC */
LIST_HEAD(Unit, gc_queue); LIST_HEAD(Unit, gc_queue);
Hashmap *watch_pids; /* pid => Unit object n:1 */ Hashmap *watch_pids; /* pid => Unit object n:1 */
char *notify_socket; char *notify_socket;
Watch notify_watch; Watch notify_watch;
Watch signal_watch; Watch signal_watch;
Watch time_change_watch;
int epoll_fd; int epoll_fd;
unsigned n_snapshots; unsigned n_snapshots;
LookupPaths lookup_paths; LookupPaths lookup_paths;
Set *unit_path_cache; Set *unit_path_cache;
char **environment; char **environment;
char **default_controllers; char **default_controllers;
skipping to change at line 273 skipping to change at line 275
int manager_loop(Manager *m); int manager_loop(Manager *m);
void manager_dispatch_bus_name_owner_changed(Manager *m, const char *name, const char* old_owner, const char *new_owner); void manager_dispatch_bus_name_owner_changed(Manager *m, const char *name, const char* old_owner, const char *new_owner);
void manager_dispatch_bus_query_pid_done(Manager *m, const char *name, pid_ t pid); void manager_dispatch_bus_query_pid_done(Manager *m, const char *name, pid_ t pid);
int manager_open_serialization(Manager *m, FILE **_f); int manager_open_serialization(Manager *m, FILE **_f);
int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool serialize_jobs) ; int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool serialize_jobs) ;
int manager_deserialize(Manager *m, FILE *f, FDSet *fds); int manager_deserialize(Manager *m, FILE *f, FDSet *fds);
int manager_distribute_fds(Manager *m, FDSet *fds);
int manager_reload(Manager *m); int manager_reload(Manager *m);
bool manager_is_booting_or_shutting_down(Manager *m); bool manager_is_booting_or_shutting_down(Manager *m);
void manager_reset_failed(Manager *m); void manager_reset_failed(Manager *m);
void manager_send_unit_audit(Manager *m, Unit *u, int type, bool success); void manager_send_unit_audit(Manager *m, Unit *u, int type, bool success);
void manager_send_unit_plymouth(Manager *m, Unit *u); void manager_send_unit_plymouth(Manager *m, Unit *u);
skipping to change at line 294 skipping to change at line 297
void manager_check_finished(Manager *m); void manager_check_finished(Manager *m);
void manager_run_generators(Manager *m); void manager_run_generators(Manager *m);
void manager_undo_generators(Manager *m); void manager_undo_generators(Manager *m);
void manager_recheck_journal(Manager *m); void manager_recheck_journal(Manager *m);
void manager_set_show_status(Manager *m, bool b); void manager_set_show_status(Manager *m, bool b);
bool manager_get_show_status(Manager *m); bool manager_get_show_status(Manager *m);
void watch_init(Watch *w);
 End of changes. 4 change blocks. 
1 lines changed or deleted 4 lines changed or added


 missing.h   missing.h 
skipping to change at line 256 skipping to change at line 256
# 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 #ifndef CIFS_MAGIC_NUMBER
#define CIFS_MAGIC_NUMBER 0xFF534D42 #define CIFS_MAGIC_NUMBER 0xFF534D42
#endif #endif
#ifndef TFD_TIMER_CANCEL_ON_SET
#define TFD_TIMER_CANCEL_ON_SET (1 << 1)
#endif
 End of changes. 1 change blocks. 
0 lines changed or deleted 0 lines changed or added


 mount.h   mount.h 
skipping to change at line 122 skipping to change at line 122
void mount_fd_event(Manager *m, int events); void mount_fd_event(Manager *m, int events);
const char* mount_state_to_string(MountState i); const char* mount_state_to_string(MountState i);
MountState mount_state_from_string(const char *s); MountState mount_state_from_string(const char *s);
const char* mount_exec_command_to_string(MountExecCommand i); const char* mount_exec_command_to_string(MountExecCommand i);
MountExecCommand mount_exec_command_from_string(const char *s); MountExecCommand mount_exec_command_from_string(const char *s);
const char* mount_result_to_string(MountResult i); const char* mount_result_to_string(MountResult i);
MountResult mount_result_from_string(const char *s); MountResult mount_result_from_string(const char *s);
void warn_if_dir_nonempty(const char *unit, const char* where);
 End of changes. 1 change blocks. 
0 lines changed or deleted 0 lines changed or added


 sd-messages.h   sd-messages.h 
skipping to change at line 68 skipping to change at line 68
#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_SPAWN_FAILED SD_ID128_MAKE(64,12,57,65,1c,1b,4e,c9,a 8,62,4d,7a,40,a9,e1,e7)
#define SD_MESSAGE_FORWARD_SYSLOG_MISSED SD_ID128_MAKE(00,27,22,9c,a0,64,41 ,81,a7,6c,4e,92,45,8a,fa,2e) #define SD_MESSAGE_FORWARD_SYSLOG_MISSED SD_ID128_MAKE(00,27,22,9c,a0,64,41 ,81,a7,6c,4e,92,45,8a,fa,2e)
#define SD_MESSAGE_OVERMOUNTING SD_ID128_MAKE(1d,ee,03,69,c7,fc,47,36,b
7,09,9b,38,ec,b4,6e,e7)
#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 36 skipping to change at line 36
* object will be treated as empty set for all read * object will be treated as empty set for all read
* operations. That way it is not necessary to instantiate an object * operations. That way it is not necessary to instantiate an object
* for each set use. */ * for each set use. */
#include "hashmap.h" #include "hashmap.h"
typedef struct Set Set; typedef struct Set Set;
Set *set_new(hash_func_t hash_func, compare_func_t compare_func); Set *set_new(hash_func_t hash_func, compare_func_t compare_func);
void set_free(Set* s); void set_free(Set* s);
void set_freep(Set **s);
void set_free_free(Set *s); void set_free_free(Set *s);
Set* set_copy(Set *s); Set* set_copy(Set *s);
int set_ensure_allocated(Set **s, hash_func_t hash_func, compare_func_t com pare_func); int set_ensure_allocated(Set **s, hash_func_t hash_func, compare_func_t com pare_func);
int set_put(Set *s, void *value); int set_put(Set *s, void *value);
int set_replace(Set *s, void *value); int set_replace(Set *s, void *value);
void *set_get(Set *s, void *value); void *set_get(Set *s, void *value);
bool set_contains(Set *s, void *value); bool set_contains(Set *s, void *value);
void *set_remove(Set *s, void *value); void *set_remove(Set *s, void *value);
int set_remove_and_put(Set *s, void *old_value, void *new_value); int set_remove_and_put(Set *s, void *old_value, void *new_value);
 End of changes. 1 change blocks. 
0 lines changed or deleted 1 lines changed or added


 socket-util.h   socket-util.h 
skipping to change at line 89 skipping to change at line 89
bool free_bind, bool free_bind,
bool transparent, bool transparent,
mode_t directory_mode, mode_t directory_mode,
mode_t socket_mode, mode_t socket_mode,
const char *label, const char *label,
int *ret); int *ret);
bool socket_address_is(const SocketAddress *a, const char *s, int type); bool socket_address_is(const SocketAddress *a, const char *s, int type);
bool socket_address_is_netlink(const SocketAddress *a, const char *s); bool socket_address_is_netlink(const SocketAddress *a, const char *s);
bool socket_address_matches_fd(const SocketAddress *a, int fd);
bool socket_address_equal(const SocketAddress *a, const SocketAddress *b); bool socket_address_equal(const SocketAddress *a, const SocketAddress *b);
bool socket_address_needs_mount(const SocketAddress *a, const char *prefix) ; bool socket_address_needs_mount(const SocketAddress *a, const char *prefix) ;
const char* socket_address_bind_ipv6_only_to_string(SocketAddressBindIPv6On ly b); const char* socket_address_bind_ipv6_only_to_string(SocketAddressBindIPv6On ly b);
SocketAddressBindIPv6Only socket_address_bind_ipv6_only_from_string(const c har *s); SocketAddressBindIPv6Only socket_address_bind_ipv6_only_from_string(const c har *s);
int netlink_family_to_string_alloc(int b, char **s); int netlink_family_to_string_alloc(int b, char **s);
int netlink_family_from_string(const char *s); int netlink_family_from_string(const char *s);
 End of changes. 1 change blocks. 
0 lines changed or deleted 2 lines changed or added


 syscall-to-name.h   syscall-to-name.h 
skipping to change at line 309 skipping to change at line 309
[__NR_iopl] = "iopl", [__NR_iopl] = "iopl",
[__NR_gettimeofday] = "gettimeofday", [__NR_gettimeofday] = "gettimeofday",
[__NR_fallocate] = "fallocate", [__NR_fallocate] = "fallocate",
[__NR_getpgrp] = "getpgrp", [__NR_getpgrp] = "getpgrp",
[__NR_recvmmsg] = "recvmmsg", [__NR_recvmmsg] = "recvmmsg",
[__NR_eventfd2] = "eventfd2", [__NR_eventfd2] = "eventfd2",
[__NR_mknod] = "mknod", [__NR_mknod] = "mknod",
[__NR_statfs64] = "statfs64", [__NR_statfs64] = "statfs64",
[__NR_faccessat] = "faccessat", [__NR_faccessat] = "faccessat",
[__NR_fstatfs] = "fstatfs", [__NR_fstatfs] = "fstatfs",
[__NR_set_robust_list] = "set_robust_list",
[__NR_kexec_load] = "kexec_load", [__NR_kexec_load] = "kexec_load",
[__NR_migrate_pages] = "migrate_pages", [__NR_migrate_pages] = "migrate_pages",
[__NR_listxattr] = "listxattr", [__NR_listxattr] = "listxattr",
[__NR_ptrace] = "ptrace", [__NR_ptrace] = "ptrace",
[__NR_fadvise64] = "fadvise64", [__NR_fadvise64] = "fadvise64",
[__NR_getegid] = "getegid", [__NR_getegid] = "getegid",
[__NR_setrlimit] = "setrlimit", [__NR_setrlimit] = "setrlimit",
[__NR_sigpending] = "sigpending", [__NR_sigpending] = "sigpending",
[__NR_time] = "time", [__NR_time] = "time",
[__NR_unlink] = "unlink", [__NR_unlink] = "unlink",
skipping to change at line 341 skipping to change at line 340
[__NR_syncfs] = "syncfs", [__NR_syncfs] = "syncfs",
[__NR_setsid] = "setsid", [__NR_setsid] = "setsid",
[__NR_setfsgid] = "setfsgid", [__NR_setfsgid] = "setfsgid",
[__NR_epoll_create] = "epoll_create", [__NR_epoll_create] = "epoll_create",
[__NR_tgkill] = "tgkill", [__NR_tgkill] = "tgkill",
[__NR_flock] = "flock", [__NR_flock] = "flock",
[__NR_capget] = "capget", [__NR_capget] = "capget",
[__NR_getpid] = "getpid", [__NR_getpid] = "getpid",
[__NR_add_key] = "add_key", [__NR_add_key] = "add_key",
[__NR_getrlimit] = "getrlimit", [__NR_getrlimit] = "getrlimit",
[__NR_set_robust_list] = "set_robust_list",
[__NR_setresuid32] = "setresuid32", [__NR_setresuid32] = "setresuid32",
[__NR_waitpid] = "waitpid", [__NR_waitpid] = "waitpid",
[__NR_tkill] = "tkill", [__NR_tkill] = "tkill",
[__NR_epoll_wait] = "epoll_wait", [__NR_epoll_wait] = "epoll_wait",
[__NR_sethostname] = "sethostname", [__NR_sethostname] = "sethostname",
}; };
 End of changes. 2 change blocks. 
1 lines changed or deleted 1 lines changed or added


 timer.h   timer.h 
skipping to change at line 27 skipping to change at line 27
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details. Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License You should have received a copy of the GNU Lesser General Public License
along with systemd; If not, see <http://www.gnu.org/licenses/>. along with systemd; If not, see <http://www.gnu.org/licenses/>.
***/ ***/
typedef struct Timer Timer; typedef struct Timer Timer;
#include "unit.h" #include "unit.h"
#include "calendarspec.h"
typedef enum TimerState { typedef enum TimerState {
TIMER_DEAD, TIMER_DEAD,
TIMER_WAITING, TIMER_WAITING,
TIMER_RUNNING, TIMER_RUNNING,
TIMER_ELAPSED, TIMER_ELAPSED,
TIMER_FAILED, TIMER_FAILED,
_TIMER_STATE_MAX, _TIMER_STATE_MAX,
_TIMER_STATE_INVALID = -1 _TIMER_STATE_INVALID = -1
} TimerState; } TimerState;
typedef enum TimerBase { typedef enum TimerBase {
TIMER_ACTIVE, TIMER_ACTIVE,
TIMER_BOOT, TIMER_BOOT,
TIMER_STARTUP, TIMER_STARTUP,
TIMER_UNIT_ACTIVE, TIMER_UNIT_ACTIVE,
TIMER_UNIT_INACTIVE, TIMER_UNIT_INACTIVE,
TIMER_CALENDAR,
_TIMER_BASE_MAX, _TIMER_BASE_MAX,
_TIMER_BASE_INVALID = -1 _TIMER_BASE_INVALID = -1
} TimerBase; } TimerBase;
typedef struct TimerValue { typedef struct TimerValue {
TimerBase base;
bool disabled;
clockid_t clock_id;
usec_t value; usec_t value;
CalendarSpec *calendar_spec;
usec_t next_elapse; usec_t next_elapse;
LIST_FIELDS(struct TimerValue, value); LIST_FIELDS(struct TimerValue, value);
TimerBase base;
bool disabled;
} TimerValue; } TimerValue;
typedef enum TimerResult { typedef enum TimerResult {
TIMER_SUCCESS, TIMER_SUCCESS,
TIMER_FAILURE_RESOURCES, TIMER_FAILURE_RESOURCES,
_TIMER_RESULT_MAX, _TIMER_RESULT_MAX,
_TIMER_RESULT_INVALID = -1 _TIMER_RESULT_INVALID = -1
} TimerResult; } TimerResult;
struct Timer { struct Timer {
Unit meta; Unit meta;
LIST_HEAD(TimerValue, values); LIST_HEAD(TimerValue, values);
usec_t next_elapse; usec_t next_elapse_monotonic;
usec_t next_elapse_realtime;
TimerState state, deserialized_state; TimerState state, deserialized_state;
UnitRef unit; UnitRef unit;
Watch timer_watch; Watch monotonic_watch;
Watch realtime_watch;
TimerResult result; TimerResult result;
}; };
void timer_unit_notify(Unit *u, UnitActiveState new_state); void timer_unit_notify(Unit *u, UnitActiveState new_state);
extern const UnitVTable timer_vtable; extern const UnitVTable timer_vtable;
const char *timer_state_to_string(TimerState i); const char *timer_state_to_string(TimerState i);
TimerState timer_state_from_string(const char *s); TimerState timer_state_from_string(const char *s);
 End of changes. 7 change blocks. 
5 lines changed or deleted 11 lines changed or added


 udev.h   udev.h 
skipping to change at line 52 skipping to change at line 52
struct udev_list run_list; struct udev_list run_list;
int exec_delay; int exec_delay;
usec_t birth_usec; usec_t birth_usec;
usec_t 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_set;
bool group_final; bool group_final;
bool owner_set;
bool owner_final; bool owner_final;
bool mode_set; bool mode_set;
bool mode_final; bool mode_final;
bool name_final; bool name_final;
bool devlink_final; bool devlink_final;
bool run_final; bool run_final;
}; };
struct udev_watch { struct udev_watch {
struct udev_list_node node; struct udev_list_node node;
 End of changes. 2 change blocks. 
0 lines changed or deleted 2 lines changed or added


 unit.h   unit.h 
skipping to change at line 313 skipping to change at line 313
bool (*can_reload)(Unit *u); bool (*can_reload)(Unit *u);
/* Write all data that cannot be restored from other sources /* Write all data that cannot be restored from other sources
* away using unit_serialize_item() */ * away using unit_serialize_item() */
int (*serialize)(Unit *u, FILE *f, FDSet *fds); int (*serialize)(Unit *u, FILE *f, FDSet *fds);
/* Restore one item from the serialization */ /* Restore one item from the serialization */
int (*deserialize_item)(Unit *u, const char *key, const char *data, FDSet *fds); int (*deserialize_item)(Unit *u, const char *key, const char *data, FDSet *fds);
/* Try to match up fds with what we need for this unit */
int (*distribute_fds)(Unit *u, FDSet *fds);
/* Boils down the more complex internal state of this unit to /* Boils down the more complex internal state of this unit to
* a simpler one that the engine can understand */ * a simpler one that the engine can understand */
UnitActiveState (*active_state)(Unit *u); UnitActiveState (*active_state)(Unit *u);
/* Returns the substate specific to this unit type as /* Returns the substate specific to this unit type as
* string. This is purely information so that we can give the * string. This is purely information so that we can give the
* user a more fine grained explanation in which actual state a * user a more fine grained explanation in which actual state a
* unit is in. */ * unit is in. */
const char* (*sub_state_to_string)(Unit *u); const char* (*sub_state_to_string)(Unit *u);
skipping to change at line 361 skipping to change at line 364
/* Called for each message received on the bus */ /* Called for each message received on the bus */
DBusHandlerResult (*bus_message_handler)(Unit *u, DBusConnection *c , DBusMessage *message); DBusHandlerResult (*bus_message_handler)(Unit *u, DBusConnection *c , DBusMessage *message);
/* Return the unit this unit is following */ /* Return the unit this unit is following */
Unit *(*following)(Unit *u); Unit *(*following)(Unit *u);
/* Return the set of units that are following each other */ /* Return the set of units that are following each other */
int (*following_set)(Unit *u, Set **s); int (*following_set)(Unit *u, Set **s);
/* Called whenever CLOCK_REALTIME made a jump */
void (*time_change)(Unit *u);
/* This is called for each unit type and should be used to /* This is called for each unit type and should be used to
* enumerate existing devices and load them. However, * enumerate existing devices and load them. However,
* everything that is loaded here should still stay in * everything that is loaded here should still stay in
* inactive state. It is the job of the coldplug() call above * inactive state. It is the job of the coldplug() call above
* to put the units into the initial state. */ * to put the units into the initial state. */
int (*enumerate)(Manager *m); int (*enumerate)(Manager *m);
/* Type specific cleanups. */ /* Type specific cleanups. */
void (*shutdown)(Manager *m); void (*shutdown)(Manager *m);
skipping to change at line 487 skipping to change at line 493
int unit_kill(Unit *u, KillWho w, int signo, DBusError *error); int unit_kill(Unit *u, KillWho w, int signo, DBusError *error);
void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool relo ad_success); void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool relo ad_success);
int unit_watch_fd(Unit *u, int fd, uint32_t events, Watch *w); int unit_watch_fd(Unit *u, int fd, uint32_t events, Watch *w);
void unit_unwatch_fd(Unit *u, Watch *w); void unit_unwatch_fd(Unit *u, Watch *w);
int unit_watch_pid(Unit *u, pid_t pid); int unit_watch_pid(Unit *u, pid_t pid);
void unit_unwatch_pid(Unit *u, pid_t pid); void unit_unwatch_pid(Unit *u, pid_t pid);
int unit_watch_timer(Unit *u, usec_t delay, Watch *w); int unit_watch_timer(Unit *u, clockid_t, bool relative, usec_t usec, Watch *w);
void unit_unwatch_timer(Unit *u, Watch *w); void unit_unwatch_timer(Unit *u, Watch *w);
int unit_watch_bus_name(Unit *u, const char *name); int unit_watch_bus_name(Unit *u, const char *name);
void unit_unwatch_bus_name(Unit *u, const char *name); void unit_unwatch_bus_name(Unit *u, const char *name);
bool unit_job_is_applicable(Unit *u, JobType j); bool unit_job_is_applicable(Unit *u, JobType j);
int set_unit_path(const char *p); int set_unit_path(const char *p);
char *unit_dbus_path(Unit *u); char *unit_dbus_path(Unit *u);
skipping to change at line 552 skipping to change at line 558
int unit_exec_context_defaults(Unit *u, ExecContext *c); int unit_exec_context_defaults(Unit *u, ExecContext *c);
ExecContext *unit_get_exec_context(Unit *u); ExecContext *unit_get_exec_context(Unit *u);
const char *unit_active_state_to_string(UnitActiveState i); const char *unit_active_state_to_string(UnitActiveState i);
UnitActiveState unit_active_state_from_string(const char *s); UnitActiveState unit_active_state_from_string(const char *s);
const char *unit_dependency_to_string(UnitDependency i); const char *unit_dependency_to_string(UnitDependency i);
UnitDependency unit_dependency_from_string(const char *s); UnitDependency unit_dependency_from_string(const char *s);
#define log_full_unit(level, unit, ...) log_meta_object(level, __FILE__,
__LINE__, __func__, "UNIT=", unit, __VA_ARGS__)
#define log_debug_unit(unit, ...) log_full_unit(LOG_DEBUG, unit, __VA
_ARGS__)
#define log_info_unit(unit, ...) log_full_unit(LOG_INFO, unit, __VA_
ARGS__)
#define log_notice_unit(unit, ...) log_full_unit(LOG_NOTICE, unit, __V
A_ARGS__)
#define log_warning_unit(unit, ...) log_full_unit(LOG_WARNING, unit, __
VA_ARGS__)
#define log_error_unit(unit, ...) log_full_unit(LOG_ERR, unit, __VA_A
RGS__)
 End of changes. 4 change blocks. 
1 lines changed or deleted 7 lines changed or added


 util.h   util.h 
skipping to change at line 41 skipping to change at line 41
#include <signal.h> #include <signal.h>
#include <sched.h> #include <sched.h>
#include <limits.h> #include <limits.h>
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <dirent.h> #include <dirent.h>
#include <sys/resource.h> #include <sys/resource.h>
#include <stddef.h> #include <stddef.h>
#include "macro.h" #include "macro.h"
#include "time-util.h"
typedef uint64_t usec_t;
typedef uint64_t nsec_t;
typedef struct dual_timestamp {
usec_t realtime;
usec_t monotonic;
} dual_timestamp;
union dirent_storage { union dirent_storage {
struct dirent de; struct dirent de;
uint8_t storage[offsetof(struct dirent, d_name) + uint8_t storage[offsetof(struct dirent, d_name) +
((NAME_MAX + 1 + sizeof(long)) & ~(sizeof(long) - 1 ))]; ((NAME_MAX + 1 + sizeof(long)) & ~(sizeof(long) - 1 ))];
}; };
#define MSEC_PER_SEC 1000ULL
#define USEC_PER_SEC 1000000ULL
#define USEC_PER_MSEC 1000ULL
#define NSEC_PER_SEC 1000000000ULL
#define NSEC_PER_MSEC 1000000ULL
#define NSEC_PER_USEC 1000ULL
#define USEC_PER_MINUTE (60ULL*USEC_PER_SEC)
#define NSEC_PER_MINUTE (60ULL*NSEC_PER_SEC)
#define USEC_PER_HOUR (60ULL*USEC_PER_MINUTE)
#define NSEC_PER_HOUR (60ULL*NSEC_PER_MINUTE)
#define USEC_PER_DAY (24ULL*USEC_PER_HOUR)
#define NSEC_PER_DAY (24ULL*NSEC_PER_HOUR)
#define USEC_PER_WEEK (7ULL*USEC_PER_DAY)
#define NSEC_PER_WEEK (7ULL*NSEC_PER_DAY)
#define USEC_PER_MONTH (2629800ULL*USEC_PER_SEC)
#define NSEC_PER_MONTH (2629800ULL*NSEC_PER_SEC)
#define USEC_PER_YEAR (31557600ULL*USEC_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 (5+11+9+4+1)
#define FORMAT_TIMESTAMP_PRETTY_MAX 256
#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); bool is_efiboot(void);
usec_t now(clockid_t clock);
dual_timestamp* dual_timestamp_get(dual_timestamp *ts);
dual_timestamp* dual_timestamp_from_realtime(dual_timestamp *ts, usec_t u);
#define dual_timestamp_is_set(ts) ((ts)->realtime > 0)
usec_t timespec_load(const struct timespec *ts);
struct timespec *timespec_store(struct timespec *ts, usec_t u);
usec_t timeval_load(const struct timeval *tv);
struct timeval *timeval_store(struct timeval *tv, usec_t u);
size_t page_size(void); size_t page_size(void);
#define PAGE_ALIGN(l) ALIGN_TO((l), page_size()) #define PAGE_ALIGN(l) ALIGN_TO((l), page_size())
#define streq(a,b) (strcmp((a),(b)) == 0) #define streq(a,b) (strcmp((a),(b)) == 0)
#define strneq(a, b, n) (strncmp((a), (b), (n)) == 0) #define strneq(a, b, n) (strncmp((a), (b), (n)) == 0)
bool streq_ptr(const char *a, const char *b); bool streq_ptr(const char *a, const char *b);
#define new(t, n) ((t*) malloc_multiply(sizeof(t), (n))) #define new(t, n) ((t*) malloc_multiply(sizeof(t), (n)))
skipping to change at line 157 skipping to change at line 114
char *startswith(const char *s, const char *prefix); char *startswith(const char *s, const char *prefix);
char *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_nsec(const char *t, nsec_t *nsec);
int parse_bytes(const char *t, off_t *bytes); int parse_bytes(const char *t, off_t *bytes);
int parse_pid(const char *s, pid_t* ret_pid); int parse_pid(const char *s, pid_t* ret_pid);
int parse_uid(const char *s, uid_t* ret_uid); int parse_uid(const char *s, uid_t* ret_uid);
#define parse_gid(s, ret_uid) parse_uid(s, ret_uid) #define parse_gid(s, ret_uid) parse_uid(s, ret_uid)
int safe_atou(const char *s, unsigned *ret_u); int safe_atou(const char *s, unsigned *ret_u);
int safe_atoi(const char *s, int *ret_i); int safe_atoi(const char *s, int *ret_i);
int safe_atollu(const char *s, unsigned long long *ret_u); int safe_atollu(const char *s, unsigned long long *ret_u);
int safe_atolli(const char *s, long long int *ret_i); int safe_atolli(const char *s, long long int *ret_i);
skipping to change at line 286 skipping to change at line 241
char *ascii_strlower(char *path); char *ascii_strlower(char *path);
bool dirent_is_file(const struct dirent *de); bool dirent_is_file(const struct dirent *de);
bool dirent_is_file_with_suffix(const struct dirent *de, const char *suffix ); bool dirent_is_file_with_suffix(const struct dirent *de, const char *suffix );
bool ignore_file(const char *filename); bool ignore_file(const char *filename);
bool chars_intersect(const char *a, const char *b); bool chars_intersect(const char *a, const char *b);
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_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 */ /* 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)) \
skipping to change at line 445 skipping to change at line 396
int wait_for_terminate(pid_t pid, siginfo_t *status); int wait_for_terminate(pid_t pid, siginfo_t *status);
int wait_for_terminate_and_warn(const char *name, pid_t pid); int wait_for_terminate_and_warn(const char *name, pid_t pid);
_noreturn_ void freeze(void); _noreturn_ void freeze(void);
bool null_or_empty(struct stat *st); bool null_or_empty(struct stat *st);
int null_or_empty_path(const char *fn); int null_or_empty_path(const char *fn);
DIR *xopendirat(int dirfd, const char *name, int flags); DIR *xopendirat(int dirfd, const char *name, int flags);
void dual_timestamp_serialize(FILE *f, const char *name, dual_timestamp *t)
;
void dual_timestamp_deserialize(const char *value, dual_timestamp *t);
char *fstab_node_to_udev_node(const char *p); char *fstab_node_to_udev_node(const char *p);
bool tty_is_vc(const char *tty); bool tty_is_vc(const char *tty);
bool tty_is_vc_resolve(const char *tty); bool tty_is_vc_resolve(const char *tty);
bool tty_is_console(const char *tty); bool tty_is_console(const char *tty);
int vtnr_from_tty(const char *tty); int vtnr_from_tty(const char *tty);
const char *default_term_for_tty(const char *tty); const char *default_term_for_tty(const char *tty);
void execute_directory(const char *directory, DIR *_d, char *argv[]); void execute_directory(const char *directory, DIR *_d, char *argv[]);
skipping to change at line 598 skipping to change at line 546
_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, void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t si ze,
int (*compar) (const void *, const void *, void *), int (*compar) (const void *, const void *, void *),
void *arg); void *arg);
bool is_locale_utf8(void); bool is_locale_utf8(void);
typedef enum DrawSpecialChar { typedef enum DrawSpecialChar {
DRAW_TREE_VERT, DRAW_TREE_VERT,
DRAW_TREE_BRANCH, DRAW_TREE_BRANCH,
DRAW_TREE_RIGHT, DRAW_TREE_RIGHT,
DRAW_TRIANGULAR_BULLET, DRAW_TRIANGULAR_BULLET,
_DRAW_SPECIAL_CHAR_MAX _DRAW_SPECIAL_CHAR_MAX
} DrawSpecialChar; } DrawSpecialChar;
const char *draw_special_char(DrawSpecialChar ch); const char *draw_special_char(DrawSpecialChar ch);
char *strreplace(const char *text, const char *old_string, const char *new_ string); char *strreplace(const char *text, const char *old_string, const char *new_ string);
char *strip_tab_ansi(char **p, size_t *l);
int on_ac_power(void);
 End of changes. 9 change blocks. 
56 lines changed or deleted 1 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/