bus-errors.h | bus-errors.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 <string.h> | ||||
#include <dbus/dbus.h> | ||||
#define BUS_ERROR_NO_SUCH_UNIT "org.freedesktop.systemd1.NoSuchUnit" | #define BUS_ERROR_NO_SUCH_UNIT "org.freedesktop.systemd1.NoSuchUnit" | |||
#define BUS_ERROR_NO_SUCH_JOB "org.freedesktop.systemd1.NoSuchJob" | #define BUS_ERROR_NO_SUCH_JOB "org.freedesktop.systemd1.NoSuchJob" | |||
#define BUS_ERROR_NOT_SUBSCRIBED "org.freedesktop.systemd1.NotSubscribed" | #define BUS_ERROR_NOT_SUBSCRIBED "org.freedesktop.systemd1.NotSubscribed" | |||
#define BUS_ERROR_INVALID_PATH "org.freedesktop.systemd1.InvalidPath" | #define BUS_ERROR_INVALID_PATH "org.freedesktop.systemd1.InvalidPath" | |||
#define BUS_ERROR_INVALID_NAME "org.freedesktop.systemd1.InvalidName" | #define BUS_ERROR_INVALID_NAME "org.freedesktop.systemd1.InvalidName" | |||
#define BUS_ERROR_UNIT_TYPE_MISMATCH "org.freedesktop.systemd1.UnitTypeMism atch" | #define BUS_ERROR_UNIT_TYPE_MISMATCH "org.freedesktop.systemd1.UnitTypeMism atch" | |||
#define BUS_ERROR_UNIT_EXISTS "org.freedesktop.systemd1.UnitExists" | #define BUS_ERROR_UNIT_EXISTS "org.freedesktop.systemd1.UnitExists" | |||
#define BUS_ERROR_NOT_SUPPORTED "org.freedesktop.systemd1.NotSupported" | #define BUS_ERROR_NOT_SUPPORTED "org.freedesktop.systemd1.NotSupported" | |||
#define BUS_ERROR_INVALID_JOB_MODE "org.freedesktop.systemd1.InvalidJobMode " | #define BUS_ERROR_INVALID_JOB_MODE "org.freedesktop.systemd1.InvalidJobMode " | |||
#define BUS_ERROR_ONLY_BY_DEPENDENCY "org.freedesktop.systemd1.OnlyByDepend ency" | #define BUS_ERROR_ONLY_BY_DEPENDENCY "org.freedesktop.systemd1.OnlyByDepend ency" | |||
#define BUS_ERROR_NO_ISOLATION "org.freedesktop.systemd1.NoIsolation" | #define BUS_ERROR_NO_ISOLATION "org.freedesktop.systemd1.NoIsolation" | |||
#define BUS_ERROR_LOAD_FAILED "org.freedesktop.systemd1.LoadFailed" | #define BUS_ERROR_LOAD_FAILED "org.freedesktop.systemd1.LoadFailed" | |||
#define BUS_ERROR_MASKED "org.freedesktop.systemd1.Masked" | #define BUS_ERROR_MASKED "org.freedesktop.systemd1.Masked" | |||
#define BUS_ERROR_JOB_TYPE_NOT_APPLICABLE "org.freedesktop.systemd1.JobType NotApplicable" | #define BUS_ERROR_JOB_TYPE_NOT_APPLICABLE "org.freedesktop.systemd1.JobType NotApplicable" | |||
#define BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE "org.freedesktop.systemd1.Tran sactionIsDestructive" | #define BUS_ERROR_TRANSACTION_IS_DESTRUCTIVE "org.freedesktop.systemd1.Tran sactionIsDestructive" | |||
#define BUS_ERROR_TRANSACTION_JOBS_CONFLICTING "org.freedesktop.systemd1.Tr ansactionJobsConflicting" | #define BUS_ERROR_TRANSACTION_JOBS_CONFLICTING "org.freedesktop.systemd1.Tr ansactionJobsConflicting" | |||
#define BUS_ERROR_TRANSACTION_ORDER_IS_CYCLIC "org.freedesktop.systemd1.Tra nsactionOrderIsCyclic" | #define BUS_ERROR_TRANSACTION_ORDER_IS_CYCLIC "org.freedesktop.systemd1.Tra nsactionOrderIsCyclic" | |||
#define BUS_ERROR_SHUTTING_DOWN "org.freedesktop.systemd1.ShuttingDown" | #define BUS_ERROR_SHUTTING_DOWN "org.freedesktop.systemd1.ShuttingDown" | |||
#define BUS_ERROR_NO_SUCH_PROCESS "org.freedesktop.systemd1.NoSuchProcess" | #define BUS_ERROR_NO_SUCH_PROCESS "org.freedesktop.systemd1.NoSuchProcess" | |||
static inline const char *bus_error(const DBusError *e, int r) { | ||||
if (e && e->message) | ||||
return e->message; | ||||
if (r >= 0) | ||||
return strerror(r); | ||||
return strerror(-r); | ||||
} | ||||
End of changes. 2 change blocks. | ||||
3 lines changed or deleted | 0 lines changed or added | |||
bus-internal.h | bus-internal.h | |||
---|---|---|---|---|
skipping to change at line 84 | skipping to change at line 84 | |||
BUS_AUTH_EXTERNAL, | BUS_AUTH_EXTERNAL, | |||
BUS_AUTH_ANONYMOUS | BUS_AUTH_ANONYMOUS | |||
}; | }; | |||
struct sd_bus { | struct sd_bus { | |||
unsigned n_ref; | unsigned n_ref; | |||
enum bus_state state; | enum bus_state state; | |||
int input_fd, output_fd; | int input_fd, output_fd; | |||
int message_version; | int message_version; | |||
bool is_kernel:1; | ||||
bool negotiate_fds:1; | bool negotiate_fds:1; | |||
bool can_fds:1; | bool can_fds:1; | |||
bool bus_client:1; | bool bus_client:1; | |||
bool ucred_valid:1; | bool ucred_valid:1; | |||
bool is_server:1; | bool is_server:1; | |||
bool anonymous_auth:1; | bool anonymous_auth:1; | |||
bool prefer_readv:1; | bool prefer_readv:1; | |||
bool prefer_writev:1; | bool prefer_writev:1; | |||
bool processing:1; | bool processing:1; | |||
bool match_callbacks_modified:1; | bool match_callbacks_modified:1; | |||
skipping to change at line 125 | skipping to change at line 126 | |||
Hashmap *object_callbacks; | Hashmap *object_callbacks; | |||
union { | union { | |||
struct sockaddr sa; | struct sockaddr sa; | |||
struct sockaddr_un un; | struct sockaddr_un un; | |||
struct sockaddr_in in; | struct sockaddr_in in; | |||
struct sockaddr_in6 in6; | struct sockaddr_in6 in6; | |||
} sockaddr; | } sockaddr; | |||
socklen_t sockaddr_size; | socklen_t sockaddr_size; | |||
char *kernel; | ||||
sd_id128_t server_id; | sd_id128_t server_id; | |||
char *address; | char *address; | |||
unsigned address_index; | unsigned address_index; | |||
int last_connect_error; | int last_connect_error; | |||
enum bus_auth auth; | enum bus_auth auth; | |||
size_t auth_rbegin; | size_t auth_rbegin; | |||
struct iovec auth_iovec[3]; | struct iovec auth_iovec[3]; | |||
skipping to change at line 189 | skipping to change at line 192 | |||
bool service_name_is_valid(const char *p); | bool service_name_is_valid(const char *p); | |||
bool member_name_is_valid(const char *p); | bool member_name_is_valid(const char *p); | |||
bool namespace_complex_pattern(const char *pattern, const char *value); | bool namespace_complex_pattern(const char *pattern, const char *value); | |||
bool path_complex_pattern(const char *pattern, const char *value); | bool path_complex_pattern(const char *pattern, const char *value); | |||
bool namespace_simple_pattern(const char *pattern, const char *value); | bool namespace_simple_pattern(const char *pattern, const char *value); | |||
bool path_simple_pattern(const char *pattern, const char *value); | bool path_simple_pattern(const char *pattern, const char *value); | |||
int bus_message_type_from_string(const char *s, uint8_t *u); | int bus_message_type_from_string(const char *s, uint8_t *u); | |||
const char *bus_message_type_to_string(uint8_t u); | ||||
#define error_name_is_valid interface_name_is_valid | #define error_name_is_valid interface_name_is_valid | |||
int bus_ensure_running(sd_bus *bus); | int bus_ensure_running(sd_bus *bus); | |||
int bus_start_running(sd_bus *bus); | int bus_start_running(sd_bus *bus); | |||
int bus_next_address(sd_bus *bus); | int bus_next_address(sd_bus *bus); | |||
End of changes. 3 change blocks. | ||||
0 lines changed or deleted | 4 lines changed or added | |||
bus-message.h | bus-message.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 <stdbool.h> | #include <stdbool.h> | |||
#include <byteswap.h> | #include <byteswap.h> | |||
#include <sys/socket.h> | #include <sys/socket.h> | |||
#include "macro.h" | #include "macro.h" | |||
#include "sd-bus.h" | #include "sd-bus.h" | |||
#include "kdbus.h" | ||||
#include "time-util.h" | ||||
struct bus_container { | struct bus_container { | |||
char enclosing; | char enclosing; | |||
char *signature; | char *signature; | |||
unsigned index; | unsigned index; | |||
uint32_t *array_size; | uint32_t *array_size; | |||
size_t begin; | size_t begin; | |||
}; | }; | |||
skipping to change at line 68 | skipping to change at line 70 | |||
const char *member; | const char *member; | |||
const char *destination; | const char *destination; | |||
const char *sender; | const char *sender; | |||
sd_bus_error error; | sd_bus_error error; | |||
uid_t uid; | uid_t uid; | |||
gid_t gid; | gid_t gid; | |||
pid_t pid; | pid_t pid; | |||
pid_t tid; | pid_t tid; | |||
usec_t pid_starttime; | ||||
usec_t monotonic; | ||||
usec_t realtime; | ||||
bool sealed:1; | bool sealed:1; | |||
bool dont_send:1; | bool dont_send:1; | |||
bool allow_fds:1; | bool allow_fds:1; | |||
bool uid_valid:1; | bool uid_valid:1; | |||
bool gid_valid:1; | bool gid_valid:1; | |||
bool free_header:1; | bool free_header:1; | |||
bool free_fields:1; | bool free_fields:1; | |||
bool free_body:1; | bool free_body:1; | |||
bool free_kdbus:1; | ||||
bool free_fds:1; | bool free_fds:1; | |||
struct bus_header *header; | struct bus_header *header; | |||
void *fields; | void *fields; | |||
void *body; | void *body; | |||
struct kdbus_msg *kdbus; | ||||
char *label; | char *label; | |||
size_t rindex; | size_t rindex; | |||
uint32_t n_fds; | uint32_t n_fds; | |||
int *fds; | int *fds; | |||
struct bus_container root_container, *containers; | struct bus_container root_container, *containers; | |||
unsigned n_containers; | unsigned n_containers; | |||
struct iovec iovec[4]; | struct iovec iovec[3]; | |||
unsigned n_iovec; | unsigned n_iovec; | |||
size_t size; | ||||
char *peeked_signature; | char *peeked_signature; | |||
usec_t timeout; | ||||
char sender_buffer[3 + DECIMAL_STR_MAX(uint64_t) + 1]; | ||||
char destination_buffer[3 + DECIMAL_STR_MAX(uint64_t) + 1]; | ||||
const char *exe; | ||||
const char *comm; | ||||
const char *tid_comm; | ||||
const char *cgroup; | ||||
const char *cmdline; | ||||
size_t cmdline_length; | ||||
char **cmdline_array; | ||||
char *session; | ||||
char *unit; | ||||
char *user_unit; | ||||
}; | }; | |||
#define BUS_MESSAGE_NEED_BSWAP(m) ((m)->header->endian != SD_BUS_NATIVE_END IAN) | #define BUS_MESSAGE_NEED_BSWAP(m) ((m)->header->endian != SD_BUS_NATIVE_END IAN) | |||
static inline uint16_t BUS_MESSAGE_BSWAP16(sd_bus_message *m, uint16_t u) { | static inline uint16_t BUS_MESSAGE_BSWAP16(sd_bus_message *m, uint16_t u) { | |||
return BUS_MESSAGE_NEED_BSWAP(m) ? bswap_16(u) : u; | return BUS_MESSAGE_NEED_BSWAP(m) ? bswap_16(u) : u; | |||
} | } | |||
static inline uint32_t BUS_MESSAGE_BSWAP32(sd_bus_message *m, uint32_t u) { | static inline uint32_t BUS_MESSAGE_BSWAP32(sd_bus_message *m, uint32_t u) { | |||
return BUS_MESSAGE_NEED_BSWAP(m) ? bswap_32(u) : u; | return BUS_MESSAGE_NEED_BSWAP(m) ? bswap_32(u) : u; | |||
skipping to change at line 126 | skipping to change at line 150 | |||
} | } | |||
static inline uint32_t BUS_MESSAGE_BODY_SIZE(sd_bus_message *m) { | static inline uint32_t BUS_MESSAGE_BODY_SIZE(sd_bus_message *m) { | |||
return BUS_MESSAGE_BSWAP32(m, m->header->body_size); | return BUS_MESSAGE_BSWAP32(m, m->header->body_size); | |||
} | } | |||
static inline uint32_t BUS_MESSAGE_FIELDS_SIZE(sd_bus_message *m) { | static inline uint32_t BUS_MESSAGE_FIELDS_SIZE(sd_bus_message *m) { | |||
return BUS_MESSAGE_BSWAP32(m, m->header->fields_size); | return BUS_MESSAGE_BSWAP32(m, m->header->fields_size); | |||
} | } | |||
static inline uint32_t BUS_MESSAGE_SIZE(sd_bus_message *m) { | ||||
return | ||||
sizeof(struct bus_header) + | ||||
ALIGN8(BUS_MESSAGE_FIELDS_SIZE(m)) + | ||||
BUS_MESSAGE_BODY_SIZE(m); | ||||
} | ||||
static inline void bus_message_unrefp(sd_bus_message **m) { | static inline void bus_message_unrefp(sd_bus_message **m) { | |||
sd_bus_message_unref(*m); | sd_bus_message_unref(*m); | |||
} | } | |||
#define _cleanup_bus_message_unref_ __attribute__((cleanup(bus_message_unre fp))) | #define _cleanup_bus_message_unref_ __attribute__((cleanup(bus_message_unre fp))) | |||
int bus_message_seal(sd_bus_message *m, uint64_t serial); | int bus_message_seal(sd_bus_message *m, uint64_t serial); | |||
int bus_message_dump(sd_bus_message *m); | int bus_message_dump(sd_bus_message *m); | |||
int bus_message_get_blob(sd_bus_message *m, void **buffer, size_t *sz); | int bus_message_get_blob(sd_bus_message *m, void **buffer, size_t *sz); | |||
int bus_message_read_strv_extend(sd_bus_message *m, char ***l); | int bus_message_read_strv_extend(sd_bus_message *m, char ***l); | |||
int bus_message_from_header( | ||||
void *header, | ||||
size_t length, | ||||
int *fds, | ||||
unsigned n_fds, | ||||
const struct ucred *ucred, | ||||
const char *label, | ||||
size_t extra, | ||||
sd_bus_message **ret); | ||||
int bus_message_from_malloc( | int bus_message_from_malloc( | |||
void *buffer, | void *buffer, | |||
size_t length, | size_t length, | |||
int *fds, | int *fds, | |||
unsigned n_fds, | unsigned n_fds, | |||
const struct ucred *ucred, | const struct ucred *ucred, | |||
const char *label, | const char *label, | |||
sd_bus_message **ret); | sd_bus_message **ret); | |||
const char* bus_message_get_arg(sd_bus_message *m, unsigned i); | const char* bus_message_get_arg(sd_bus_message *m, unsigned i); | |||
int bus_message_append_ap(sd_bus_message *m, const char *types, va_list ap) ; | int bus_message_append_ap(sd_bus_message *m, const char *types, va_list ap) ; | |||
int bus_message_parse_fields(sd_bus_message *m); | ||||
int bus_header_size(struct bus_header *h, size_t *sum); | ||||
End of changes. 10 change blocks. | ||||
2 lines changed or deleted | 43 lines changed or added | |||
cgroup-util.h | cgroup-util.h | |||
---|---|---|---|---|
skipping to change at line 47 | skipping to change at line 47 | |||
int cg_kill(const char *controller, const char *path, int sig, bool sigcont , bool ignore_self, Set *s); | int cg_kill(const char *controller, const char *path, int sig, bool sigcont , bool ignore_self, Set *s); | |||
int cg_kill_recursive(const char *controller, const char *path, int sig, bo ol sigcont, bool ignore_self, bool remove, Set *s); | int cg_kill_recursive(const char *controller, const char *path, int sig, bo ol sigcont, bool ignore_self, bool remove, Set *s); | |||
int cg_kill_recursive_and_wait(const char *controller, const char *path, bo ol remove); | int cg_kill_recursive_and_wait(const char *controller, const char *path, bo ol remove); | |||
int cg_migrate(const char *cfrom, const char *pfrom, const char *cto, const char *pto, bool ignore_self); | int cg_migrate(const char *cfrom, const char *pfrom, const char *cto, const char *pto, bool ignore_self); | |||
int cg_migrate_recursive(const char *cfrom, const char *pfrom, const char * cto, const char *pto, bool ignore_self, bool remove); | int cg_migrate_recursive(const char *cfrom, const char *pfrom, const char * cto, const char *pto, bool ignore_self, bool remove); | |||
int cg_split_spec(const char *spec, char **controller, char **path); | int cg_split_spec(const char *spec, char **controller, char **path); | |||
int cg_join_spec(const char *controller, const char *path, char **spec); | int cg_join_spec(const char *controller, const char *path, char **spec); | |||
int cg_fix_path(const char *path, char **result); | int cg_mangle_path(const char *path, char **result); | |||
int cg_get_path(const char *controller, const char *path, const char *suffi x, char **fs); | int cg_get_path(const char *controller, const char *path, const char *suffi x, char **fs); | |||
int cg_get_path_and_check(const char *controller, const char *path, const c har *suffix, char **fs); | int cg_get_path_and_check(const char *controller, const char *path, const c har *suffix, char **fs); | |||
int cg_get_by_pid(const char *controller, pid_t pid, char **path); | ||||
int cg_pid_get_path(const char *controller, pid_t pid, char **path); | ||||
int cg_trim(const char *controller, const char *path, bool delete_root); | int cg_trim(const char *controller, const char *path, bool delete_root); | |||
int cg_rmdir(const char *controller, const char *path, bool honour_sticky); | int cg_rmdir(const char *controller, const char *path, bool honour_sticky); | |||
int cg_delete(const char *controller, const char *path); | int cg_delete(const char *controller, const char *path); | |||
int cg_create(const char *controller, const char *path); | int cg_create(const char *controller, const char *path, const char *suffix) ; | |||
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_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_root_path(char **path); | ||||
int cg_get_system_path(char **path); | ||||
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_get_machine_path(char **path); | |||
int cg_path_get_session(const char *path, char **session); | ||||
int cg_path_get_unit(const char *path, char **unit); | ||||
int cg_path_get_user_unit(const char *path, char **unit); | ||||
int cg_path_get_machine_name(const char *path, char **machine); | ||||
int cg_pid_get_path_shifted(pid_t pid, char **root, char **cgroup); | ||||
int cg_pid_get_session(pid_t pid, char **session); | ||||
int cg_pid_get_unit(pid_t pid, char **unit); | int cg_pid_get_unit(pid_t pid, char **unit); | |||
int cg_pid_get_user_unit(pid_t pid, char **unit); | int cg_pid_get_user_unit(pid_t pid, char **unit); | |||
int cg_pid_get_machine_name(pid_t pid, char **machine); | ||||
int cgroup_to_unit(char *cgroup, char **unit); | int cg_path_decode_unit(const char *cgroup, char **unit); | |||
char **cg_shorten_controllers(char **controllers); | char **cg_shorten_controllers(char **controllers); | |||
int cg_controller_from_attr(const char *attr, char **controller); | int cg_controller_from_attr(const char *attr, char **controller); | |||
End of changes. 7 change blocks. | ||||
5 lines changed or deleted | 18 lines changed or added | |||
conf-parser.h | conf-parser.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/>. | |||
***/ | ***/ | |||
#include <stdio.h> | #include <stdio.h> | |||
#include <stdbool.h> | #include <stdbool.h> | |||
#include "macro.h" | ||||
/* An abstract parser for simple, line based, shallow configuration | /* An abstract parser for simple, line based, shallow configuration | |||
* files consisting of variable assignments only. */ | * files consisting of variable assignments only. */ | |||
/* Prototype for a parser for a specific configuration setting */ | /* Prototype for a parser for a specific configuration setting */ | |||
typedef int (*ConfigParserCallback)( | typedef int (*ConfigParserCallback)(const char *unit, | |||
const char *filename, | const char *filename, | |||
unsigned line, | unsigned line, | |||
const char *section, | const char *section, | |||
const char *lvalue, | const char *lvalue, | |||
int ltype, | int ltype, | |||
const char *rvalue, | const char *rvalue, | |||
void *data, | void *data, | |||
void *userdata); | void *userdata); | |||
/* Wraps information for parsing a specific configuration variable, to | /* Wraps information for parsing a specific configuration variable, to | |||
* be stored in a simple array */ | * be stored in a simple array */ | |||
typedef struct ConfigTableItem { | typedef struct ConfigTableItem { | |||
const char *section; /* Section */ | const char *section; /* Section */ | |||
const char *lvalue; /* Name of the variable */ | const char *lvalue; /* Name of the variable */ | |||
ConfigParserCallback parse; /* Function that is called to parse the variable's value */ | ConfigParserCallback parse; /* Function that is called to parse the variable's value */ | |||
int ltype; /* Distinguish different variables passed to the same callback */ | int ltype; /* Distinguish different variables passed to the same callback */ | |||
void *data; /* Where to store the variable's da ta */ | void *data; /* Where to store the variable's da ta */ | |||
} ConfigTableItem; | } ConfigTableItem; | |||
skipping to change at line 81 | skipping to change at line 83 | |||
void *userdata); | void *userdata); | |||
/* Linear table search implementation of ConfigItemLookup, based on | /* Linear table search implementation of ConfigItemLookup, based on | |||
* ConfigTableItem arrays */ | * ConfigTableItem arrays */ | |||
int config_item_table_lookup(void *table, const char *section, const char * lvalue, ConfigParserCallback *func, int *ltype, void **data, void *userdata ); | int config_item_table_lookup(void *table, const char *section, const char * lvalue, ConfigParserCallback *func, int *ltype, void **data, void *userdata ); | |||
/* gperf implementation of ConfigItemLookup, based on gperf | /* gperf implementation of ConfigItemLookup, based on gperf | |||
* ConfigPerfItem tables */ | * ConfigPerfItem tables */ | |||
int config_item_perf_lookup(void *table, const char *section, const char *l value, ConfigParserCallback *func, int *ltype, void **data, void *userdata) ; | int config_item_perf_lookup(void *table, const char *section, const char *l value, ConfigParserCallback *func, int *ltype, void **data, void *userdata) ; | |||
int config_parse( | int config_parse(const char *unit, | |||
const char *filename, | const char *filename, | |||
FILE *f, | FILE *f, | |||
const char *sections, /* nulstr */ | const char *sections, /* nulstr */ | |||
ConfigItemLookup lookup, | ConfigItemLookup lookup, | |||
void *table, | void *table, | |||
bool relaxed, | bool relaxed, | |||
void *userdata); | void *userdata); | |||
/* Generic parsers */ | /* Generic parsers */ | |||
int config_parse_int(const char *filename, unsigned line, const char *secti | int config_parse_int(const char *unit, const char *filename, unsigned line, | |||
on, const char *lvalue, int ltype, const char *rvalue, void *data, void *us | const char *section, const char *lvalue, int ltype, const char *rvalue, vo | |||
erdata); | id *data, void *userdata); | |||
int config_parse_unsigned(const char *filename, unsigned line, const char * | int config_parse_unsigned(const char *unit, const char *filename, unsigned | |||
section, const char *lvalue, int ltype, const char *rvalue, void *data, voi | line, const char *section, const char *lvalue, int ltype, const char *rvalu | |||
d *userdata); | e, void *data, void *userdata); | |||
int config_parse_long(const char *filename, unsigned line, const char *sect | int config_parse_long(const char *unit, const char *filename, unsigned line | |||
ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u | , const char *section, const char *lvalue, int ltype, const char *rvalue, v | |||
serdata); | oid *data, void *userdata); | |||
int config_parse_uint64(const char *filename, unsigned line, const char *se | int config_parse_uint64(const char *unit, const char *filename, unsigned li | |||
ction, const char *lvalue, int ltype, const char *rvalue, void *data, void | ne, const char *section, const char *lvalue, int ltype, const char *rvalue, | |||
*userdata); | void *data, void *userdata); | |||
int config_parse_double(const char *filename, unsigned line, const char *se | int config_parse_double(const char *unit, const char *filename, unsigned li | |||
ction, const char *lvalue, int ltype, const char *rvalue, void *data, void | ne, const char *section, const char *lvalue, int ltype, const char *rvalue, | |||
*userdata); | void *data, void *userdata); | |||
int config_parse_bytes_size(const char *filename, unsigned line, const char | int config_parse_bytes_size(const char *unit, const char *filename, unsigne | |||
*section, const char *lvalue, int ltype, const char *rvalue, void *data, v | d line, const char *section, const char *lvalue, int ltype, const char *rva | |||
oid *userdata); | lue, void *data, void *userdata); | |||
int config_parse_bytes_off(const char *filename, unsigned line, const char | int config_parse_bytes_off(const char *unit, const char *filename, unsigned | |||
*section, const char *lvalue, int ltype, const char *rvalue, void *data, vo | line, const char *section, const char *lvalue, int ltype, const char *rval | |||
id *userdata); | ue, void *data, void *userdata); | |||
int config_parse_bool(const char *filename, unsigned line, const char *sect | int config_parse_bool(const char *unit, const char *filename, unsigned line | |||
ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u | , const char *section, const char *lvalue, int ltype, const char *rvalue, v | |||
serdata); | oid *data, void *userdata); | |||
int config_parse_tristate(const char *filename, unsigned line, const char * | int config_parse_tristate(const char *unit, const char *filename, unsigned | |||
section, const char *lvalue, int ltype, const char *rvalue, void *data, voi | line, const char *section, const char *lvalue, int ltype, const char *rvalu | |||
d *userdata); | e, void *data, void *userdata); | |||
int config_parse_string(const char *filename, unsigned line, const char *se | int config_parse_string(const char *unit, const char *filename, unsigned li | |||
ction, const char *lvalue, int ltype, const char *rvalue, void *data, void | ne, const char *section, const char *lvalue, int ltype, const char *rvalue, | |||
*userdata); | void *data, void *userdata); | |||
int config_parse_path(const char *filename, unsigned line, const char *sect | int config_parse_path(const char *unit, const char *filename, unsigned line | |||
ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u | , const char *section, const char *lvalue, int ltype, const char *rvalue, v | |||
serdata); | oid *data, void *userdata); | |||
int config_parse_strv(const char *filename, unsigned line, const char *sect | int config_parse_strv(const char *unit, const char *filename, unsigned line | |||
ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u | , const char *section, const char *lvalue, int ltype, const char *rvalue, v | |||
serdata); | oid *data, void *userdata); | |||
int config_parse_path_strv(const char *filename, unsigned line, const char | int config_parse_path_strv(const char *unit, const char *filename, unsigned | |||
*section, const char *lvalue, int ltype, const char *rvalue, void *data, vo | line, const char *section, const char *lvalue, int ltype, const char *rval | |||
id *userdata); | ue, void *data, void *userdata); | |||
int config_parse_sec(const char *filename, unsigned line, const char *secti | int config_parse_sec(const char *unit, const char *filename, unsigned line, | |||
on, const char *lvalue, int ltype, const char *rvalue, void *data, void *us | const char *section, const char *lvalue, int ltype, const char *rvalue, vo | |||
erdata); | id *data, void *userdata); | |||
int config_parse_nsec(const char *filename, unsigned line, const char *sect | int config_parse_nsec(const char *unit, const char *filename, unsigned line | |||
ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u | , const char *section, const char *lvalue, int ltype, const char *rvalue, v | |||
serdata); | oid *data, void *userdata); | |||
int config_parse_mode(const char *filename, unsigned line, const char *sect | int config_parse_mode(const char *unit, const char *filename, unsigned line | |||
ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u | , const char *section, const char *lvalue, int ltype, const char *rvalue, v | |||
serdata); | oid *data, void *userdata); | |||
int config_parse_facility(const char *filename, unsigned line, const char * | int config_parse_facility(const char *unit, const char *filename, unsigned | |||
section, const char *lvalue, int ltype, const char *rvalue, void *data, voi | line, const char *section, const char *lvalue, int ltype, const char *rvalu | |||
d *userdata); | e, void *data, void *userdata); | |||
int config_parse_level(const char *filename, unsigned line, const char *sec | int config_parse_level(const char *unit, const char *filename, unsigned lin | |||
tion, const char *lvalue, int ltype, const char *rvalue, void *data, void * | e, const char *section, const char *lvalue, int ltype, const char *rvalue, | |||
userdata); | void *data, void *userdata); | |||
int config_parse_set_status(const char *filename, unsigned line, const char | int config_parse_set_status(const char *unit, const char *filename, unsigne | |||
*section, const char *lvalue, int ltype, const char *rvalue, void *data, v | d line, const char *section, const char *lvalue, int ltype, const char *rva | |||
oid *userdata); | lue, void *data, void *userdata); | |||
int log_syntax_internal(const char *unit, int level, | ||||
const char *file, unsigned line, const char *func, | ||||
const char *config_file, unsigned config_line, | ||||
int error, const char *format, ...) _printf_attr_(9 | ||||
, 10); | ||||
#define log_syntax(unit, level, config_file, config_line, error, ...) \ | ||||
log_syntax_internal(unit, level, \ | ||||
__FILE__, __LINE__, __func__, \ | ||||
config_file, config_line, \ | ||||
error, __VA_ARGS__) | ||||
#define DEFINE_CONFIG_PARSE_ENUM(function,name,type,msg) \ | #define DEFINE_CONFIG_PARSE_ENUM(function,name,type,msg) \ | |||
int function( \ | int function(const char *unit, \ | |||
const char *filename, \ | const char *filename, \ | |||
unsigned line, \ | unsigned line, \ | |||
const char *section, \ | const char *section, \ | |||
const char *lvalue, \ | const char *lvalue, \ | |||
int ltype, \ | int ltype, \ | |||
const char *rvalue, \ | const char *rvalue, \ | |||
void *data, \ | void *data, \ | |||
void *userdata) { \ | void *userdata) { \ | |||
\ | \ | |||
type *i = data, x; \ | type *i = data, x; \ | |||
\ | \ | |||
assert(filename); \ | assert(filename); \ | |||
assert(lvalue); \ | assert(lvalue); \ | |||
assert(rvalue); \ | assert(rvalue); \ | |||
assert(data); \ | assert(data); \ | |||
\ | \ | |||
if ((x = name##_from_string(rvalue)) < 0) { \ | if ((x = name##_from_string(rvalue)) < 0) { \ | |||
log_error("[%s:%u] " msg ", ignoring: %s", filename | log_syntax(unit, LOG_ERR, filename, line, -x, \ | |||
, line, rvalue); \ | msg ", ignoring: %s", rvalue); \ | |||
return 0; \ | return 0; \ | |||
} \ | } \ | |||
\ | \ | |||
*i = x; \ | *i = x; \ | |||
\ | ||||
return 0; \ | return 0; \ | |||
} | } | |||
End of changes. 7 change blocks. | ||||
86 lines changed or deleted | 99 lines changed or added | |||
config.h | config.h | |||
---|---|---|---|---|
skipping to change at line 215 | skipping to change at line 215 | |||
/* Define to 1 if you have the <sys/time.h> header file. */ | /* Define to 1 if you have the <sys/time.h> header file. */ | |||
#define HAVE_SYS_TIME_H 1 | #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 | |||
/* Define to 1 if you have the <valgrind/memcheck.h> header file. */ | ||||
#define HAVE_VALGRIND_MEMCHECK_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 */ | /* Path of loadkeys */ | |||
skipping to change at line 247 | skipping to change at line 250 | |||
/* 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 201" | #define PACKAGE_STRING "systemd 202" | |||
/* 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 "201" | #define PACKAGE_VERSION "202" | |||
/* 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 | |||
skipping to change at line 307 | skipping to change at line 310 | |||
/* 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 "201" | #define VERSION "202" | |||
/* 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. 4 change blocks. | ||||
3 lines changed or deleted | 6 lines changed or added | |||
dbus-common.h | dbus-common.h | |||
---|---|---|---|---|
skipping to change at line 95 | skipping to change at line 95 | |||
"org.freedesktop.DBus.Peer\0" | "org.freedesktop.DBus.Peer\0" | |||
int bus_check_peercred(DBusConnection *c); | int bus_check_peercred(DBusConnection *c); | |||
int bus_connect(DBusBusType t, DBusConnection **_bus, bool *private_bus, DB usError *error); | int bus_connect(DBusBusType t, DBusConnection **_bus, bool *private_bus, DB usError *error); | |||
int bus_connect_system_ssh(const char *user, const char *host, DBusConnecti on **_bus, DBusError *error); | int bus_connect_system_ssh(const char *user, const char *host, DBusConnecti on **_bus, DBusError *error); | |||
int bus_connect_system_polkit(DBusConnection **_bus, DBusError *error); | int bus_connect_system_polkit(DBusConnection **_bus, DBusError *error); | |||
const char *bus_error_message(const DBusError *error); | const char *bus_error_message(const DBusError *error); | |||
const char *bus_error_message_or_strerror(const DBusError *error, int err); | const char *bus_error(const DBusError *e, int r); | |||
typedef int (*BusPropertyCallback)(DBusMessageIter *iter, const char *prope rty, void *data); | typedef int (*BusPropertyCallback)(DBusMessageIter *iter, const char *prope rty, void *data); | |||
typedef int (*BusPropertySetCallback)(DBusMessageIter *iter, const char *pr operty, void *data); | typedef int (*BusPropertySetCallback)(DBusMessageIter *iter, const char *pr operty, void *data); | |||
typedef struct BusProperty { | typedef struct BusProperty { | |||
const char *property; /* name of the property */ | const char *property; /* name of the property */ | |||
BusPropertyCallback append; /* Function that is called to seri alize this property */ | BusPropertyCallback append; /* Function that is called to seri alize this property */ | |||
const char *signature; | const char *signature; | |||
const uint16_t offset; /* Offset from BusBoundProperties: :base address to the property data. | const uint16_t offset; /* Offset from BusBoundProperties: :base address to the property data. | |||
* uint16_t is sufficient, because we have no structs too big. | * uint16_t is sufficient, because we have no structs too big. | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
env-util.h | env-util.h | |||
---|---|---|---|---|
skipping to change at line 33 | skipping to change at line 33 | |||
#include <stdbool.h> | #include <stdbool.h> | |||
#include <sys/types.h> | #include <sys/types.h> | |||
bool env_name_is_valid(const char *e); | bool env_name_is_valid(const char *e); | |||
bool env_value_is_valid(const char *e); | bool env_value_is_valid(const char *e); | |||
bool env_assignment_is_valid(const char *e); | bool env_assignment_is_valid(const char *e); | |||
bool strv_env_is_valid(char **e); | bool strv_env_is_valid(char **e); | |||
char **strv_env_clean(char **l); | char **strv_env_clean(char **l); | |||
char **strv_env_clean_log(char **e, const char *message); | ||||
bool strv_env_name_or_assignment_is_valid(char **l); | bool strv_env_name_or_assignment_is_valid(char **l); | |||
char **strv_env_merge(unsigned n_lists, ...); | char **strv_env_merge(unsigned n_lists, ...); | |||
char **strv_env_delete(char **x, unsigned n_lists, ...); /* New copy */ | char **strv_env_delete(char **x, unsigned n_lists, ...); /* New copy */ | |||
char **strv_env_set(char **x, const char *p); /* New copy ... */ | char **strv_env_set(char **x, const char *p); /* New copy ... */ | |||
char **strv_env_unset(char **l, const char *p); /* In place ... */ | char **strv_env_unset(char **l, const char *p); /* In place ... */ | |||
char *strv_env_get_n(char **l, const char *name, size_t k); | char *strv_env_get_n(char **l, const char *name, size_t k); | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 1 lines changed or added | |||
id128-constants.h | id128-constants.h | |||
---|---|---|---|---|
skipping to change at line 31 | skipping to change at line 31 | |||
add_id(m, "SD_MESSAGE_UNIT_RELOADING", SD_MESSAGE_UNIT_RELOADING) JOINER | add_id(m, "SD_MESSAGE_UNIT_RELOADING", SD_MESSAGE_UNIT_RELOADING) JOINER | |||
add_id(m, "SD_MESSAGE_UNIT_RELOADED", SD_MESSAGE_UNIT_RELOADED) JOINER | add_id(m, "SD_MESSAGE_UNIT_RELOADED", SD_MESSAGE_UNIT_RELOADED) JOINER | |||
add_id(m, "SD_MESSAGE_SPAWN_FAILED", SD_MESSAGE_SPAWN_FAILED) JOINER | add_id(m, "SD_MESSAGE_SPAWN_FAILED", SD_MESSAGE_SPAWN_FAILED) JOINER | |||
add_id(m, "SD_MESSAGE_FORWARD_SYSLOG_MISSED", SD_MESSAGE_FORWARD_SYSLOG_MIS SED) JOINER | add_id(m, "SD_MESSAGE_FORWARD_SYSLOG_MISSED", SD_MESSAGE_FORWARD_SYSLOG_MIS SED) JOINER | |||
add_id(m, "SD_MESSAGE_OVERMOUNTING", SD_MESSAGE_OVERMOUNTING) JOINER | add_id(m, "SD_MESSAGE_OVERMOUNTING", SD_MESSAGE_OVERMOUNTING) JOINER | |||
add_id(m, "SD_MESSAGE_LID_OPENED", SD_MESSAGE_LID_OPENED) JOINER | add_id(m, "SD_MESSAGE_LID_OPENED", SD_MESSAGE_LID_OPENED) JOINER | |||
add_id(m, "SD_MESSAGE_LID_CLOSED", SD_MESSAGE_LID_CLOSED) JOINER | add_id(m, "SD_MESSAGE_LID_CLOSED", SD_MESSAGE_LID_CLOSED) JOINER | |||
add_id(m, "SD_MESSAGE_POWER_KEY", SD_MESSAGE_POWER_KEY) JOINER | add_id(m, "SD_MESSAGE_POWER_KEY", SD_MESSAGE_POWER_KEY) JOINER | |||
add_id(m, "SD_MESSAGE_SUSPEND_KEY", SD_MESSAGE_SUSPEND_KEY) JOINER | add_id(m, "SD_MESSAGE_SUSPEND_KEY", SD_MESSAGE_SUSPEND_KEY) JOINER | |||
add_id(m, "SD_MESSAGE_HIBERNATE_KEY", SD_MESSAGE_HIBERNATE_KEY) JOINER | add_id(m, "SD_MESSAGE_HIBERNATE_KEY", SD_MESSAGE_HIBERNATE_KEY) JOINER | |||
add_id(m, "SD_MESSAGE_CONFIG_ERROR", SD_MESSAGE_CONFIG_ERROR) JOINER | ||||
add_id(m, "SD_MESSAGE_BOOTCHART", SD_MESSAGE_BOOTCHART) JOINER | ||||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 0 lines changed or added | |||
journal-internal.h | journal-internal.h | |||
---|---|---|---|---|
skipping to change at line 116 | skipping to change at line 116 | |||
Location current_location; | Location current_location; | |||
JournalFile *current_file; | JournalFile *current_file; | |||
uint64_t current_field; | uint64_t current_field; | |||
Hashmap *directories_by_path; | Hashmap *directories_by_path; | |||
Hashmap *directories_by_wd; | Hashmap *directories_by_wd; | |||
int inotify_fd; | int inotify_fd; | |||
Match *level0, *level1; | Match *level0, *level1, *level2; | |||
unsigned current_invalidate_counter, last_invalidate_counter; | unsigned current_invalidate_counter, last_invalidate_counter; | |||
char *unique_field; | char *unique_field; | |||
JournalFile *unique_file; | JournalFile *unique_file; | |||
uint64_t unique_offset; | uint64_t unique_offset; | |||
bool on_network; | bool on_network; | |||
size_t data_threshold; | size_t data_threshold; | |||
Set *errors; | Set *errors; | |||
usec_t last_process_usec; | usec_t last_process_usec; | |||
}; | }; | |||
char *journal_make_match_string(sd_journal *j); | char *journal_make_match_string(sd_journal *j); | |||
void journal_print_header(sd_journal *j); | void journal_print_header(sd_journal *j); | |||
static inline void journal_closep(sd_journal **j) { | ||||
sd_journal_close(*j); | ||||
} | ||||
#define _cleanup_journal_close_ _cleanup_(journal_closep) | ||||
End of changes. 2 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
journald-server.h | journald-server.h | |||
---|---|---|---|---|
skipping to change at line 138 | skipping to change at line 138 | |||
#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 */ | |||
const struct ConfigPerfItem* journald_gperf_lookup(const char *key, unsigne d length); | const struct ConfigPerfItem* journald_gperf_lookup(const char *key, unsigne d length); | |||
int config_parse_storage(const char *filename, unsigned line, const char *s ection, const char *lvalue, int ltype, const char *rvalue, void *data, void *userdata); | int config_parse_storage(const char *unit, const char *filename, unsigned l ine, const char *section, const char *lvalue, int ltype, const char *rvalue , void *data, void *userdata); | |||
const char *storage_to_string(Storage s); | const char *storage_to_string(Storage s); | |||
Storage storage_from_string(const char *s); | Storage storage_from_string(const char *s); | |||
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 *unit, const char *filename, unsigne d line, const char *section, const char *lvalue, int ltype, const char *rva lue, void *data, void *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_sync(Server *s); | |||
void server_vacuum(Server *s); | void server_vacuum(Server *s); | |||
End of changes. 2 change blocks. | ||||
2 lines changed or deleted | 2 lines changed or added | |||
load-fragment.h | load-fragment.h | |||
---|---|---|---|---|
skipping to change at line 32 | skipping to change at line 32 | |||
***/ | ***/ | |||
#include "unit.h" | #include "unit.h" | |||
/* Read service data from .desktop file style configuration fragments */ | /* Read service data from .desktop file style configuration fragments */ | |||
int unit_load_fragment(Unit *u); | int unit_load_fragment(Unit *u); | |||
void unit_dump_config_items(FILE *f); | void unit_dump_config_items(FILE *f); | |||
int config_parse_warn_compat(const char *filename, unsigned line, const cha | int config_parse_warn_compat(const char *unit, const char *filename, unsign | |||
r *section, const char *lvalue, int ltype, const char *rvalue, void *data, | ed line, const char *section, const char *lvalue, int ltype, const char *rv | |||
void *userdata); | alue, void *data, void *userdata); | |||
int config_parse_unit_deps(const char *filename, unsigned line, const char | int config_parse_unit_deps(const char *unit, const char *filename, unsigned | |||
*section, const char *lvalue, int ltype, const char *rvalue, void *data, vo | line, const char *section, const char *lvalue, int ltype, const char *rval | |||
id *userdata); | ue, void *data, void *userdata); | |||
int config_parse_unit_string_printf(const char *filename, unsigned line, co | int config_parse_unit_string_printf(const char *unit, const char *filename, | |||
nst char *section, const char *lvalue, int ltype, const char *rvalue, void | unsigned line, const char *section, const char *lvalue, int ltype, const c | |||
*data, void *userdata); | har *rvalue, void *data, void *userdata); | |||
int config_parse_unit_strv_printf(const char *filename, unsigned line, cons | int config_parse_unit_strv_printf(const char *unit, const char *filename, u | |||
t char *section, const char *lvalue, int ltype, const char *rvalue, void *d | nsigned line, const char *section, const char *lvalue, int ltype, const cha | |||
ata, void *userdata); | r *rvalue, void *data, void *userdata); | |||
int config_parse_unit_path_printf(const char *filename, unsigned line, cons | int config_parse_unit_path_printf(const char *unit, const char *filename, u | |||
t char *section, const char *lvalue, int ltype, const char *rvalue, void *d | nsigned line, const char *section, const char *lvalue, int ltype, const cha | |||
ata, void *userdata); | r *rvalue, void *data, void *userdata); | |||
int config_parse_documentation(const char *filename, unsigned line, const c | int config_parse_documentation(const char *unit, const char *filename, unsi | |||
har *section, const char *lvalue, int ltype, const char *rvalue, void *data | gned line, const char *section, const char *lvalue, int ltype, const char * | |||
, void *userdata); | rvalue, void *data, void *userdata); | |||
int config_parse_socket_listen(const char *filename, unsigned line, const c | int config_parse_socket_listen(const char *unit, const char *filename, unsi | |||
har *section, const char *lvalue, int ltype, const char *rvalue, void *data | gned line, const char *section, const char *lvalue, int ltype, const char * | |||
, void *userdata); | rvalue, void *data, void *userdata); | |||
int config_parse_socket_bind(const char *filename, unsigned line, const cha | int config_parse_socket_bind(const char *unit, const char *filename, unsign | |||
r *section, const char *lvalue, int ltype, const char *rvalue, void *data, | ed line, const char *section, const char *lvalue, int ltype, const char *rv | |||
void *userdata); | alue, void *data, void *userdata); | |||
int config_parse_exec_nice(const char *filename, unsigned line, const char | int config_parse_exec_nice(const char *unit, const char *filename, unsigned | |||
*section, const char *lvalue, int ltype, const char *rvalue, void *data, vo | line, const char *section, const char *lvalue, int ltype, const char *rval | |||
id *userdata); | ue, void *data, void *userdata); | |||
int config_parse_exec_oom_score_adjust(const char *filename, unsigned line, | int config_parse_exec_oom_score_adjust(const char *unit, const char *filena | |||
const char *section, const char *lvalue, int ltype, const char *rvalue, vo | me, unsigned line, const char *section, const char *lvalue, int ltype, cons | |||
id *data, void *userdata); | t char *rvalue, void *data, void *userdata); | |||
int config_parse_exec(const char *filename, unsigned line, const char *sect | int config_parse_exec(const char *unit, const char *filename, unsigned line | |||
ion, const char *lvalue, int ltype, const char *rvalue, void *data, void *u | , const char *section, const char *lvalue, int ltype, const char *rvalue, v | |||
serdata); | oid *data, void *userdata); | |||
int config_parse_service_timeout(const char *filename, unsigned line, const | int config_parse_service_timeout(const char *unit, const char *filename, un | |||
char *section, const char *lvalue, int ltype, const char *rvalue, void *da | signed line, const char *section, const char *lvalue, int ltype, const char | |||
ta, void *userdata); | *rvalue, void *data, void *userdata); | |||
int config_parse_service_type(const char *filename, unsigned line, const ch | int config_parse_service_type(const char *unit, const char *filename, unsig | |||
ar *section, const char *lvalue, int ltype, const char *rvalue, void *data, | ned line, const char *section, const char *lvalue, int ltype, const char *r | |||
void *userdata); | value, void *data, void *userdata); | |||
int config_parse_service_restart(const char *filename, unsigned line, const | int config_parse_service_restart(const char *unit, const char *filename, un | |||
char *section, const char *lvalue, int ltype, const char *rvalue, void *da | signed line, const char *section, const char *lvalue, int ltype, const char | |||
ta, void *userdata); | *rvalue, void *data, void *userdata); | |||
int config_parse_socket_bindtodevice(const char *filename, unsigned line, c | int config_parse_socket_bindtodevice(const char *unit, const char *filename | |||
onst char *section, const char *lvalue, int ltype, const char *rvalue, void | , unsigned line, const char *section, const char *lvalue, int ltype, const | |||
*data, void *userdata); | char *rvalue, void *data, void *userdata); | |||
int config_parse_output(const char *filename, unsigned line, const char *se | int config_parse_output(const char *unit, const char *filename, unsigned li | |||
ction, const char *lvalue, int ltype, const char *rvalue, void *data, void | ne, const char *section, const char *lvalue, int ltype, const char *rvalue, | |||
*userdata); | void *data, void *userdata); | |||
int config_parse_input(const char *filename, unsigned line, const char *sec | int config_parse_input(const char *unit, const char *filename, unsigned lin | |||
tion, const char *lvalue, int ltype, const char *rvalue, void *data, void * | e, const char *section, const char *lvalue, int ltype, const char *rvalue, | |||
userdata); | void *data, void *userdata); | |||
int config_parse_exec_io_class(const char *filename, unsigned line, const c | int config_parse_exec_io_class(const char *unit, const char *filename, unsi | |||
har *section, const char *lvalue, int ltype, const char *rvalue, void *data | gned line, const char *section, const char *lvalue, int ltype, const char * | |||
, void *userdata); | rvalue, void *data, void *userdata); | |||
int config_parse_exec_io_priority(const char *filename, unsigned line, cons | int config_parse_exec_io_priority(const char *unit, const char *filename, u | |||
t char *section, const char *lvalue, int ltype, const char *rvalue, void *d | nsigned line, const char *section, const char *lvalue, int ltype, const cha | |||
ata, void *userdata); | r *rvalue, void *data, void *userdata); | |||
int config_parse_exec_cpu_sched_policy(const char *filename, unsigned line, | int config_parse_exec_cpu_sched_policy(const char *unit, const char *filena | |||
const char *section, const char *lvalue, int ltype, const char *rvalue, vo | me, unsigned line, const char *section, const char *lvalue, int ltype, cons | |||
id *data, void *userdata); | t char *rvalue, void *data, void *userdata); | |||
int config_parse_exec_cpu_sched_prio(const char *filename, unsigned line, c | int config_parse_exec_cpu_sched_prio(const char *unit, const char *filename | |||
onst char *section, const char *lvalue, int ltype, const char *rvalue, void | , unsigned line, const char *section, const char *lvalue, int ltype, const | |||
*data, void *userdata); | char *rvalue, void *data, void *userdata); | |||
int config_parse_exec_cpu_affinity(const char *filename, unsigned line, con | int config_parse_exec_cpu_affinity(const char *unit, const char *filename, | |||
st char *section, const char *lvalue, int ltype, const char *rvalue, void * | unsigned line, const char *section, const char *lvalue, int ltype, const ch | |||
data, void *userdata); | ar *rvalue, void *data, void *userdata); | |||
int config_parse_exec_capabilities(const char *filename, unsigned line, con | int config_parse_exec_capabilities(const char *unit, const char *filename, | |||
st char *section, const char *lvalue, int ltype, const char *rvalue, void * | unsigned line, const char *section, const char *lvalue, int ltype, const ch | |||
data, void *userdata); | ar *rvalue, void *data, void *userdata); | |||
int config_parse_exec_secure_bits(const char *filename, unsigned line, cons | int config_parse_exec_secure_bits(const char *unit, const char *filename, u | |||
t char *section, const char *lvalue, int ltype, const char *rvalue, void *d | nsigned line, const char *section, const char *lvalue, int ltype, const cha | |||
ata, void *userdata); | r *rvalue, void *data, void *userdata); | |||
int config_parse_bounding_set(const char *filename, unsigned line, const ch | int config_parse_bounding_set(const char *unit, const char *filename, unsig | |||
ar *section, const char *lvalue, int ltype, const char *rvalue, void *data, | ned line, const char *section, const char *lvalue, int ltype, const char *r | |||
void *userdata); | value, void *data, void *userdata); | |||
int config_parse_limit(const char *filename, unsigned line, const char *sec | int config_parse_limit(const char *unit, const char *filename, unsigned lin | |||
tion, const char *lvalue, int ltype, const char *rvalue, void *data, void * | e, const char *section, const char *lvalue, int ltype, const char *rvalue, | |||
userdata); | void *data, void *userdata); | |||
int config_parse_unit_cgroup(const char *filename, unsigned line, const cha | int config_parse_unit_cgroup(const char *unit, const char *filename, unsign | |||
r *section, const char *lvalue, int ltype, const char *rvalue, void *data, | ed line, const char *section, const char *lvalue, int ltype, const char *rv | |||
void *userdata); | alue, void *data, void *userdata); | |||
int config_parse_sysv_priority(const char *filename, unsigned line, const c | int config_parse_sysv_priority(const char *unit, const char *filename, unsi | |||
har *section, const char *lvalue, int ltype, const char *rvalue, void *data | gned line, const char *section, const char *lvalue, int ltype, const char * | |||
, void *userdata); | rvalue, void *data, void *userdata); | |||
int config_parse_fsck_passno(const char *filename, unsigned line, const cha | int config_parse_fsck_passno(const char *unit, const char *filename, unsign | |||
r *section, const char *lvalue, int ltype, const char *rvalue, void *data, | ed line, const char *section, const char *lvalue, int ltype, const char *rv | |||
void *userdata); | alue, void *data, void *userdata); | |||
int config_parse_kill_signal(const char *filename, unsigned line, const cha | int config_parse_kill_signal(const char *unit, const char *filename, unsign | |||
r *section, const char *lvalue, int ltype, const char *rvalue, void *data, | ed line, const char *section, const char *lvalue, int ltype, const char *rv | |||
void *userdata); | alue, void *data, void *userdata); | |||
int config_parse_exec_mount_flags(const char *filename, unsigned line, cons | int config_parse_exec_mount_flags(const char *unit, const char *filename, u | |||
t char *section, const char *lvalue, int ltype, const char *rvalue, void *d | nsigned line, const char *section, const char *lvalue, int ltype, const cha | |||
ata, void *userdata); | r *rvalue, void *data, void *userdata); | |||
int config_parse_timer(const char *filename, unsigned line, const char *sec | int config_parse_timer(const char *unit, const char *filename, unsigned lin | |||
tion, const char *lvalue, int ltype, const char *rvalue, void *data, void * | e, const char *section, const char *lvalue, int ltype, const char *rvalue, | |||
userdata); | void *data, void *userdata); | |||
int config_parse_timer_unit(const char *filename, unsigned line, const char | int config_parse_timer_unit(const char *unit, const char *filename, unsigne | |||
*section, const char *lvalue, int ltype, const char *rvalue, void *data, v | d line, const char *section, const char *lvalue, int ltype, const char *rva | |||
oid *userdata); | lue, void *data, void *userdata); | |||
int config_parse_path_spec(const char *filename, unsigned line, const char | int config_parse_path_spec(const char *unit, const char *filename, unsigned | |||
*section, const char *lvalue, int ltype, const char *rvalue, void *data, vo | line, const char *section, const char *lvalue, int ltype, const char *rval | |||
id *userdata); | ue, void *data, void *userdata); | |||
int config_parse_path_unit(const char *filename, unsigned line, const char | int config_parse_path_unit(const char *unit, const char *filename, unsigned | |||
*section, const char *lvalue, int ltype, const char *rvalue, void *data, vo | line, const char *section, const char *lvalue, int ltype, const char *rval | |||
id *userdata); | ue, void *data, void *userdata); | |||
int config_parse_socket_service(const char *filename, unsigned line, const | int config_parse_socket_service(const char *unit, const char *filename, uns | |||
char *section, const char *lvalue, int ltype, const char *rvalue, void *dat | igned line, const char *section, const char *lvalue, int ltype, const char | |||
a, void *userdata); | *rvalue, void *data, void *userdata); | |||
int config_parse_service_sockets(const char *filename, unsigned line, const | int config_parse_service_sockets(const char *unit, const char *filename, un | |||
char *section, const char *lvalue, int ltype, const char *rvalue, void *da | signed line, const char *section, const char *lvalue, int ltype, const char | |||
ta, void *userdata); | *rvalue, void *data, void *userdata); | |||
int config_parse_unit_env_file(const char *filename, unsigned line, const c | int config_parse_unit_env_file(const char *unit, const char *filename, unsi | |||
har *section, const char *lvalue, int ltype, const char *rvalue, void *data | gned line, const char *section, const char *lvalue, int ltype, const char * | |||
, void *userdata); | rvalue, void *data, void *userdata); | |||
int config_parse_ip_tos(const char *filename, unsigned line, const char *se | int config_parse_ip_tos(const char *unit, const char *filename, unsigned li | |||
ction, const char *lvalue, int ltype, const char *rvalue, void *data, void | ne, const char *section, const char *lvalue, int ltype, const char *rvalue, | |||
*userdata); | void *data, void *userdata); | |||
int config_parse_unit_condition_path(const char *filename, unsigned line, c | int config_parse_unit_condition_path(const char *unit, const char *filename | |||
onst char *section, const char *lvalue, int ltype, const char *rvalue, void | , unsigned line, const char *section, const char *lvalue, int ltype, const | |||
*data, void *userdata); | char *rvalue, void *data, void *userdata); | |||
int config_parse_unit_condition_string(const char *filename, unsigned line, | int config_parse_unit_condition_string(const char *unit, const char *filena | |||
const char *section, const char *lvalue, int ltype, const char *rvalue, vo | me, unsigned line, const char *section, const char *lvalue, int ltype, cons | |||
id *data, void *userdata); | t char *rvalue, void *data, void *userdata); | |||
int config_parse_unit_condition_null(const char *filename, unsigned line, c | int config_parse_unit_condition_null(const char *unit, const char *filename | |||
onst char *section, const char *lvalue, int ltype, const char *rvalue, void | , unsigned line, const char *section, const char *lvalue, int ltype, const | |||
*data, void *userdata); | char *rvalue, void *data, void *userdata); | |||
int config_parse_kill_mode(const char *filename, unsigned line, const char | int config_parse_kill_mode(const char *unit, const char *filename, unsigned | |||
*section, const char *lvalue, int ltype, const char *rvalue, void *data, vo | line, const char *section, const char *lvalue, int ltype, const char *rval | |||
id *userdata); | ue, void *data, void *userdata); | |||
int config_parse_notify_access(const char *filename, unsigned line, const c | int config_parse_notify_access(const char *unit, const char *filename, unsi | |||
har *section, const char *lvalue, int ltype, const char *rvalue, void *data | gned line, const char *section, const char *lvalue, int ltype, const char * | |||
, void *userdata); | rvalue, void *data, void *userdata); | |||
int config_parse_start_limit_action(const char *filename, unsigned line, co | int config_parse_start_limit_action(const char *unit, const char *filename, | |||
nst char *section, const char *lvalue, int ltype, const char *rvalue, void | unsigned line, const char *section, const char *lvalue, int ltype, const c | |||
*data, void *userdata); | har *rvalue, void *data, void *userdata); | |||
int config_parse_unit_cgroup_attr(const char *filename, unsigned line, cons | int config_parse_unit_cgroup_attr(const char *unit, const char *filename, u | |||
t char *section, const char *lvalue, int ltype, const char *rvalue, void *d | nsigned line, const char *section, const char *lvalue, int ltype, const cha | |||
ata, void *userdata); | r *rvalue, void *data, void *userdata); | |||
int config_parse_unit_cgroup_attr_pretty(const char *filename, unsigned lin | int config_parse_unit_cgroup_attr_pretty(const char *unit, const char *file | |||
e, const char *section, const char *lvalue, int ltype, const char *rvalue, | name, unsigned line, const char *section, const char *lvalue, int ltype, co | |||
void *data, void *userdata); | nst char *rvalue, void *data, void *userdata); | |||
int config_parse_unit_requires_mounts_for(const char *filename, unsigned li | int config_parse_unit_requires_mounts_for(const char *unit, const char *fil | |||
ne, const char *section, const char *lvalue, int ltype, const char *rvalue, | ename, unsigned line, const char *section, const char *lvalue, int ltype, c | |||
void *data, void *userdata); | onst char *rvalue, void *data, void *userdata); | |||
int config_parse_syscall_filter(const char *filename, unsigned line, const | int config_parse_syscall_filter(const char *unit, const char *filename, uns | |||
char *section, const char *lvalue, int ltype, const char *rvalue, void *dat | igned line, const char *section, const char *lvalue, int ltype, const char | |||
a, void *userdata); | *rvalue, void *data, void *userdata); | |||
int config_parse_environ(const char *filename, unsigned line, const char *s | int config_parse_environ(const char *unit, const char *filename, unsigned l | |||
ection, const char *lvalue, int ltype, const char *rvalue, void *data, void | ine, const char *section, const char *lvalue, int ltype, const char *rvalue | |||
*userdata); | , void *data, void *userdata); | |||
/* gperf prototypes */ | /* gperf prototypes */ | |||
const struct ConfigPerfItem* load_fragment_gperf_lookup(const char *key, un signed length); | const struct ConfigPerfItem* load_fragment_gperf_lookup(const char *key, un signed length); | |||
extern const char load_fragment_gperf_nulstr[]; | extern const char load_fragment_gperf_nulstr[]; | |||
End of changes. 1 change blocks. | ||||
150 lines changed or deleted | 150 lines changed or added | |||
logind-action.h | logind-action.h | |||
---|---|---|---|---|
skipping to change at line 52 | skipping to change at line 52 | |||
int manager_handle_action( | int manager_handle_action( | |||
Manager *m, | Manager *m, | |||
InhibitWhat inhibit_key, | InhibitWhat inhibit_key, | |||
HandleAction handle, | HandleAction handle, | |||
bool ignore_inhibited, | bool ignore_inhibited, | |||
bool is_edge); | bool is_edge); | |||
const char* handle_action_to_string(HandleAction h); | const char* handle_action_to_string(HandleAction h); | |||
HandleAction handle_action_from_string(const char *s); | HandleAction handle_action_from_string(const char *s); | |||
int config_parse_handle_action(const char *filename, unsigned line, const c har *section, const char *lvalue, int ltype, const char *rvalue, void *data , void *userdata); | int config_parse_handle_action(const char *unit, const char *filename, unsi gned line, const char *section, const char *lvalue, int ltype, const char * rvalue, void *data, void *userdata); | |||
#endif | #endif | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
logind-session.h | logind-session.h | |||
---|---|---|---|---|
skipping to change at line 40 | skipping to change at line 40 | |||
#include "logind-user.h" | #include "logind-user.h" | |||
typedef enum SessionState { | typedef enum SessionState { | |||
SESSION_ONLINE, /* Logged in */ | SESSION_ONLINE, /* Logged in */ | |||
SESSION_ACTIVE, /* Logged in and in the fg */ | SESSION_ACTIVE, /* Logged in and in the fg */ | |||
SESSION_CLOSING, /* Logged out, but processes still remain */ | SESSION_CLOSING, /* Logged out, but processes still remain */ | |||
_SESSION_STATE_MAX, | _SESSION_STATE_MAX, | |||
_SESSION_STATE_INVALID = -1 | _SESSION_STATE_INVALID = -1 | |||
} SessionState; | } SessionState; | |||
typedef enum SessionType { | ||||
SESSION_UNSPECIFIED, | ||||
SESSION_TTY, | ||||
SESSION_X11, | ||||
_SESSION_TYPE_MAX, | ||||
_SESSION_TYPE_INVALID = -1 | ||||
} SessionType; | ||||
typedef enum SessionClass { | typedef enum SessionClass { | |||
SESSION_USER, | SESSION_USER, | |||
SESSION_GREETER, | SESSION_GREETER, | |||
SESSION_LOCK_SCREEN, | SESSION_LOCK_SCREEN, | |||
SESSION_BACKGROUND, | ||||
_SESSION_CLASS_MAX, | _SESSION_CLASS_MAX, | |||
_SESSION_CLASS_INVALID = -1 | _SESSION_CLASS_INVALID = -1 | |||
} SessionClass; | } SessionClass; | |||
typedef enum SessionType { | ||||
SESSION_UNSPECIFIED, | ||||
SESSION_TTY, | ||||
SESSION_X11, | ||||
_SESSION_TYPE_MAX, | ||||
_SESSION_TYPE_INVALID = -1 | ||||
} SessionType; | ||||
typedef enum KillWho { | typedef enum KillWho { | |||
KILL_LEADER, | KILL_LEADER, | |||
KILL_ALL, | KILL_ALL, | |||
_KILL_WHO_MAX, | _KILL_WHO_MAX, | |||
_KILL_WHO_INVALID = -1 | _KILL_WHO_INVALID = -1 | |||
} KillWho; | } KillWho; | |||
struct Session { | struct Session { | |||
Manager *manager; | Manager *manager; | |||
End of changes. 3 change blocks. | ||||
8 lines changed or deleted | 9 lines changed or added | |||
macro.h | macro.h | |||
---|---|---|---|---|
skipping to change at line 48 | skipping to change at line 48 | |||
#define _packed_ __attribute__ ((packed)) | #define _packed_ __attribute__ ((packed)) | |||
#define _malloc_ __attribute__ ((malloc)) | #define _malloc_ __attribute__ ((malloc)) | |||
#define _weak_ __attribute__ ((weak)) | #define _weak_ __attribute__ ((weak)) | |||
#define _likely_(x) (__builtin_expect(!!(x),1)) | #define _likely_(x) (__builtin_expect(!!(x),1)) | |||
#define _unlikely_(x) (__builtin_expect(!!(x),0)) | #define _unlikely_(x) (__builtin_expect(!!(x),0)) | |||
#define _public_ __attribute__ ((visibility("default"))) | #define _public_ __attribute__ ((visibility("default"))) | |||
#define _hidden_ __attribute__ ((visibility("hidden"))) | #define _hidden_ __attribute__ ((visibility("hidden"))) | |||
#define _weakref_(x) __attribute__((weakref(#x))) | #define _weakref_(x) __attribute__((weakref(#x))) | |||
#define _introspect_(x) __attribute__((section("introspect." x))) | #define _introspect_(x) __attribute__((section("introspect." x))) | |||
#define _alignas_(x) __attribute__((aligned(__alignof(x)))) | #define _alignas_(x) __attribute__((aligned(__alignof(x)))) | |||
#define _cleanup_(x) __attribute__((cleanup(x))) | ||||
/* automake test harness */ | /* automake test harness */ | |||
#define EXIT_TEST_SKIP 77 | #define EXIT_TEST_SKIP 77 | |||
#define XSTRINGIFY(x) #x | #define XSTRINGIFY(x) #x | |||
#define STRINGIFY(x) XSTRINGIFY(x) | #define STRINGIFY(x) XSTRINGIFY(x) | |||
/* Rounds up */ | /* Rounds up */ | |||
#define ALIGN(l) ALIGN_TO((l), sizeof(void*)) | ||||
#define ALIGN4(l) (((l) + 3) & ~3) | ||||
#define ALIGN8(l) (((l) + 7) & ~7) | ||||
#if __SIZEOF_POINTER__ == 8 | ||||
#define ALIGN(l) ALIGN8(l) | ||||
#elif __SIZEOF_POINTER__ == 4 | ||||
#define ALIGN(l) ALIGN4(l) | ||||
#else | ||||
#error "Wut? Pointers are neither 4 nor 8 bytes long?" | ||||
#endif | ||||
#define ALIGN_PTR(p) ((void*) ALIGN((unsigned long) p)) | ||||
#define ALIGN4_PTR(p) ((void*) ALIGN4((unsigned long) p)) | ||||
#define ALIGN8_PTR(p) ((void*) ALIGN8((unsigned long) p)) | ||||
static inline size_t ALIGN_TO(size_t l, size_t ali) { | static inline size_t ALIGN_TO(size_t l, size_t ali) { | |||
return ((l + ali - 1) & ~(ali - 1)); | return ((l + ali - 1) & ~(ali - 1)); | |||
} | } | |||
#define ALIGN_TO_PTR(p, ali) ((void*) ALIGN_TO((unsigned long) p)) | ||||
#define ELEMENTSOF(x) (sizeof(x)/sizeof((x)[0])) | #define ELEMENTSOF(x) (sizeof(x)/sizeof((x)[0])) | |||
/* | /* | |||
* container_of - cast a member of a structure out to the containing struct ure | * container_of - cast a member of a structure out to the containing struct ure | |||
* @ptr: the pointer to the member. | * @ptr: the pointer to the member. | |||
* @type: the type of the container struct this is embedded in. | * @type: the type of the container struct this is embedded in. | |||
* @member: the name of the member within the struct. | * @member: the name of the member within the struct. | |||
* | * | |||
*/ | */ | |||
#define container_of(ptr, type, member) \ | #define container_of(ptr, type, member) \ | |||
skipping to change at line 204 | skipping to change at line 222 | |||
sub = MIN(i[j].iov_len, k); | sub = MIN(i[j].iov_len, k); | |||
i[j].iov_len -= sub; | i[j].iov_len -= sub; | |||
i[j].iov_base = (uint8_t*) i[j].iov_base + sub; | i[j].iov_base = (uint8_t*) i[j].iov_base + sub; | |||
k -= sub; | k -= sub; | |||
} | } | |||
return k; | return k; | |||
} | } | |||
#define _cleanup_free_ __attribute__((cleanup(freep))) | ||||
#define _cleanup_fclose_ __attribute__((cleanup(fclosep))) | ||||
#define _cleanup_pclose_ __attribute__((cleanup(pclosep))) | ||||
#define _cleanup_close_ __attribute__((cleanup(closep))) | ||||
#define _cleanup_closedir_ __attribute__((cleanup(closedirp))) | ||||
#define _cleanup_umask_ __attribute__((cleanup(umaskp))) | ||||
#define _cleanup_set_free_ __attribute__((cleanup(set_freep))) | ||||
#define _cleanup_set_free_free_ __attribute__((cleanup(set_free_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*); \ | |||
continue; \ | continue; \ | |||
End of changes. 4 change blocks. | ||||
12 lines changed or deleted | 19 lines changed or added | |||
namespace.h | namespace.h | |||
---|---|---|---|---|
skipping to change at line 26 | skipping to change at line 26 | |||
WITHOUT ANY WARRANTY; without even the implied warranty of | WITHOUT ANY WARRANTY; without even the implied warranty of | |||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |||
Lesser General Public License for more details. | Lesser General Public License for more details. | |||
You should have received a copy of the GNU Lesser General Public License | You should have received a copy of the GNU Lesser General Public License | |||
along with systemd; If not, see <http://www.gnu.org/licenses/>. | along with systemd; If not, see <http://www.gnu.org/licenses/>. | |||
***/ | ***/ | |||
#include <stdbool.h> | #include <stdbool.h> | |||
typedef struct ExecContext ExecContext; | ||||
int setup_tmpdirs(char **tmp_dir, char **var_tmp_dir); | int setup_tmpdirs(char **tmp_dir, char **var_tmp_dir); | |||
int setup_namespace(char **read_write_dirs, | int setup_namespace(char **read_write_dirs, | |||
char **read_only_dirs, | char **read_only_dirs, | |||
char **inaccessible_dirs, | char **inaccessible_dirs, | |||
char *tmp_dir, | char *tmp_dir, | |||
char *var_tmp_dir, | char *var_tmp_dir, | |||
bool private_tmp, | bool private_tmp, | |||
unsigned mount_flags); | unsigned mount_flags); | |||
End of changes. 1 change blocks. | ||||
2 lines changed or deleted | 0 lines changed or added | |||
path-util.h | path-util.h | |||
---|---|---|---|---|
skipping to change at line 43 | skipping to change at line 43 | |||
char *path_kill_slashes(char *path); | char *path_kill_slashes(char *path); | |||
char *path_startswith(const char *path, const char *prefix); | char *path_startswith(const char *path, const char *prefix); | |||
bool path_equal(const char *a, const char *b); | bool path_equal(const char *a, const char *b); | |||
char **path_strv_make_absolute_cwd(char **l); | char **path_strv_make_absolute_cwd(char **l); | |||
char **path_strv_canonicalize(char **l); | char **path_strv_canonicalize(char **l); | |||
char **path_strv_canonicalize_uniq(char **l); | char **path_strv_canonicalize_uniq(char **l); | |||
int path_is_mount_point(const char *path, bool allow_symlink); | int path_is_mount_point(const char *path, bool allow_symlink); | |||
int path_is_read_only_fs(const char *path); | int path_is_read_only_fs(const char *path); | |||
int path_is_os_tree(const char *path); | ||||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 0 lines changed or added | |||
sd-bus-protocol.h | sd-bus-protocol.h | |||
---|---|---|---|---|
skipping to change at line 69 | skipping to change at line 69 | |||
SD_BUS_TYPE_ARRAY = 'a', | SD_BUS_TYPE_ARRAY = 'a', | |||
SD_BUS_TYPE_VARIANT = 'v', | SD_BUS_TYPE_VARIANT = 'v', | |||
SD_BUS_TYPE_STRUCT = 'r', /* not actually used in signatu res */ | SD_BUS_TYPE_STRUCT = 'r', /* not actually used in signatu res */ | |||
SD_BUS_TYPE_STRUCT_BEGIN = '(', | SD_BUS_TYPE_STRUCT_BEGIN = '(', | |||
SD_BUS_TYPE_STRUCT_END = ')', | SD_BUS_TYPE_STRUCT_END = ')', | |||
SD_BUS_TYPE_DICT_ENTRY = 'e', /* not actually used in signatu res */ | SD_BUS_TYPE_DICT_ENTRY = 'e', /* not actually used in signatu res */ | |||
SD_BUS_TYPE_DICT_ENTRY_BEGIN = '{', | SD_BUS_TYPE_DICT_ENTRY_BEGIN = '{', | |||
SD_BUS_TYPE_DICT_ENTRY_END = '}', | SD_BUS_TYPE_DICT_ENTRY_END = '}', | |||
}; | }; | |||
/* Endianess */ | /* Endianness */ | |||
enum { | enum { | |||
_SD_BUS_INVALID_ENDIAN = 0, | _SD_BUS_INVALID_ENDIAN = 0, | |||
SD_BUS_LITTLE_ENDIAN = 'l', | SD_BUS_LITTLE_ENDIAN = 'l', | |||
SD_BUS_BIG_ENDIAN = 'B', | SD_BUS_BIG_ENDIAN = 'B', | |||
#if __BYTE_ORDER == __BIG_ENDIAN | #if __BYTE_ORDER == __BIG_ENDIAN | |||
SD_BUS_NATIVE_ENDIAN = SD_BUS_BIG_ENDIAN, | SD_BUS_NATIVE_ENDIAN = SD_BUS_BIG_ENDIAN, | |||
SD_BUS_REVERSE_ENDIAN = SD_BUS_LITTLE_ENDIAN | SD_BUS_REVERSE_ENDIAN = SD_BUS_LITTLE_ENDIAN | |||
#else | #else | |||
SD_BUS_NATIVE_ENDIAN = SD_BUS_LITTLE_ENDIAN, | SD_BUS_NATIVE_ENDIAN = SD_BUS_LITTLE_ENDIAN, | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
sd-bus.h | sd-bus.h | |||
---|---|---|---|---|
skipping to change at line 36 | skipping to change at line 36 | |||
#include <sys/types.h> | #include <sys/types.h> | |||
#include <sd-id128.h> | #include <sd-id128.h> | |||
#include "sd-bus-protocol.h" | #include "sd-bus-protocol.h" | |||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" { | extern "C" { | |||
#endif | #endif | |||
/* TODO: | /* TODO: | |||
* - rewrite message_read_ap() and message_append_ap() to be non-recursive. | ||||
* | ||||
* - add page donation logic | * - add page donation logic | |||
* - api for appending/reading fixed arrays | * - api for appending/reading fixed arrays | |||
* - merge busctl into systemctl or so? | * - merge busctl into systemctl or so? | |||
* - default policy (allow uid == 0 and our own uid) | * - default policy (allow uid == 0 and our own uid) | |||
* | ||||
* - enforce alignment of pointers passed in | ||||
* - negotiation for attach attributes | ||||
*/ | */ | |||
typedef struct sd_bus sd_bus; | typedef struct sd_bus sd_bus; | |||
typedef struct sd_bus_message sd_bus_message; | typedef struct sd_bus_message sd_bus_message; | |||
typedef struct { | typedef struct { | |||
const char *name; | const char *name; | |||
const char *message; | const char *message; | |||
int need_free; | int need_free; | |||
} sd_bus_error; | } sd_bus_error; | |||
skipping to change at line 125 | skipping to change at line 126 | |||
int sd_bus_message_get_reply_serial(sd_bus_message *m, uint64_t *serial); | int sd_bus_message_get_reply_serial(sd_bus_message *m, uint64_t *serial); | |||
int sd_bus_message_get_no_reply(sd_bus_message *m); | int sd_bus_message_get_no_reply(sd_bus_message *m); | |||
const char *sd_bus_message_get_path(sd_bus_message *m); | const char *sd_bus_message_get_path(sd_bus_message *m); | |||
const char *sd_bus_message_get_interface(sd_bus_message *m); | const char *sd_bus_message_get_interface(sd_bus_message *m); | |||
const char *sd_bus_message_get_member(sd_bus_message *m); | const char *sd_bus_message_get_member(sd_bus_message *m); | |||
const char *sd_bus_message_get_destination(sd_bus_message *m); | const char *sd_bus_message_get_destination(sd_bus_message *m); | |||
const char *sd_bus_message_get_sender(sd_bus_message *m); | const char *sd_bus_message_get_sender(sd_bus_message *m); | |||
const sd_bus_error *sd_bus_message_get_error(sd_bus_message *m); | const sd_bus_error *sd_bus_message_get_error(sd_bus_message *m); | |||
int sd_bus_message_get_monotonic_timestamp(sd_bus_message *m, uint64_t *use | ||||
c); | ||||
int sd_bus_message_get_realtime_timestamp(sd_bus_message *m, uint64_t *usec | ||||
); | ||||
int sd_bus_message_get_uid(sd_bus_message *m, uid_t *uid); | int sd_bus_message_get_uid(sd_bus_message *m, uid_t *uid); | |||
int sd_bus_message_get_gid(sd_bus_message *m, gid_t *gid); | int sd_bus_message_get_gid(sd_bus_message *m, gid_t *gid); | |||
int sd_bus_message_get_pid(sd_bus_message *m, pid_t *pid); | int sd_bus_message_get_pid(sd_bus_message *m, pid_t *pid); | |||
int sd_bus_message_get_tid(sd_bus_message *m, pid_t *tid); | int sd_bus_message_get_tid(sd_bus_message *m, pid_t *tid); | |||
const char *sd_bus_message_get_label(sd_bus_message *m); | int sd_bus_message_get_pid_starttime(sd_bus_message *m, uint64_t *usec); | |||
int sd_bus_message_get_selinux_context(sd_bus_message *m, const char **r); | ||||
int sd_bus_message_get_comm(sd_bus_message *m, const char **r); | ||||
int sd_bus_message_get_tid_comm(sd_bus_message *m, const char **r); | ||||
int sd_bus_message_get_exe(sd_bus_message *m, const char **r); | ||||
int sd_bus_message_get_cgroup(sd_bus_message *m, const char **r); | ||||
int sd_bus_message_get_cmdline(sd_bus_message *m, char ***cmdline); | ||||
int sd_bus_message_get_unit(sd_bus_message *m, const char **unit); | ||||
int sd_bus_message_get_user_unit(sd_bus_message *m, const char **unit); | ||||
int sd_bus_message_get_session(sd_bus_message *m, const char **session); | ||||
int sd_bus_message_is_signal(sd_bus_message *m, const char *interface, cons t char *member); | int sd_bus_message_is_signal(sd_bus_message *m, const char *interface, cons t char *member); | |||
int sd_bus_message_is_method_call(sd_bus_message *m, const char *interface, const char *member); | int sd_bus_message_is_method_call(sd_bus_message *m, const char *interface, const char *member); | |||
int sd_bus_message_is_method_error(sd_bus_message *m, const char *name); | int sd_bus_message_is_method_error(sd_bus_message *m, const char *name); | |||
int sd_bus_message_set_no_reply(sd_bus_message *m, int b); | int sd_bus_message_set_no_reply(sd_bus_message *m, int b); | |||
int sd_bus_message_set_destination(sd_bus_message *m, const char *destinati on); | int sd_bus_message_set_destination(sd_bus_message *m, const char *destinati on); | |||
int sd_bus_message_append(sd_bus_message *m, const char *types, ...); | int sd_bus_message_append(sd_bus_message *m, const char *types, ...); | |||
int sd_bus_message_append_basic(sd_bus_message *m, char type, const void *p ); | int sd_bus_message_append_basic(sd_bus_message *m, char type, const void *p ); | |||
End of changes. 4 change blocks. | ||||
3 lines changed or deleted | 17 lines changed or added | |||
sd-journal.h | sd-journal.h | |||
---|---|---|---|---|
skipping to change at line 109 | skipping to change at line 109 | |||
int sd_journal_set_data_threshold(sd_journal *j, size_t sz); | int sd_journal_set_data_threshold(sd_journal *j, size_t sz); | |||
int sd_journal_get_data_threshold(sd_journal *j, size_t *sz); | int sd_journal_get_data_threshold(sd_journal *j, size_t *sz); | |||
int sd_journal_get_data(sd_journal *j, const char *field, const void **data , size_t *l); | int sd_journal_get_data(sd_journal *j, const char *field, const void **data , size_t *l); | |||
int sd_journal_enumerate_data(sd_journal *j, const void **data, size_t *l); | int sd_journal_enumerate_data(sd_journal *j, const void **data, size_t *l); | |||
void sd_journal_restart_data(sd_journal *j); | void sd_journal_restart_data(sd_journal *j); | |||
int sd_journal_add_match(sd_journal *j, const void *data, size_t size); | int sd_journal_add_match(sd_journal *j, const void *data, size_t size); | |||
int sd_journal_add_disjunction(sd_journal *j); | int sd_journal_add_disjunction(sd_journal *j); | |||
int sd_journal_add_conjunction(sd_journal *j); | ||||
void sd_journal_flush_matches(sd_journal *j); | void sd_journal_flush_matches(sd_journal *j); | |||
int sd_journal_seek_head(sd_journal *j); | int sd_journal_seek_head(sd_journal *j); | |||
int sd_journal_seek_tail(sd_journal *j); | int sd_journal_seek_tail(sd_journal *j); | |||
int sd_journal_seek_monotonic_usec(sd_journal *j, sd_id128_t boot_id, uint6 4_t usec); | int sd_journal_seek_monotonic_usec(sd_journal *j, sd_id128_t boot_id, uint6 4_t usec); | |||
int sd_journal_seek_realtime_usec(sd_journal *j, uint64_t usec); | int sd_journal_seek_realtime_usec(sd_journal *j, uint64_t usec); | |||
int sd_journal_seek_cursor(sd_journal *j, const char *cursor); | int sd_journal_seek_cursor(sd_journal *j, const char *cursor); | |||
int sd_journal_get_cursor(sd_journal *j, char **cursor); | int sd_journal_get_cursor(sd_journal *j, char **cursor); | |||
int sd_journal_test_cursor(sd_journal *j, const char *cursor); | int sd_journal_test_cursor(sd_journal *j, const char *cursor); | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 1 lines changed or added | |||
sd-login.h | sd-login.h | |||
---|---|---|---|---|
skipping to change at line 65 | skipping to change at line 65 | |||
* user. */ | * user. */ | |||
int sd_pid_get_session(pid_t pid, char **session); | int sd_pid_get_session(pid_t pid, char **session); | |||
/* Get UID of the owner of the session of the PID (or in case the | /* Get UID of the owner of the session of the PID (or in case the | |||
* process is a 'shared' user process the UID of that user is | * process is a 'shared' user process the UID of that user is | |||
* returned). This will not return the UID of the process, but rather | * returned). This will not return the UID of the process, but rather | |||
* the UID of the owner of the cgroup the process is in. This will | * the UID of the owner of the cgroup the process is in. This will | |||
* return an error for system processes. */ | * return an error for system processes. */ | |||
int sd_pid_get_owner_uid(pid_t pid, uid_t *uid); | int sd_pid_get_owner_uid(pid_t pid, uid_t *uid); | |||
/* Get systemd unit (i.e. service) name from PID. This will return an | /* Get systemd unit (i.e. service) name from PID, for system | |||
* error for non-service processes. */ | * services. This will return an error for non-service processes. */ | |||
int sd_pid_get_unit(pid_t, char **unit); | int sd_pid_get_unit(pid_t pid, char **unit); | |||
/* Get systemd unit (i.e. service) name from PID, for user | ||||
* services. This will return an error for non-user-service | ||||
* processes. */ | ||||
int sd_pid_get_user_unit(pid_t pid, char **unit); | ||||
/* Get machine name from PID, for processes assigned to VM or | ||||
* container. This will return an error for non-service processes. */ | ||||
int sd_pid_get_machine_name(pid_t pid, char **name); | ||||
/* Get state from uid. Possible states: offline, lingering, online, active, closing */ | /* Get state from uid. Possible states: offline, lingering, online, active, closing */ | |||
int sd_uid_get_state(uid_t uid, char**state); | int sd_uid_get_state(uid_t uid, char**state); | |||
/* Return 1 if uid has session on seat. If require_active is true will | /* Return 1 if uid has session on seat. If require_active is true will | |||
* look for active sessions only. */ | * look for active sessions only. */ | |||
int sd_uid_is_on_seat(uid_t uid, int require_active, const char *seat); | int sd_uid_is_on_seat(uid_t uid, int require_active, const char *seat); | |||
/* Return sessions of user. If require_active is true will look for | /* Return sessions of user. If require_active is true will look for | |||
* active sessions only. Returns number of sessions as return | * active sessions only. Returns number of sessions as return | |||
End of changes. 1 change blocks. | ||||
3 lines changed or deleted | 12 lines changed or added | |||
sd-messages.h | sd-messages.h | |||
---|---|---|---|---|
skipping to change at line 76 | skipping to change at line 76 | |||
#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) | #define SD_MESSAGE_OVERMOUNTING SD_ID128_MAKE(1d,ee,03,69,c7,fc,47,36,b 7,09,9b,38,ec,b4,6e,e7) | |||
#define SD_MESSAGE_LID_OPENED SD_ID128_MAKE(b7,2e,a4,a2,88,15,45,a0,b 5,0e,20,0e,55,b9,b0,6f) | #define SD_MESSAGE_LID_OPENED SD_ID128_MAKE(b7,2e,a4,a2,88,15,45,a0,b 5,0e,20,0e,55,b9,b0,6f) | |||
#define SD_MESSAGE_LID_CLOSED SD_ID128_MAKE(b7,2e,a4,a2,88,15,45,a0,b 5,0e,20,0e,55,b9,b0,70) | #define SD_MESSAGE_LID_CLOSED SD_ID128_MAKE(b7,2e,a4,a2,88,15,45,a0,b 5,0e,20,0e,55,b9,b0,70) | |||
#define SD_MESSAGE_POWER_KEY SD_ID128_MAKE(b7,2e,a4,a2,88,15,45,a0,b 5,0e,20,0e,55,b9,b0,71) | #define SD_MESSAGE_POWER_KEY SD_ID128_MAKE(b7,2e,a4,a2,88,15,45,a0,b 5,0e,20,0e,55,b9,b0,71) | |||
#define SD_MESSAGE_SUSPEND_KEY SD_ID128_MAKE(b7,2e,a4,a2,88,15,45,a0,b 5,0e,20,0e,55,b9,b0,72) | #define SD_MESSAGE_SUSPEND_KEY SD_ID128_MAKE(b7,2e,a4,a2,88,15,45,a0,b 5,0e,20,0e,55,b9,b0,72) | |||
#define SD_MESSAGE_HIBERNATE_KEY SD_ID128_MAKE(b7,2e,a4,a2,88,15,45,a0,b 5,0e,20,0e,55,b9,b0,73) | #define SD_MESSAGE_HIBERNATE_KEY SD_ID128_MAKE(b7,2e,a4,a2,88,15,45,a0,b 5,0e,20,0e,55,b9,b0,73) | |||
#define SD_MESSAGE_CONFIG_ERROR SD_ID128_MAKE(c7,72,d2,4e,9a,88,4c,be,b | ||||
9,ea,12,62,5c,30,6c,01) | ||||
#define SD_MESSAGE_BOOTCHART SD_ID128_MAKE(9f,26,aa,56,2c,f4,40,c2,b | ||||
1,6c,77,3d,04,79,b5,18) | ||||
#ifdef __cplusplus | #ifdef __cplusplus | |||
} | } | |||
#endif | #endif | |||
#endif | #endif | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 6 lines changed or added | |||
set.h | set.h | |||
---|---|---|---|---|
skipping to change at line 80 | skipping to change at line 80 | |||
void* set_first(Set *s); | void* set_first(Set *s); | |||
void* set_last(Set *s); | void* set_last(Set *s); | |||
char **set_get_strv(Set *s); | char **set_get_strv(Set *s); | |||
#define SET_FOREACH(e, s, i) \ | #define SET_FOREACH(e, s, i) \ | |||
for ((i) = ITERATOR_FIRST, (e) = set_iterate((s), &(i)); (e); (e) = set_iterate((s), &(i))) | for ((i) = ITERATOR_FIRST, (e) = set_iterate((s), &(i)); (e); (e) = set_iterate((s), &(i))) | |||
#define SET_FOREACH_BACKWARDS(e, s, i) \ | #define SET_FOREACH_BACKWARDS(e, s, i) \ | |||
for ((i) = ITERATOR_LAST, (e) = set_iterate_backwards((s), &(i)); ( e); (e) = set_iterate_backwards((s), &(i))) | for ((i) = ITERATOR_LAST, (e) = set_iterate_backwards((s), &(i)); ( e); (e) = set_iterate_backwards((s), &(i))) | |||
#define _cleanup_set_free_ _cleanup_(set_freep) | ||||
#define _cleanup_set_free_free_ _cleanup_(set_free_freep) | ||||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 0 lines changed or added | |||
strv.h | strv.h | |||
---|---|---|---|---|
skipping to change at line 37 | skipping to change at line 37 | |||
#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); | |||
static inline void strv_freep(char ***l) { | static inline void strv_freep(char ***l) { | |||
strv_free(*l); | strv_free(*l); | |||
} | } | |||
#define _cleanup_strv_free_ _cleanup_(strv_freep) | ||||
char **strv_copy(char * const *l) _malloc_; | char **strv_copy(char * const *l) _malloc_; | |||
unsigned strv_length(char * const *l); | 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); | int strv_push(char ***l, char *value); | |||
char **strv_remove(char **l, const char *s); | char **strv_remove(char **l, const char *s); | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 2 lines changed or added | |||
syscall-list.h | syscall-list.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/>. | |||
***/ | ***/ | |||
#if defined __x86_64__ && defined __ILP32__ | #if defined __x86_64__ && defined __ILP32__ | |||
/* The x32 ABI defines all of its syscalls with bit 30 set, which causes | /* The x32 ABI defines all of its syscalls with bit 30 set, which causes | |||
issues when attempting to use syscalls as simple indicies into an array. | issues when attempting to use syscalls as simple indices into an array. | |||
Instead, use the syscall id & ~SYSCALL_MASK as the index, and | the | Instead, use the syscall id & ~SYSCALL_MASK as the index, and | the | |||
internal id with the syscall mask as needed. | internal id with the syscall mask as needed. | |||
*/ | */ | |||
#include <asm/unistd.h> | #include <asm/unistd.h> | |||
#define SYSCALL_TO_INDEX(x) ((x) & ~__X32_SYSCALL_BIT) | #define SYSCALL_TO_INDEX(x) ((x) & ~__X32_SYSCALL_BIT) | |||
#define INDEX_TO_SYSCALL(x) ((x) | __X32_SYSCALL_BIT) | #define INDEX_TO_SYSCALL(x) ((x) | __X32_SYSCALL_BIT) | |||
#else | #else | |||
#define SYSCALL_TO_INDEX(x) (x) | #define SYSCALL_TO_INDEX(x) (x) | |||
#define INDEX_TO_SYSCALL(x) (x) | #define INDEX_TO_SYSCALL(x) (x) | |||
#endif | #endif | |||
End of changes. 1 change blocks. | ||||
1 lines changed or deleted | 1 lines changed or added | |||
unit.h | unit.h | |||
---|---|---|---|---|
skipping to change at line 572 | skipping to change at line 572 | |||
int unit_remove_drop_in(Unit *u, bool runtime, const char *name); | int unit_remove_drop_in(Unit *u, bool runtime, const char *name); | |||
int unit_kill_context(Unit *u, KillContext *c, bool sigkill, pid_t main_pid , pid_t control_pid, bool main_pid_alien); | int unit_kill_context(Unit *u, KillContext *c, bool sigkill, pid_t main_pid , pid_t control_pid, bool main_pid_alien); | |||
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); | |||
/* Macros which append UNIT= or USER_UNIT= to the message */ | ||||
#define log_full_unit(level, unit, ...) log_meta_object(level, __FILE__, __ LINE__, __func__, getpid() == 1 ? "UNIT=" : "USER_UNIT=", unit, __VA_ARGS__ ) | #define log_full_unit(level, unit, ...) log_meta_object(level, __FILE__, __ LINE__, __func__, getpid() == 1 ? "UNIT=" : "USER_UNIT=", unit, __VA_ARGS__ ) | |||
#define log_debug_unit(unit, ...) log_full_unit(LOG_DEBUG, 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_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_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_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__) | #define log_error_unit(unit, ...) log_full_unit(LOG_ERR, unit, __VA_A RGS__) | |||
#define log_struct_unit(level, unit, ...) log_struct(level, getpid() == 1 ? "UNIT=%s" : "USER_UNIT=%s", unit, __VA_ARGS__) | #define log_struct_unit(level, unit, ...) log_struct(level, getpid() == 1 ? "UNIT=%s" : "USER_UNIT=%s", unit, __VA_ARGS__) | |||
End of changes. 1 change blocks. | ||||
0 lines changed or deleted | 2 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 <unistd.h> | #include <unistd.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 ))]; | |||
}; | }; | |||
/* 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 "#;" | |||
#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_RED_ON "\x1B[31m" | #define ANSI_RED_ON "\x1B[31m" | |||
#define ANSI_HIGHLIGHT_RED_ON "\x1B[1;31m" | #define ANSI_HIGHLIGHT_RED_ON "\x1B[1;31m" | |||
#define ANSI_GREEN_ON "\x1B[32m" | #define ANSI_GREEN_ON "\x1B[32m" | |||
#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" | |||
skipping to change at line 530 | skipping to change at line 529 | |||
bool in_initrd(void); | bool in_initrd(void); | |||
void warn_melody(void); | void warn_melody(void); | |||
int get_home_dir(char **ret); | int get_home_dir(char **ret); | |||
static inline void freep(void *p) { | static inline void freep(void *p) { | |||
free(*(void**) p); | free(*(void**) p); | |||
} | } | |||
void fclosep(FILE **f); | static inline void fclosep(FILE **f) { | |||
void pclosep(FILE **f); | if (*f) | |||
void closep(int *fd); | fclose(*f); | |||
void closedirp(DIR **d); | } | |||
static inline void umaskp(mode_t *u) { | ||||
umask(*u); | static inline void pclosep(FILE **f) { | |||
if (*f) | ||||
pclose(*f); | ||||
} | ||||
static inline void closep(int *fd) { | ||||
if (*fd >= 0) | ||||
close_nointr_nofail(*fd); | ||||
} | } | |||
static inline void journal_closep(sd_journal **j) { | static inline void closedirp(DIR **d) { | |||
sd_journal_close(*j); | if (*d) | |||
closedir(*d); | ||||
} | } | |||
#define _cleanup_globfree_ __attribute__((cleanup(globfree))) | static inline void umaskp(mode_t *u) { | |||
umask(*u); | ||||
} | ||||
#define _cleanup_free_ _cleanup_(freep) | ||||
#define _cleanup_fclose_ _cleanup_(fclosep) | ||||
#define _cleanup_pclose_ _cleanup_(pclosep) | ||||
#define _cleanup_close_ _cleanup_(closep) | ||||
#define _cleanup_closedir_ _cleanup_(closedirp) | ||||
#define _cleanup_umask_ _cleanup_(umaskp) | ||||
#define _cleanup_globfree_ _cleanup_(globfree) | ||||
_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 611 | skipping to change at line 628 | |||
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) { | static inline void *mempset(void *s, int c, size_t n) { | |||
memset(s, c, n); | memset(s, c, n); | |||
return (char*)s + n; | return (uint8_t*)s + n; | |||
} | } | |||
char *hexmem(const void *p, size_t l); | char *hexmem(const void *p, size_t l); | |||
void *unhexmem(const char *p, size_t l); | void *unhexmem(const char *p, size_t l); | |||
char *strextend(char **x, ...); | char *strextend(char **x, ...); | |||
char *strrep(const char *s, unsigned n); | char *strrep(const char *s, unsigned n); | |||
void* greedy_realloc(void **p, size_t *allocated, size_t need); | void* greedy_realloc(void **p, size_t *allocated, size_t need); | |||
#define GREEDY_REALLOC(array, allocated, need) \ | ||||
greedy_realloc((void**) &(array), &(allocated), sizeof((array)[0]) | ||||
* (need)) | ||||
static inline void _reset_errno_(int *saved_errno) { | static inline void _reset_errno_(int *saved_errno) { | |||
errno = *saved_errno; | errno = *saved_errno; | |||
} | } | |||
#define PROTECT_ERRNO __attribute__((cleanup(_reset_errno_))) int _saved_er rno_ = errno | #define PROTECT_ERRNO __attribute__((cleanup(_reset_errno_))) int _saved_er rno_ = errno | |||
struct umask_struct { | struct umask_struct { | |||
mode_t mask; | mode_t mask; | |||
bool quit; | bool quit; | |||
skipping to change at line 650 | skipping to change at line 669 | |||
_saved_umask_.quit = true) | _saved_umask_.quit = true) | |||
static inline unsigned u64log2(uint64_t n) { | static inline unsigned u64log2(uint64_t n) { | |||
return (n > 1) ? __builtin_clzll(n) ^ 63U : 0; | return (n > 1) ? __builtin_clzll(n) ^ 63U : 0; | |||
} | } | |||
static inline bool logind_running(void) { | static inline bool logind_running(void) { | |||
return access("/run/systemd/seats/", F_OK) >= 0; | return access("/run/systemd/seats/", F_OK) >= 0; | |||
} | } | |||
#define DECIMAL_STR_WIDTH(x) \ | ||||
({ \ | ||||
typeof(x) _x_ = (x); \ | ||||
unsigned ans = 1; \ | ||||
while (_x_ /= 10) \ | ||||
ans++; \ | ||||
ans; \ | ||||
}) | ||||
int unlink_noerrno(const char *path); | int unlink_noerrno(const char *path); | |||
#define alloca0(n) \ | ||||
({ \ | ||||
char *_new_; \ | ||||
size_t _len_ = n; \ | ||||
_new_ = alloca(_len_); \ | ||||
(void *) memset(_new_, 0, _len_); \ | ||||
}) | ||||
#define strappenda(a, b) \ | ||||
({ \ | ||||
const char *_a_ = (a), *_b_ = (b); \ | ||||
char *_c_; \ | ||||
size_t _x_, _y_; \ | ||||
_x_ = strlen(_a_); \ | ||||
_y_ = strlen(_b_); \ | ||||
_c_ = alloca(_x_ + _y_ + 1); \ | ||||
strcpy(stpcpy(_c_, _a_), _b_); \ | ||||
_c_; \ | ||||
}) | ||||
End of changes. 9 change blocks. | ||||
12 lines changed or deleted | 41 lines changed or added | |||