| bootchart.h | | bootchart.h | |
|
| | | /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ | |
| | | | |
| | | #pragma once | |
| | | | |
| /*** | | /*** | |
|
| bootchart.h - This file is part of systemd-bootchart | | This file is part of systemd. | |
| | | | |
| Copyright (C) 2009-2013 Intel Coproration | | Copyright (C) 2009-2013 Intel Coproration | |
| | | | |
| Authors: | | Authors: | |
| Auke Kok <auke-jan.h.kok@intel.com> | | Auke Kok <auke-jan.h.kok@intel.com> | |
| | | | |
| systemd is free software; you can redistribute it and/or modify it | | systemd is free software; you can redistribute it and/or modify it | |
| under the terms of the GNU Lesser General Public License as published by | | under the terms of the GNU Lesser General Public License as published by | |
| the Free Software Foundation; either version 2.1 of the License, or | | the Free Software Foundation; either version 2.1 of the License, or | |
| (at your option) any later version. | | (at your option) any later version. | |
| | | | |
| systemd is distributed in the hope that it will be useful, but | | systemd is distributed in the hope that it will be useful, but | |
| WITHOUT ANY WARRANTY; without even the implied warranty of | | WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| Lesser General Public License for more details. | | Lesser General Public License for more details. | |
| | | | |
| You should have received a copy of the GNU Lesser General Public License | | You should have received a copy of the GNU Lesser General Public License | |
| along with systemd; If not, see <http://www.gnu.org/licenses/>. | | along with systemd; If not, see <http://www.gnu.org/licenses/>. | |
|
| ***/ | | ***/ | |
| | | | |
| #include <dirent.h> | | #include <dirent.h> | |
| #include <stdbool.h> | | #include <stdbool.h> | |
| | | | |
| #define MAXCPUS 16 | | #define MAXCPUS 16 | |
| #define MAXPIDS 65535 | | #define MAXPIDS 65535 | |
| #define MAXSAMPLES 8192 | | #define MAXSAMPLES 8192 | |
| | | | |
| struct block_stat_struct { | | struct block_stat_struct { | |
| /* /proc/vmstat pgpgin & pgpgout */ | | /* /proc/vmstat pgpgin & pgpgout */ | |
| | | | |
| skipping to change at line 101 | | skipping to change at line 105 | |
| | | | |
| extern int entropy_avail[]; | | extern int entropy_avail[]; | |
| | | | |
| extern double graph_start; | | extern double graph_start; | |
| extern double log_start; | | extern double log_start; | |
| extern double sampletime[]; | | extern double sampletime[]; | |
| extern struct ps_struct *ps_first; | | extern struct ps_struct *ps_first; | |
| extern struct block_stat_struct blockstat[]; | | extern struct block_stat_struct blockstat[]; | |
| extern struct cpu_stat_struct cpustat[]; | | extern struct cpu_stat_struct cpustat[]; | |
| extern int pscount; | | extern int pscount; | |
|
| extern bool relative; | | extern bool arg_relative; | |
| extern bool filter; | | extern bool arg_filter; | |
| extern bool show_cmdline; | | extern bool arg_show_cmdline; | |
| extern bool pss; | | extern bool arg_pss; | |
| extern bool entropy; | | extern bool arg_entropy; | |
| extern bool initcall; | | extern bool initcall; | |
| extern int samples; | | extern int samples; | |
| extern int cpus; | | extern int cpus; | |
|
| extern int samples_len; | | extern int arg_samples_len; | |
| extern double hz; | | extern double arg_hz; | |
| extern double scale_x; | | extern double arg_scale_x; | |
| extern double scale_y; | | extern double arg_scale_y; | |
| extern int overrun; | | extern int overrun; | |
| extern double interval; | | extern double interval; | |
| | | | |
|
| extern char output_path[PATH_MAX]; | | extern char arg_output_path[PATH_MAX]; | |
| extern char init_path[PATH_MAX]; | | extern char arg_init_path[PATH_MAX]; | |
| | | | |
| extern FILE *of; | | extern FILE *of; | |
|
| extern DIR *proc; | | | |
| extern int procfd; | | | |
| extern int sysfd; | | extern int sysfd; | |
|
| | | | |
| extern double gettime_ns(void); | | | |
| extern void log_uptime(void); | | | |
| extern void log_sample(int sample); | | | |
| | | | |
| extern void svg_do(const char *build); | | | |
| | | | |
End of changes. 8 change blocks. |
| 15 lines changed or deleted | | 17 lines changed or added | |
|
| catalog.h | | catalog.h | |
| | | | |
| skipping to change at line 24 | | skipping to change at line 24 | |
| | | | |
| systemd is distributed in the hope that it will be useful, but | | systemd is distributed in the hope that it will be useful, but | |
| WITHOUT ANY WARRANTY; without even the implied warranty of | | WITHOUT ANY WARRANTY; without even the implied warranty of | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| Lesser General Public License for more details. | | Lesser General Public License for more details. | |
| | | | |
| You should have received a copy of the GNU Lesser General Public License | | You should have received a copy of the GNU Lesser General Public License | |
| along with systemd; If not, see <http://www.gnu.org/licenses/>. | | along with systemd; If not, see <http://www.gnu.org/licenses/>. | |
| ***/ | | ***/ | |
| | | | |
|
| | | #include <stdbool.h> | |
| | | | |
| #include "sd-id128.h" | | #include "sd-id128.h" | |
| | | | |
| int catalog_update(void); | | int catalog_update(void); | |
| int catalog_get(sd_id128_t id, char **data); | | int catalog_get(sd_id128_t id, char **data); | |
|
| int catalog_list(FILE *f); | | int catalog_list(FILE *f, bool oneline); | |
| | | int catalog_list_items(FILE *f, bool oneline, char **items); | |
| | | | |
End of changes. 2 change blocks. |
| 0 lines changed or deleted | | 2 lines changed or added | |
|
| config.h | | config.h | |
| | | | |
| skipping to change at line 73 | | skipping to change at line 73 | |
| | | | |
| /* Define to 1 if you have the `gethostbyaddr' function. */ | | /* Define to 1 if you have the `gethostbyaddr' function. */ | |
| #define HAVE_GETHOSTBYADDR 1 | | #define HAVE_GETHOSTBYADDR 1 | |
| | | | |
| /* Define to 1 if you have the `gethostbyname' function. */ | | /* Define to 1 if you have the `gethostbyname' function. */ | |
| #define HAVE_GETHOSTBYNAME 1 | | #define HAVE_GETHOSTBYNAME 1 | |
| | | | |
| /* Define to 1 if you have the `gettimeofday' function. */ | | /* Define to 1 if you have the `gettimeofday' function. */ | |
| #define HAVE_GETTIMEOFDAY 1 | | #define HAVE_GETTIMEOFDAY 1 | |
| | | | |
|
| | | /* Define if glib is available */ | |
| | | #define HAVE_GLIB 1 | |
| | | | |
| /* Define if IMA is available */ | | /* Define if IMA is available */ | |
| #define HAVE_IMA 1 | | #define HAVE_IMA 1 | |
| | | | |
| /* Define to 1 if you have the `inet_ntoa' function. */ | | /* Define to 1 if you have the `inet_ntoa' function. */ | |
| #define HAVE_INET_NTOA 1 | | #define HAVE_INET_NTOA 1 | |
| | | | |
| /* Define to 1 if you have the <inttypes.h> header file. */ | | /* Define to 1 if you have the <inttypes.h> header file. */ | |
| #define HAVE_INTTYPES_H 1 | | #define HAVE_INTTYPES_H 1 | |
| | | | |
| /* Define if kmod is available */ | | /* Define if kmod is available */ | |
| | | | |
| skipping to change at line 241 | | skipping to change at line 244 | |
| /* Name of package */ | | /* Name of package */ | |
| #define PACKAGE "systemd" | | #define PACKAGE "systemd" | |
| | | | |
| /* Define to the address where bug reports for this package should be sent.
*/ | | /* Define to the address where bug reports for this package should be sent.
*/ | |
| #define PACKAGE_BUGREPORT "http://bugs.freedesktop.org/enter_bug.cgi?produc
t=systemd" | | #define PACKAGE_BUGREPORT "http://bugs.freedesktop.org/enter_bug.cgi?produc
t=systemd" | |
| | | | |
| /* Define to the full name of this package. */ | | /* Define to the full name of this package. */ | |
| #define PACKAGE_NAME "systemd" | | #define PACKAGE_NAME "systemd" | |
| | | | |
| /* Define to the full name and version of this package. */ | | /* Define to the full name and version of this package. */ | |
|
| #define PACKAGE_STRING "systemd 198" | | #define PACKAGE_STRING "systemd 199" | |
| | | | |
| /* Define to the one symbol short name of this package. */ | | /* Define to the one symbol short name of this package. */ | |
| #define PACKAGE_TARNAME "systemd" | | #define PACKAGE_TARNAME "systemd" | |
| | | | |
| /* Define to the home page for this package. */ | | /* Define to the home page for this package. */ | |
| #define PACKAGE_URL "http://www.freedesktop.org/wiki/Software/systemd" | | #define PACKAGE_URL "http://www.freedesktop.org/wiki/Software/systemd" | |
| | | | |
| /* Define to the version of this package. */ | | /* Define to the version of this package. */ | |
|
| #define PACKAGE_VERSION "198" | | #define PACKAGE_VERSION "199" | |
| | | | |
| /* Path of /etc/rc.local script */ | | /* Path of /etc/rc.local script */ | |
| #define RC_LOCAL_SCRIPT_PATH_START "/etc/rc.local" | | #define RC_LOCAL_SCRIPT_PATH_START "/etc/rc.local" | |
| | | | |
| /* Path of /usr/sbin/halt.local script */ | | /* Path of /usr/sbin/halt.local script */ | |
| #define RC_LOCAL_SCRIPT_PATH_STOP "/usr/sbin/halt.local" | | #define RC_LOCAL_SCRIPT_PATH_STOP "/usr/sbin/halt.local" | |
| | | | |
| /* Define to the type of arg 1 for `select'. */ | | /* Define to the type of arg 1 for `select'. */ | |
| #define SELECT_TYPE_ARG1 int | | #define SELECT_TYPE_ARG1 int | |
| | | | |
| /* Define to the type of args 2, 3 and 4 for `select'. */ | | /* Define to the type of args 2, 3 and 4 for `select'. */ | |
| #define SELECT_TYPE_ARG234 (fd_set *) | | #define SELECT_TYPE_ARG234 (fd_set *) | |
| | | | |
| /* Define to the type of arg 5 for `select'. */ | | /* Define to the type of arg 5 for `select'. */ | |
| #define SELECT_TYPE_ARG5 (struct timeval *) | | #define SELECT_TYPE_ARG5 (struct timeval *) | |
| | | | |
| /* Define to 1 if you have the ANSI C header files. */ | | /* Define to 1 if you have the ANSI C header files. */ | |
| #define STDC_HEADERS 1 | | #define STDC_HEADERS 1 | |
| | | | |
|
| | | /* Path to telinit */ | |
| | | #define TELINIT "/lib/upstart/telinit" | |
| | | | |
| /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ | | /* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ | |
| #define TIME_WITH_SYS_TIME 1 | | #define TIME_WITH_SYS_TIME 1 | |
| | | | |
| /* GID of the 'tty' group */ | | /* GID of the 'tty' group */ | |
| /* #undef TTY_GID */ | | /* #undef TTY_GID */ | |
| | | | |
| /* Enable extensions on AIX 3, Interix. */ | | /* Enable extensions on AIX 3, Interix. */ | |
| #ifndef _ALL_SOURCE | | #ifndef _ALL_SOURCE | |
| # define _ALL_SOURCE 1 | | # define _ALL_SOURCE 1 | |
| #endif | | #endif | |
| | | | |
| skipping to change at line 298 | | skipping to change at line 304 | |
| /* Enable extensions on HP NonStop. */ | | /* Enable extensions on HP NonStop. */ | |
| #ifndef _TANDEM_SOURCE | | #ifndef _TANDEM_SOURCE | |
| # define _TANDEM_SOURCE 1 | | # define _TANDEM_SOURCE 1 | |
| #endif | | #endif | |
| /* Enable general extensions on Solaris. */ | | /* Enable general extensions on Solaris. */ | |
| #ifndef __EXTENSIONS__ | | #ifndef __EXTENSIONS__ | |
| # define __EXTENSIONS__ 1 | | # define __EXTENSIONS__ 1 | |
| #endif | | #endif | |
| | | | |
| /* Version number of package */ | | /* Version number of package */ | |
|
| #define VERSION "198" | | #define VERSION "199" | |
| | | | |
| /* Enable large inode numbers on Mac OS X 10.5. */ | | /* Enable large inode numbers on Mac OS X 10.5. */ | |
| #ifndef _DARWIN_USE_64_BIT_INODE | | #ifndef _DARWIN_USE_64_BIT_INODE | |
| # define _DARWIN_USE_64_BIT_INODE 1 | | # define _DARWIN_USE_64_BIT_INODE 1 | |
| #endif | | #endif | |
| | | | |
| /* Number of bits in a file offset, on hosts where this is settable. */ | | /* Number of bits in a file offset, on hosts where this is settable. */ | |
| #define _FILE_OFFSET_BITS 64 | | #define _FILE_OFFSET_BITS 64 | |
| | | | |
| /* Define for large files, on AIX-style hosts. */ | | /* Define for large files, on AIX-style hosts. */ | |
| | | | |
End of changes. 5 change blocks. |
| 3 lines changed or deleted | | 9 lines changed or added | |
|
| efivars.h | | efivars.h | |
| | | | |
| skipping to change at line 35 | | skipping to change at line 35 | |
| #include <inttypes.h> | | #include <inttypes.h> | |
| #include <stdbool.h> | | #include <stdbool.h> | |
| | | | |
| #include "sd-id128.h" | | #include "sd-id128.h" | |
| #include "time-util.h" | | #include "time-util.h" | |
| | | | |
| #define EFI_VENDOR_LOADER SD_ID128_MAKE(4a,67,b0,82,0a,4c,41,cf,b6,c7,44,0b
,29,bb,8c,4f) | | #define EFI_VENDOR_LOADER SD_ID128_MAKE(4a,67,b0,82,0a,4c,41,cf,b6,c7,44,0b
,29,bb,8c,4f) | |
| #define EFI_VENDOR_GLOBAL SD_ID128_MAKE(8b,e4,df,61,93,ca,11,d2,aa,0d,00,e0
,98,03,2b,8c) | | #define EFI_VENDOR_GLOBAL SD_ID128_MAKE(8b,e4,df,61,93,ca,11,d2,aa,0d,00,e0
,98,03,2b,8c) | |
| | | | |
| bool is_efi_boot(void); | | bool is_efi_boot(void); | |
|
| | | int is_efi_secure_boot(void); | |
| | | int is_efi_secure_boot_setup_mode(void); | |
| | | | |
| int efi_get_variable(sd_id128_t vendor, const char *name, uint32_t *attribu
te, void **value, size_t *size); | | int efi_get_variable(sd_id128_t vendor, const char *name, uint32_t *attribu
te, void **value, size_t *size); | |
| int efi_get_variable_string(sd_id128_t vendor, const char *name, char **p); | | int efi_get_variable_string(sd_id128_t vendor, const char *name, char **p); | |
| | | | |
| int efi_get_boot_option(uint16_t nr, char **title, sd_id128_t *partuuid, ch
ar **path); | | int efi_get_boot_option(uint16_t nr, char **title, sd_id128_t *partuuid, ch
ar **path); | |
| int efi_get_boot_order(uint16_t **order); | | int efi_get_boot_order(uint16_t **order); | |
| int efi_get_boot_options(uint16_t **options); | | int efi_get_boot_options(uint16_t **options); | |
| | | | |
| int efi_get_boot_timestamps(const dual_timestamp *n, dual_timestamp *firmwa
re, dual_timestamp *loader); | | int efi_get_boot_timestamps(const dual_timestamp *n, dual_timestamp *firmwa
re, dual_timestamp *loader); | |
| | | | |
| | | | |
End of changes. 1 change blocks. |
| 0 lines changed or deleted | | 2 lines changed or added | |
|
| execute.h | | execute.h | |
| | | | |
| skipping to change at line 39 | | skipping to change at line 39 | |
| #include <sys/time.h> | | #include <sys/time.h> | |
| #include <sys/resource.h> | | #include <sys/resource.h> | |
| #include <sys/capability.h> | | #include <sys/capability.h> | |
| #include <stdbool.h> | | #include <stdbool.h> | |
| #include <stdio.h> | | #include <stdio.h> | |
| #include <sched.h> | | #include <sched.h> | |
| | | | |
| struct CGroupBonding; | | struct CGroupBonding; | |
| struct CGroupAttribute; | | struct CGroupAttribute; | |
| | | | |
|
| | | typedef struct Unit Unit; | |
| | | | |
| #include "list.h" | | #include "list.h" | |
| #include "util.h" | | #include "util.h" | |
| | | | |
| typedef enum ExecInput { | | typedef enum ExecInput { | |
| EXEC_INPUT_NULL, | | EXEC_INPUT_NULL, | |
| EXEC_INPUT_TTY, | | EXEC_INPUT_TTY, | |
| EXEC_INPUT_TTY_FORCE, | | EXEC_INPUT_TTY_FORCE, | |
| EXEC_INPUT_TTY_FAIL, | | EXEC_INPUT_TTY_FAIL, | |
| EXEC_INPUT_SOCKET, | | EXEC_INPUT_SOCKET, | |
| _EXEC_INPUT_MAX, | | _EXEC_INPUT_MAX, | |
| | | | |
| skipping to change at line 144 | | skipping to change at line 146 | |
| int secure_bits; | | int secure_bits; | |
| | | | |
| int syslog_priority; | | int syslog_priority; | |
| char *syslog_identifier; | | char *syslog_identifier; | |
| bool syslog_level_prefix; | | bool syslog_level_prefix; | |
| | | | |
| bool cpu_sched_reset_on_fork; | | bool cpu_sched_reset_on_fork; | |
| bool non_blocking; | | bool non_blocking; | |
| bool private_tmp; | | bool private_tmp; | |
| bool private_network; | | bool private_network; | |
|
| | | char *tmp_dir; | |
| | | char *var_tmp_dir; | |
| | | | |
| bool no_new_privileges; | | bool no_new_privileges; | |
| | | | |
| bool control_group_modify; | | bool control_group_modify; | |
| int control_group_persistent; | | int control_group_persistent; | |
| | | | |
| /* This is not exposed to the user but available | | /* This is not exposed to the user but available | |
| * internally. We need it to make sure that whenever we spawn | | * internally. We need it to make sure that whenever we spawn | |
| * /bin/mount it is run in the same process group as us so | | * /bin/mount it is run in the same process group as us so | |
| * that the autofs logic detects that it belongs to us and we | | * that the autofs logic detects that it belongs to us and we | |
| | | | |
| skipping to change at line 167 | | skipping to change at line 171 | |
| uint32_t *syscall_filter; | | uint32_t *syscall_filter; | |
| | | | |
| bool oom_score_adjust_set:1; | | bool oom_score_adjust_set:1; | |
| bool nice_set:1; | | bool nice_set:1; | |
| bool ioprio_set:1; | | bool ioprio_set:1; | |
| bool cpu_sched_set:1; | | bool cpu_sched_set:1; | |
| }; | | }; | |
| | | | |
| int exec_spawn(ExecCommand *command, | | int exec_spawn(ExecCommand *command, | |
| char **argv, | | char **argv, | |
|
| const ExecContext *context, | | ExecContext *context, | |
| int fds[], unsigned n_fds, | | int fds[], unsigned n_fds, | |
| char **environment, | | char **environment, | |
| bool apply_permissions, | | bool apply_permissions, | |
| bool apply_chroot, | | bool apply_chroot, | |
| bool apply_tty_stdin, | | bool apply_tty_stdin, | |
| bool confirm_spawn, | | bool confirm_spawn, | |
| struct CGroupBonding *cgroup_bondings, | | struct CGroupBonding *cgroup_bondings, | |
| struct CGroupAttribute *cgroup_attributes, | | struct CGroupAttribute *cgroup_attributes, | |
| const char *cgroup_suffix, | | const char *cgroup_suffix, | |
| const char *unit_id, | | const char *unit_id, | |
| | | | |
| skipping to change at line 195 | | skipping to change at line 199 | |
| void exec_command_free_array(ExecCommand **c, unsigned n); | | void exec_command_free_array(ExecCommand **c, unsigned n); | |
| | | | |
| char *exec_command_line(char **argv); | | char *exec_command_line(char **argv); | |
| | | | |
| void exec_command_dump(ExecCommand *c, FILE *f, const char *prefix); | | void exec_command_dump(ExecCommand *c, FILE *f, const char *prefix); | |
| void exec_command_dump_list(ExecCommand *c, FILE *f, const char *prefix); | | void exec_command_dump_list(ExecCommand *c, FILE *f, const char *prefix); | |
| void exec_command_append_list(ExecCommand **l, ExecCommand *e); | | void exec_command_append_list(ExecCommand **l, ExecCommand *e); | |
| int exec_command_set(ExecCommand *c, const char *path, ...); | | int exec_command_set(ExecCommand *c, const char *path, ...); | |
| | | | |
| void exec_context_init(ExecContext *c); | | void exec_context_init(ExecContext *c); | |
|
| void exec_context_done(ExecContext *c); | | void exec_context_done(ExecContext *c, bool reloading_or_reexecuting); | |
| | | void exec_context_tmp_dirs_done(ExecContext *c); | |
| void exec_context_dump(ExecContext *c, FILE* f, const char *prefix); | | void exec_context_dump(ExecContext *c, FILE* f, const char *prefix); | |
| void exec_context_tty_reset(const ExecContext *context); | | void exec_context_tty_reset(const ExecContext *context); | |
| | | | |
| int exec_context_load_environment(const ExecContext *c, char ***l); | | int exec_context_load_environment(const ExecContext *c, char ***l); | |
| | | | |
| bool exec_context_may_touch_console(ExecContext *c); | | bool exec_context_may_touch_console(ExecContext *c); | |
|
| | | void exec_context_serialize(const ExecContext *c, Unit *u, FILE *f); | |
| | | | |
| void exec_status_start(ExecStatus *s, pid_t pid); | | void exec_status_start(ExecStatus *s, pid_t pid); | |
| void exec_status_exit(ExecStatus *s, ExecContext *context, pid_t pid, int c
ode, int status); | | void exec_status_exit(ExecStatus *s, ExecContext *context, pid_t pid, int c
ode, int status); | |
| void exec_status_dump(ExecStatus *s, FILE *f, const char *prefix); | | void exec_status_dump(ExecStatus *s, FILE *f, const char *prefix); | |
| | | | |
| const char* exec_output_to_string(ExecOutput i); | | const char* exec_output_to_string(ExecOutput i); | |
| ExecOutput exec_output_from_string(const char *s); | | ExecOutput exec_output_from_string(const char *s); | |
| | | | |
| const char* exec_input_to_string(ExecInput i); | | const char* exec_input_to_string(ExecInput i); | |
| ExecInput exec_input_from_string(const char *s); | | ExecInput exec_input_from_string(const char *s); | |
| | | | |
End of changes. 5 change blocks. |
| 2 lines changed or deleted | | 8 lines changed or added | |
|
| journald-server.h | | journald-server.h | |
| | | | |
| skipping to change at line 74 | | skipping to change at line 74 | |
| JournalFile *runtime_journal; | | JournalFile *runtime_journal; | |
| JournalFile *system_journal; | | JournalFile *system_journal; | |
| Hashmap *user_journals; | | Hashmap *user_journals; | |
| | | | |
| uint64_t seqnum; | | uint64_t seqnum; | |
| | | | |
| char *buffer; | | char *buffer; | |
| size_t buffer_size; | | size_t buffer_size; | |
| | | | |
| JournalRateLimit *rate_limit; | | JournalRateLimit *rate_limit; | |
|
| | | usec_t sync_interval_usec; | |
| usec_t rate_limit_interval; | | usec_t rate_limit_interval; | |
| unsigned rate_limit_burst; | | unsigned rate_limit_burst; | |
| | | | |
| JournalMetrics runtime_metrics; | | JournalMetrics runtime_metrics; | |
| JournalMetrics system_metrics; | | JournalMetrics system_metrics; | |
| | | | |
| bool compress; | | bool compress; | |
| bool seal; | | bool seal; | |
| | | | |
| bool forward_to_kmsg; | | bool forward_to_kmsg; | |
| | | | |
| skipping to change at line 122 | | skipping to change at line 123 | |
| Storage storage; | | Storage storage; | |
| SplitMode split_mode; | | SplitMode split_mode; | |
| | | | |
| MMapCache *mmap; | | MMapCache *mmap; | |
| | | | |
| bool dev_kmsg_readable; | | bool dev_kmsg_readable; | |
| | | | |
| uint64_t *kernel_seqnum; | | uint64_t *kernel_seqnum; | |
| | | | |
| struct udev *udev; | | struct udev *udev; | |
|
| | | | |
| | | int sync_timer_fd; | |
| | | bool sync_scheduled; | |
| } Server; | | } Server; | |
| | | | |
| #define N_IOVEC_META_FIELDS 17 | | #define N_IOVEC_META_FIELDS 17 | |
| #define N_IOVEC_KERNEL_FIELDS 64 | | #define N_IOVEC_KERNEL_FIELDS 64 | |
| #define N_IOVEC_UDEV_FIELDS 32 | | #define N_IOVEC_UDEV_FIELDS 32 | |
| | | | |
| void server_dispatch_message(Server *s, struct iovec *iovec, unsigned n, un
signed m, struct ucred *ucred, struct timeval *tv, const char *label, size_
t label_len, const char *unit_id, int priority); | | void server_dispatch_message(Server *s, struct iovec *iovec, unsigned n, un
signed m, struct ucred *ucred, struct timeval *tv, const char *label, size_
t label_len, const char *unit_id, int priority); | |
| void server_driver_message(Server *s, sd_id128_t message_id, const char *fo
rmat, ...); | | void server_driver_message(Server *s, sd_id128_t message_id, const char *fo
rmat, ...); | |
| | | | |
| /* gperf lookup function */ | | /* gperf lookup function */ | |
| | | | |
| skipping to change at line 148 | | skipping to change at line 152 | |
| | | | |
| int config_parse_split_mode(const char *filename, unsigned line, const char
*section, const char *lvalue, int ltype, const char *rvalue, void *data, v
oid *userdata); | | int config_parse_split_mode(const char *filename, unsigned line, const char
*section, const char *lvalue, int ltype, const char *rvalue, void *data, v
oid *userdata); | |
| | | | |
| const char *split_mode_to_string(SplitMode s); | | const char *split_mode_to_string(SplitMode s); | |
| SplitMode split_mode_from_string(const char *s); | | SplitMode split_mode_from_string(const char *s); | |
| | | | |
| void server_fix_perms(Server *s, JournalFile *f, uid_t uid); | | void server_fix_perms(Server *s, JournalFile *f, uid_t uid); | |
| bool shall_try_append_again(JournalFile *f, int r); | | bool shall_try_append_again(JournalFile *f, int r); | |
| int server_init(Server *s); | | int server_init(Server *s); | |
| void server_done(Server *s); | | void server_done(Server *s); | |
|
| | | void server_sync(Server *s); | |
| void server_vacuum(Server *s); | | void server_vacuum(Server *s); | |
| void server_rotate(Server *s); | | void server_rotate(Server *s); | |
|
| | | int server_schedule_sync(Server *s); | |
| int server_flush_to_var(Server *s); | | int server_flush_to_var(Server *s); | |
| int process_event(Server *s, struct epoll_event *ev); | | int process_event(Server *s, struct epoll_event *ev); | |
| void server_maybe_append_tags(Server *s); | | void server_maybe_append_tags(Server *s); | |
| | | | |
End of changes. 4 change blocks. |
| 0 lines changed or deleted | | 6 lines changed or added | |
|
| keys-to-name.h | | keys-to-name.h | |
| | | | |
| skipping to change at line 111 | | skipping to change at line 111 | |
| [KEY_KPPLUSMINUS] = "KEY_KPPLUSMINUS", | | [KEY_KPPLUSMINUS] = "KEY_KPPLUSMINUS", | |
| [KEY_SHOP] = "KEY_SHOP", | | [KEY_SHOP] = "KEY_SHOP", | |
| [KEY_LEFTSHIFT] = "KEY_LEFTSHIFT", | | [KEY_LEFTSHIFT] = "KEY_LEFTSHIFT", | |
| [KEY_BASSBOOST] = "KEY_BASSBOOST", | | [KEY_BASSBOOST] = "KEY_BASSBOOST", | |
| [KEY_BRIGHTNESS_CYCLE] = "KEY_BRIGHTNESS_CYCLE", | | [KEY_BRIGHTNESS_CYCLE] = "KEY_BRIGHTNESS_CYCLE", | |
| [KEY_TAB] = "KEY_TAB", | | [KEY_TAB] = "KEY_TAB", | |
| [KEY_UNKNOWN] = "KEY_UNKNOWN", | | [KEY_UNKNOWN] = "KEY_UNKNOWN", | |
| [KEY_KPLEFTPAREN] = "KEY_KPLEFTPAREN", | | [KEY_KPLEFTPAREN] = "KEY_KPLEFTPAREN", | |
| [KEY_EDITOR] = "KEY_EDITOR", | | [KEY_EDITOR] = "KEY_EDITOR", | |
| [KEY_EMAIL] = "KEY_EMAIL", | | [KEY_EMAIL] = "KEY_EMAIL", | |
|
| [KEY_MEMO] = "KEY_MEMO", | | | |
| [KEY_102ND] = "KEY_102ND", | | [KEY_102ND] = "KEY_102ND", | |
| [KEY_MENU] = "KEY_MENU", | | [KEY_MENU] = "KEY_MENU", | |
| [KEY_SPACE] = "KEY_SPACE", | | [KEY_SPACE] = "KEY_SPACE", | |
| [KEY_INFO] = "KEY_INFO", | | [KEY_INFO] = "KEY_INFO", | |
| [KEY_WAKEUP] = "KEY_WAKEUP", | | [KEY_WAKEUP] = "KEY_WAKEUP", | |
| [KEY_BLUE] = "KEY_BLUE", | | [KEY_BLUE] = "KEY_BLUE", | |
| [KEY_HOMEPAGE] = "KEY_HOMEPAGE", | | [KEY_HOMEPAGE] = "KEY_HOMEPAGE", | |
| [KEY_KPCOMMA] = "KEY_KPCOMMA", | | [KEY_KPCOMMA] = "KEY_KPCOMMA", | |
| [KEY_ZOOMRESET] = "KEY_ZOOMRESET", | | [KEY_ZOOMRESET] = "KEY_ZOOMRESET", | |
| [KEY_FAVORITES] = "KEY_FAVORITES", | | [KEY_FAVORITES] = "KEY_FAVORITES", | |
| | | | |
| skipping to change at line 384 | | skipping to change at line 383 | |
| [KEY_TIME] = "KEY_TIME", | | [KEY_TIME] = "KEY_TIME", | |
| [KEY_FIND] = "KEY_FIND", | | [KEY_FIND] = "KEY_FIND", | |
| [KEY_STOPCD] = "KEY_STOPCD", | | [KEY_STOPCD] = "KEY_STOPCD", | |
| [KEY_SPELLCHECK] = "KEY_SPELLCHECK", | | [KEY_SPELLCHECK] = "KEY_SPELLCHECK", | |
| [KEY_DOCUMENTS] = "KEY_DOCUMENTS", | | [KEY_DOCUMENTS] = "KEY_DOCUMENTS", | |
| [KEY_LEFT] = "KEY_LEFT", | | [KEY_LEFT] = "KEY_LEFT", | |
| [KEY_EJECTCLOSECD] = "KEY_EJECTCLOSECD", | | [KEY_EJECTCLOSECD] = "KEY_EJECTCLOSECD", | |
| [KEY_KPMINUS] = "KEY_KPMINUS", | | [KEY_KPMINUS] = "KEY_KPMINUS", | |
| [KEY_GOTO] = "KEY_GOTO", | | [KEY_GOTO] = "KEY_GOTO", | |
| [KEY_MEDIA_REPEAT] = "KEY_MEDIA_REPEAT", | | [KEY_MEDIA_REPEAT] = "KEY_MEDIA_REPEAT", | |
|
| | | [KEY_MEMO] = "KEY_MEMO", | |
| [KEY_SLASH] = "KEY_SLASH", | | [KEY_SLASH] = "KEY_SLASH", | |
| [KEY_KEYBOARD] = "KEY_KEYBOARD", | | [KEY_KEYBOARD] = "KEY_KEYBOARD", | |
| [KEY_CAMERA_UP] = "KEY_CAMERA_UP", | | [KEY_CAMERA_UP] = "KEY_CAMERA_UP", | |
| [KEY_DEL_LINE] = "KEY_DEL_LINE", | | [KEY_DEL_LINE] = "KEY_DEL_LINE", | |
| [KEY_CLOSE] = "KEY_CLOSE", | | [KEY_CLOSE] = "KEY_CLOSE", | |
| [KEY_DOT] = "KEY_DOT", | | [KEY_DOT] = "KEY_DOT", | |
| [KEY_NUMERIC_6] = "KEY_NUMERIC_6", | | [KEY_NUMERIC_6] = "KEY_NUMERIC_6", | |
| [KEY_HANGEUL] = "KEY_HANGEUL", | | [KEY_HANGEUL] = "KEY_HANGEUL", | |
| [KEY_BOOKMARKS] = "KEY_BOOKMARKS", | | [KEY_BOOKMARKS] = "KEY_BOOKMARKS", | |
| }; | | }; | |
| | | | |
End of changes. 2 change blocks. |
| 1 lines changed or deleted | | 1 lines changed or added | |
|
| libudev.h | | libudev.h | |
| | | | |
| skipping to change at line 110 | | skipping to change at line 110 | |
| struct udev_list_entry *udev_device_get_properties_list_entry(struct udev_d
evice *udev_device); | | struct udev_list_entry *udev_device_get_properties_list_entry(struct udev_d
evice *udev_device); | |
| struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_device
*udev_device); | | struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_device
*udev_device); | |
| struct udev_list_entry *udev_device_get_sysattr_list_entry(struct udev_devi
ce *udev_device); | | struct udev_list_entry *udev_device_get_sysattr_list_entry(struct udev_devi
ce *udev_device); | |
| const char *udev_device_get_property_value(struct udev_device *udev_device,
const char *key); | | const char *udev_device_get_property_value(struct udev_device *udev_device,
const char *key); | |
| const char *udev_device_get_driver(struct udev_device *udev_device); | | const char *udev_device_get_driver(struct udev_device *udev_device); | |
| dev_t udev_device_get_devnum(struct udev_device *udev_device); | | dev_t udev_device_get_devnum(struct udev_device *udev_device); | |
| const char *udev_device_get_action(struct udev_device *udev_device); | | const char *udev_device_get_action(struct udev_device *udev_device); | |
| unsigned long long int udev_device_get_seqnum(struct udev_device *udev_devi
ce); | | unsigned long long int udev_device_get_seqnum(struct udev_device *udev_devi
ce); | |
| unsigned long long int udev_device_get_usec_since_initialized(struct udev_d
evice *udev_device); | | unsigned long long int udev_device_get_usec_since_initialized(struct udev_d
evice *udev_device); | |
| const char *udev_device_get_sysattr_value(struct udev_device *udev_device,
const char *sysattr); | | const char *udev_device_get_sysattr_value(struct udev_device *udev_device,
const char *sysattr); | |
|
| | | int udev_device_set_sysattr_value(struct udev_device *udev_device, const ch
ar *sysattr, char *value); | |
| int udev_device_has_tag(struct udev_device *udev_device, const char *tag); | | int udev_device_has_tag(struct udev_device *udev_device, const char *tag); | |
| | | | |
| /* | | /* | |
| * udev_monitor | | * udev_monitor | |
| * | | * | |
| * access to kernel uevents and udev events | | * access to kernel uevents and udev events | |
| */ | | */ | |
| struct udev_monitor; | | struct udev_monitor; | |
| struct udev_monitor *udev_monitor_ref(struct udev_monitor *udev_monitor); | | struct udev_monitor *udev_monitor_ref(struct udev_monitor *udev_monitor); | |
| struct udev_monitor *udev_monitor_unref(struct udev_monitor *udev_monitor); | | struct udev_monitor *udev_monitor_unref(struct udev_monitor *udev_monitor); | |
| | | | |
End of changes. 1 change blocks. |
| 0 lines changed or deleted | | 1 lines changed or added | |
|
| macro.h | | macro.h | |
| | | | |
| skipping to change at line 95 | | skipping to change at line 95 | |
| __extension__ ({ \ | | __extension__ ({ \ | |
| typeof(a) _a = (a); \ | | typeof(a) _a = (a); \ | |
| typeof(b) _b = (b); \ | | typeof(b) _b = (b); \ | |
| _a < _b ? _a : _b; \ | | _a < _b ? _a : _b; \ | |
| }) | | }) | |
| #endif | | #endif | |
| | | | |
| #define MIN3(a,b,c) \ | | #define MIN3(a,b,c) \ | |
| MIN(MIN(a,b),c) | | MIN(MIN(a,b),c) | |
| | | | |
|
| | | #ifndef CLAMP | |
| #define CLAMP(x, low, high) \ | | #define CLAMP(x, low, high) \ | |
| __extension__ ({ \ | | __extension__ ({ \ | |
| typeof(x) _x = (x); \ | | typeof(x) _x = (x); \ | |
| typeof(low) _low = (low); \ | | typeof(low) _low = (low); \ | |
| typeof(high) _high = (high); \ | | typeof(high) _high = (high); \ | |
| ((_x > _high) ? _high : ((_x < _low) ? _low : _x));
\ | | ((_x > _high) ? _high : ((_x < _low) ? _low : _x));
\ | |
| }) | | }) | |
|
| | | #endif | |
| | | | |
| #define assert_se(expr) \ | | #define assert_se(expr) \ | |
| do { \ | | do { \ | |
| if (_unlikely_(!(expr))) \ | | if (_unlikely_(!(expr))) \ | |
| log_assert_failed(#expr, __FILE__, __LINE__, __PRET
TY_FUNCTION__); \ | | log_assert_failed(#expr, __FILE__, __LINE__, __PRET
TY_FUNCTION__); \ | |
| } while (false) \ | | } while (false) \ | |
| | | | |
| /* We override the glibc assert() here. */ | | /* We override the glibc assert() here. */ | |
| #undef assert | | #undef assert | |
| #ifdef NDEBUG | | #ifdef NDEBUG | |
| | | | |
| skipping to change at line 159 | | skipping to change at line 161 | |
| | | | |
| #define TO_INT32(p) ((int32_t) ((intptr_t) (p))) | | #define TO_INT32(p) ((int32_t) ((intptr_t) (p))) | |
| #define INT32_TO_PTR(u) ((void*) ((intptr_t) (u))) | | #define INT32_TO_PTR(u) ((void*) ((intptr_t) (u))) | |
| | | | |
| #define PTR_TO_LONG(p) ((long) ((intptr_t) (p))) | | #define PTR_TO_LONG(p) ((long) ((intptr_t) (p))) | |
| #define LONG_TO_PTR(u) ((void*) ((intptr_t) (u))) | | #define LONG_TO_PTR(u) ((void*) ((intptr_t) (u))) | |
| | | | |
| #define memzero(x,l) (memset((x), 0, (l))) | | #define memzero(x,l) (memset((x), 0, (l))) | |
| #define zero(x) (memzero(&(x), sizeof(x))) | | #define zero(x) (memzero(&(x), sizeof(x))) | |
| | | | |
|
| | | #define CHAR_TO_STR(x) ((char[2]) { x, 0 }) | |
| | | | |
| #define char_array_0(x) x[sizeof(x)-1] = 0; | | #define char_array_0(x) x[sizeof(x)-1] = 0; | |
| | | | |
| #define IOVEC_SET_STRING(i, s) \ | | #define IOVEC_SET_STRING(i, s) \ | |
| do { \ | | do { \ | |
| struct iovec *_i = &(i); \ | | struct iovec *_i = &(i); \ | |
| char *_s = (char *)(s); \ | | char *_s = (char *)(s); \ | |
| _i->iov_base = _s; \ | | _i->iov_base = _s; \ | |
| _i->iov_len = strlen(_s); \ | | _i->iov_len = strlen(_s); \ | |
| } while(false) | | } while(false) | |
| | | | |
| | | | |
| skipping to change at line 206 | | skipping to change at line 210 | |
| | | | |
| #define _cleanup_free_ __attribute__((cleanup(freep))) | | #define _cleanup_free_ __attribute__((cleanup(freep))) | |
| #define _cleanup_fclose_ __attribute__((cleanup(fclosep))) | | #define _cleanup_fclose_ __attribute__((cleanup(fclosep))) | |
| #define _cleanup_pclose_ __attribute__((cleanup(pclosep))) | | #define _cleanup_pclose_ __attribute__((cleanup(pclosep))) | |
| #define _cleanup_close_ __attribute__((cleanup(closep))) | | #define _cleanup_close_ __attribute__((cleanup(closep))) | |
| #define _cleanup_closedir_ __attribute__((cleanup(closedirp))) | | #define _cleanup_closedir_ __attribute__((cleanup(closedirp))) | |
| #define _cleanup_umask_ __attribute__((cleanup(umaskp))) | | #define _cleanup_umask_ __attribute__((cleanup(umaskp))) | |
| #define _cleanup_set_free_ __attribute__((cleanup(set_freep))) | | #define _cleanup_set_free_ __attribute__((cleanup(set_freep))) | |
| #define _cleanup_set_free_free_ __attribute__((cleanup(set_free_freep))) | | #define _cleanup_set_free_free_ __attribute__((cleanup(set_free_freep))) | |
| #define _cleanup_strv_free_ __attribute__((cleanup(strv_freep))) | | #define _cleanup_strv_free_ __attribute__((cleanup(strv_freep))) | |
|
| | | #define _cleanup_journal_close_ __attribute__((cleanup(journal_closep))) | |
| | | | |
| #define VA_FORMAT_ADVANCE(format, ap) \ | | #define VA_FORMAT_ADVANCE(format, ap) \ | |
| do { \ | | do { \ | |
| int _argtypes[128]; \ | | int _argtypes[128]; \ | |
| size_t _i, _k; \ | | size_t _i, _k; \ | |
| _k = parse_printf_format((format), ELEMENTSOF(_argtypes), _argtypes
); \ | | _k = parse_printf_format((format), ELEMENTSOF(_argtypes), _argtypes
); \ | |
| assert(_k < ELEMENTSOF(_argtypes)); \ | | assert(_k < ELEMENTSOF(_argtypes)); \ | |
| for (_i = 0; _i < _k; _i++) { \ | | for (_i = 0; _i < _k; _i++) { \ | |
| if (_argtypes[_i] & PA_FLAG_PTR) { \ | | if (_argtypes[_i] & PA_FLAG_PTR) { \ | |
| (void) va_arg(ap, void*); \ | | (void) va_arg(ap, void*); \ | |
| | | | |
End of changes. 4 change blocks. |
| 0 lines changed or deleted | | 5 lines changed or added | |
|
| manager.h | | manager.h | |
| | | | |
| skipping to change at line 88 | | skipping to change at line 88 | |
| bool socket_accept:1; | | bool socket_accept:1; | |
| }; | | }; | |
| | | | |
| #include "unit.h" | | #include "unit.h" | |
| #include "job.h" | | #include "job.h" | |
| #include "hashmap.h" | | #include "hashmap.h" | |
| #include "list.h" | | #include "list.h" | |
| #include "set.h" | | #include "set.h" | |
| #include "dbus.h" | | #include "dbus.h" | |
| #include "path-lookup.h" | | #include "path-lookup.h" | |
|
| | | #include "execute.h" | |
| | | | |
| struct Manager { | | struct Manager { | |
| /* Note that the set of units we know of is allowed to be | | /* Note that the set of units we know of is allowed to be | |
| * inconsistent. However the subset of it that is loaded may | | * inconsistent. However the subset of it that is loaded may | |
| * not, and the list of jobs may neither. */ | | * not, and the list of jobs may neither. */ | |
| | | | |
| /* Active jobs and units */ | | /* Active jobs and units */ | |
| Hashmap *units; /* name string => Unit object n:1 */ | | Hashmap *units; /* name string => Unit object n:1 */ | |
| Hashmap *jobs; /* job id => Job object 1:1 */ | | Hashmap *jobs; /* job id => Job object 1:1 */ | |
| | | | |
| | | | |
| skipping to change at line 286 | | skipping to change at line 287 | |
| void manager_dispatch_bus_query_pid_done(Manager *m, const char *name, pid_
t pid); | | void manager_dispatch_bus_query_pid_done(Manager *m, const char *name, pid_
t pid); | |
| | | | |
| int manager_open_serialization(Manager *m, FILE **_f); | | int manager_open_serialization(Manager *m, FILE **_f); | |
| | | | |
| int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool serialize_jobs)
; | | int manager_serialize(Manager *m, FILE *f, FDSet *fds, bool serialize_jobs)
; | |
| int manager_deserialize(Manager *m, FILE *f, FDSet *fds); | | int manager_deserialize(Manager *m, FILE *f, FDSet *fds); | |
| int manager_distribute_fds(Manager *m, FDSet *fds); | | int manager_distribute_fds(Manager *m, FDSet *fds); | |
| | | | |
| int manager_reload(Manager *m); | | int manager_reload(Manager *m); | |
| | | | |
|
| | | bool manager_is_reloading_or_reexecuting(Manager *m); | |
| | | | |
| void manager_reset_failed(Manager *m); | | void manager_reset_failed(Manager *m); | |
| | | | |
| void manager_send_unit_audit(Manager *m, Unit *u, int type, bool success); | | void manager_send_unit_audit(Manager *m, Unit *u, int type, bool success); | |
| void manager_send_unit_plymouth(Manager *m, Unit *u); | | void manager_send_unit_plymouth(Manager *m, Unit *u); | |
| | | | |
| bool manager_unit_pending_inactive(Manager *m, const char *name); | | bool manager_unit_pending_inactive(Manager *m, const char *name); | |
| | | | |
| void manager_check_finished(Manager *m); | | void manager_check_finished(Manager *m); | |
| | | | |
| void manager_run_generators(Manager *m); | | void manager_run_generators(Manager *m); | |
| | | | |
End of changes. 2 change blocks. |
| 0 lines changed or deleted | | 3 lines changed or added | |
|
| pyutil.h | | pyutil.h | |
| /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ | | /*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/ | |
| | | | |
|
| | | #pragma once | |
| | | | |
| /*** | | /*** | |
| This file is part of systemd. | | This file is part of systemd. | |
| | | | |
| Copyright 2013 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | | Copyright 2013 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | |
| | | | |
| systemd is free software; you can redistribute it and/or modify it | | systemd is free software; you can redistribute it and/or modify it | |
| under the terms of the GNU Lesser General Public License as published by | | under the terms of the GNU Lesser General Public License as published by | |
| the Free Software Foundation; either version 2.1 of the License, or | | the Free Software Foundation; either version 2.1 of the License, or | |
| (at your option) any later version. | | (at your option) any later version. | |
| | | | |
| | | | |
| skipping to change at line 30 | | skipping to change at line 32 | |
| ***/ | | ***/ | |
| | | | |
| #ifndef Py_TYPE | | #ifndef Py_TYPE | |
| /* avoid duplication warnings from errors in Python 2.7 headers */ | | /* avoid duplication warnings from errors in Python 2.7 headers */ | |
| # include <Python.h> | | # include <Python.h> | |
| #endif | | #endif | |
| | | | |
| void cleanup_Py_DECREFp(PyObject **p); | | void cleanup_Py_DECREFp(PyObject **p); | |
| | | | |
| #define _cleanup_Py_DECREF_ __attribute__((cleanup(cleanup_Py_DECREFp))) | | #define _cleanup_Py_DECREF_ __attribute__((cleanup(cleanup_Py_DECREFp))) | |
|
| | | | |
| | | #if PY_MAJOR_VERSION >=3 | |
| | | # define unicode_FromStringAndSize PyUnicode_FromStringAndSize | |
| | | # define unicode_FromString PyUnicode_FromString | |
| | | # define long_FromLong PyLong_FromLong | |
| | | # define long_FromSize_t PyLong_FromSize_t | |
| | | # define long_Check PyLong_Check | |
| | | # define long_AsLong PyLong_AsLong | |
| | | #else | |
| | | /* Python 3 type naming convention is used */ | |
| | | # define unicode_FromStringAndSize PyString_FromStringAndSize | |
| | | # define unicode_FromString PyString_FromString | |
| | | # define long_FromLong PyInt_FromLong | |
| | | # define long_FromSize_t PyInt_FromSize_t | |
| | | # define long_Check PyInt_Check | |
| | | # define long_AsLong PyInt_AsLong | |
| | | #endif | |
| | | | |
End of changes. 2 change blocks. |
| 0 lines changed or deleted | | 2 lines changed or added | |
|
| sd-shutdown.h | | sd-shutdown.h | |
| | | | |
| skipping to change at line 40 | | skipping to change at line 40 | |
| SD_SHUTDOWN_NONE = 0, | | SD_SHUTDOWN_NONE = 0, | |
| SD_SHUTDOWN_REBOOT = 'r', | | SD_SHUTDOWN_REBOOT = 'r', | |
| SD_SHUTDOWN_POWEROFF = 'P', | | SD_SHUTDOWN_POWEROFF = 'P', | |
| SD_SHUTDOWN_HALT = 'H', | | SD_SHUTDOWN_HALT = 'H', | |
| SD_SHUTDOWN_KEXEC = 'K' | | SD_SHUTDOWN_KEXEC = 'K' | |
| } sd_shutdown_mode_t; | | } sd_shutdown_mode_t; | |
| | | | |
| /* Calculate the size of the message as "offsetof(struct | | /* Calculate the size of the message as "offsetof(struct | |
| * sd_shutdown_command, wall_message) + | | * sd_shutdown_command, wall_message) + | |
| * strlen(command.wall_message)" */ | | * strlen(command.wall_message)" */ | |
|
| __attribute__((packed)) struct sd_shutdown_command { | | struct sd_shutdown_command { | |
| /* Microseconds after the epoch 1970 UTC */ | | /* Microseconds after the epoch 1970 UTC */ | |
| uint64_t usec; | | uint64_t usec; | |
| | | | |
| /* H, P, r, i.e. the switches usually passed to | | /* H, P, r, i.e. the switches usually passed to | |
| * /usr/bin/shutdown to select whether to halt, power-off or | | * /usr/bin/shutdown to select whether to halt, power-off or | |
| * reboot the machine */ | | * reboot the machine */ | |
| sd_shutdown_mode_t mode:8; | | sd_shutdown_mode_t mode:8; | |
| | | | |
| /* If non-zero, don't actually shut down, just pretend */ | | /* If non-zero, don't actually shut down, just pretend */ | |
| unsigned dry_run:1; | | unsigned dry_run:1; | |
| | | | |
| /* If non-zero, send our wall message */ | | /* If non-zero, send our wall message */ | |
| unsigned warn_wall:1; | | unsigned warn_wall:1; | |
| | | | |
| /* The wall message to send around. Leave empty for the | | /* The wall message to send around. Leave empty for the | |
| * default wall message */ | | * default wall message */ | |
| char wall_message[]; | | char wall_message[]; | |
|
| }; | | } __attribute__((packed)); | |
| | | | |
| /* The scheme is very simple: | | /* The scheme is very simple: | |
| * | | * | |
| * To schedule a shutdown, simply fill in and send a single | | * To schedule a shutdown, simply fill in and send a single | |
| * AF_UNIX/SOCK_DGRAM datagram with the structure above suffixed with | | * AF_UNIX/SOCK_DGRAM datagram with the structure above suffixed with | |
| * the wall message to the socket /run/systemd/shutdownd (leave an | | * the wall message to the socket /run/systemd/shutdownd (leave an | |
| * empty wall message for the default shutdown message). To calculate | | * empty wall message for the default shutdown message). To calculate | |
| * the size of the message use "offsetof(struct sd_shutdown_command, | | * the size of the message use "offsetof(struct sd_shutdown_command, | |
| * wall_message) + strlen(command.wall_message)". | | * wall_message) + strlen(command.wall_message)". | |
| * | | * | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 2 lines changed or added | |
|
| set.h | | set.h | |
| | | | |
| skipping to change at line 36 | | skipping to change at line 36 | |
| * object will be treated as empty set for all read | | * object will be treated as empty set for all read | |
| * operations. That way it is not necessary to instantiate an object | | * operations. That way it is not necessary to instantiate an object | |
| * for each set use. */ | | * for each set use. */ | |
| | | | |
| #include "hashmap.h" | | #include "hashmap.h" | |
| | | | |
| typedef struct Set Set; | | typedef struct Set Set; | |
| | | | |
| Set *set_new(hash_func_t hash_func, compare_func_t compare_func); | | Set *set_new(hash_func_t hash_func, compare_func_t compare_func); | |
| void set_free(Set* s); | | void set_free(Set* s); | |
|
| void set_freep(Set **s); | | static inline void set_freep(Set **s) { | |
| | | set_free(*s); | |
| | | } | |
| | | | |
| void set_free_free(Set *s); | | void set_free_free(Set *s); | |
|
| void set_free_freep(Set **s); | | static inline void set_free_freep(Set **s) { | |
| | | set_free_free(*s); | |
| | | } | |
| | | | |
| Set* set_copy(Set *s); | | Set* set_copy(Set *s); | |
| int set_ensure_allocated(Set **s, hash_func_t hash_func, compare_func_t com
pare_func); | | int set_ensure_allocated(Set **s, hash_func_t hash_func, compare_func_t com
pare_func); | |
| | | | |
| int set_put(Set *s, void *value); | | int set_put(Set *s, void *value); | |
| int set_replace(Set *s, void *value); | | int set_replace(Set *s, void *value); | |
| void *set_get(Set *s, void *value); | | void *set_get(Set *s, void *value); | |
| bool set_contains(Set *s, void *value); | | bool set_contains(Set *s, void *value); | |
| void *set_remove(Set *s, void *value); | | void *set_remove(Set *s, void *value); | |
| int set_remove_and_put(Set *s, void *old_value, void *new_value); | | int set_remove_and_put(Set *s, void *old_value, void *new_value); | |
| | | | |
| | | | |
End of changes. 2 change blocks. |
| 2 lines changed or deleted | | 8 lines changed or added | |
|
| special.h | | special.h | |
| | | | |
| skipping to change at line 49 | | skipping to change at line 49 | |
| #define SPECIAL_HIBERNATE_TARGET "hibernate.target" | | #define SPECIAL_HIBERNATE_TARGET "hibernate.target" | |
| #define SPECIAL_HYBRID_SLEEP_TARGET "hybrid-sleep.target" | | #define SPECIAL_HYBRID_SLEEP_TARGET "hybrid-sleep.target" | |
| | | | |
| /* Special boot targets */ | | /* Special boot targets */ | |
| #define SPECIAL_RESCUE_TARGET "rescue.target" | | #define SPECIAL_RESCUE_TARGET "rescue.target" | |
| #define SPECIAL_EMERGENCY_TARGET "emergency.target" | | #define SPECIAL_EMERGENCY_TARGET "emergency.target" | |
| | | | |
| /* Early boot targets */ | | /* Early boot targets */ | |
| #define SPECIAL_SYSINIT_TARGET "sysinit.target" | | #define SPECIAL_SYSINIT_TARGET "sysinit.target" | |
| #define SPECIAL_SOCKETS_TARGET "sockets.target" | | #define SPECIAL_SOCKETS_TARGET "sockets.target" | |
|
| | | #define SPECIAL_TIMERS_TARGET "timers.target" | |
| | | #define SPECIAL_PATHS_TARGET "paths.target" | |
| #define SPECIAL_LOCAL_FS_TARGET "local-fs.target" | | #define SPECIAL_LOCAL_FS_TARGET "local-fs.target" | |
| #define SPECIAL_LOCAL_FS_PRE_TARGET "local-fs-pre.target" | | #define SPECIAL_LOCAL_FS_PRE_TARGET "local-fs-pre.target" | |
|
| | | #define SPECIAL_INITRD_FS_TARGET "initrd-fs.target" | |
| | | #define SPECIAL_INITRD_ROOT_FS_TARGET "initrd-root-fs.target" | |
| #define SPECIAL_REMOTE_FS_TARGET "remote-fs.target" /* LSB's $remote_
fs */ | | #define SPECIAL_REMOTE_FS_TARGET "remote-fs.target" /* LSB's $remote_
fs */ | |
| #define SPECIAL_REMOTE_FS_PRE_TARGET "remote-fs-pre.target" | | #define SPECIAL_REMOTE_FS_PRE_TARGET "remote-fs-pre.target" | |
|
| | | #define SPECIAL_REMOTE_FS_SETUP_TARGET "remote-fs-setup.target" | |
| #define SPECIAL_SWAP_TARGET "swap.target" | | #define SPECIAL_SWAP_TARGET "swap.target" | |
| #define SPECIAL_BASIC_TARGET "basic.target" | | #define SPECIAL_BASIC_TARGET "basic.target" | |
| | | | |
| /* LSB compatibility */ | | /* LSB compatibility */ | |
| #define SPECIAL_NETWORK_TARGET "network.target" /* LSB's $network
*/ | | #define SPECIAL_NETWORK_TARGET "network.target" /* LSB's $network
*/ | |
| #define SPECIAL_NSS_LOOKUP_TARGET "nss-lookup.target" /* LSB's $named *
/ | | #define SPECIAL_NSS_LOOKUP_TARGET "nss-lookup.target" /* LSB's $named *
/ | |
| #define SPECIAL_RPCBIND_TARGET "rpcbind.target" /* LSB's $portmap
*/ | | #define SPECIAL_RPCBIND_TARGET "rpcbind.target" /* LSB's $portmap
*/ | |
| #define SPECIAL_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */ | | #define SPECIAL_TIME_SYNC_TARGET "time-sync.target" /* LSB's $time */ | |
| | | | |
| /* | | /* | |
| | | | |
End of changes. 3 change blocks. |
| 0 lines changed or deleted | | 5 lines changed or added | |
|
| strv.h | | strv.h | |
| | | | |
| skipping to change at line 33 | | skipping to change at line 33 | |
| | | | |
| #include <stdarg.h> | | #include <stdarg.h> | |
| #include <stdbool.h> | | #include <stdbool.h> | |
| | | | |
| #include "macro.h" | | #include "macro.h" | |
| | | | |
| char *strv_find(char **l, const char *name); | | char *strv_find(char **l, const char *name); | |
| char *strv_find_prefix(char **l, const char *name); | | char *strv_find_prefix(char **l, const char *name); | |
| | | | |
| void strv_free(char **l); | | void strv_free(char **l); | |
|
| void strv_freep(char ***l); | | static inline void strv_freep(char ***l) { | |
| char **strv_copy(char **l) _malloc_; | | strv_free(*l); | |
| unsigned strv_length(char **l); | | } | |
| | | | |
| | | char **strv_copy(char * const *l) _malloc_; | |
| | | unsigned strv_length(char * const *l); | |
| | | | |
| char **strv_merge(char **a, char **b); | | char **strv_merge(char **a, char **b); | |
| char **strv_merge_concat(char **a, char **b, const char *suffix); | | char **strv_merge_concat(char **a, char **b, const char *suffix); | |
| char **strv_append(char **l, const char *s); | | char **strv_append(char **l, const char *s); | |
| int strv_extend(char ***l, const char *value); | | int strv_extend(char ***l, const char *value); | |
|
| | | int strv_push(char ***l, char *value); | |
| | | | |
| char **strv_remove(char **l, const char *s); | | char **strv_remove(char **l, const char *s); | |
| char **strv_remove_prefix(char **l, const char *s); | | char **strv_remove_prefix(char **l, const char *s); | |
| char **strv_uniq(char **l); | | char **strv_uniq(char **l); | |
| | | | |
| #define strv_contains(l, s) (!!strv_find((l), (s))) | | #define strv_contains(l, s) (!!strv_find((l), (s))) | |
| | | | |
| char **strv_new(const char *x, ...) _sentinel_ _malloc_; | | char **strv_new(const char *x, ...) _sentinel_ _malloc_; | |
| char **strv_new_ap(const char *x, va_list ap) _malloc_; | | char **strv_new_ap(const char *x, va_list ap) _malloc_; | |
| | | | |
| static inline const char* STRV_IFNOTNULL(const char *x) { | | static inline const char* STRV_IFNOTNULL(const char *x) { | |
| return x ? x : (const char *) -1; | | return x ? x : (const char *) -1; | |
| } | | } | |
| | | | |
|
| static inline bool strv_isempty(char **l) { | | static inline bool strv_isempty(char * const *l) { | |
| return !l || !*l; | | return !l || !*l; | |
| } | | } | |
| | | | |
| char **strv_split(const char *s, const char *separator) _malloc_; | | char **strv_split(const char *s, const char *separator) _malloc_; | |
| char **strv_split_quoted(const char *s) _malloc_; | | char **strv_split_quoted(const char *s) _malloc_; | |
| char **strv_split_newlines(const char *s) _malloc_; | | char **strv_split_newlines(const char *s) _malloc_; | |
| | | | |
| char *strv_join(char **l, const char *separator) _malloc_; | | char *strv_join(char **l, const char *separator) _malloc_; | |
| | | | |
| char **strv_parse_nulstr(const char *s, size_t l); | | char **strv_parse_nulstr(const char *s, size_t l); | |
| | | | |
| skipping to change at line 77 | | skipping to change at line 81 | |
| | | | |
| bool strv_overlap(char **a, char **b); | | bool strv_overlap(char **a, char **b); | |
| | | | |
| #define STRV_FOREACH(s, l) \ | | #define STRV_FOREACH(s, l) \ | |
| for ((s) = (l); (s) && *(s); (s)++) | | for ((s) = (l); (s) && *(s); (s)++) | |
| | | | |
| #define STRV_FOREACH_BACKWARDS(s, l) \ | | #define STRV_FOREACH_BACKWARDS(s, l) \ | |
| for (; (l) && ((s) >= (l)); (s)--) | | for (; (l) && ((s) >= (l)); (s)--) | |
| | | | |
| #define STRV_FOREACH_PAIR(x, y, l) \ | | #define STRV_FOREACH_PAIR(x, y, l) \ | |
|
| for ((x) = (l), (y) = (x+1); (x) && *(x) && *(y); (x) += 2) | | for ((x) = (l), (y) = (x+1); (x) && *(x) && *(y); (x) += 2, (y) = (
x + 1)) | |
| | | | |
| char **strv_sort(char **l); | | char **strv_sort(char **l); | |
| void strv_print(char **l); | | void strv_print(char **l); | |
| | | | |
End of changes. 4 change blocks. |
| 5 lines changed or deleted | | 9 lines changed or added | |
|
| udev.h | | udev.h | |
| | | | |
| skipping to change at line 143 | | skipping to change at line 143 | |
| int udev_ctrl_get_exit(struct udev_ctrl_msg *ctrl_msg); | | int udev_ctrl_get_exit(struct udev_ctrl_msg *ctrl_msg); | |
| const char *udev_ctrl_get_set_env(struct udev_ctrl_msg *ctrl_msg); | | const char *udev_ctrl_get_set_env(struct udev_ctrl_msg *ctrl_msg); | |
| int udev_ctrl_get_set_children_max(struct udev_ctrl_msg *ctrl_msg); | | int udev_ctrl_get_set_children_max(struct udev_ctrl_msg *ctrl_msg); | |
| | | | |
| /* built-in commands */ | | /* built-in commands */ | |
| enum udev_builtin_cmd { | | enum udev_builtin_cmd { | |
| #ifdef HAVE_BLKID | | #ifdef HAVE_BLKID | |
| UDEV_BUILTIN_BLKID, | | UDEV_BUILTIN_BLKID, | |
| #endif | | #endif | |
| UDEV_BUILTIN_BTRFS, | | UDEV_BUILTIN_BTRFS, | |
|
| | | #ifdef ENABLE_FIRMWARE | |
| UDEV_BUILTIN_FIRMWARE, | | UDEV_BUILTIN_FIRMWARE, | |
|
| | | #endif | |
| UDEV_BUILTIN_HWDB, | | UDEV_BUILTIN_HWDB, | |
| UDEV_BUILTIN_INPUT_ID, | | UDEV_BUILTIN_INPUT_ID, | |
| #ifdef HAVE_KMOD | | #ifdef HAVE_KMOD | |
| UDEV_BUILTIN_KMOD, | | UDEV_BUILTIN_KMOD, | |
| #endif | | #endif | |
| UDEV_BUILTIN_NET_ID, | | UDEV_BUILTIN_NET_ID, | |
| UDEV_BUILTIN_PATH_ID, | | UDEV_BUILTIN_PATH_ID, | |
| UDEV_BUILTIN_USB_ID, | | UDEV_BUILTIN_USB_ID, | |
| #ifdef HAVE_ACL | | #ifdef HAVE_ACL | |
| UDEV_BUILTIN_UACCESS, | | UDEV_BUILTIN_UACCESS, | |
| | | | |
| skipping to change at line 170 | | skipping to change at line 172 | |
| const char *help; | | const char *help; | |
| int (*init)(struct udev *udev); | | int (*init)(struct udev *udev); | |
| void (*exit)(struct udev *udev); | | void (*exit)(struct udev *udev); | |
| bool (*validate)(struct udev *udev); | | bool (*validate)(struct udev *udev); | |
| bool run_once; | | bool run_once; | |
| }; | | }; | |
| #ifdef HAVE_BLKID | | #ifdef HAVE_BLKID | |
| extern const struct udev_builtin udev_builtin_blkid; | | extern const struct udev_builtin udev_builtin_blkid; | |
| #endif | | #endif | |
| extern const struct udev_builtin udev_builtin_btrfs; | | extern const struct udev_builtin udev_builtin_btrfs; | |
|
| | | #ifdef ENABLE_FIRMWARE | |
| extern const struct udev_builtin udev_builtin_firmware; | | extern const struct udev_builtin udev_builtin_firmware; | |
|
| | | #endif | |
| extern const struct udev_builtin udev_builtin_hwdb; | | extern const struct udev_builtin udev_builtin_hwdb; | |
| extern const struct udev_builtin udev_builtin_input_id; | | extern const struct udev_builtin udev_builtin_input_id; | |
| #ifdef HAVE_KMOD | | #ifdef HAVE_KMOD | |
| extern const struct udev_builtin udev_builtin_kmod; | | extern const struct udev_builtin udev_builtin_kmod; | |
| #endif | | #endif | |
| extern const struct udev_builtin udev_builtin_net_id; | | extern const struct udev_builtin udev_builtin_net_id; | |
| extern const struct udev_builtin udev_builtin_path_id; | | extern const struct udev_builtin udev_builtin_path_id; | |
| extern const struct udev_builtin udev_builtin_usb_id; | | extern const struct udev_builtin udev_builtin_usb_id; | |
| extern const struct udev_builtin udev_builtin_uaccess; | | extern const struct udev_builtin udev_builtin_uaccess; | |
| void udev_builtin_init(struct udev *udev); | | void udev_builtin_init(struct udev *udev); | |
| | | | |
End of changes. 4 change blocks. |
| 0 lines changed or deleted | | 4 lines changed or added | |
|
| unit.h | | unit.h | |
| | | | |
| skipping to change at line 489 | | skipping to change at line 489 | |
| | | | |
| bool unit_can_reload(Unit *u); | | bool unit_can_reload(Unit *u); | |
| bool unit_can_start(Unit *u); | | bool unit_can_start(Unit *u); | |
| bool unit_can_isolate(Unit *u); | | bool unit_can_isolate(Unit *u); | |
| | | | |
| int unit_start(Unit *u); | | int unit_start(Unit *u); | |
| int unit_stop(Unit *u); | | int unit_stop(Unit *u); | |
| int unit_reload(Unit *u); | | int unit_reload(Unit *u); | |
| | | | |
| int unit_kill(Unit *u, KillWho w, int signo, DBusError *error); | | int unit_kill(Unit *u, KillWho w, int signo, DBusError *error); | |
|
| | | int unit_kill_common(Unit *u, KillWho who, int signo, pid_t main_pid, pid_t
control_pid, DBusError *error); | |
| | | | |
| void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool relo
ad_success); | | void unit_notify(Unit *u, UnitActiveState os, UnitActiveState ns, bool relo
ad_success); | |
| | | | |
| int unit_watch_fd(Unit *u, int fd, uint32_t events, Watch *w); | | int unit_watch_fd(Unit *u, int fd, uint32_t events, Watch *w); | |
| void unit_unwatch_fd(Unit *u, Watch *w); | | void unit_unwatch_fd(Unit *u, Watch *w); | |
| | | | |
| int unit_watch_pid(Unit *u, pid_t pid); | | int unit_watch_pid(Unit *u, pid_t pid); | |
| void unit_unwatch_pid(Unit *u, pid_t pid); | | void unit_unwatch_pid(Unit *u, pid_t pid); | |
| | | | |
| int unit_watch_timer(Unit *u, clockid_t, bool relative, usec_t usec, Watch
*w); | | int unit_watch_timer(Unit *u, clockid_t, bool relative, usec_t usec, Watch
*w); | |
| | | | |
End of changes. 1 change blocks. |
| 0 lines changed or deleted | | 1 lines changed or added | |
|
| util.h | | util.h | |
| | | | |
| skipping to change at line 39 | | skipping to change at line 39 | |
| #include <stdlib.h> | | #include <stdlib.h> | |
| #include <stdio.h> | | #include <stdio.h> | |
| #include <signal.h> | | #include <signal.h> | |
| #include <sched.h> | | #include <sched.h> | |
| #include <limits.h> | | #include <limits.h> | |
| #include <sys/types.h> | | #include <sys/types.h> | |
| #include <sys/stat.h> | | #include <sys/stat.h> | |
| #include <dirent.h> | | #include <dirent.h> | |
| #include <sys/resource.h> | | #include <sys/resource.h> | |
| #include <stddef.h> | | #include <stddef.h> | |
|
| | | #include <systemd/sd-journal.h> | |
| | | | |
| #include "macro.h" | | #include "macro.h" | |
| #include "time-util.h" | | #include "time-util.h" | |
| | | | |
| union dirent_storage { | | union dirent_storage { | |
| struct dirent de; | | struct dirent de; | |
| uint8_t storage[offsetof(struct dirent, d_name) + | | uint8_t storage[offsetof(struct dirent, d_name) + | |
| ((NAME_MAX + 1 + sizeof(long)) & ~(sizeof(long) - 1
))]; | | ((NAME_MAX + 1 + sizeof(long)) & ~(sizeof(long) - 1
))]; | |
| }; | | }; | |
| | | | |
| | | | |
| skipping to change at line 431 | | skipping to change at line 432 | |
| int symlink_atomic(const char *from, const char *to); | | int symlink_atomic(const char *from, const char *to); | |
| | | | |
| int fchmod_umask(int fd, mode_t mode); | | int fchmod_umask(int fd, mode_t mode); | |
| | | | |
| bool display_is_local(const char *display); | | bool display_is_local(const char *display); | |
| int socket_from_display(const char *display, char **path); | | int socket_from_display(const char *display, char **path); | |
| | | | |
| int get_user_creds(const char **username, uid_t *uid, gid_t *gid, const cha
r **home, const char **shell); | | int get_user_creds(const char **username, uid_t *uid, gid_t *gid, const cha
r **home, const char **shell); | |
| int get_group_creds(const char **groupname, gid_t *gid); | | int get_group_creds(const char **groupname, gid_t *gid); | |
| | | | |
|
| | | int in_gid(gid_t gid); | |
| int in_group(const char *name); | | int in_group(const char *name); | |
| | | | |
| char* uid_to_name(uid_t uid); | | char* uid_to_name(uid_t uid); | |
|
| | | char* gid_to_name(gid_t gid); | |
| | | | |
| int glob_exists(const char *path); | | int glob_exists(const char *path); | |
| | | | |
| int dirent_ensure_type(DIR *d, struct dirent *de); | | int dirent_ensure_type(DIR *d, struct dirent *de); | |
| | | | |
| int in_search_path(const char *path, char **search); | | int in_search_path(const char *path, char **search); | |
| int get_files_in_directory(const char *path, char ***list); | | int get_files_in_directory(const char *path, char ***list); | |
| | | | |
| char *strjoin(const char *x, ...) _sentinel_; | | char *strjoin(const char *x, ...) _sentinel_; | |
| | | | |
| | | | |
| skipping to change at line 522 | | skipping to change at line 525 | |
| | | | |
| bool is_valid_documentation_url(const char *url); | | bool is_valid_documentation_url(const char *url); | |
| | | | |
| bool in_initrd(void); | | bool in_initrd(void); | |
| | | | |
| void warn_melody(void); | | void warn_melody(void); | |
| | | | |
| int get_shell(char **ret); | | int get_shell(char **ret); | |
| int get_home_dir(char **ret); | | int get_home_dir(char **ret); | |
| | | | |
|
| void freep(void *p); | | static inline void freep(void *p) { | |
| | | free(*(void**) p); | |
| | | } | |
| | | | |
| void fclosep(FILE **f); | | void fclosep(FILE **f); | |
| void pclosep(FILE **f); | | void pclosep(FILE **f); | |
| void closep(int *fd); | | void closep(int *fd); | |
| void closedirp(DIR **d); | | void closedirp(DIR **d); | |
|
| void umaskp(mode_t *u); | | static inline void umaskp(mode_t *u) { | |
| | | umask(*u); | |
| | | } | |
| | | | |
| | | static inline void journal_closep(sd_journal **j) { | |
| | | sd_journal_close(*j); | |
| | | } | |
| | | | |
| _malloc_ static inline void *malloc_multiply(size_t a, size_t b) { | | _malloc_ static inline void *malloc_multiply(size_t a, size_t b) { | |
| if (_unlikely_(b == 0 || a > ((size_t) -1) / b)) | | if (_unlikely_(b == 0 || a > ((size_t) -1) / b)) | |
| return NULL; | | return NULL; | |
| | | | |
| return malloc(a * b); | | return malloc(a * b); | |
| } | | } | |
| | | | |
| _malloc_ static inline void *memdup_multiply(const void *p, size_t a, size_
t b) { | | _malloc_ static inline void *memdup_multiply(const void *p, size_t a, size_
t b) { | |
| if (_unlikely_(b == 0 || a > ((size_t) -1) / b)) | | if (_unlikely_(b == 0 || a > ((size_t) -1) / b)) | |
| | | | |
| skipping to change at line 572 | | skipping to change at line 584 | |
| const char *draw_special_char(DrawSpecialChar ch); | | const char *draw_special_char(DrawSpecialChar ch); | |
| | | | |
| char *strreplace(const char *text, const char *old_string, const char *new_
string); | | char *strreplace(const char *text, const char *old_string, const char *new_
string); | |
| | | | |
| char *strip_tab_ansi(char **p, size_t *l); | | char *strip_tab_ansi(char **p, size_t *l); | |
| | | | |
| int on_ac_power(void); | | int on_ac_power(void); | |
| | | | |
| int search_and_fopen(const char *path, const char *mode, const char **searc
h, FILE **_f); | | int search_and_fopen(const char *path, const char *mode, const char **searc
h, FILE **_f); | |
| int search_and_fopen_nulstr(const char *path, const char *mode, const char
*search, FILE **_f); | | int search_and_fopen_nulstr(const char *path, const char *mode, const char
*search, FILE **_f); | |
|
| | | int create_tmp_dir(char template[], char** dir_name); | |
| | | | |
| #define FOREACH_LINE(line, f, on_error) \ | | #define FOREACH_LINE(line, f, on_error) \ | |
| for (;;) \ | | for (;;) \ | |
| if (!fgets(line, sizeof(line), f)) { \ | | if (!fgets(line, sizeof(line), f)) { \ | |
| if (ferror(f)) { \ | | if (ferror(f)) { \ | |
| on_error; \ | | on_error; \ | |
| } \ | | } \ | |
| break; \ | | break; \ | |
| } else | | } else | |
| | | | |
| #define FOREACH_DIRENT(de, d, on_error) \ | | #define FOREACH_DIRENT(de, d, on_error) \ | |
| for (errno = 0, de = readdir(d);; errno = 0, de = readdir(d)) \ | | for (errno = 0, de = readdir(d);; errno = 0, de = readdir(d)) \ | |
| if (!de) { \ | | if (!de) { \ | |
| if (errno != 0) { \ | | if (errno != 0) { \ | |
| on_error; \ | | on_error; \ | |
| } \ | | } \ | |
| break; \ | | break; \ | |
| } else if (ignore_file((de)->d_name)) \ | | } else if (ignore_file((de)->d_name)) \ | |
| continue; \ | | continue; \ | |
| else | | else | |
|
| | | | |
| | | static inline void *mempset(void *s, int c, size_t n) { | |
| | | memset(s, c, n); | |
| | | return (char*)s + n; | |
| | | } | |
| | | | |
| | | char *hexmem(const void *p, size_t l); | |
| | | char *strextend(char **x, ...); | |
| | | char *strrep(const char *s, unsigned n); | |
| | | | |
End of changes. 7 change blocks. |
| 2 lines changed or deleted | | 15 lines changed or added | |
|